# KEHOME/knowledge/applications/SemanticWeb/OpenCyc/HowAirport.html
# Sep/10/2003


# How do I get from my house to the airport?

# tools used: MKE, OpenCyc, jshop
# Notes:
# OpenCyc is accessed using
#	ke$ do opencyc od server from world done;
# jshop is the hierarchical planning tool
#	it has not yet been configured to run
#	in the OpenCyc environment
# Preliminary browsing shows that OpenCyc
#	does not know "go", "house", "airport",
#	"time", "future", "jshop".
#	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 ask for the address of my house, and
#	to find the airport closest to my house.
#	We must first "tell" OpenCyc my address,
#	and then ask it plan a route.


ke$ set echo=off, kbmode=cyc;

###### MKR question to be implemented in CycL
##### ke$ at time = future {
##### ke>     I do go = go_001
##### ke>         with planForTask = plan_001;
##### ke>         from my house
##### ke>	  to   the airport
##### ke>     done;
##### ke> };
##### ke$ my house, the airport has address;
##### ke$ jshop iss method with
##### ke>	product = [planForTask:1],
##### ke>	format = [Microtheory:1, Event:2];
##### ke$ ? := do jshop od PlanningDomainMicrotheory, go_001 done;

##### definitions
ke$ do opencyc done;
CYC(): do ke-create-now od "go", "house", "airport",
CYC(): 		"time", "future" done
CYC(): do ke-create-now od "address" done;
CYC(): do ke-create-now od "my_house", "address_my_house" done;
CYC(): do ke-create-now od "the_airport", "address_the_airport" done;
CYC(): #$go      isu #$Collection; #$go      iss #$Translation-LocationChange;
CYC(): #$house   isu #$Collection; #$house   iss #$HumanResidence;
CYC(): #$airport isu #$Collection; #$airport iss #$Airport-Physical;
CYC(): #$time    isu #$Collection; #$time    iss #$TimeInterval;
CYC(): #$address isu #$Collection; #$address iss #$Address-LocationDesignator;
CYC(): #$future  isu #$time;
CYC(): #$go_001  isu #$go;
CYC(): #$my_house    isu #$house;
CYC(): #$the_airport isu #$airport;
CYC(): #$address_my_house, #$address_the_airport isu #$address;
CYC(): #$my_house    has #$hasAttributes = #$address_my_house;
CYC(): #$the_airport has #$hasAttributes = #$address_the_airport;
CYC(): #$go_001      has #$hasAttributes = #$planForTask_001;
CYC(): #$plan_001    isu #$planForTask;

CYC(): do ke-create-now od "jshop" done
CYC(): #$jshop isu #$BinaryProgramOperator, #$Relation;
CYC(): #$jshop has #$resultIsa = #$planForTask;
CYC(): #$jshop has #$arity = 2;
CYC(): #$jshop has #$arg1Isa = #$Microtheory;
CYC(): #$jshop has #$arg2Isa = #$Event;
CYC(): do write-image to "world/airport" done;

##### question
ke$ do opencyc od server from airport done;
CYC(): do ke-create-now od "I", "go_001", "plan_001" done;
CYC(): #$I means #$DickMcCullough;

CYC(): at #$time = #$future {
CYC():     #$I do #$go = #$go_001
CYC(): 	       with #$planForTask  = #$plan_001
CYC(): 	       from #$fromLocation = #$address_my_house
CYC(): 	       to   #$toLocation   = #$address_the_airport
CYC():     done;
CYC(): };
CYC(): ? := do #$jshop od #$PlanningDomainMicrotheory, #$go_001 done;

# OpenCyc response
CYC(7): (#$jshop #$PlanningDomainMicrotheory #$go_001)

Error: Operator #$jshop was not a symbol
[Switching to single-threaded mode ....]

Select a restart:
  0: Return to top-level read loop.
  1: Recursive read loop.
  2: Signal the debugger.
  3: Exit program.
? 0
[Resuming multi-threaded mode ....]
CYC(7): (?plan (#$jshop #$PlanningDomainMicrotheory #$go_001))

Error: Operator ?PLAN is not defined in the API
[Switching to single-threaded mode ....]

Select a restart:
  0: Return to top-level read loop.
  1: Recursive read loop.
  2: Signal the debugger.
  3: Exit program.
? 3

C:\home\opencyc\run>popd

rhm@rhm8200 ~
$