    # 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 ~
    $