- From: Richard H. McCullough <rhm@cdepot.net>
- Date: Sat, 6 Sep 2003 14:23:35 -0700
- To: "Guha, R. V." <guha@guha.com>, "Reed, Stephen L." <reed@cyc.com>, "McCool, Rob" <robm@stanford.edu>
- Cc: "www-rdf-interest at W3C" <www-rdf-interest@w3.org>, "KR-language" <KR-language@YahooGroups.com>
- Message-ID: <000e01c374bf$dcb1a0f0$bd7ba8c0@rhm8200>
I have added some more sophisticated features, including McCarthy context (#$ist) genus-differentia definitions (#$defnIff) identity (#$equals) causality (#$causedBy) I haven't been able to test all the new features due to lack of examples. The one feature that I am most concerned about is the default microtheory at view = mt; I have guessed that it can be set using "WITH-MT", but I haven't been able to find any documentation. Can you tell me how OpenCyc does it? Here is today's version of mkr2cyc. # KEHOME/bin/mkr2cyc # Sep/6/2003 #####exec 2>&1 # send errors to stdout # translate MKR propositions to CycL expressions # usage: # mkr2cyc # proposition # ... # EOF # # proposition ::= # exit; # at view = mt; # do action od directobject with modifier from/to indirectobject done; # set variable op value; # subject predicate object mod1 mod2 mod3 mod4 mod5 mod6; # predicate ::= # MKR verb # CycL predicate # # expression ::= # see below # # Notes: # MKR commands for special CycL commands # do ke-create-now od "name" done; # do write-image to "world/name" done; # do generate-phrase from expression done; # context for most questions and statements is # #$UniversalVocabularyMt # MKR verb (is,has,do,rel,means,causes,...) # see below # MKR characteristic (part,attribute,relation,action,interaction) # begins with letter # MKR variable (attribute) # begins with letter # MKR question variable # begins with "?" # # CycL predicate # begins with "#$" # CycL constant # begins with "#$" # CycL variable # begins with "?" #echo "# mkr2cyc $@" >&2 # echo command line if [ -n "$1" ] then prompt='' # mkr2cyc -q else prompt='ke$ \c' # mkr2cyc fi mt='#$UniversalVocabularyMt' # default Microtheory if [ -n "$prompt" ] then echo -e "$prompt" >&2 fi while read subject predicate object mod1 mod2 mod3 mod4 mod5 mod6; do subject="${subject%;}" case "$subject" in \(*) # ( CycL pass thru ) echo "$subject $predicate $object $mod1 $mod2 $mod3 $mod4 $mod5 $mod6"; continue;; exit) # exit; echo "(exit)"; exit;; at) mt=${mod1%;}; if -n "$mod3" then # at view = mt { proposition } ; proposition="${mod3%;}"; echo "( #$ist $mt $proposition )" else # at view = mt ; echo "( WITH-MT $mt )" fi; continue;; do|hdo|vdo) # do action od direct with modifier from/to indirect done; # do ke-create-now od "name" done; # do write-image to "world/name" done; # do generate-phrase from expression done; verb="$subject"; subject="cyc"; action="${predicate%;}"; direct="${mod1%;}"; modifier="${mod3%;}"; fromto="${mod4%;}"; indirect="${mod5%;}"; echo "( $action $direct $modifier $indirect )"; continue;; set|unset|vset) # set variable op value; verb="$subject"; subject="cyc"; variable="${predicate%;}"; op="${object%;}"; value="${mod1%;}"; echo "( $verb $variable $op $value )"; continue;; *) # subject predicate object; predicate="${predicate%;}"; object="${object%;}"; value="${mod2%;}";; esac case "$subject" in \?) # MKR variable subject="$object"; predicate="$(mkr_inverse $predicate)"; object="?";; \?*) ;; # CycL variable esac #####case "$object" in #####\?) object="";; # MKR variable #####\?*) ;; # CycL variable #####esac #####echo "# INFO: mkr2cyc: ( $predicate $subject $object )" >&2 case "$predicate" in ##### hierarchy verbs ##### isa) echo "$subject iss $object" | mkr2cyc -q; echo "$subject isu $object" | mkr2cyc -q;; #echo "(genls $subject $object )"; #echo "(isa $subject $object )";; iss) echo "( genls $subject $object )";; isu) echo "( isa $subject $object )";; isc) echo "$subject isg $object" | mkr2cyc -q; echo "$subject isp $object" | mkr2cyc -q;; #echo "( specs $subject $object )"; #echo "( instances $subject $object )";; isg) echo "( specs $subject $object )";; isp) echo "( instances $subject $object )";; isa\*) echo "$subject iss* $object" | mkr2cyc -q; echo "$subject isu* $object" | mkr2cyc -q;; #echo "( all-genls $subject $object )"; #echo "( all-isa $subject $object )";; iss\*) echo "( all-genls $subject $object )";; isu\*) echo "( all-isa $subject $object )";; isc\*) echo "$subject isg* $object" | mkr2cyc -q; echo "$subject isp* $object" | mkr2cyc -q;; #echo "( all-specs $subject $object )"; #echo "( all-instances $subject $object )";; isg\*) echo "( all-specs $subject $object )";; isp\*) echo "( all-instances $subject $object )";; ##### other MKR verbs ##### haspart)echo "( physicalParts $subject $object $value )";; isapart)echo "( physicalParts $object $subject )";; ismem) echo "( groupMembers $object $subject )";; isall) echo "( groupMembers $subject $object )";; isalt) echo "( groupMembers $object $subject )";; isany) echo "( groupMembers $subject $object )";; is) if [ -n "$mod1" ] # "with" then # subject is genus with differentia ; genus="$object"; differentia="${mod2%;}"; echo "( #$defnIff $subject (#$and"; echo " ( #$genls $subject $object }"; echo " ( $differentia )))" else # subject is object; case "$object" in \?) echo "( DEFINING-DEFNS '( $subject $mt ) )";; *) echo "( equals $subject $object )";; esac; fi;; has) case "$object" in \?) echo "( ALL-TERM-ASSERTIONS '( $subject T ))";; *) echo "( $object $subject $value )";; esac;; do) echo "( $object $subject $value )";; rel) echo "( $object $subject $value )";; isin) echo "( $object $subject $value )";; means) echo "( signifies $subject $object )";; isref) echo "( signifies $object $subject )";; causes) echo "( causedBy $object $subject )";; causedBy)echo "( causedBy $subject $object )";; ##### other predicates ##### *) case "$object" in \?*) echo "(CYC-QUERY '($predicate $subject $object) $mt)";; *) echo "(CYC-ASSERT '($predicate $subject $object) $mt)";; esac;; esac if [ -n "$prompt" ] then echo -e "$prompt" >&2 fi done Dick McCullough knowledge := man do identify od existent done; knowledge haspart proposition list;
Received on Saturday, 6 September 2003 17:43:16 UTC