SNePSLOG Case Frames for CVA ------------------------------------------------------------------------ For your CVA projects, you must use the SNePS case frames listed at: http://www.cse.buffalo.edu/~rapaport/CVA/CaseFrames/case-frames/ However, I will leave you free choice as to what SNePSLOG names you give to them. Here are some suggestions. (To see some these "in use", read Rapaport, William J. (2006), "How Helen Keller Used Syntactic Semantics to Escape from a Chinese Room", Minds and Machines 16(4): 381-436. http://www.cse.buffalo.edu/~rapaport/Papers/helenkeller.pdf http://www.cse.buffalo.edu/~rapaport/Papers/helenkeller.html 1. lex ------------------------------------------------------------------------ SNePS SYNTAX SEMANTICS lex m----->w [[m]] is the concept expressed by uttering [[w]], where "w" is a word in the lexicon SNePSUL SYN: (build lex w) e.g.) (build lex cat) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame thing-called (nil lex) b) define-frame concept-called (nil lex) c) define-frame entity-called (nil lex) d) define-frame entity (nil lex) e.g.) thing-called(cat) 2. member-class ------------------------------------------------------------------------ SNePS SYNTAX m / \ member / \class / \ V V <----those are supposed to be arrowheads :-) i j SEMANTICS [[m]] is the proposition that individual entity [[i]] is a (member of the class [[j]] SNePSUL SYN: (assert member i class j) e.g.) Something is a cat. (assert member b1 class (build lex cat)) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Member-Class (nil member class) NB: This style is always an option, but it is neither very readable nor does it look like predicate logic, so I won't repeat it below. b) define-frame Isa (nil member class) e.g.) Isa(b1,thing-called(cat)). c) define-frame Isa (nil class member) e.g.) Isa(thing-called(cat),b1). NB: If we weren't using "lex" arcs, other options would be things like: define-frame Cat (class member) define-frame Mouse (class member) which would allow us to say things like: Cat(felix1). Mouse(mickey1). but we could not then also use "Isa" as defined above. 3. object/proper-name ------------------------------------------------------------------------ SNePS SYNTAX m / \ object / \proper-name / \ V V i j SEMANTICS [[m]] is the proposition that entity [[i]] is called by the proper name [[j]], where "j" is a name in the lexicon. SNePSUL SYN: (assert object i proper-name j) e.g.) Felix is a cat. (assert object #felix proper-name Felix) (assert member *felix class (build lex cat)) where SNePS would replace the SNePSUL variable "#felix"/"*felix" by a base node lable like "b1". POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Isa-Thing-Named (nil proper-name object) e.g.) Isa-Thing-Named(Felix,felix1). Isa(thing-called(cat),felix1). Note the potential for confusion in using both of these together! b) define-frame Isa-Entity-Called (nil proper-name object) c) define-frame Is-Named (nil proper-name object) d) define-frame Named (nil proper-name object) 4. subclass-superclass ------------------------------------------------------------------------ SNePS SYNTAX m / \ subclass / \superclass / \ V V i j SEMANTICS [[m]] is the proposition that entity [[i]] is a subclass of entity [[j]]. SNePSUL SYN: (assert subclass i superclass j) e.g.) Humans are animals. or: A human is an animal. (assert subclass (build lex human) superclass (build lex animal)) NB: If later you are told that Fred is a human, you would need to define a path to allow SNePS to infer that Fred is an animal. However, if you represented "Humans are animals" as "for all x, if x is a human, then x is an animal", then SNIP would automatically infer that Fred is an animal from "Fred is a human". POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame AKO (nil subclass superclass) e.g.) AKO(thing-called(human),thing-called(animal)). b) define-frame AKO (nil superclass subclass) e.g.) AKO(thing-called(animal),thing-called(human)). 5. object-property ------------------------------------------------------------------------ SNePS SYNTAX m / \ object / \property / \ V V i j SEMANTICS [[m]] is the proposition that entity [[i]] has the property [[j]]. SNePSUL SYN: (assert object i property j) e.g.) Felix is black. (assert object #felix proper-name Felix) (assert object *felix property (build lex black)) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Is (nil property object) e.g.) Is(thing-called(black),felix1). 6. rel-object1-object2 ------------------------------------------------------------------------ First, note that in principle, this can be extended to "object3", "object4", etc. But the CVA algorithms only know about binary relations. SNePS SYNTAX m / | \ / | \ object1 / |rel \proper-name / | \ V V V i k j SEMANTICS [[m]] is the proposition that [[i]] is related by relation [[k]] to [[j]]. SNePSUL SYN: (assert rel k object1 i object2 j) e.g.) Felix is longer than Bella. (assert object #bella proper-name Bella) (assert rel (build lex longer) object1 *felix object2 *bella) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Rel (nil rel object1 object2) e.g.) Rel(thing-called(longer),felix1,bella1). NB: There is the potential for confusion between "Rel" and "rel" b) define-frame Exemplifies (nil rel object1 object2) NB: "Exemplifies", while a longer, uglier, multisyllabic word, has a long history in philosophical ontology, serving for both properties and relations. 6. object-rel-possessor ------------------------------------------------------------------------ SNePS SYNTAX m / | \ / | \ object / |rel \possessor / | \ V V V i k j SEMANTICS [[m]] is the proposition that [[i]] is a [[k]] of [[j]]; or: [[m]] is the proposition that [[i]] is [[j]]'s [[k]] ; or: [[m]] is the proposition that [[i]] is possessed (in some unspecified way) by [[j]] and that the relationship of [[i]] to [[j]] is [[k]] SNePSUL SYN: (assert object i rel k possessor j) e.g.) Bella is Michael's cat. (assert object #mike proper-name Michael) (assert object *bella rel (thing-called(cat)) possessor *mike) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Possession (nil object possessor rel) e.g.) Possession(bella1,mike1,thing-called(cat)). NB: You can vary the name &/or order of the arc labels to try to make it sound better; good luck :-), e.g.: b) define-frame Possesses (nil possessor object rel) e.g.) Possesses(mike1,bella1,thing-called(cat)). 7. agent-act-(action-object) ------------------------------------------------------------------------ SNePS SYNTAX m / \ agent/ \act / \ V V i n / \ action/ \object / \ V V j k SEMANTICS [[m]] is the proposition that agent [[i]] performs action [[j]] with respect to object [[k]]. NB: This is used for transitive verbs, i.e., verbs that take an object. NB: Note that node "n" has no separate semantics. However, we could provide one: [[n]] is the act of performing action [[j]] wrt [[k]] SNePSUL SYN: (assert agent i act (build action j object k)) e.g.) Michael pets Bella. (assert agent *mike act (build action (build lex pet) object *bella)) POSSIBLE SNePSLOG NAMES (others are possible): NB: We must do this in 2 stages, defining frames for case-frame "m" and for case-frame "n" separately: a1) define-frame act-wrt (nil action object) a2) define-frame action-wrt (nil action object) b1) define-frame Does (nil act agent) e.g.) Does(act-wrt(thing-called(pet),bella1),mike1). 8. agent-act(-action) ------------------------------------------------------------------------ SNePS SYNTAX m / \ agent/ \act / \ V V i n / action/ / V j SEMANTICS [[m]] is the proposition that agent [[i]] performs action [[j]]; or: [[m]] is the proposition that agent [[i]] performs the act consisting of action [[j]]. NB: This is used for intransitive verbs, i.e., verbs that do not take an object. The "action" arc is needed for consistency with the above case-frame as well as consistency with SNeRE. NB: Note that node "n" has no separate semantics. However, we could provide one: [[n]] is the act of performing action [[j]]. SNePSUL SYN: (assert agent i act (build action j)) e.g.) Michael sings. (assert agent *mike act (build action (build lex sing))) POSSIBLE SNePSLOG NAMES (others are possible): NB: We must do this in 2 stages, defining frames for case-frame "m" and for case-frame "n" separately: a1) define-frame the-action (nil action) b1) define-frame Does (nil act agent) [as above; this is the same frame!] e.g.) Does(the-action(thing-called(sing)),mike1). 9. object-location ------------------------------------------------------------------------ SNePS SYNTAX m / \ object / \location / \ V V i j SEMANTICS [[m]] is the proposition that [[i]] is located at location [[j]]. SNePSUL SYN: (assert object i location j) e.g.) Felix is home. (assert object *felix location (build lex home)) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Location (nil location object ) e.g.) Location(thing-called(home),felix1). Or, to avoid possible confusion: b) define-frame Is-Located-At (nil location object) e.g.) Is-Located-At(thing-called(home),felix1). 10. part-whole ------------------------------------------------------------------------ SNePS SYNTAX m / \ part / \whole / \ V V i j SEMANTICS [[m]] is the proposition that [[i]] is a part of [[j]]. SNePSUL SYN: (assert part i whole j) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Isa-Part-Of (nil whole part) b) define-frame Isa-Part-Of (nil part whole) [Can you tell I'm getting tired?] 11. synonym-synonym AND antonym-antonym ------------------------------------------------------------------------ These are similar; I will only treat the first pair. SNePS SYNTAX m / \ synonym / \synonym / \ V V i j SEMANTICS [[m]] is the proposition that [[i]] and [[j]] are synonyms. SNePSUL SYN: (assert synonym i synonym j) Or: (assert synonym (i j)) e.g.) "small" and "little" are synonyms (assert synonym (build lex small) synonym (build lex little)) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Synonyms (nil synonym) e.g.) Synonyms(thing-called(small),thing-called(little)). OOPS: Do you see a problem here? The *thing* called "small" is not a synonym of the *thing* called "little". It's the *words* that are synonyms, not the *concepts*. But there's no agreed-upon term for "synonymous" concepts, so let's stick with this for now, unless one of you comes up with a better idea. For good measure, because it's generally important in SNePS and in KR generally, but is NOT "known" by the CVA algorithms (yet), I'll add this one: 12. equiv-equiv ------------------------------------------------------------------------ SNePS SYNTAX m / \ equiv / \equiv / \ V V i j SEMANTICS [[m]] is the proposition that mental entities [[i]] and [[j]] correspond to the same external object. SNePSUL SYN: (assert equiv i equiv j) e.g.) The Morning Star is the Evening Star. (assert equiv (build lex "the morning star") equiv (build lex "the evening star")) POSSIBLE SNePSLOG NAMES (others are possible): a) define-frame Equivalent (nil equiv) e.g.) Equivalent(thing-called("the morning star"), thing-called("the evening star")). For more on this, see: http://www.cse.buffalo.edu/~rapaport/snepsintensionality.html