Skip to content
Failed

Console Output

Skipping 816 KB.. Full Log
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(define(successor(house1,house2),'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that house1 successor house2 define 'EvaluationLink'(stv(1,1),'PredicateNode'('$STRING'("Successor")),'ListLink'('ConceptNode'(house1),'ConceptNode'(house2)))
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( define( successor(house1,house2), 
15:59:22         'EvaluationLink'( stv(1,1), 
15:59:22           PredicateNode( '$STRING'("Successor")), 
15:59:22           'ListLink'('ConceptNode'(house1),'ConceptNode'(house2))))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success( common_logic_loader,
15:59:22 %~     common_logic_loader : ain( clif( successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( successor('$STRING'("101 Main Street"),'$STRING'("102 Main Street")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "101 Main Street" isa '$STRING' successor "102 Main Street" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('102','[|]'(iMain,'[|]'(tSumoStreet,[])))))))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(successor('$STRING'(s(['101',iMain,tSumoStreet])),'$STRING'(s(['102',iMain,tSumoStreet])))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that '101' iMain tSumoStreet isa s isa '$STRING' successor '102' iMain tSumoStreet isa s isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( successor( 
15:59:22          $STRING( s( ['101',iMain,tSumoStreet])), 
15:59:22          $STRING( s( ['102',iMain,tSumoStreet])))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success( common_logic_loader,
15:59:22 %~     common_logic_loader : ain( clif( successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( successor('$STRING'("102 Main Street"),'$STRING'("103 Main Street")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "102 Main Street" isa '$STRING' successor "103 Main Street" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('102','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[])))))))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(successor('$STRING'(s(['102',iMain,tSumoStreet])),'$STRING'(s(['103',iMain,tSumoStreet])))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that '102' iMain tSumoStreet isa s isa '$STRING' successor '103' iMain tSumoStreet isa s isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( successor( 
15:59:22          $STRING( s( ['102',iMain,tSumoStreet])), 
15:59:22          $STRING( s( ['103',iMain,tSumoStreet])))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success( common_logic_loader,
15:59:22 %~     common_logic_loader : ain( clif( successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( successor('$STRING'("103 Main Street"),'$STRING'("104 Main Street")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "103 Main Street" isa '$STRING' successor "104 Main Street" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('103','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('104','[|]'(iMain,'[|]'(tSumoStreet,[])))))))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(successor('$STRING'(s(['103',iMain,tSumoStreet])),'$STRING'(s(['104',iMain,tSumoStreet])))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that '103' iMain tSumoStreet isa s isa '$STRING' successor '104' iMain tSumoStreet isa s isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( successor( 
15:59:22          $STRING( s( ['103',iMain,tSumoStreet])), 
15:59:22          $STRING( s( ['104',iMain,tSumoStreet])))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success( common_logic_loader,
15:59:22 %~     common_logic_loader : ain( clif( successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( successor('$STRING'("104 Main Street"),'$STRING'("105 Main Street")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "104 Main Street" isa '$STRING' successor "105 Main Street" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(successor('$STRING'(s('[|]'('104','[|]'(iMain,'[|]'(tSumoStreet,[]))))),'$STRING'(s('[|]'('105','[|]'(iMain,'[|]'(tSumoStreet,[])))))))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(successor('$STRING'(s(['104',iMain,tSumoStreet])),'$STRING'(s(['105',iMain,tSumoStreet])))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that '104' iMain tSumoStreet isa s isa '$STRING' successor '105' iMain tSumoStreet isa s isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( successor( 
15:59:22          $STRING( s( ['104',iMain,tSumoStreet])), 
15:59:22          $STRING( s( ['105',iMain,tSumoStreet])))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ comment("; ---------------------------------------------------------------")
15:59:22 %~ comment("; By-process-of-elimination facts")
15:59:22 %~ comment("; If person doesn''t live in one of the four houses, they must live in")
15:59:22 %~ comment("; the fifth. Likewsie, if person doesn''t smoke/drink/keep one of the four,")
15:59:22 %~ comment("; they must have the fifth.")
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success( common_logic_loader,
15:59:22 %~     common_logic_loader : ain( clif( define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( define('is-a'(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y))) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  x 'is-a' y define x isa 'ConceptNode' 'InheritanceLink' y isa 'ConceptNode'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ azzert_rename('is-a',isA)
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y))))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that x isA y define x isa 'ConceptNode' 'InheritanceLink' y isa 'ConceptNode'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( define(isA(x,y),'InheritanceLink'('ConceptNode'(x),'ConceptNode'(y)))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("red house"),'$STRING'("house"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 'is-a'('$STRING'("red house"),'$STRING'("house"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( 'is-a'('$STRING'("red house"),'$STRING'("house")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "red house" isa '$STRING' 'is-a' "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(red,'[|]'(house,[])))),'$STRING'("house")))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(isA('$STRING'(s([red,house])),'$STRING'("house"))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that red house isa s isa '$STRING' isA "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( isA('$STRING'(s([red,house])),'$STRING'("house"))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("white house"),'$STRING'("house"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 'is-a'('$STRING'("white house"),'$STRING'("house"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( 'is-a'('$STRING'("white house"),'$STRING'("house")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "white house" isa '$STRING' 'is-a' "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(white,'[|]'(house,[])))),'$STRING'("house")))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(isA('$STRING'(s([white,house])),'$STRING'("house"))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that white house isa s isa '$STRING' isA "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( isA('$STRING'(s([white,house])),'$STRING'("house"))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("green house"),'$STRING'("house"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 'is-a'('$STRING'("green house"),'$STRING'("house"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( 'is-a'('$STRING'("green house"),'$STRING'("house")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "green house" isa '$STRING' 'is-a' "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(green,'[|]'(house,[])))),'$STRING'("house")))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(isA('$STRING'(s([green,house])),'$STRING'("house"))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that green house isa s isa '$STRING' isA "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( isA('$STRING'(s([green,house])),'$STRING'("house"))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success( common_logic_loader,
15:59:22 %~     common_logic_loader : ain( clif( 'is-a'('$STRING'("yellow house"),'$STRING'("house"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 'is-a'('$STRING'("yellow house"),'$STRING'("house"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( 'is-a'('$STRING'("yellow house"),'$STRING'("house")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "yellow house" isa '$STRING' 'is-a' "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(yellow,'[|]'(house,[])))),'$STRING'("house")))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(isA('$STRING'(s([yellow,house])),'$STRING'("house"))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that yellow house isa s isa '$STRING' isA "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( isA('$STRING'(s([yellow,house])),'$STRING'("house"))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("blue house"),'$STRING'("house"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 'is-a'('$STRING'("blue house"),'$STRING'("house"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( 'is-a'('$STRING'("blue house"),'$STRING'("house")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  "blue house" isa '$STRING' 'is-a' "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(blue,'[|]'(house,[])))),'$STRING'("house")))
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 % Results in the following 1 entailment(s): 
15:59:22 nesc(isA('$STRING'(s([blue,house])),'$STRING'("house"))).
15:59:22 
15:59:22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 %~  it is necessarily true that blue house isa s isa '$STRING' isA "house" isa '$STRING'
15:59:22 %~ 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:22 
15:59:22 nesc( isA('$STRING'(s([blue,house])),'$STRING'("house"))).
15:59:22 
15:59:22 ============================================
15:59:22 %~ debugm( common_logic_loader,
15:59:22 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("water"),'$STRING'("drink"))))))
15:59:22 
15:59:22 
15:59:22 
15:59:22 
15:59:22 =======================================================
15:59:22 'is-a'('$STRING'("water"),'$STRING'("drink"))
15:59:22 ============================================
15:59:22 
15:59:22 
15:59:22 ?- kif_to_boxlog( 'is-a'('$STRING'("water"),'$STRING'("drink")) ).
15:59:22 
15:59:22 
15:59:22 
15:59:22 % In English: 
15:59:22 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "water" isa '$STRING' 'is-a' "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("water"),'$STRING'("drink")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("water"),'$STRING'("drink"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "water" isa '$STRING' isA "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("water"),'$STRING'("drink"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("milk"),'$STRING'("drink"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("milk"),'$STRING'("drink"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("milk"),'$STRING'("drink")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "milk" isa '$STRING' 'is-a' "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("milk"),'$STRING'("drink")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("milk"),'$STRING'("drink"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "milk" isa '$STRING' isA "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("milk"),'$STRING'("drink"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("bier"),'$STRING'("drink"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("bier"),'$STRING'("drink"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("bier"),'$STRING'("drink")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "bier" isa '$STRING' 'is-a' "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("bier"),'$STRING'("drink")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("bier"),'$STRING'("drink"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "bier" isa '$STRING' isA "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("bier"),'$STRING'("drink"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("coffee"),'$STRING'("drink"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("coffee"),'$STRING'("drink"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("coffee"),'$STRING'("drink")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "coffee" isa '$STRING' 'is-a' "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("coffee"),'$STRING'("drink")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("coffee"),'$STRING'("drink"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "coffee" isa '$STRING' isA "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("coffee"),'$STRING'("drink"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("tea"),'$STRING'("drink"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("tea"),'$STRING'("drink"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("tea"),'$STRING'("drink")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "tea" isa '$STRING' 'is-a' "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("tea"),'$STRING'("drink")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("tea"),'$STRING'("drink"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "tea" isa '$STRING' isA "drink" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("tea"),'$STRING'("drink"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Prince"),'$STRING'("tobacco"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("Prince"),'$STRING'("tobacco"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("Prince"),'$STRING'("tobacco")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "Prince" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Prince"),'$STRING'("tobacco")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("Prince"),'$STRING'("tobacco"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "Prince" isa '$STRING' isA "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("Prince"),'$STRING'("tobacco"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("PallMall"),'$STRING'("tobacco"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("PallMall"),'$STRING'("tobacco"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("PallMall"),'$STRING'("tobacco")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "PallMall" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("PallMall"),'$STRING'("tobacco")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("PallMall"),'$STRING'("tobacco"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "PallMall" isa '$STRING' isA "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("PallMall"),'$STRING'("tobacco"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Dunhill"),'$STRING'("tobacco"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("Dunhill"),'$STRING'("tobacco"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("Dunhill"),'$STRING'("tobacco")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "Dunhill" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Dunhill"),'$STRING'("tobacco")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("Dunhill"),'$STRING'("tobacco"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "Dunhill" isa '$STRING' isA "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("Dunhill"),'$STRING'("tobacco"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Blend"),'$STRING'("tobacco"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("Blend"),'$STRING'("tobacco"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("Blend"),'$STRING'("tobacco")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "Blend" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Blend"),'$STRING'("tobacco")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("Blend"),'$STRING'("tobacco"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "Blend" isa '$STRING' isA "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("Blend"),'$STRING'("tobacco"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success( common_logic_loader,
15:59:23 %~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("Blue Master"),'$STRING'("tobacco")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "Blue Master" isa '$STRING' 'is-a' "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'(s('[|]'(tSumoBlue,'[|]'('Master',[])))),'$STRING'("tobacco")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'(s([tSumoBlue,'Master'])),'$STRING'("tobacco"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that tSumoBlue 'Master' isa s isa '$STRING' isA "tobacco" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'(s([tSumoBlue,'Master'])),'$STRING'("tobacco"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("fish"),'$STRING'("keeps_as_pet")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "fish" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("fish"),'$STRING'("keeps_as_pet")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("fish"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "fish" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("fish"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("dogs"),'$STRING'("keeps_as_pet")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "dogs" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("dogs"),'$STRING'("keeps_as_pet")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("dogs"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "dogs" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("dogs"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success( common_logic_loader,
15:59:23 %~     common_logic_loader : ain( clif( 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("birds"),'$STRING'("keeps_as_pet")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "birds" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("birds"),'$STRING'("keeps_as_pet")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("birds"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "birds" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("birds"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("cats"),'$STRING'("keeps_as_pet")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "cats" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("cats"),'$STRING'("keeps_as_pet")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("cats"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "cats" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("cats"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success( common_logic_loader,
15:59:23 %~     common_logic_loader : ain( clif( 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("horses"),'$STRING'("keeps_as_pet")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "horses" isa '$STRING' 'is-a' "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("horses"),'$STRING'("keeps_as_pet")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("horses"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "horses" isa '$STRING' isA "keeps_as_pet" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("horses"),'$STRING'("keeps_as_pet"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success( common_logic_loader,
15:59:23 %~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("Englishman"),'$STRING'("citizenship")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "Englishman" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Englishman"),'$STRING'("citizenship")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("Englishman"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "Englishman" isa '$STRING' isA "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("Englishman"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Swede"),'$STRING'("citizenship"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("Swede"),'$STRING'("citizenship"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("Swede"),'$STRING'("citizenship")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "Swede" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Swede"),'$STRING'("citizenship")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("Swede"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "Swede" isa '$STRING' isA "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("Swede"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('is-a'('$STRING'("Dane"),'$STRING'("citizenship"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("Dane"),'$STRING'("citizenship"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("Dane"),'$STRING'("citizenship")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "Dane" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Dane"),'$STRING'("citizenship")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("Dane"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "Dane" isa '$STRING' isA "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("Dane"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success( common_logic_loader,
15:59:23 %~     common_logic_loader : ain( clif( 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("Norwegian"),'$STRING'("citizenship")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "Norwegian" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("Norwegian"),'$STRING'("citizenship")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("Norwegian"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "Norwegian" isa '$STRING' isA "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("Norwegian"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success( common_logic_loader,
15:59:23 %~     common_logic_loader : ain( clif( 'is-a'('$STRING'("German"),'$STRING'("citizenship"))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 'is-a'('$STRING'("German"),'$STRING'("citizenship"))
15:59:23 ============================================
15:59:23 
15:59:23 
15:59:23 ?- kif_to_boxlog( 'is-a'('$STRING'("German"),'$STRING'("citizenship")) ).
15:59:23 
15:59:23 
15:59:23 
15:59:23 % In English: 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  "German" isa '$STRING' 'is-a' "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ kif_to_boxlog_attvars2 = necessary(isA('$STRING'("German"),'$STRING'("citizenship")))
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 % Results in the following 1 entailment(s): 
15:59:23 nesc(isA('$STRING'("German"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 %~  it is necessarily true that "German" isa '$STRING' isA "citizenship" isa '$STRING'
15:59:23 %~ 
15:59:23 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:23 
15:59:23 nesc( isA('$STRING'("German"),'$STRING'("citizenship"))).
15:59:23 
15:59:23 ============================================
15:59:23 %~ comment(";")
15:59:23 %~ comment("; deduct-keep.scm")
15:59:23 %~ comment(";")
15:59:23 %~ comment("; Print out who keeps what")
15:59:23 %~ comment(";")
15:59:23 %~ comment("; Part of the \"Einstein puzzle\" demo.")
15:59:23 %~ debugm( common_logic_loader,
15:59:23 %~   show_success( common_logic_loader,
15:59:23 %~     common_logic_loader : ain( clif( define( 'print-ownership',
15:59:23 %~                                        'BindLink'(
15:59:23 %~                                           'VariableList'(
15:59:23 %~                                              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),
15:59:23 %~                                              VariableNode( '$STRING'("$nationality")),
15:59:23 %~                                              VariableNode( '$STRING'("$house")),
15:59:23 %~                                              VariableNode( '$STRING'("$pet"))),
15:59:23 %~                                           'AndLink'(
15:59:23 %~                                              'EvaluationLink'(
15:59:23 %~                                                 PredicateNode( '$STRING'("Nationality")),
15:59:23 %~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),
15:59:23 %~                                              'EvaluationLink'(
15:59:23 %~                                                 PredicateNode( '$STRING'("LivesIn")),
15:59:23 %~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),
15:59:23 %~                                              'EvaluationLink'(
15:59:23 %~                                                 PredicateNode( '$STRING'("KeepsPet")),
15:59:23 %~                                                 'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),
15:59:23 %~                                           'OrderedLink'(
15:59:23 %~                                              VariableNode( '$STRING'("$person")),
15:59:23 %~                                              VariableNode( '$STRING'("$nationality")),
15:59:23 %~                                              VariableNode( '$STRING'("$house")),
15:59:23 %~                                              VariableNode( '$STRING'("$pet")))))))))
15:59:23 
15:59:23 
15:59:23 
15:59:23 
15:59:23 =======================================================
15:59:23 define('print-ownership','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet")))))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('print-ownership','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'print-ownership' define 'BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ azzert_rename('print-ownership',printOwnership)
15:59:24 %~ azzert_rename('VariableList',ftVariableList)
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(printOwnership,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(printOwnership,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet")))))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that printOwnership define 'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))),'AndLink'('EvaluationLink'('PredicateNode'('$STRING'("Nationality")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))),'EvaluationLink'('PredicateNode'('$STRING'("LivesIn")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))),'EvaluationLink'('PredicateNode'('$STRING'("KeepsPet")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")),'VariableNode'('$STRING'("$house")),'VariableNode'('$STRING'("$pet"))))
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define( printOwnership, 
15:59:24         'BindLink'( 
15:59:24            ftVariableList( 
15:59:24               'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))), 
15:59:24               VariableNode( '$STRING'("$nationality")), 
15:59:24               VariableNode( '$STRING'("$house")), 
15:59:24               VariableNode( '$STRING'("$pet"))), 
15:59:24            'AndLink'( 
15:59:24               'EvaluationLink'( 
15:59:24                  PredicateNode( '$STRING'("Nationality")), 
15:59:24                  'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$nationality")))), 
15:59:24               'EvaluationLink'( 
15:59:24                  PredicateNode( '$STRING'("LivesIn")), 
15:59:24                  'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$house")))), 
15:59:24               'EvaluationLink'( 
15:59:24                  PredicateNode( '$STRING'("KeepsPet")), 
15:59:24                  'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pet"))))), 
15:59:24            'OrderedLink'( 
15:59:24               VariableNode( '$STRING'("$person")), 
15:59:24               VariableNode( '$STRING'("$nationality")), 
15:59:24               VariableNode( '$STRING'("$house")), 
15:59:24               VariableNode( '$STRING'("$pet")))))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; variable declarations")
15:59:24 %~ comment("; body -- if all parts of AndLink hold true ... then")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success( common_logic_loader,
15:59:24 %~     common_logic_loader : ain( clif( define( 'print-results',
15:59:24 %~                                        'BindLink'(
15:59:24 %~                                           'VariableList'(
15:59:24 %~                                              'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),
15:59:24 %~                                              VariableNode( '$STRING'("$pred")),
15:59:24 %~                                              'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),
15:59:24 %~                                           AndLink( 'EvaluationLink'(
15:59:24 %~                                                       VariableNode( '$STRING'("$pred")),
15:59:24 %~                                                       'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),
15:59:24 %~                                           'OrderedLink'(
15:59:24 %~                                              VariableNode( '$STRING'("$person")),
15:59:24 %~                                              VariableNode( '$STRING'("$pred")),
15:59:24 %~                                              VariableNode( '$STRING'("$attr")))))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('print-results','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr")))))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('print-results','BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'print-results' define 'BindLink'('VariableList'('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ azzert_rename('print-results',printResults)
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(printResults,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(printResults,'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr")))))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that printResults define 'BindLink'(ftVariableList('TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))),'VariableNode'('$STRING'("$pred")),'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))),'AndLink'('EvaluationLink'('VariableNode'('$STRING'("$pred")),'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))),'OrderedLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$pred")),'VariableNode'('$STRING'("$attr"))))
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define( printResults, 
15:59:24         'BindLink'( 
15:59:24            ftVariableList( 
15:59:24               'TypedVariableLink'('VariableNode'('$STRING'("$person")),'TypeNode'('$STRING'("FeatureNode"))), 
15:59:24               VariableNode( '$STRING'("$pred")), 
15:59:24               'TypedVariableLink'('VariableNode'('$STRING'("$attr")),'TypeNode'('$STRING'("ConceptNode")))), 
15:59:24            AndLink( 'EvaluationLink'( 
15:59:24                        VariableNode( '$STRING'("$pred")), 
15:59:24                        'ListLink'('VariableNode'('$STRING'("$person")),'VariableNode'('$STRING'("$attr"))))), 
15:59:24            'OrderedLink'( 
15:59:24               VariableNode( '$STRING'("$person")), 
15:59:24               VariableNode( '$STRING'("$pred")), 
15:59:24               VariableNode( '$STRING'("$attr")))))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; variable declarations")
15:59:24 %~ comment("; body -- if all parts of AndLink hold true ... then")
15:59:24 %~ comment(";")
15:59:24 %~ comment("; deduct-rules.scm")
15:59:24 %~ comment(";")
15:59:24 %~ comment("; Deduction rules for Einstein puzzle.")
15:59:24 %~ comment(";")
15:59:24 %~ comment("; The rules here are written in a fashion as close as possible to")
15:59:24 %~ comment("; 'ordinary' common-sense deductive rules.  In particular, they are")
15:59:24 %~ comment("; not written to predispose the problem into a 5x5 solution grid")
15:59:24 %~ comment("; (although this is what they eventually must lead to). In other")
15:59:24 %~ comment("; words, there is no effort made to make this the most \"efficient\"")
15:59:24 %~ comment("; possible set of rules; instead, they''re the most \"natural\" or")
15:59:24 %~ comment("; \"common-sense-like\" for this task.")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success(common_logic_loader,common_logic_loader:ain(clif('use-modules'(srfi('srfi-1'))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 'use-modules'(srfi('srfi-1'))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( 'use-modules'(srfi('srfi-1')) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'srfi-1' isa srfi isa 'use-modules'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ azzert_rename('use-modules',useModules)
15:59:24 %~ azzert_rename('srfi-1',srfi_1)
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(useModules(srfi(srfi_1)))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(useModules(srfi(srfi_1))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that srfi_1 isa srfi isa useModules
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( useModules( srfi(srfi_1))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; Define simple truth value")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success(common_logic_loader,common_logic_loader:ain(clif(define(stv(mean,conf),'cog-new-stv'(mean,conf))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define(stv(mean,conf),'cog-new-stv'(mean,conf))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define(stv(mean,conf),'cog-new-stv'(mean,conf)) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  mean stv conf define mean 'cog-new-stv' conf
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(stv(mean,conf),cogNewStv(mean,conf)))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(stv(mean,conf),cogNewStv(mean,conf))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that mean stv conf define mean cogNewStv conf
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define(stv(mean,conf),cogNewStv(mean,conf))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; Shorthand for the node types")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('VN','VariableNode')))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('VN','VariableNode')
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('VN','VariableNode') ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'VN' define 'VariableNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define('VN','VariableNode'))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define('VN','VariableNode')).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that 'VN' define 'VariableNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define('VN','VariableNode')).
15:59:24 
15:59:24 ============================================
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('PN','PredicateNode')))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('PN','PredicateNode')
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('PN','PredicateNode') ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'PN' define 'PredicateNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define('PN','PredicateNode'))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define('PN','PredicateNode')).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that 'PN' define 'PredicateNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define('PN','PredicateNode')).
15:59:24 
15:59:24 ============================================
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('CN','ConceptNode')))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('CN','ConceptNode')
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('CN','ConceptNode') ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'CN' define 'ConceptNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define('CN','ConceptNode'))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define('CN','ConceptNode')).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that 'CN' define 'ConceptNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define('CN','ConceptNode')).
15:59:24 
15:59:24 ============================================
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success(common_logic_loader,common_logic_loader:ain(clif(define('AN','FeatureNode')))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('AN','FeatureNode')
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('AN','FeatureNode') ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'AN' define 'FeatureNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define('AN','FeatureNode'))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define('AN','FeatureNode')).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that 'AN' define 'FeatureNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define('AN','FeatureNode')).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment(" AvatarNode")
15:59:24 %~ comment("; Predicate clause specifies a predicate that associates attribute to person")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success( common_logic_loader,
15:59:24 %~     common_logic_loader : ain( clif( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3)))) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  clause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3)))))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that clause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define(clause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),t3(v3))))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; Predicate clause negating the third attribute.")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success( common_logic_loader,
15:59:24 %~     common_logic_loader : ain( clif( define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('not-clause'(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3))))) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'not-clause'(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3 isa 'NotLink'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ azzert_rename('not-clause',notClause)
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3))))))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that notClause(t1,v1,t2,v2,t3,v3) define v1 isa t1 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3 isa 'NotLink'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define(notClause(t1,v1,t2,v2,t3,v3),'EvaluationLink'(t1(v1),'ListLink'(t2(v2),'NotLink'(t3(v3)))))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; Predicate clause, asserting that v2 and v3 are different atoms.")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success( common_logic_loader,
15:59:24 %~     common_logic_loader : ain( clif( define( differ(t2,v2,t3,v3),
15:59:24 %~                                        'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3)))) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  differ(t2,v2,t3,v3) define "c++:exclusive" isa '$STRING' isa 'GroundedPredicateNode' 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3)))))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(differ(t2,v2,t3,v3),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that differ(t2,v2,t3,v3) define "c++:exclusive" isa '$STRING' isa 'GroundedPredicateNode' 'EvaluationLink' v2 isa t2 'ListLink' v3 isa t3
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define( differ(t2,v2,t3,v3), 
15:59:24         'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'(t2(v2),t3(v3))))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; Declare a variable var to be of type type")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success( common_logic_loader,
15:59:24 %~     common_logic_loader : ain( clif( define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('decl-var'(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type))) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  type 'decl-var' var define var isa 'VariableNode' 'TypedVariableLink' type isa 'TypeNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ azzert_rename('decl-var',declVar)
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type))))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that type declVar var define var isa 'VariableNode' 'TypedVariableLink' type isa 'TypeNode'
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define(declVar(type,var),'TypedVariableLink'('VariableNode'(var),'TypeNode'(type)))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; ---------------------------------------------------------------------")
15:59:24 %~ comment("; \"Is the same person\" deduction rule.")
15:59:24 %~ comment("; If person A and person B both share the same predicate and property,")
15:59:24 %~ comment("; then they must be the same person.")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success( common_logic_loader,
15:59:24 %~     common_logic_loader : ain( clif( define( 'is-same-rule',
15:59:24 %~                                        'BindLink'(
15:59:24 %~                                           'VariableList'(
15:59:24 %~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
15:59:24 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
15:59:24 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
15:59:24 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
15:59:24 %~                                           'AndLink'(
15:59:24 %~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
15:59:24 %~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),
15:59:24 %~                                              AbsentLink( clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),
15:59:24 %~                                           clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('is-same-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('is-same-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'is-same-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ azzert_rename('is-same-rule',isSameRule)
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(isSameRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(isSameRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that isSameRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")),'AbsentLink'(clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define( isSameRule, 
15:59:24         'BindLink'( 
15:59:24            ftVariableList( 
15:59:24               declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
15:59:24               declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
15:59:24               declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
15:59:24               declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
15:59:24            'AndLink'( 
15:59:24               clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
15:59:24               clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")), 
15:59:24               AbsentLink( clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))), 
15:59:24            clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; variable declarations")
15:59:24 %~ comment("; body -- if all parts of AndLink hold true ... ")
15:59:24 %~ comment("; Avoid reporting things we already know.")
15:59:24 %~ comment("; Basically, if we already know that person A and B")
15:59:24 %~ comment("; are the same person, then lets not deduce it again.")
15:59:24 %~ comment("; This not link is identical to the conclusion below")
15:59:24 %~ comment("; implicand -- then the following is true too")
15:59:24 %~ comment("; ---------------------------------------------------------------------")
15:59:24 %~ comment("; Transitive deduction rule.")
15:59:24 %~ comment(";")
15:59:24 %~ comment("; If attribute X holds for person A, and person A is same as person B")
15:59:24 %~ comment("; then attribute X also holds for person B.")
15:59:24 %~ debugm( common_logic_loader,
15:59:24 %~   show_success( common_logic_loader,
15:59:24 %~     common_logic_loader : ain( clif( define( 'transitive-rule',
15:59:24 %~                                        'BindLink'(
15:59:24 %~                                           'VariableList'(
15:59:24 %~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
15:59:24 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
15:59:24 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
15:59:24 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
15:59:24 %~                                           'AndLink'(
15:59:24 %~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
15:59:24 %~                                              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
15:59:24 %~                                              AbsentLink( clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
15:59:24 %~                                           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))
15:59:24 
15:59:24 
15:59:24 
15:59:24 
15:59:24 =======================================================
15:59:24 define('transitive-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
15:59:24 ============================================
15:59:24 
15:59:24 
15:59:24 ?- kif_to_boxlog( define('transitive-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).
15:59:24 
15:59:24 
15:59:24 
15:59:24 % In English: 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  'transitive-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ azzert_rename('transitive-rule',transitiveRule)
15:59:24 %~ kif_to_boxlog_attvars2 = necessary(define(transitiveRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 % Results in the following 1 entailment(s): 
15:59:24 nesc(define(transitiveRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).
15:59:24 
15:59:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 %~  it is necessarily true that transitiveRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
15:59:24 %~ 
15:59:24 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:24 
15:59:24 nesc( define( transitiveRule, 
15:59:24         'BindLink'( 
15:59:24            ftVariableList( 
15:59:24               declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
15:59:24               declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
15:59:24               declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
15:59:24               declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
15:59:24            'AndLink'( 
15:59:24               clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
15:59:24               clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
15:59:24               AbsentLink( clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
15:59:24            clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).
15:59:24 
15:59:24 ============================================
15:59:24 %~ comment("; variable declarations")
15:59:24 %~ comment("; body -- if all parts of AndLink hold true ... then")
15:59:24 %~ comment("; Don''t deduce thigs we already know...")
15:59:24 %~ comment("; i.e. this not link is identical to conclusion, below.")
15:59:24 %~ comment("; implicand -- then the following is true too")
15:59:24 %~ comment("; ---------------------------------------------------------------------")
15:59:24 %~ comment("; Transitive-not deduction rule.")
15:59:24 %~ comment(";")
15:59:24 %~ comment("; If attribute X doesn''t hold for person A, and person A is same as person B")
15:59:25 %~ comment("; then attribute X also doesn''t hold for person B.")
15:59:25 %~ comment(";")
15:59:25 %~ comment("; Very similar to above")
15:59:25 %~ debugm( common_logic_loader,
15:59:25 %~   show_success( common_logic_loader,
15:59:25 %~     common_logic_loader : ain( clif( define( 'transitive-not-rule',
15:59:25 %~                                        'BindLink'(
15:59:25 %~                                           'VariableList'(
15:59:25 %~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
15:59:25 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
15:59:25 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
15:59:25 %~                                           'AndLink'(
15:59:25 %~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
15:59:25 %~                                              clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
15:59:25 %~                                              AbsentLink( 'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
15:59:25 %~                                           'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))
15:59:25 
15:59:25 
15:59:25 
15:59:25 
15:59:25 =======================================================
15:59:25 define('transitive-not-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
15:59:25 ============================================
15:59:25 
15:59:25 
15:59:25 ?- kif_to_boxlog( define('transitive-not-rule','BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).
15:59:25 
15:59:25 
15:59:25 
15:59:25 % In English: 
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~  'transitive-not-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
15:59:25 %~ 
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~ azzert_rename('transitive-not-rule',transitiveNotRule)
15:59:25 %~ kif_to_boxlog_attvars2 = necessary(define(transitiveNotRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))
15:59:25 
15:59:25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 % Results in the following 1 entailment(s): 
15:59:25 nesc(define(transitiveNotRule,'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).
15:59:25 
15:59:25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~  it is necessarily true that transitiveNotRule define 'BindLink'(ftVariableList(declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
15:59:25 %~ 
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 
15:59:25 nesc( define( transitiveNotRule, 
15:59:25         'BindLink'( 
15:59:25            ftVariableList( 
15:59:25               declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
15:59:25               declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
15:59:25               declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
15:59:25               declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
15:59:25            'AndLink'( 
15:59:25               notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
15:59:25               clause('PN','$STRING'("IsSamePerson"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
15:59:25               AbsentLink( notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
15:59:25            notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).
15:59:25 
15:59:25 ============================================
15:59:25 %~ comment("; variable declarations")
15:59:25 %~ comment("; body -- if all parts of AndLink hold true ... then")
15:59:25 %~ comment("; Don''t deduce thigs we already know...")
15:59:25 %~ comment("; i.e. this not link is identical to conclusion, below.")
15:59:25 %~ comment("; implicand -- then the following is true too")
15:59:25 %~ comment("; ---------------------------------------------------------------------")
15:59:25 %~ comment("; elimination")
15:59:25 %~ debugm( common_logic_loader,
15:59:25 %~   show_success( common_logic_loader,
15:59:25 %~     common_logic_loader : ain( clif( define( 'by-elimination-rule',
15:59:25 %~                                        'BindLink'(
15:59:25 %~                                           'VariableList'(
15:59:25 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),
15:59:25 %~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),
15:59:25 %~                                           'AndLink'(
15:59:25 %~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),
15:59:25 %~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),
15:59:25 %~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),
15:59:25 %~                                              'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),
15:59:25 %~                                              'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),
15:59:25 %~                                              'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),
15:59:25 %~                                              'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),
15:59:25 %~                                              'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),
15:59:25 %~                                              'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),
15:59:25 %~                                              'EvaluationLink'(
15:59:25 %~                                                 GroundedPredicateNode( '$STRING'("c++:exclusive")),
15:59:25 %~                                                 'ListLink'(
15:59:25 %~                                                    VN( '$STRING'("$attr_a")),
15:59:25 %~                                                    VN( '$STRING'("$attr_b")),
15:59:25 %~                                                    VN( '$STRING'("$attr_c")),
15:59:25 %~                                                    VN( '$STRING'("$attr_d")),
15:59:25 %~                                                    VN( '$STRING'("$attr_e"))))),
15:59:25 %~                                           clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))))))
15:59:25 
15:59:25 
15:59:25 
15:59:25 
15:59:25 =======================================================
15:59:25 define('by-elimination-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))
15:59:25 ============================================
15:59:25 
15:59:25 
15:59:25 ?- kif_to_boxlog( define('by-elimination-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))) ).
15:59:25 
15:59:25 
15:59:25 
15:59:25 % In English: 
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~  'by-elimination-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_c")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_d")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_e")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))
15:59:25 %~ 
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~ azzert_rename('by-elimination-rule',byEliminationRule)
15:59:25 %~ kif_to_boxlog_attvars2 = necessary(define(byEliminationRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))))
15:59:25 
15:59:25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 % Results in the following 1 entailment(s): 
15:59:25 nesc(define(byEliminationRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))).
15:59:25 
15:59:25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~  it is necessarily true that byEliminationRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")),declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))),'AndLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")),'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))),'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))),'EvaluationLink'('GroundedPredicateNode'('$STRING'("c++:exclusive")),'ListLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_e"))))),clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e")))
15:59:25 %~ 
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 
15:59:25 nesc( define( byEliminationRule, 
15:59:25         'BindLink'( 
15:59:25            ftVariableList( 
15:59:25               declVar('$STRING'("FeatureNode"),'$STRING'("$person")), 
15:59:25               declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
15:59:25               declVar('$STRING'("ConceptNode"),'$STRING'("$attr_a")), 
15:59:25               declVar('$STRING'("ConceptNode"),'$STRING'("$attr_b")), 
15:59:25               declVar('$STRING'("ConceptNode"),'$STRING'("$attr_c")), 
15:59:25               declVar('$STRING'("ConceptNode"),'$STRING'("$attr_d")), 
15:59:25               declVar('$STRING'("ConceptNode"),'$STRING'("$attr_e")), 
15:59:25               declVar('$STRING'("ConceptNode"),'$STRING'("$attr_type"))), 
15:59:25            'AndLink'( 
15:59:25               notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_a")), 
15:59:25               notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_b")), 
15:59:25               notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_c")), 
15:59:25               notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_d")), 
15:59:25               'InheritanceLink'('VN'('$STRING'("$attr_a")),'VN'('$STRING'("$attr_type"))), 
15:59:25               'InheritanceLink'('VN'('$STRING'("$attr_b")),'VN'('$STRING'("$attr_type"))), 
15:59:25               'InheritanceLink'('VN'('$STRING'("$attr_c")),'VN'('$STRING'("$attr_type"))), 
15:59:25               'InheritanceLink'('VN'('$STRING'("$attr_d")),'VN'('$STRING'("$attr_type"))), 
15:59:25               'InheritanceLink'('VN'('$STRING'("$attr_e")),'VN'('$STRING'("$attr_type"))), 
15:59:25               'EvaluationLink'( 
15:59:25                  GroundedPredicateNode( '$STRING'("c++:exclusive")), 
15:59:25                  'ListLink'( 
15:59:25                     VN( '$STRING'("$attr_a")), 
15:59:25                     VN( '$STRING'("$attr_b")), 
15:59:25                     VN( '$STRING'("$attr_c")), 
15:59:25                     VN( '$STRING'("$attr_d")), 
15:59:25                     VN( '$STRING'("$attr_e"))))), 
15:59:25            clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person"),'VN','$STRING'("$attr_e"))))).
15:59:25 
15:59:25 ============================================
15:59:25 %~ comment("; variable declarations")
15:59:25 %~ comment("; body -- if all parts of AndLink hold true ... then")
15:59:25 %~ comment("; If person does NOT have atttribute a,b,c or d ...")
15:59:25 %~ comment("; and the attributes a,b,c,d,e are all of the same kind")
15:59:25 %~ comment("; and attributes a,b,c,d,e are all different from one-another")
15:59:25 %~ comment("; Don''t deduce thigs we already know...")
15:59:25 %~ comment("; i.e. this not link is identical to conclusion, below.")
15:59:25 %~ comment("(AbsentLink")
15:59:25 %~ comment("\t(clause VN \"$predicate\" VN \"$person\" VN \"$attr_e\")")
15:59:25 %~ comment(")")
15:59:25 %~ comment("; implicand -- then the following is true too")
15:59:25 %~ comment("; Then by elimination, person must have attribute e.")
15:59:25 %~ comment("; ---------------------------------------------------------------------")
15:59:25 %~ comment("; distinct-attr rule.")
15:59:25 %~ comment("; If, for a given attribute, person a and person b take on different")
15:59:25 %~ comment("; values, then they cannot be the same person.  Therefore, any other")
15:59:25 %~ comment("; attributes they have must also be exclusive.")
15:59:25 %~ debugm( common_logic_loader,
15:59:25 %~   show_success( common_logic_loader,
15:59:25 %~     common_logic_loader : ain( clif( define( 'distinct-attr-rule',
15:59:25 %~                                        'BindLink'(
15:59:25 %~                                           'VariableList'(
15:59:25 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
15:59:25 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
15:59:25 %~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),
15:59:25 %~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),
15:59:25 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),
15:59:25 %~                                           'AndLink'(
15:59:25 %~                                              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),
15:59:25 %~                                              clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),
15:59:25 %~                                              differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),
15:59:25 %~                                              clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),
15:59:25 %~                                           'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))))))
15:59:25 
15:59:25 
15:59:25 
15:59:25 
15:59:25 =======================================================
15:59:25 define('distinct-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))
15:59:25 ============================================
15:59:25 
15:59:25 
15:59:25 ?- kif_to_boxlog( define('distinct-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))) ).
15:59:25 
15:59:25 
15:59:25 
15:59:25 % In English: 
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~  'distinct-attr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),'not-clause'('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))
15:59:25 %~ 
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~ azzert_rename('distinct-attr-rule',distinctAttrRule)
15:59:25 %~ kif_to_boxlog_attvars2 = necessary(define(distinctAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))))
15:59:25 
15:59:25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 % Results in the following 1 entailment(s): 
15:59:25 nesc(define(distinctAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))).
15:59:25 
15:59:25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:25 %~  it is necessarily true that distinctAttrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))),'AndLink'(clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")),clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")),differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")),clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))),notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl")))
15:59:26 %~ 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 
15:59:26 nesc( define( distinctAttrRule, 
15:59:26         'BindLink'( 
15:59:26            ftVariableList( 
15:59:26               declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
15:59:26               declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
15:59:26               declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_common")), 
15:59:26               declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_a")), 
15:59:26               declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_comm_b")), 
15:59:26               declVar('$STRING'("PredicateNode"),'$STRING'("$predicate_exclusive")), 
15:59:26               declVar('$STRING'("ConceptNode"),'$STRING'("$attribute_excl"))), 
15:59:26            'AndLink'( 
15:59:26               clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_comm_a")), 
15:59:26               clause('VN','$STRING'("$predicate_common"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_comm_b")), 
15:59:26               differ('VN','$STRING'("$attribute_comm_a"),'VN','$STRING'("$attribute_comm_b")), 
15:59:26               clause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute_excl"))), 
15:59:26            notClause('VN','$STRING'("$predicate_exclusive"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute_excl"))))).
15:59:26 
15:59:26 ============================================
15:59:26 %~ comment("; variable declarations")
15:59:26 %~ comment("; body -- if all parts of AndLink hold true ... then")
15:59:26 %~ comment("; Don''t deduce thigs we already know...")
15:59:26 %~ comment("; i.e. this not link is identical to conclusion, below.")
15:59:26 %~ comment("(AbsentLink")
15:59:26 %~ comment("\t(not-clause VN \"$predicate_exclusive\" VN \"$person_b\" VN \"$attribute_excl\")")
15:59:26 %~ comment(")")
15:59:26 %~ comment("; implicand -- then the following is true too")
15:59:26 %~ comment("; ---------------------------------------------------------------------")
15:59:26 %~ comment("; neighbor-not-attr rule.")
15:59:26 %~ comment("; If some attribute holds true for a person, it cannot hold for the")
15:59:26 %~ comment("; person''s neighbor.")
15:59:26 %~ debugm( common_logic_loader,
15:59:26 %~   show_success( common_logic_loader,
15:59:26 %~     common_logic_loader : ain( clif( define( 'neighbor-not-attr-rule',
15:59:26 %~                                        'BindLink'(
15:59:26 %~                                           'VariableList'(
15:59:26 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
15:59:26 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
15:59:26 %~                                              'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),
15:59:26 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),
15:59:26 %~                                           'AndLink'(
15:59:26 %~                                              clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),
15:59:26 %~                                              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
15:59:26 %~                                              AbsentLink( 'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),
15:59:26 %~                                           'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))))))
15:59:26 
15:59:26 
15:59:26 
15:59:26 
15:59:26 =======================================================
15:59:26 define('neighbor-not-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))
15:59:26 ============================================
15:59:26 
15:59:26 
15:59:26 ?- kif_to_boxlog( define('neighbor-not-attr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))) ).
15:59:26 
15:59:26 
15:59:26 
15:59:26 % In English: 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~  'neighbor-not-attr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("PredicateNode"),'$STRING'("$predicate")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'('not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),'not-clause'('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
15:59:26 %~ 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~ azzert_rename('neighbor-not-attr-rule',neighborNotAttrRule)
15:59:26 %~ kif_to_boxlog_attvars2 = necessary(define(neighborNotAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))))
15:59:26 
15:59:26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 % Results in the following 1 entailment(s): 
15:59:26 nesc(define(neighborNotAttrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).
15:59:26 
15:59:26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~  it is necessarily true that neighborNotAttrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")),declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))),'AndLink'(clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),'AbsentLink'(notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))),notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))
15:59:26 %~ 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 
15:59:26 nesc( define( neighborNotAttrRule, 
15:59:26         'BindLink'( 
15:59:26            ftVariableList( 
15:59:26               declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
15:59:26               declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
15:59:26               declVar('$STRING'("PredicateNode"),'$STRING'("$predicate")), 
15:59:26               declVar('$STRING'("ConceptNode"),'$STRING'("$attribute"))), 
15:59:26            'AndLink'( 
15:59:26               clause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_a"),'VN','$STRING'("$attribute")), 
15:59:26               clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
15:59:26               AbsentLink( notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute")))), 
15:59:26            notClause('VN','$STRING'("$predicate"),'VN','$STRING'("$person_b"),'VN','$STRING'("$attribute"))))).
15:59:26 
15:59:26 ============================================
15:59:26 %~ comment("; variable declarations")
15:59:26 %~ comment("; body -- if all parts of AndLink hold true ... then")
15:59:26 %~ comment("; Don''t deduce thigs we already know...")
15:59:26 %~ comment("; i.e. this not link is identical to conclusion, below.")
15:59:26 %~ comment("; implicand -- then the following is true too")
15:59:26 %~ comment("; ---------------------------------------------------------------------")
15:59:26 %~ comment("; Houses at the end of the street can only have one neighbor, ever.")
15:59:26 %~ comment("; This is a rather narrow rule, as it can only ever apply to the first")
15:59:26 %~ comment("; address (first ordinal -- a boundary condition).")
15:59:26 %~ comment("; This is used to combine rules 9 and 14.")
15:59:26 %~ comment("; There should be a symmetric rule for the last address too ...")
15:59:26 %~ debugm( common_logic_loader,
15:59:26 %~   show_success( common_logic_loader,
15:59:26 %~     common_logic_loader : ain( clif( define( 'first-addr-rule',
15:59:26 %~                                        'BindLink'(
15:59:26 %~                                           'VariableList'(
15:59:26 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
15:59:26 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
15:59:26 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),
15:59:26 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),
15:59:26 %~                                           'AndLink'(
15:59:26 %~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),
15:59:26 %~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),
15:59:26 %~                                              clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),
15:59:26 %~                                              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),
15:59:26 %~                                              AbsentLink( clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),
15:59:26 %~                                           clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))))))
15:59:26 
15:59:26 
15:59:26 
15:59:26 
15:59:26 =======================================================
15:59:26 define('first-addr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))
15:59:26 ============================================
15:59:26 
15:59:26 
15:59:26 ?- kif_to_boxlog( define('first-addr-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))) ).
15:59:26 
15:59:26 
15:59:26 
15:59:26 % In English: 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~  'first-addr-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'("101 Main Street")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))
15:59:26 %~ 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~ azzert_rename('first-addr-rule',firstAddrRule)
15:59:26 %~ kif_to_boxlog_attvars2 = necessary(define(firstAddrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s('[|]'('101','[|]'(iMain,'[|]'(tSumoStreet,[])))))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))))
15:59:26 
15:59:26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 % Results in the following 1 entailment(s): 
15:59:26 nesc(define(firstAddrRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s(['101',iMain,tSumoStreet]))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))).
15:59:26 
15:59:26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~  it is necessarily true that firstAddrRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'CN','$STRING'(s(['101',iMain,tSumoStreet]))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))
15:59:26 %~ 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 
15:59:26 nesc( define( firstAddrRule, 
15:59:26         'BindLink'( 
15:59:26            ftVariableList( 
15:59:26               declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
15:59:26               declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
15:59:26               declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")), 
15:59:26               declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))), 
15:59:26            'AndLink'( 
15:59:26               clause( 'PN', 
15:59:26                 '$STRING'("Address"), 'VN','$STRING'("$person_a"),'CN', 
15:59:26                 $STRING( s( ['101',iMain,tSumoStreet]))), 
15:59:26               clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")), 
15:59:26               clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")), 
15:59:26               clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")), 
15:59:26               AbsentLink( clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")))), 
15:59:26            clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b"))))).
15:59:26 
15:59:26 ============================================
15:59:26 %~ comment("; variable declarations")
15:59:26 %~ comment("; body -- if all parts of AndLink hold true ... ")
15:59:26 %~ comment("; if adress of personA is 1st house")
15:59:26 %~ comment("; and A is neighbor of B")
15:59:26 %~ comment("; and the next house is one over")
15:59:26 %~ comment("; and we don''t already know the conclusion")
15:59:26 %~ comment("; implicand -- then the B lives one house over.")
15:59:26 %~ comment("; ---------------------------------------------------------------------")
15:59:26 %~ comment("; Neighbor deduction rule.")
15:59:26 %~ comment(";")
15:59:26 %~ comment("; If Address X is left of address Y, then person who lives in X is")
15:59:26 %~ comment("; a neighbor of person who lives in Y")
15:59:26 %~ debugm( common_logic_loader,
15:59:26 %~   show_success( common_logic_loader,
15:59:26 %~     common_logic_loader : ain( clif( define( 'neighbor-rule',
15:59:26 %~                                        'BindLink'(
15:59:26 %~                                           'VariableList'(
15:59:26 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),
15:59:26 %~                                              'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),
15:59:26 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),
15:59:26 %~                                              'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),
15:59:26 %~                                           'AndLink'(
15:59:26 %~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),
15:59:26 %~                                              clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),
15:59:26 %~                                              clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),
15:59:26 %~                                              AbsentLink( clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),
15:59:26 %~                                           clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))))))
15:59:26 
15:59:26 
15:59:26 
15:59:26 
15:59:26 =======================================================
15:59:26 define('neighbor-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))
15:59:26 ============================================
15:59:26 
15:59:26 
15:59:26 ?- kif_to_boxlog( define('neighbor-rule','BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))) ).
15:59:26 
15:59:26 
15:59:26 
15:59:26 % In English: 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~  'neighbor-rule' define 'BindLink'('VariableList'('decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_a")),'decl-var'('$STRING'("FeatureNode"),'$STRING'("$person_b")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_a")),'decl-var'('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
15:59:26 %~ 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~ azzert_rename('neighbor-rule',neighborRule)
15:59:26 %~ kif_to_boxlog_attvars2 = necessary(define(neighborRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))))
15:59:26 
15:59:26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 % Results in the following 1 entailment(s): 
15:59:26 nesc(define(neighborRule,'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).
15:59:26 
15:59:26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 %~  it is necessarily true that neighborRule define 'BindLink'(ftVariableList(declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")),declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")),declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))),'AndLink'(clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")),clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")),clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")),'AbsentLink'(clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))),clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))
15:59:26 %~ 
15:59:26 %~ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
15:59:26 
15:59:26 nesc( define( neighborRule, 
15:59:26         'BindLink'( 
15:59:26            ftVariableList( 
15:59:26               declVar('$STRING'("FeatureNode"),'$STRING'("$person_a")), 
15:59:26               declVar('$STRING'("FeatureNode"),'$STRING'("$person_b")), 
15:59:26               declVar('$STRING'("ConceptNode"),'$STRING'("$addr_a")), 
15:59:26               declVar('$STRING'("ConceptNode"),'$STRING'("$addr_b"))), 
15:59:26            'AndLink'( 
15:59:26               clause('PN','$STRING'("Address"),'VN','$STRING'("$person_a"),'VN','$STRING'("$addr_a")), 
15:59:26               clause('PN','$STRING'("Address"),'VN','$STRING'("$person_b"),'VN','$STRING'("$addr_b")), 
15:59:26               clause('PN','$STRING'("Successor"),'VN','$STRING'("$addr_a"),'VN','$STRING'("$addr_b")), 
15:59:26               AbsentLink( clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b")))), 
15:59:26            clause('PN','$STRING'("Neighbor"),'VN','$STRING'("$person_a"),'VN','$STRING'("$person_b"))))).
15:59:26 
15:59:26 ============================================
15:59:26 %~ comment("; variable declarations")
15:59:26 %~ comment("; body -- if all parts of AndLink hold true ... then")
15:59:26 %~ comment(" Not interested in what we already know.")
15:59:26 %~ comment("; implicand -- then the following is true too")
15:59:26 %~ comment("; ---------------------------------------------------------------------")
15:59:26 %~ comment("; Neighbor relation is symmetric")
15:59:26 %~ comment(";")
15:59:26 %~ comment("; If A is a neighbor of B then B is a neighbor of A")
15:59:26 totalTime=10.000
15:59:26 
15:59:26 FAILED: /var/lib/jenkins/workspace/logicmoo_workspace/bin/lmoo-junit-minor -k zebra_06.clif (returned 137) Add_LABELS='Errors,Overtime' Rem_LABELS='Skipped,Skipped,Warnings,Skipped'
15:59:26 
15:59:29 ISSUE_INFO=639	OPEN	logicmoo.base.examples.fol.ZEBRA_06 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_06, Failing, Errors, Overtime	2021-09-26 22:49:16 +0000 UTC
15:59:29 ISSUE_ID=639
15:59:29 ISSUE_OC=OPEN
15:59:29 Editing Issue For FAILED 639	OPEN	logicmoo.base.examples.fol.ZEBRA_06 JUnit	Test_9999, logicmoo.base.examples.fol, unit_test, ZEBRA_06, Failing, Errors, Overtime	2021-09-26 22:49:16 +0000 UTC
15:59:37 https://github.com/logicmoo/logicmoo_workspace/issues/639
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. zebra_02.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. zebra_01.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. zebra_01a.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. good_same_01.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_one_value_01.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_one_instance_01.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_one_has_the_value_01.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_01.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. clif_01.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. answerable_t_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_poss_cute_06.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. birds_04.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. unit_projection_lem_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. tc_example_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sigma_04.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. scope_exists_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_sk_two_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_sk_human_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_poss_03.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_poss_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_poss_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_fi_sk_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_fi_human_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_exists_03.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_exists_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_exists_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_exactly_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_atmost_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_atleast_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_at_least_most_exactly_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. sanity_at_least_most_exactly_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. room_numbers_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_05.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_04.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_03.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. poss_forall_exists_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. mpred_reset_db_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_06.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_05.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_04.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_03.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. missing_count_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. make_wff_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. make_wff_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. make_types_wff_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. lefty_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. kif_sanity_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. kif_io_test_01.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. forall_quant_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. fol_cardinaity_axiomitized_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. fol_cardinaity_axiomitized_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. fol_calc_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. fol_birdt_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. family_regress_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. family_inheritance_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. exists_04.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_puppy_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. einstein_simpler_05.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. einstein_simpler_03.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. einstein_simpler_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. dislikes_03.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. boxlog_sanity_04.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. boxlog_sanity_03.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. boxlog_sanity_02.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. boxlog_sanity_01.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. zenls_01z.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. nat_sane_01a.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. make_wff_01a.pfc.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. kif_io_test_01a.pl
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. holds_011.pfc
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. exactly_01p.pfc.clif
15:59:37 Warn: reached MAX_JUNIT_TESTS .. skipping .. birds_01c.pfc.pl
15:59:37 sed: can't read /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units?*-junit.xml: No such file or directory
15:59:37 <!-- 
15:59:37 junit-viewer is /usr/bin/junit-viewer
15:59:37 junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html &> /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer.debug.html
15:59:37 junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junit-viewer-rollup.html
15:59:38 Requirement already satisfied: junit2html in /usr/local/lib/python3.9/dist-packages (30.0.6)
15:59:38 Requirement already satisfied: jinja2>=2.11.2 in /usr/local/lib/python3.9/dist-packages (from junit2html) (3.0.1)
15:59:38 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.9/dist-packages (from jinja2>=2.11.2->junit2html) (2.0.1)
15:59:39 junit2html is /usr/local/bin/junit2html
15:59:39 junit2html /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.tmp /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units-junitCombined-rollup.html
15:59:39 TEST_STEM_PATH=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/Report-logicmoo-base-examples-fol-vSTARv0vSTARvvDOTvvSTARv-2-1--grep-2-i-WARN-ERROR-_file-00-fail-pass--Units
15:59:39 -->
15:59:39 junit-viewer --results=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/junit-all.xml --save=/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/junit-all.html
15:59:39 Recording plot data
16:00:14 Saving plot series data from: /var/lib/jenkins/workspace/logicmoo_workspace/.dockerignore
16:00:14 Not creating point with null values: y=null label= url=
16:00:14 Publishing Coverage report....
16:00:14 No reports were found
16:00:14 [htmlpublisher] Archiving HTML reports...
16:00:14 [htmlpublisher] Archiving at BUILD level /var/lib/jenkins/workspace/logicmoo_workspace/test_results to /var/lib/jenkins/jobs/logicmoo_workspace/builds/1/htmlreports/HTML_20Report
16:00:14 Publishing build last changes...
16:00:14 Last changes from revision 7ca50dc (current) to 7db044c (previous) published successfully!
16:00:14 Creating parser with percentiles:'0,50,90,100,' filterRegex:
16:00:14 Performance: Recording JUnit reports 'test_results/**/junit-all.xml'
16:00:14 Performance: JUnit copying reports to master, files '[/var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/junit-all.xml]'
16:00:14 Performance: JUnit parsing local reports '[/var/lib/jenkins/jobs/logicmoo_workspace/builds/1/performance-reports/JUnit/junit-all.xml]'
16:00:14 Performance: Parsing report file '/var/lib/jenkins/jobs/logicmoo_workspace/builds/1/performance-reports/JUnit/junit-all.xml' with filterRegex ''.
16:00:14 ----------------------------------------------------------- 
16:00:14 There are no relative constraints to evaluate! 
16:00:14 -------------- 
16:00:14 There are no absolute constraints to evaluate! 
16:00:14 -------------- 
16:00:14 There were no failing Constraints! The build will be marked as SUCCESS
16:00:14 INFO: Processing JUnit
16:00:14 INFO: [JUnit] - 19 test report file(s) were found with the pattern 'test_results/**/*-junit.xml' relative to '/var/lib/jenkins/workspace/logicmoo_workspace' for the testing framework 'JUnit'.
16:00:14 INFO: Setting the build status to SUCCESS
16:00:14 [logicmoo] Searching for all files in '/var/lib/jenkins/workspace/logicmoo_workspace' that match the pattern 'test_results/**/junit-all.xml'
16:00:14 [logicmoo] -> found 1 file
16:00:14 [logicmoo] Successfully parsed file /var/lib/jenkins/workspace/logicmoo_workspace/test_results/jenkins/junit-all.xml
16:00:14 [logicmoo] -> found 18 issues (skipped 0 duplicates)
16:00:17 [logicmoo] Post processing issues on 'Master' with source code encoding 'UTF-8'
16:00:17 [logicmoo] Skipping SCM blames as requested
16:00:17 [logicmoo] Resolving file names for all issues in source directory '/var/lib/jenkins/workspace/logicmoo_workspace'
16:00:17 [logicmoo] -> none of the issues requires resolving of paths
16:00:17 [logicmoo] Resolving module names from module definitions (build.xml, pom.xml, or Manifest.mf files)
16:00:17 [logicmoo] -> resolved module names for 18 issues
16:00:17 [logicmoo] Resolving package names (or namespaces) by parsing the affected files
16:00:17 [logicmoo] -> resolved package names of 1 affected files
16:00:17 [logicmoo] No filter has been set, publishing all 18 issues
16:00:17 [logicmoo] Creating fingerprints for all affected code blocks to track issues over different builds
16:00:17 [logicmoo] -> created fingerprints for 0 issues (skipped 18 issues)
16:00:17 [logicmoo] Copying affected files to Jenkins' build folder '/var/lib/jenkins/jobs/logicmoo_workspace/builds/1/files-with-issues'
16:00:17 [logicmoo] -> 0 copied, 0 not in workspace, 18 not-found, 0 with I/O error
16:00:17 [logicmoo] Repository miner is not configured, skipping repository mining
16:00:17 [logicmoo] Reference build recorder is not configured
16:00:17 [logicmoo] Obtaining reference build from same job (logicmoo_workspace)
16:00:17 [logicmoo] No valid reference build found that meets the criteria (NO_JOB_FAILURE - SUCCESSFUL_QUALITY_GATE)
16:00:17 [logicmoo] All reported issues will be considered outstanding
16:00:17 [logicmoo] Evaluating quality gates
16:00:17 [logicmoo] -> FAILED - Total (any severity): 18 - Quality QualityGate: 1
16:00:17 [logicmoo] -> Some quality gates have been missed: overall result is FAILED
16:00:17 [logicmoo] Health report is disabled - skipping
16:00:17 [logicmoo] Created analysis result for 18 issues (found 0 new issues, fixed 0 issues)
16:00:17 [logicmoo] Attaching ResultAction with ID 'junit' to build 'logicmoo_workspace #1'.
16:00:17 [Checks API] No suitable checks publisher found.
16:00:17 Build step 'Record compiler warnings and static analysis results' changed build result to FAILURE
16:00:17 [Autograding] [-ERROR-] Autograding Jenkins build results
16:00:17 [Autograding] [-ERROR-] Invalid JSON configuration: {
16:00:17   "analysis": {
16:00:17     "maxScore": 100,
16:00:17     "errorImpact": -10,
16:00:17     "highImpact": -5,
16:00:17     "normalImpact": -2,
16:00:17     "lowImpact": -1
16:00:17   },
16:00:17   "tests": {
16:00:17     "maxScore": 100,
16:00:17     "failureImpact": -2,
16:00:17     "skippedImpact": -1
16:00:17   },
16:00:17   "coverage": {
16:00:17     "maxScore": 100,
16:00:17     "missedImpact": -1
16:00:17   },
16:00:17   "pit": {
16:00:17     "maxScore": 100,
16:00:17     "undetectedImpact": -1,
16:00:17   }
16:00:17 }
16:00:17 [Autograding] Test Configuration: {"enabled":false,"maxScore":0,"failureImpact":0,"passedImpact":0,"skippedImpact":0,"disabled":true}
16:00:17 [Autograding] Skipping test results
16:00:17 [Autograding] Code Coverage Configuration: {"enabled":false,"maxScore":0,"coveredPercentageImpact":0,"missedPercentageImpact":0,"disabled":true}
16:00:17 [Autograding] Skipping code coverage results
16:00:17 [Autograding] PIT Mutation Coverage Configuration: {"enabled":false,"maxScore":0,"undetectedImpact":0,"detectedImpact":0,"undetectedPercentageImpact":0,"detectedPercentageImpact":0,"disabled":true}
16:00:17 [Autograding] Skipping mutation coverage results
16:00:17 [Autograding] Static Analysis Configuration: {"enabled":false,"maxScore":0,"errorImpact":0,"highImpact":0,"normalImpact":0,"lowImpact":0,"disabled":true}
16:00:17 [Autograding] Skipping static analysis results
16:00:17 [Checks API] No suitable checks publisher found.
16:00:17 Started calculate disk usage of build
16:00:17 Finished Calculation of disk usage of build in 0 seconds
16:00:17 Started calculate disk usage of workspace
16:00:19 Finished Calculation of disk usage of workspace in  1 second
16:00:19 Finished: FAILURE