;;; ===================================================================================== ;;; ;;; FILENAME: hummock.demo ;;; DATE: 10/18/2006 ;;; PROGRAMMER: Scott Settembre ; ; this template version: ; http://www.cse.buffalo.edu/~rapaport/CVA/snepslog-template-20061102-2.demo ; ; Lines beginning with a semi-colon are comments. ; Lines beginning with "^" are Lisp commands. ; All other lines are SNePSUL commands. ; ; To use this file: run SNePS [or see step-by-step below]; at the SNePS prompt (*), type: ; ; demo "hummock.demo" ; ; Make sure all necessary files are in the current working directory ; or else use full path names. ; ;;; To run step-by-step instructions: ;;; In a unix console do: ;;; xemacs & ;;; In xemacs in *scratch* do: ;;; (load "cselisp.el") [then press Ctrl-J] ;;; In xemacs do: ;;; [Press ESC, then x, then type] run-acl [then press RETURN through all prompts] ;;; At lisp prompt do: ;;; :ld /projects/shapiro/Sneps/sneps262 [then press RETURN] ;;; After it loads, type: ;;; (snepslog) [then press RETURN] ;;; In snepslog, type: ;;; demo "hummock.demo" [then press RETURN] ;;; or to run the demo line by line, pressing key to continue to next line, type: ;;; demo "hummock.demo" av [then press RETURN] ;;; ;;; ===================================================================================== ;;; ===================================================================================== ;;; ;;; Setup SNePSLOG and load appropriate packages ;;; ;;; ===================================================================================== ; Set SNePSLOG mode = 3 set-mode-3 ; Turn off inference tracing; this is optional. ; If tracing is desired, enter "trace" instead of "untrace": untrace inference ; Clear the SNePS network: clearkb ; Define the arcs explicitly up front to avoid problem when loading the defun_noun algorithm %(define a1 a2 a3 a4 after agent against antonym associated before cause class direction equiv etime event from in indobj instr into lex location manner member mode object on onto part place possessor proper-name property rel skf sp-rel stime subclass superclass subset superset synonym time to whole kn_cat) ; Load the appropriate definition algorithm: ^(cl:load "/projects/rapaport/CVA/STN2/defun_noun") ;^(cl:load "defun_noun_snepslog") ; OPTIONAL: ; UNCOMMENT THE FOLLOWING CODE TO TURN FULL FORWARD INFERENCING ON: ; ^(cl:load "/projects/rapaport/CVA/STN2/ff") ; ; Returns: ;Warning: broadcast-one-report, :operator was defined in ; /projects/snwiz/Install/Sneps-2.6.1/snip/fns/nrn-reports.lisp and is now being defined in ff.cl ;t ;;; ===================================================================================== ;;; ;;; Following are steps needed to use the CVA noun algorithm. ;;; ;;; 1. Define the "frames" that are needed to represent the sentence as well ;;; as the background knowledge. Although the frame names themselves can ;;; be changed, the arcs that they describe between nodes and the names ;;; of those arcs are required for proper operation of the noun algorithm. ;;; ;;; Note: These frames need to be defined BEFORE the "paths" are defined, due ;;; to the dependency on the arc names. ;;; ;;; 2. Define the "paths" that are needed to represent the information. "Paths" can ;;; be considered as 'subconscious' reasoning or inference. In other words, an ;;; inference defined as a path cannot be reasoned about, whereas, you can make a ;;; rule (in background knowledge) and then include reasoning about the rule itself ;;; in other background knowledge. Any path that would be defined can be made into a ;;; inference rule, however, if you are not going to be reasoning about that inference ;;; then it "should" be defined as a path. ;;; ;;; 3. Define the "background knowledge" needed. This section should include all ;;; information (rules or assertions) that will be useful in understanding the ;;; sentence. This is not the representation of the sentence, just the rules ;;; or assertions not explicitly referred to in the sentence needed to be able ;;; to adequately represent the sentence pieces, ideas, relationships, concepts... ;;; ;;; Note: The "background knowledge" section is defined prior to the sentence, but ;;; it does not need to be completed prior to representing the sentence. Additional ;;; represention may be needed to tune to the inference in the noun algorithm. ;;; ;;; 4. Define the "sentence" itself. To represent the sentence, attempt to form the ;;; assertions (and perhaps assertions should be all that is needed in this section) ;;; based exactly on what the sentence is saying. Additional underlying meaning may ;;; best be put in the "background knowledge" section. ;;; ;;; ===================================================================================== ;;; ===================================================================================== ;;; ;;; Define frames here: ;;; ;;; Each frame consists of a name and a sequence of arcs. Defined below are the frame ;;; names that I chose to increase readability. For each frame, I will additionally ;;; provide a description and an example. ;;; ;;; ===================================================================================== ;;; ================================= ;;; Frame: concept-called ;;; ================================= define-frame Concept-called (nil lex). ;SNePS SYNTAX SEMANTICS ; ; lex ;m----->w [[m]] is the concept expressed by uttering [[w]], ; where "w" is a word in the lexicon ;; Example 1: ;; Concept-called (sun). ;; [[represents "This intensional object (node) has a "lex" relationship with the word 'sun'."]] ;; [[or in other words "The 'concept of the sun' is called 'sun'."]] ;; produces a node (b1) with an arc labeled "lex" to a node ("sun"). This frame is used ;; to better facilitate the separation between how an object is represented intensionally ;; and what we call an object. For example, the node (b1) is the intensional representation ;; for the unique concept of sun, whereas, the word "sun" is the lexographical representation ;; of the intensional representation of the concept of a sun. Mostly it is used to assist the ;; noun and verb algorithms to communicate to the user. ;;; ================================= ;;; Frame: Named ;;; ================================= define-frame Named (nil proper-name object). ; m ; / \ ;object / \proper-name ; / \ ; 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. ;; Example 1: ;; Named("Rover",specific-dog-1) ;; [[represents "This [particular] dog is named 'Rover'."]] ;; produces a node (m1) with an arc named "object" pointing to a node (specific-dog-1) and ;; an arc named "proper-name" to a to a node ("Rover"). This is required for the proper ;; operation of the noun algorithm, like the "lex" arc, the "proper-name" arc, allows the ;; algorithm to better communicate the definition of the word to the user. ;;; ================================= ;;; Frame: Isa ;;; ================================= define-frame Isa (nil class member). ;SNePS SYNTAX ; ; m ; / \ ;member / \class ; / \ ; i <- -> j ; ;SEMANTICS ; ;[[m]] is the proposition that individual entity [[i]] is a (member of the class [[j]] ;; Example 1: ;; Isa(canine,specific-dog-1). ;; [[represents "This [particular] dog is a canine."]] ;; produces a node (m1) with an arc labeled "member" to a node (specific-dog1) ;; and with an arc labeled "class" to a node (canine) ;; ;; Example 1.a.: ;; Isa(dog,specific-dog-1) ;; [[represents "This [particular] dog is a dog."]] ;; ;; Example 2: ;; Isa(Concept-called(canine),specific-dog-1). ;; [[represents "This [particular] dog is a canine."]] ;; produces a node (m1) with an arc labeled "member" to a node (specific-dog-1) ;; and with an arc labeled "class" to a node (b1). Node (b2) additionally has ;; an arc labeled "lex" to a node ("canine"). This assertion look is common in the sentence ;; and background knowledge representations because the noun algorithm requires the use of ;; "lex" arcs to understand the relationship between the concepts that are being reasoned ;; about and the lexicon that represents them. ;; ;; BAD Example 1: *USE AKO INSTEAD* ;; Isa(mammal,dog). ;; [[represents "A dog is a mammal." (Or "dogs are mammals")]] ;; produces a node (m1) with an arc labeled "member" to a node (dog) and an arc labeled ;; "class" to a node (mammal). This should NOT BE USED and instead the frame AKO or ;; "also known as" should be used to represent subclass and superclass relationships. ;; Isa should be used for representing inclusion in a class or group. ;; AKO should be used to represent that one class/group is a subclass of another. ;; See more at AKO definition below. ;;; ================================= ;;; Frame: AKO ;;; ================================= define-frame AKO (nil superclass subclass). ;SNePS SYNTAX ; ; m ; / \ ;subclass / \superclass ; / \ ; i<- ->j ; ;SEMANTICS ; ;[[m]] is the proposition that entity [[i]] is a subclass of entity [[j]]. ;; Example 1: ;; AKO(mammal,dog). ;; [[represents "Dogs is a subclass of mammals."]] ;; produces a node (m1) with an arc labeled "subclass" to a node (dog) and an arc labeled ;; "superclass" to a node (mammal). This is used to represent subclass and superclass ;; relationships. AKO should be used to represent that one class/group is a subclass of another. ;; ;; Exmaple 2: ;; AKO(Concept-called(mammal),Concept-called(dog)). ;; [[represents "Dogs is a subclass of mammals."]] ;; produces a node (m1) with an arc labeled "subclass" to a node (b1) and an arc labeled ;; "superclass" to a node (b2). Additionally node (b1) has an arc labeled "lex" to a node (dog) ;; and node (b2) has an arc labeled "lex" to a node (mammal). This sort of assertion will be ;; will be used extensively to represent information. The difference between example 1 and ;; example 2 is used to help the noun algorithm communicate to the user. ;;; ================================= ;;; Frame: Is-property ;;; ================================= define-frame Is-property (nil property object). ;SNePS SYNTAX ; ; m ; / \ ;object / \property ; / \ ; i<- ->j ; ;SEMANTICS ; ;[[m]] is the proposition that entity [[i]] has the property [[j]]. ;; Example 1: ;; Is-property(bright, sun) ;; [[represents "the sun is bright".]] ;; produces a node (m1) with an arc labeled "object" to a node (sun) and an arc labeled ;; "property" to a node (bright). This is used to represent a property of an object. This is not ;; be used the same way the frame "Isa" or "AKO" is used. Is-property should be used when attempting ;; to represent a "property" or a "feature" of a member or a class. I named it "Is-property" instead ;; "Is" so that there would be no confusion between "Is" and "Isa" ;; ;; Example 2: ;; Is-property(Concept-called(bright),Concept-called(sun)) ;; [[represents "the sun is bright".]] ;; produces a node (m1) with an arc labeled "object" to node (b1) which has an arc labeled "lex" to a ;; node (sun), and node (m1) has another arc labeled "property" to a node (b2) which has an arc labeled ;; "lex" to a node (bright). This is a typical use of the frame when using the noun/verb algorithms. ;;; ================================= ;;; Frame: Has-relation ;;; ================================= define-frame Has-relation (nil rel object2 object1). ;SNePS SYNTAX ; ; m ; / | \ ; / | \ ;object1 / |rel \object2 ; / | \ ; i<- ->k ->j ; ;SEMANTICS ; ;[[m]] is the proposition that [[i]] is related by relation [[k]] to [[j]]. ;; Example 1: ;; Has-relation(behind,hill1,tree1) ;; [[represents "That tree is behind that hill"]] ;; ;; Example 2: ;; Has-relation(younger,adult,child) ;; [[represents "A child is younger than an adult"]] ;; ;; Example 3: ;; Has-relation(under,trunk,root) ;; [[represents "The roots are under the trunks"]] ;; ;; produces a node (m1) which has a arc labeled "rel" (meaning the relation) to a node (root) ;; and (m1) also has an arc labeled "object1" to a node (root) and (m1) also has an arc labeled ;; "object2" to a node (trunk). ;; ;; Notice these examples have different "types" of nodes. Example 1 has specific objects related to ;; each other, example 2 relates two classes to each other, and in example 3 relates members of a ;; class to other members of a class. In other words, any two intensional objects "have a relation" ;; between them, which is why I called the frame "Has-relation". ;;; ================================= ;;; Frame: Possesses ;;; ================================= define-frame Possesses (nil object possessor rel). ; m ; / | \ ; / | \ ;object / |rel \possessor ; / | \ ; 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]] ;; Example 1: ;; Possesses(computer1,Scott1,computer) ;; [[represents "This computer is Scott's computer" or "This is Scott's computer"]] ;; Example 2: ;; Possesses(computer1,Named(Scott,Scott1),Concept-called(computer)) ;; [[represents "This computer is Scott's computer" or "This is Scott's computer"]] ;; ;; produces for example 2, a node (m3) with an arc "object" to a node (m1), an arc "rel" ;; to a node (computer1), and an arc "possessor" to node (m2). Node (m1) has an arc "object" to ;; a node (Scott1) and an arc "proper-name" to an node (Scott). Node (m2) has an arc "lex" to a ;; node (computer). Additional examples: ;; ;; Example 3: ;; Possesses(Concept-called(paw),Concept-called(dog),Concept-called(paw)) ;; [[represents "A dog has a paw]] ;; ;; Example 4: ;; Possesses(b2,Named(Earth,b1),Concept-called(orbit)) ;; [[represents "This (b2) is Earth's orbit"]] ;;; ================================= ;;; Frame: Does ;;; [Just "the action-object" part of the SNePS syntax tree] ;;; ================================= define-frame Does (nil act agent). ;Michael pets Bella. ;i.e. Does(Act-wrt(Concept-called(pet),bella1),mike1). ;SNePS SYNTAX ; ; m ; / \ ; agent/ \act ; / \ ; i<- ->n ; / \ ; action/ \object ; / \ ; j<- ->k ; ;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]]. ;;; ================================= ;;; Frame: Act-wrt ;;; [Just "the agent - act" part of the SNePS syntax tree] ;;; ================================= define-frame Act-wrt (nil object action). ;SNePS SYNTAX ; ; m m ; / \ / \ ; agent/ \act agent/ \act ; / \ / \ ; i<- ->n +OR+ i<- ->n ; / \ / ; action/ \object action/ ; / \ / ; j<- ->k j<- ; ;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]] ;;; ================================= ;;; Frame: The-action ;;; [Just "the action" part of the SNePS tree] ;;; ================================= define-frame The-action (nil action). ;Michael sings. ;i.e. Does(The-action(Concept-called(sing)),mike1). ;SNePS SYNTAX ; ; m ; / \ ; agent/ \act ; / \ ; i<- ->n ; / ; action/ ; / ; ->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]]. ;;; ================================= ;;; Frame: Is-located-at ;;; ================================= define-frame Is-located-at (nil location object). ;SNePS SYNTAX ; ; m ; / \ ;object / \location ; / \ ; i<- ->j ; ;SEMANTICS ; ;[[m]] is the proposition that [[i]] is located at location [[j]]. ; ;; Example 1: ;; Is-located-at(hill1,tree1) ;; produces a node(m) with two arcs, onc called "part" to a node (tree1) and the other ;; called "location" to a node (hill1). ;;; ================================= ;;; Frame: Isa-part-of ;;; ================================= define-frame Is-a-part-of (nil whole part). ;SNePS SYNTAX ; ; m ; / \ ; part / \whole ; / \ ; i<- ->j ; ;SEMANTICS ; ;[[m]] is the proposition that [[i]] is a part of [[j]]. ;; Example 1: ;; Is-a-part-of (tree1,leaves1). ;; produces an node (m) with two arcs, one called "part" to a node called (leaves1) and one called ;; "whole" to a node called (tree1). ;; ;; Example 2: ;; Is-a-part-of (Concept-called(tree),Concept-called(leaves)). ;; produces a node (m) with two arcs, one called "part" to node (b1) and the other called ;; "whole" to node (b2). Node (b1) has an arc called "lex" to a node (tree). and Node (b2) ;; has an arc called "lex" to a node (leaves). Example 1 and example 2 are very different, in ;; that Example 1 is talking about a specific tree (tree1) and a specific group of leaves ;; (leaves1), whereas, Example 2 is talking about that any tree has as part of it a group ;; of leaves. ;;; ================================= ;;; Frame: Synonyms ;;; ================================= define-frame Synonyms (nil synonym synonym). ;SNePS SYNTAX ; ; m ; / \ ;synonym / \synonym ; / \ ; i<- ->j ; ;SEMANTICS ; ;[[m]] is the proposition that [[i]] and [[j]] are synonyms. ;; Example 1: ;; Synonyms(big,large). ;; produces a node (m) with an arc labeled "synonym" leading to the node (big) and an arc ;; labeled "synonym" leading to the node (large). ;; ;; Example 2: ;; Synonyms(Concept-called(big),Concept-called(large)). ;; produces a node (m) with an arc labeled "synonym" leading to a node (b1) with an arc ;; labeled "lex" to the node (big), and from the node (m) another arc labeled "synonym" leading ;; to a node (b2) with an arc labeled "lex" to the node (large). ;;; ================================= ;;; Frame: Antonyms ;;; ================================= define-frame Antonyms (nil antonym antonym). ;SNePS SYNTAX ; ; m ; / \ ;antonym / \antonym ; / \ ; i<- ->j ; ;SEMANTICS ; ;[[m]] is the proposition that [[i]] and [[j]] are antonyms. ;; Example 1: ;; Antonyms(big,small). ;; produces a node (m) with an arc labeled "antonym" leading to the node (big) and an arc ;; labeled "antonym" leading to the node (small). ;; ;; Example 2: ;; Antonyms(Concept-called(big),Concept-called(small)). ;; produces a node (m) with an arc labeled "antonym" leading to a node (b1) with an arc ;; labeled "lex" to the node (big), and from the node (m) another arc labeled "antonym" leading ;; to a node (b2) with an arc labeled "lex" to the node (small). ;;; ================================= ;;; Frame: Equivalent ;;; ================================= define-frame Equivalent (nil equiv equiv). ;SNePS SYNTAX ; ; m ; / \ ; equiv / \equiv ; / \ ; i<- ->j ; ;SEMANTICS ; ;[[m]] is the proposition that mental entities [[i]] and [[j]] correspond to the same external object. ;; Example 1: ;; Equivalent(b1,b2). ;; produces a node (m) with an "equiv" arc to a node (b1) and another "equiv" arc to a node (b2). ;; ;; Example 2: ;; Equivalent(Named(Rover,dog1),Possession(dog2,Concept-called("dog"),me1)). ;; produces a node (m) with an "equiv" arc to a node (b1) which has two arcs, one called ;; "object" to a node (dog1) and one called "proper-name" to a node (Rover). Also, node (m) ;; has another "equiv" arc to a node (b2) which has three arcs, one arc called "object" to ;; node (dog2), another arc called "rel" to node (b3) which has itself an arc to node (dog) and ;; lastly an arc "possessor" to a node (me1). ;;; ===================================================================================== ;;; ;;; Define paths here: ;;; ;;; Each path defined represents a "subconscious" way to look at an inference rule. The ;;; path allows SNePS to follow a sequence of arcs without the use of an actual inference ;;; rule that would exist in the network as nodes. Therefore, inference done using paths ;;; bypasses using the network itself as being the place where that rule is represented and ;;; instead is represented directly in other working memory. ;;; ;;; Note 1: I suspect that defining paths may be faster during the inference phase, and so if ;;; it is not indended to reason about the rule itself (the rule is simple or represents ;;; background knowledge that is not the focus of the sentence) then it would be optimal ;;; to represent that knowledge through "define-path" instead of through an inference rule. ;;; ;;; Note 2: See "/projects/rapaport/CVA/mkb3.CVA/paths/snepslog-paths" for some examples and ;;; additional paths not used here. ;;; ;;; Note 3: These examples give errors so I am leaving them commented out, since I am not ;;; using them in my representation. ;;; ;;; ===================================================================================== ;;; Sub1 ;define-path sub1 (compose object1- superclass- ! subclass superclass- ! subclass). ;;; Super1 ;define-path super1 (compose superclass subclass- ! superclass object1- ! object2). ;;; The superclass path can be defined by either superclass or super1 ;define-path superclass (or superclass super1). ;;; ===================================================================================== ;;; ;;; Represent the Sentence and Word here: ;;; ;;; "Now the sun had risen enough to clear the dense hummock of forest across the creek, ;;; and thus sunlight was striking and warming the leaves on this particular tree ;;; for the first time since they'd frozen." ;;; ;;; Notes: ;;; Words surrounded by "{" and "}" are not being represented, but have been discussed ;;; in the background knowledge section for perhaps future respresentation. ;;; ;;; Words surrounded by "(" and ")" are just an expansion of the previous word or ;;; phrase and may or may not be represented. ;;; ;;; Words surrounded by "[" and "]" are represented either before or after the ;;; piece(s) of knowledge that are being represented. ;;; ;;; ===================================================================================== ;; -------------------------------------------------------------------------------------- ;; "{Now} the sun had risen {enough} to clear the dense hummock of forest across the creek,.." ;; -------------------------------------------------------------------------------------- ;; the sun had risen Isa(Concept-called("hummock"),hummock1). Isa(Concept-called("sun"),sun1). Does(The-action(Concept-called("risen")),sun1). ;; {enough} to clear [the dense hummock] Does(Act-wrt(hummock1,Concept-called("clear")),sun1). ;; the dense hummock Is-property(Concept-called("dense"),hummock1). ;; hummock of forest Isa(Concept-called("forest"),forest1). Is-a-part-of(forest1,hummock1). ;; [the dense hummock of forest] across the creek Isa(Concept-called("creek"),creek1). Has-relation(Concept-called("across"),creek1,hummock1). ;; -------------------------------------------------------------------------------------- ;; {and thus} sunlight was striking and warming the leaves on this {particular} tree ;; -------------------------------------------------------------------------------------- ;; sunlight was striking and warming the leaves Isa(Concept-called("sunlight"),sunlight1). Is-a-part-of(sun1,sunlight1). Does(Act-wrt(leaves1,Concept-called("striking")),sunlight1). Does(Act-wrt(leaves1,Concept-called("warming")),sunlight1). ;; the leaves on this {particular} tree Isa(Concept-called("tree"),tree1). Isa(Concept-called("leaves"),leaves1). Is-a-part-of(tree1,leaves1). ;; -------------------------------------------------------------------------------------- ;; {for the first time since} they'd (they had) frozen." ;; -------------------------------------------------------------------------------------- ;; they'd (they had) frozen Is-property(Concept-called("frozen"),leaves1). ;;; ===================================================================================== ;;; ;;; Represent Background Knowledge here: ;;; ;;; AdjacentWorldObjects can block other AdjacentWorldObjects ;;; ;;; ===================================================================================== ;; -------------------------------------------------------------------------------------- ;; Background Knowledge Rule Section: ;; ;; This section is dedicated to implement rules and propositions that will allow further ;; inferences to be drawn about world knowledge not explicitly stated in the sentence. ;; The main question concerning background knowledge in this problem, however, is how much ;; and what depth of representation is necessary to extract the real meaning of the word. ;; ;; There are some concepts in the sentence that I will not address more than describing ;; what they are and leave it for future development if needed. These words or phrases ;; may be idioms, however, the majority of them are concepts that do not deal with the ;; meaning of the word expressly. I have bracketed them with "[" and "]" in the sentence ;; represented below this section. ;; ;; -------------------------------------------------------------------------------------- ;; -------------------------------------------------------------------------------------- ;; Background Knowledge Rule Section: being similiar to a hill ;; ;; In phase 1 of this project, I found that one of the subjects (subject 3) who ;; described a hummock in terms of a scene that he was aware of from his memories. ;; This imagery is what I wish to capture in this background representation. ;; ;; "The sun cleared the pallisade and sunlight struck the subject's eye" ;; ;; -------------------------------------------------------------------------------------- ;; Subject 3's: Memory image ;; The sun cleared the NJ Palisades, sunlight struck subject3's eye Isa(Concept-called("hill-like object"),hillobject1). Isa(Concept-called("NJ Palisades"),palisade1). Isa(hillobject1,palisade1). Is-a-part-of(subject3,eyes3). Is-a-part-of(sun1,sunlight1). Does(Act-wrt(palisade1,Concept-called("clear")),sun1). Does(Act-wrt(eyes3,Concept-called("striking")),sunlight1). ;; ------------------------------------------------------------------------------------------- ;; Can't get "exists" logical symbol to work as described in ;; http://www.cse.buffalo.edu/~jsantore/snepsman/node106.html#SECTION00910000000000000000 ;; so I will comment out the counter example ;; I was merely going to implement a rule that made sure that there was a consistant ;; assertion about being a part of a forest. The idea was to make sure that something ;; was NOT not true, as in ~(~Is-a-part-of(m,h)) but since the ~(~ didn't seem to work the ;; way I hoped, I attempted the use of "exists", but the SNePSLOG interpreter would not accept ;; the sytax as described. ; ;; Possible flaw, why not a building-like object? Try to say, a building cannot be "of forest" ;; Let's try an example. ;; Subject 3's: Memory image ;; The sun cleared the Empire State Building, sunlight struck subject's eye ;Isa(Concept-called("building-like object"),buildingobject1). ;Isa(Concept-called("Empire State Building"),building1). ;Isa(buildingobject1,building1). ;Is-a-part-of(subject3,eyes3). ;Is-a-part-of(sun1,sunlight1). ;Does(Act-wrt(building1,Concept-called("clear")),sun1). ;Does(Act-wrt(eyes3,Concept-called("striking")),sunlight1). ; ;; a building-like object cannot be "of forest" ;~Is-a-part-of(forest1,buildingobject1). ;; ------------------------------------------------------------------------------------------- ;; Rules to match this similar scene: ;; If the sun1 clears an object1, and sunlight1 strikes object2, then ;; it is possible that a similar scene like this may have ;; the object in the object1 position may be of the same class as object1 ;; however, the object2 must also preserve its other relationships all(x,y,z)( { Does(Act-wrt(x,Concept-called("clear")),sun1), Does(Act-wrt(y,Concept-called("striking")),sunlight1), Isa(z,x) } &=> all(h,j)( { Does(Act-wrt(h,Concept-called("clear")),sun1), Does(Act-wrt(j,Concept-called("striking")),sunlight1) } &=> Isa(z,h) ) )! ;; -------------------------------------------------------------------------------------- ;; Background Knowledge Rule Section: "enough" ;; (Commenting on but not using for representation.) ;; ;; When something does something enough, it implies that there was some ;; action that has been occurring up until this point in time which makes ;; it possible for another action, event, or proposition to be true. ;; ;; -------------------------------------------------------------------------------------- ;; -------------------------------------------------------------------------------------- ;; Background Knowledge Rule Section: "now" ;; (Commenting on but not using for representation.) ;; ;; Referring to the current time from the perspective of the speaker. ;; In this sentence, if we leave out the word "Now", it is assumed that we are ;; talking about that time. However in this sentence, it probably does not ;; mean the current time, but the current point in time of the narrative. ;; ;; -------------------------------------------------------------------------------------- ;; -------------------------------------------------------------------------------------- ;; Background Knowledge Rule Section: "and thus" ;; (Commenting on but not using for representation.) ;; ;; Could mean "therefore" or "and so" in this sentence. "Because" the actions in the ;; first part of the sentence happened, this next thing is happening. Or we could ;; think of this as some action, event, proposition being true, then enabling ;; the next action, event, or proposition to be true or happening. ;; ;; -------------------------------------------------------------------------------------- ;; -------------------------------------------------------------------------------------- ;; Background Knowledge Rule Section: "particular" ;; (Commenting on but not using for representation.) ;; ;; Mostly likely implies that there are other objects to choose from of the same ;; type, but we are told to consider only a specific object of the objects to ;; choose from. ;; ;; -------------------------------------------------------------------------------------- ;; -------------------------------------------------------------------------------------- ;; Background Knowledge Rule Section: "for the first time since" ;; (Commenting on but not using for representation.) ;; ;; If we are dealing with a timeline, this would refer to an event occuring at a ;; point in relation to another point where another event (of the same type or a ;; different type) occurred previously (or before the event in question). ;; ;; -------------------------------------------------------------------------------------- ;;; ===================================================================================== ;;; ;;; Run the algorithm to see if the meaning of "hummock" can be derived ;;; ;;; "Now the sun had risen enough to clear the dense "hummock" of forest across the creek, ;;; and thus sunlight was striking and warming the leaves on this particular tree ;;; for the first time since they'd frozen." ;;; ;;; ;;; ===================================================================================== ; Ask Cassie what "hummock" means: ^(snepsul::defineNoun "hummock")