From owner-cse663-fa06-list@LISTSERV.BUFFALO.EDU  Wed Oct 18 21:21:25 2006
Received: from ares.cse.buffalo.edu (ares.cse.Buffalo.EDU [128.205.32.79])
	by castor.cse.Buffalo.EDU (8.13.6/8.12.10) with ESMTP id k9J1LP7h027355
	for <rapaport@castor.cse.buffalo.edu>; Wed, 18 Oct 2006 21:21:25 -0400 (EDT)
Received: from front1.acsu.buffalo.edu (upfront.acsu.buffalo.edu [128.205.4.140])
	by ares.cse.buffalo.edu (8.13.6/8.13.6) with SMTP id k9J1LLr6081876
	for <rapaport@CSE.BUFFALO.EDU>; Wed, 18 Oct 2006 21:21:21 -0400 (EDT)
Received: (qmail 16285 invoked from network); 19 Oct 2006 01:21:21 -0000
Received: from mailscan7.acsu.buffalo.edu (128.205.6.158)
  by front1.acsu.buffalo.edu with SMTP; 19 Oct 2006 01:21:21 -0000
Received: (qmail 23883 invoked from network); 19 Oct 2006 01:21:20 -0000
Received: from deliverance.acsu.buffalo.edu (128.205.7.57)
   by front2.acsu.buffalo.edu with SMTP; 19 Oct 2006 01:21:20 -0000
Received: (qmail 12823 invoked from network); 19 Oct 2006 01:21:01 -0000
Received: from listserv.buffalo.edu (128.205.7.35)
   by deliverance.acsu.buffalo.edu with SMTP; 19 Oct 2006 01:21:01 -0000
Received: by LISTSERV.BUFFALO.EDU (LISTSERV-TCP/IP release 14.5) with spool id
           1239414 for CSE663-FA06-LIST@LISTSERV.BUFFALO.EDU; Wed, 18 Oct 2006
           21:21:01 -0400
Delivered-To: cse663-fa06-list@listserv.buffalo.edu
Received: (qmail 21155 invoked from network); 19 Oct 2006 01:21:01 -0000
Received: from mailscan3.acsu.buffalo.edu (128.205.6.135) by
           listserv.buffalo.edu with SMTP; 19 Oct 2006 01:21:01 -0000
Received: (qmail 3867 invoked from network); 19 Oct 2006 01:20:59 -0000
Received: from castor.cse.buffalo.edu (128.205.32.14) by smtp2.acsu.buffalo.edu
           with SMTP; 19 Oct 2006 01:20:59 -0000
Received: from castor.cse.Buffalo.EDU (rapaport@localhost [127.0.0.1]) by
           castor.cse.Buffalo.EDU (8.13.6/8.12.10) with ESMTP id k9J1Kws7027328
           for <cse663-fa06-list@listserv.buffalo.edu>; Wed, 18 Oct 2006
           21:20:59 -0400 (EDT)
Received: (from rapaport@localhost) by castor.cse.Buffalo.EDU
           (8.13.6/8.12.9/Submit) id k9J1Kw4k027327 for
           cse663-fa06-list@listserv.buffalo.edu; Wed, 18 Oct 2006 21:20:58
           -0400 (EDT)
X-UB-Relay: (castor.cse.buffalo.edu)
X-PM-EL-Spam-Prob: : 7%
Message-ID:  <200610190120.k9J1Kw4k027327@castor.cse.Buffalo.EDU>
Date:         Wed, 18 Oct 2006 21:20:58 -0400
Reply-To: CSE 663 - Advanced Knowledge Representation - Fall 2006
               <CSE663-FA06-LIST@LISTSERV.BUFFALO.EDU>
Sender: CSE 663 - Advanced Knowledge Representation - Fall 2006 <CSE663-FA06-LIST@LISTSERV.BUFFALO.EDU>
From: "William J. Rapaport" <rapaport@cse.Buffalo.EDU>
Subject: SNePSLOG Case Frames for CVA
To: CSE663-FA06-LIST@LISTSERV.BUFFALO.EDU
Precedence: list
List-Help: <http://listserv.buffalo.edu/cgi-bin/wa?LIST=CSE663-FA06-LIST>,
            <mailto:LISTSERV@LISTSERV.BUFFALO.EDU?body=INFO CSE663-FA06-LIST>
List-Unsubscribe: <mailto:CSE663-FA06-LIST-unsubscribe-request@LISTSERV.BUFFALO.EDU>
List-Subscribe: <mailto:CSE663-FA06-LIST-subscribe-request@LISTSERV.BUFFALO.EDU>
List-Owner: <mailto:CSE663-FA06-LIST-request@LISTSERV.BUFFALO.EDU>
X-UB-Relay: (castor.cse.buffalo.edu)
X-DCC-Buffalo.EDU-Metrics: castor.cse.Buffalo.EDU 1335; Body=0 Fuz1=0 Fuz2=0
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham 
	version=3.1.3
X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on 
	ares.cse.buffalo.edu
X-Virus-Scanned: ClamAV 0.88.3/2043/Wed Oct 18 19:18:01 2006 on ares.cse.buffalo.edu
X-Virus-Status: Clean
Status: R
Content-Length: 12174

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.

This document summarizes the options we discussed in lecture on Wed, 18
Oct (as far as I remember them; I wasn't taking notes, but you were :-)
and supplements them with the ones we didn't get to cover.

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

