********** variable unification <<$x --> bird> ==> <$x --> flyer>>. // If something is a bird, then it is a flyer. <<$y --> bird> ==> <$y --> flyer>>. %0.00;0.70% // If something is a bird, then it is not a flyer. 1 OUT: <<$1 --> bird> ==> <$1 --> flyer>>. %0.79;0.92% // If something is a bird, then usually, it is a flyer. ********** variable unification <<$x --> bird> ==> <$x --> animal>>. // If something is a bird, then it is a animal. <<$y --> robin> ==> <$y --> bird>>. // If something is a robin, then it is a bird. 5 OUT: <<$1 --> robin> ==> <$1 --> animal>>. %1.00;0.81% // If something is a robin, then it is a animal. OUT: <<$1 --> animal> ==> <$1 --> robin>>. %1.00;0.45% // I guess that if something is a animal, then it is a robin. ********** variable unification <<$x --> swan> ==> <$x --> bird>>. %1.00;0.80% // If something is a swan, then it is a bird. <<$y --> swan> ==> <$y --> swimmer>>. %0.80% // If something is a swan, then it is a swimmer. 5 OUT: <<$1 --> swan> ==> (||,<$1 --> bird>,<$1 --> swimmer>)>. %1.00;0.72% // I believe that if something is a swan, then it is a bird or a swimmer. OUT: <<$1 --> swan> ==> (&&,<$1 --> bird>,<$1 --> swimmer>)>. %0.80;0.72% //I believe that if something is a swan, then usually, it is both a bird and a swimmer. OUT: <<$1 --> swimmer> ==> <$1 --> bird>>. %1.00;0.37% // I guess if something is a swimmer, then it is a bird. OUT: <<$1 --> bird> ==> <$1 --> swimmer>>. %0.80;0.42% // I guess if something is a bird, then it is a swimmer. OUT: <<$1 --> bird> <=> <$1 --> swimmer>>. %0.80;0.42% // I guess something is a bird, if and only if it is a swimmer. ********** variable unification < $x> ==> $x>>. // What can be said about bird can also be said about robin. < $y> ==> $y>>. %0.70;0.90% // What can be said about swimmer usually can also be said about robin. 5 OUT: <(&&, $1>, $1>) ==> $1>>. %1.00;0.81% // What can be said about bird and swimmer can also be said about robin. OUT: <(||, $1>, $1>) ==> $1>>. %0.70;0.81% // What can be said about bird or swimmer can also be said about robin. OUT: < $1> ==> $1>>. %1.00;0.36% // I guess what can be said about bird can also be said about swimmer. OUT: < $1> ==> $1>>. %0.70;0.45% // I guess what can be said about swimmer can also be said about bird. OUT: < $1> <=> $1>>. %0.70;0.45% // I guess bird and swimmer share most properties. ********** variable unification <(&&,<$x --> flyer>,<$x --> [chirping]>) ==> <$x --> bird>>. // If something can fly and chirp, then it is a bird. <<$y --> [with-wings]> ==> <$y --> flyer>>. // If something has wings, then it can fly. 1 OUT: <(&&,<$1 --> [chirping]>,<$1 --> [with-wings]>) ==> <$1 --> bird>>. %1.00;0.81% // If something can chirp and has wings, then it is a bird. ********** variable unification <(&&,<$x --> flyer>,<$x --> [chirping]>, <(*, $x, worms) --> food>) ==> <$x --> bird>>. // If something can fly, chirp, and eats worms, then it is a bird. <(&&,<$y --> [chirping]>,<$y --> [with-wings]>) ==> <$y --> bird>>. // If something can chirp and has wings, then it is a bird. 4 OUT: <(&&,<$1 --> flyer>,<(*,$1,worms) --> food>) ==> <$1 --> [with-wings]>>. %1.00;0.45% // If something can fly and eats worms, then I guess it has wings. OUT: <<$1 --> [with-wings]> ==> (&&,<$1 --> flyer>,<(*,$1,worms) --> food>)>. %1.00;0.45% // I guess if something has wings, then it can fly and eats worms. ********** variable unification <(&&,<$x --> flyer>,<(*,$x,worms) --> food>) ==> <$x --> bird>>. // If something can fly and eats worms, then it is a bird. <<$y --> flyer> ==> <$y --> [with-wings]>>. // If something can fly, then it has wings. 4 OUT: <(&&,<$1 --> [with-wings]>,<(*,$1,worms) --> food>) ==> <$1 --> bird>>. %1.00;0.45% // If something has wings and eats worms, then I guess it is a bird. ****** variable elimination <<$x --> bird> ==> <$x --> animal>>. // If something is a bird, then it is an animal. bird>. // A robin is a bird. 5 OUT: animal>. %1.00;0.81% // A robin is an animal. ********** variable elimination <<$x --> bird> ==> <$x --> animal>>. // If something is a bird, then it is an animal. animal>. // A tiger is an animal. 5 OUT: bird>. %1.00;0.45% // I guess that a tiger is a bird. ********** variable elimination <<$x --> animal> <=> <$x --> bird>>. // Something is a animal if and only if it is a bird. bird>. // A robin is a bird. 5 OUT: animal>. %1.00;0.81% // A robin is a animal. ********** variable elimination (&&,<#x --> bird>,<#x --> swimmer>). // Some bird can swim. bird>. %0.90% // Swan is a type of bird. 5 OUT: swimmer>. %0.90;0.43% // I guess swan can swim. ********** variable elimination <{Tweety} --> [with-wings]>. // Tweety has wings. <(&&,<$x --> [chirping]>,<$x --> [with-wings]>) ==> <$x --> bird>>. // If something can chirp and has wings, then it is a bird. 18 OUT: <<{Tweety} --> [chirping]> ==> <{Tweety} --> bird>>. %1.00;0.81% // If Tweety can chirp, then it is a bird. ********** variable elimination <(&&,<$x --> flyer>,<$x --> [chirping]>, <(*, $x, worms) --> food>) ==> <$x --> bird>>. // If something can fly, chirp, and eats worms, then it is a bird. <{Tweety} --> flyer>. // Tweety can fly. 3 OUT: <(&&,<(*,{Tweety},worms) --> food>,<{Tweety} --> [chirping]>) ==> <{Tweety} --> bird>>. %1.00;0.81% // If Tweety can chirp and eats worms, then it is a bird. ********** multiple variable elimination <(&&,<$x --> key>,<$y --> lock>) ==> <$y --> (/,open,$x,_)>>. // Every lock can be opened by every key. <{lock1} --> lock>. // Lock-1 is a lock. 8 OUT: <<$1 --> key> ==> <{lock1} --> (/,open,$1,_)>>. %1.00;0.81% // Lock-1 can be opened by every key. ********** multiple variable elimination <<$x --> lock> ==> (&&,<#y --> key>,<$x --> (/,open,#y,_)>)>. // Every lock can be opened by some key. <{lock1} --> lock>. // Lock-1 is a lock. 3 OUT: (&&,<#1 --> key>,<{lock1} --> (/,open,#1,_)>). %1.00;0.81% // Some key can open Lock-1. ********** multiple variable elimination (&&,<#x --> lock>,<<$y --> key> ==> <#x --> (/,open,$y,_)>>). // There is a lock that can be opened by every key. <{lock1} --> lock>. // Lock-1 is a lock. 3 OUT: <<$1 --> key> ==> <{lock1} --> (/,open,$1,_)>>. %1.00;0.43% // I guess Lock-1 can be opened by every key. ********** multiple variable elimination (&&,<#x --> (/,open,#y,_)>,<#x --> lock>,<#y --> key>). // There is a key that can open some lock. <{lock1} --> lock>. // Lock-1 is a lock. 1 OUT: (&&,<#1 --> key>,<{lock1} --> (/,open,#1,_)>). %1.00;0.43% // I guess there is a key that can open Lock-1. ********** variable introduction bird>. // A swan is a bird. swimmer>. %0.80% // A swan is usually a swimmer. 5 OUT: <<$1 --> bird> ==> <$1 --> swimmer>>. %0.80;0.45% // I guess a bird is usually a swimmer. OUT: <<$1 --> swimmer> ==> <$1 --> bird>>. %1.00;0.39% // I guess a swimmer is a bird. OUT: <<$1 --> bird> <=> <$1 --> swimmer>>. %0.80;0.45% // I guess a bird is usually a swimmer, and the other way around. OUT: (&&,<#1 --> bird>,<#1 --> swimmer>). %0.80;0.81% // Some bird can swim. ********** variable introduction swimmer>. //A gull is a swimmer. swimmer>. %0.80% //Usually, a swan is a swimmer. 5 OUT: < $1> ==> $1>>. %0.80;0.45% // I guess what can be said about gull usually can also be said about swan. OUT: < $1> ==> $1>>. %1.00;0.39% // I guess what can be said about swan can also be said about gull. OUT: < $1> <=> $1>>. %0.80;0.45% // I guess gull and swan share most properties. OUT: (&&, #1>, #1>). %0.80;0.81% // Gull and swan have some common property. ********** variables introduction <{key1} --> (/,open,_,{lock1})>. // Key-1 opens Lock-1. <{key1} --> key>. // Key-1 is a key. 3 OUT: <<$1 --> key> ==> <$1 --> (/,open,_,{lock1})>>. %1.00;0.45% // I guess every key can open Lock-1. OUT: (&&,<#1 --> (/,open,_,{lock1})>,<#1 --> key>). %1.00;0.81% // Some key can open Lock-1. ********** multiple variables introduction <<$x --> key> ==> <{lock1} --> (/,open,$x,_)>>. // Lock-1 can be opened by every key. <{lock1} --> lock>. // Lock-1 is a lock. 1 OUT: (&&,<#1 --> lock>,<<$2 --> key> ==> <#1 --> (/,open,$2,_)>>). %1.00;0.81% // There is a lock that can be opened by every key. OUT: <(&&,<$1 --> key>,<$2 --> lock>) ==> <$2 --> (/,open,$1,_)>>. %1.00;0.45% // I guess every lock can be opened by every key. ********** multiple variables introduction (&&,<#x --> key>,<{lock1} --> (/,open,#x,_)>). // Lock-1 can be opened by some key. <{lock1} --> lock>. // Lock-1 is a lock. 1 OUT: (&&,<#1 --> key>,<#2 --> lock>,<#2 --> (/,open,#1,_)>). %1.00;0.81% // There is a key that can open some lock. OUT: <<$1 --> lock> ==> (&&,<#2 --> key>,<$1 --> (/,open,#2,_)>)>. %1.00;0.45% // I guess every lock can be opened by some key.