# KEHOME/knowledge/applications/SemanticWeb/OpenCyc/WhyChicken.html
# Sep/4/2003
# Why did the chicken cross the road?
# tools used: MKE, OpenCyc
# Notes:
# OpenCyc is accessed using
# ke$ do opencyc od server from world done;
# Preliminary browsing shows that OpenCyc
# does not know "chicken", "road",
# "cross", "purpose", "time", "past".
# We must first define these terms.
# Normally, MKE creates term and instance names
# and declares (isu) instances automatically.
# OpenCyc does not have enough "common-sense"
# to label this as a joke, or to reason about
# the capabilities of nonhuman animals.
# OpenCyc does not know that
# Agent do action with purpose = p done;
# causedBy
# p := Agent do choose od purpose done;
ke$ set echo=off, kbmode=cyc;
###### MKR questions to be implemented in CycL
##### ke$ at time = past {
##### ke> the chicken do cross = cross_001 od the road
##### ke> with purpose = purpose_001
##### ke> done;
##### ke> };
##### ke$ ? causes cross_001;
##### ke$ cross_001 has purpose = ?;
###### definitions
ke$ do opencyc done;
CYC(): do ke-create-now od
CYC(): "chicken","road","cross",
CYC(): "purpose","time","past",
CYC(): "subject","object" done;
CYC(): #$chicken isu #$Collection; #$chicken iss #$Bird;
CYC(): #$road isu #$Collection; #$road iss #$Roadway;
CYC(): #$cross isu #$Collection; #$cross iss #$Translation-LocationChange;
CYC(): #$purpose isu #$Collection; #$purpose isu #$AttributeValue;
CYC(): #$time isu #$Collection; #$time iss #$TimeInterval;
CYC(): #$past isu #$time;
CYC(): #$AttributeValue isp #$subject,#$object,#$purpose,#$time;
CYC(): #$cross has #$subject,#$object,#$purpose,#$time;
CYC(): do write-image to "world/chicken" done;
###### questions
ke$ do opencyc od server from chicken done;
CYC(): do ke-create-now od
CYC(): "the_chicken","the_road","cross_001",
CYC(): "purpose_001","time_001" done;
CYC(): #$the_chicken isu #$chicken;
CYC(): #$the_road isu #$road;
CYC(): #$cross_001 isu #$cross;
CYC(): #$purpose_001 isu #$purpose;
CYC(): #$time_001 isu #$time;
CYC(): at #$time = #$past {
CYC(): #$the_chicken do cross = #$cross_001 od #$the_road
CYC(): with #$purpose = #$purpose_001
CYC(): done;
CYC(): }:
###### which automatically creates these statements
##### #$cross_001 hasAttributes
##### #$subject_001,#$object_001,
##### #$purpose_001,#$time_001;
##### #$subject_001 is #$the_chicken;
##### #$object_001 is #$the_road;
##### #$purpose_001 is #$purpose_001;
##### #$time_001 is #$past;
CYC(): #$cross_001 #$causedBy ?e;
CYC(): #$cross_001 has purpose = ?p;
# OpenCyc response
Status : Suspended, Exhaust
Mt : UniversalVocabularyMt
EL Query :
(causedBy cross_001 ?E)
No answers
Inference Answer [Inference Answer 149.0.0]
Mt : UniversalVocabularyMt
EL Query :
(and
(hasAttributes cross_001 ?P)
(isa ?P purpose))
Answer Bindings :
?P purpose_001
Justifications :
(hasAttributes cross_001 purpose_001) in BaseKB
:ISA (isa purpose_001 purpose) in UniversalVocabularyMt
:ISA (isa purpose_001 purpose) in UniversalVocabularyMt
(hasAttributes cross_001 purpose_001) in BaseKB