HALogen Input Language

HALogen Input Representation

CONTENTS

Structure

The input to HALogen is a labeled feature-value structure. It can also be thought of as a labeled directed graph. The syntax of the input is:

INPUT -> ( LABEL FVPAIR+)
FVPAIR -> feature VALUE
VALUE -> LABEL | INPUT

The most basic input is a leaf structure of the form

 (label / word-or-concept)   Examples: (m1 / "dog")  (m1 / |dog<canid|)

The slash is shorthand for the instance feature (the most fundamental relation), and in logic notation this input might be written as Instance(m1, DOG). It also represents the semantic or syntactic head of a set of relationships. This input can represent ``the dog,'' ``the dogs,'' ``a dog,'' or ``dog,'' etc. The value of the instance feature can be a word or a concept. A word can be enclosed in string quotes, and should be in root form. A concept should be a valid Sensus Ontosaurus symbol, which is a mneumonic name for a WordNet synset enclosed in vertical bars. A concept represents a unique meaning and can map to one or more words. See the Ontosaurus Browser to look up concept names for words and synset classes.

There are two types of features, relations and properties. Relation features describe the relationship between the instance value and another content-bearing value. A content-bearing value can be a simple word or concept as in the instance example above, or a compound value composed of nested feature-value structures. Relations can be syntactic, semantic, or even non-linguistic. (Internally, more abstract semantic and non-linguistic relations are mapped to less-abstract syntactic relations to achieve generality and modularity in the symbolic generation process.)

Here are two examples that both express the idea, "The dog eats a meaty bone." The value labeled 'b1' in each example is a compound value.

(e1 / eat                            (e1 / eat
    :subject (d1 / dog)                 :agent (d1 / dog)
    :object (b1 / bone                  :patient (b1 / bone
              :premod (m1 / meaty)))                 :premod (m1 / meaty)))
The relations that HALogen currently recognizes are listed below, grouped according to their degree of abstraction. As shown in the dog-eat-bone examples just above, multiple relations can appear at a nesting level in the the input. Most relations can only occur once at any given nesting level. The main exceptions are modifier and adverbial relations, which can occur any number of times. Relations are order-independent, which means that the order in which relations occur in the input does not affect the order in which their values occur in the output. A conditional exception is when the same relation occurs more than once in a nesting level. If generation is performed with the *permute-nodes* flag set to nil, then the values with the same relation will occur adjacent to each other in the output in same order that they appeared in the input.

One last structural detail: A meta-level *OR* can be used to express an exclusive-or relationship between a group of inputs or values. Semantically, it represents ambiguity, or a choice between alternate expressions.

Here is an example that represents two semantic interpretations of the clause, "I see a man with a telescope," as well as a choice between the words "see", and "watch", and an ambiguity about whether John said it or Jane sang it.

(*OR* (a1 / say
          :agent (j1 / "John")
          :saying (*OR* (s1 / (*OR* see watch)
                            :agent I
	                    :patient (m1 / man
                                         :accompanier (t1 / telescope)))
                        (s2 / see
                            :agent I
	                    :patient (m2 / man)
                            :instrument (t1 / telescope))))
      (a2 / sing
          :agent (j2 / "Jane")
          :saying (*OR* s1 s2)))

Relations

SHALLOW SYNTACTIC
:SUBJECT, :OBJECT, :DATIVE, :COMPLEMENT, :PREDICATE, :ANCHOR, :PREMOD, :POSTMOD, :WITHINMOD, :PREDET, :DETERMINER, :TOPIC, :SUBJECT-POSITION, :CONJ, :BCPP, :COORDPUNC, :PUNC, :QUOTED

DEEP SYNTACTIC
:LOGICAL-SUBJECT, :LOGICAL-OBJECT, :LOGICAL-DATIVE, :LOGICAL-SUBJECT-OF, :LOGICAL-OBJECT-OF, :LOGICAL-DATIVE-OF, :ADJUNCT, :CLOSELY-RELATED :QUESTION

SEMANTIC
:AGENT, :PATIENT, :RECIPIENT, :AGENT-OF, :PATIENT-OF, :RECIPIENT-OF, :DOMAIN, :RANGE, :DOMAIN-OF, :SOURCE, :DESTINATION, :SPATIAL-LOCATING, :TEMPORAL-LOCATING, :ACCOMPANIER, :SANS, :ROLE-OF-AGENT, :ROLE-OF-PATIENT, :MANNER, :MEANS, :CONDITION,:THEME, :GENERICALLY-POSSESSES, :GENERICALLY-POSSESSED-BY, :NAME, :QUANT, :RESTATEMENT

MISCELLANEOUS
:INSTANCE, :OP, :PRO, :TEMPLATE, :FILLER
Many of these relations have aliases, e.g., you may refer to :AGENT with :SAYER or :SENSER. Below is an alphabetical list of relations with sample natural language fragments they can represent.

Properties

The other main type of features are properties. In contrast to relations, they have only atomic values, and describe linguistic properties of an instance. They do not generally need to be specified in the input, unless one wants to override the defaults that HALogen provides.

VERB
:TAXISperfect, none
:ASPECTcontinuous, simple
:VOICEactive, passive
:MOODinfinitive, to-infinitive, imperative, present-participle, past-participle, indicative
:TENSEpresent, past
:MODALshould, would, could, may, might, must, can, will
:PERSONs (3s), p (1s 1p 2s 2p 3p)
:SUBJECT-POSITIONdefault, post-aux, post-vp

NOUN
:CAT1common, proper, pronoun
:NUMBERsingular, plural

ADJECTIVE
:CAT1comparative, superlative, cardinal, possessive, none

ADVERB
:CAT1comparative, superlative, negative ("not"), wh, none

GENERAL
:LEX(root form of a word as a string)
:SEM( a SENSUS Ontosaurus concept)
:CATvv, nn, jj, rb, etc.
:RHS(inflected form of a word as a string)
:GAP+,-
:POLARITY+,-


Alphabetical List of Relations

NOTE: These examples are intended to help define the meaning of the relations. They are not intended to be samples of actual output, since actual output depends heavily on the statistical language model used. Instead, the sentence shown for each input should be interpreted as an ideal output.



:ACCOMPANIER (= :INCLUSIVE)

        (g1 / go
          :agent (b1 / boy)
          :accompanier (d1 / dog))
"The boy went with the dog."
(e1 / eat
   :AGENT (p1 / person
               :PRO she)
   :PATIENT (n1 / pasta
               :ACCOMPANIER (m1 / meatballs))
   :MEANS (f1 / fork)
   :ACCOMPANIER (g1 / gentleman
                   :GENERAL-POSSESSION (s1 / sunglasses)))
"She ate pasta with meatballs with a fork with the gentleman with sunglasses."


:ADJUNCT (maps to :premod, :postmod, and :withinmod)

 
       (g1 / go
          :agent (b1 / boy)
          :adjunct (q1 / quickly))
"The boy went quickly,." "Quickly, the boy went." "The boy quickly went."
 
       (g1 / go
          :agent (b1 / boy)
          :adjunct (q1 / house
                        :anchor (h1 / into)))
"Into the house, the boy went." "The boy went into the house,."
 
       (g1 / play
          :agent (b1 / boy
                    :adjunct (q1 / young))
"The young boy played."
 
       (b1 / boy
          :adjunct (g1 / corner
                        :anchor (c1 / in)))
"the boy in the corner"
 
       (b1 / red
          :adjunct (v1 / very)
          :adjunct (b1 / bright)
"very bright red"


:AGENT (= :SAYER, :SENSER)

 
       (g1 / go
          :agent (b1 / boy))
"The boy went."


:AGENT-OF

        (b1 / boy
          :agent-of (s1 / sing))
"The boy who sang"
        
        (c1 / citizen
            :agent-of (o1 / oppose
		          :patient (t1 / tobacco))
            :mood fragment)
"Citizens Against Tobacco"


:ANCHOR

        (l1 / live
          :agent (b1 / boy)
          :spatial-locating (d1 / dock
                              :anchor (n1 / near)))
"The boy lives near the dock."
        (l1 / leave
          :agent (b1 / boy)
          :temporal-locating (a1 / attack
				:anchor (d1 / during)))
"The boy left during the attack"
       (s1 / stay
          :agent (g1 / girl)
          :premod (g3 / (g2 / go
                             :agent (b1 / boy))
                       :anchor (e1 / "even if")))
"Even if the boy goes, the girl will stay."


:BCPP (stands for "Before Conjunction Punctuation--Predicate)

(c1 / (c2 / "California")
    / (a1 / "Arizona")
    / (a1 / "Texas")
    / (a1 / "Nevada")
    / (a1 / "Washington")
    :CONJ "as well as"
    :BCPP +)

"California, Arizona, Texas, Nevada, as well as Washington"
(c1 / (c2 / "California")
    / (a1 / "Arizona")
    / (a1 / "Texas")
    / (a1 / "Nevada")
    / (a1 / "Washington")
    :CONJ "as well as"
    :BCPP -)

"California, Arizona, Texas, Nevada as well as Washington"


:CLOSELY-RELATED (= :CLR)

        (j1 / join
          :subject HE
	  :object (b1 /  board)
          :clr (e1 / director      
                   :anchor "as"))
"He joined the board as director."


:COMPLEMENT (= :COMPL)

        (s1 / want
          :subject (b1 / boy)
          :compl (e1 / eat             
                     :patient (b1 / hamburger)))
"The boy wants to eat a hamburger."
        (s1 / say
          :subject (b1 / boy)
          :compl (e1 / eat             
                     :patient (b1 / bug)))
"The boy said that bugs were eaten."
       (s1 / wait
          :subject (g1 / girl)
          :compl (n1 / go
                    :agent (b1 / boy))))
"The girl waited for the boy to go."


:CONDITION

(c1 / cancel
   :PATIENT (t1 / trip)
   :CONDITION (w1 / weather
                 :pred (b1 / bad)))    
"The trip will be canceled if the weather is bad."


:CONJ

(c1 / apple
    / orange
    :CONJ "and")

"apples and oranges"
(c1 / (c2 / "California")
    / (a1 / "Arizona")
    / (a1 / "Texas")
    / (a1 / "Nevada")
    / (a1 / "Washington")
    :CONJ "as well as")

"California, Arizona, Texas, Nevada, as well as Washington"


:COORDPUNC

(c1 / (c2 / "California")
    / (a1 / "Arizona")
    / (a1 / "Texas")
    / (a1 / "Nevada")
    / (a1 / "Washington")
    :CONJ "as well as"
    :COORDPUNC ",")

"California, Arizona, Texas, Nevada, as well as Washington"
(c1 / (c2 / "California")
    / (a1 / "Arizona")
    / (a1 / "Texas")
    / (a1 / "Nevada")
    / (a1 / "Washington")
    :CONJ "as well as"
    :BCPP -
    :COORDPUNC "or")

"California or Arizona or Texas or Nevada as well as Washington"


:DATIVE (= :dtv :ind-obj :indirect-object :bnf :benefactive)

        (g1 / give
           :subject (j1 / "John")
           :object (b1 / book)
           :dative (m1 / "Mary"))
"John gave the book to Mary." "John gave Mary the book."


:DESTINATION

        (g1 / go
          :agent (b1 / boy)
          :destination (j1 / japan))
"The boy went to Japan."
        (t1 / tell
          :patient (s1 / story)
          :destination (b1 / boy))
"The story was told to the boy."


:DETERMINER

Values: indefinite, definite, none, demonstrative_this, demonstrative_that, interrogative, "a", "an", "each", etc.

(t1 / teacher
   :DETERMINER indefinite)
"a teacher" "some teachers" "teachers"
(t1 / apple
   :DETERMINER indefinite)
"an apple" "some apples" "apples"
(t1 / teacher
   :DETERMINER definite)
"the teacher"
(t1 / teacher
   :DETERMINER demonstrative_this)
"this teacher" "these teachers"
(t1 / teacher
   :DETERMINER demonstrative_that)
"that teacher" "those teachers"
(t1 / teacher
   :DETERMINER interrogative)
"which teacher" "what teacher"


:DESTINATION

(i1 / travel
   :AGENT (l1 / visitor)
   :DESTINATION (f1 / beach))
"Visitors travel to the beach."


:DOMAIN

        (b1 / blue
          :domain (c1 / car))
"The car is blue."
        (l1 / lawyer
          :domain (m1 / man))
"The man is a lawyer."
        (p1 / |possible>workable|
          :domain (e1 / eat
                    :patient (w1 / worm)))
"Worms can be eaten."


:DOMAIN-OF

        (c1 / car
          :domain-of (b1 / blue))
"The blue car" "The car that is blue"
        (m1 / man
          :domain-of (l1 / lawyer))
"The man who is a lawyer"
        (l1 / lawyer
	   :DOMAIN-OF (a1 / age
			 :RANGE (y1 / year
                                   :QUANT 34)))
"a 35 year old lawyer"


:FILLER

       (a1 :template (f1 / flight
                         :postmod (c1 / l1
			              :anchor from))
           :filler (l1 / "Los Angeles"))
"flights from Los Angeles"


:GAP

        (c1 / (p1 / patent
	          :premod (u1 / |U.S. government|))
	    / (c2 / copyright
	          :premod (u2 / |U.S. government|
		              :GAP +))
            :conj AND)
"United States patents and copyrights"
        (W9 / |desire,want|
	    :AGENT (J9 / |boy<male|)
	    :PATIENT (R9 / |read>reread|
	                 :PATIENT (B9 / |book<publication|)
	                 :AGENT (G1 / J9
			            :GAP +)))
"The boy wants to read the book."


:GENERICALLY-POSSESSES (= :GP)

        (b1 / boy
          :GENERICALLY-POSSESSES (n1 / nose
                                      :agent-of (bl / bleed)))
"the boy whose nose was bleeding"


:GENERICALLY-POSSESSED-BY (= :GPI, :GENERAL-POSSESSION-INVERSE)

        (h1 / handle
          :gpi (d1 / door))
"The handle of the door"
        (o1 / officer
          :gpi (n1 / navy))
"Naval officials"
        (h1 / hair
          :gpi (s1 / 1s_prounoun))
"My hair"


:INSTANCE

        (d1 / dog)
"A dog", "the dog", "some dogs", "dogs"
        (d1 / (p1 / pen
	          :premod (i1 / ink))
            :premod (n1 / new))
"a new ink pen", "the new ink pens", etc.


:LOGICAL-SUBJECT (= :LOG-SBJ)
:LOGICAL-OBJECT (= :LOG-OBJ)
:LOGICAL-DATIVE (= :LOG-DAT)

        (b1 / give
          :logical-subject (m2 / man)
          :logical-object (t1 / ring))
          :logical-dative (t1 / woman))
"The man gave a ring to the woman."
"The woman was given a ring by a man."
"The ring was given to the woman by a man."


:LOGICAL-DATIVE-OF (= :LOG-DAT-OF)

        (t1 / woman
            :log-dative-of (b1 / give
                              :log-sbj (m2 / man)
		  	      :logical-dative (t1 / ring))
"The woman that the man gave the ring to"


:LOGICAL-OBJECT-OF (= :LOG-OBJ-OF)

        (t1 / ring
            :log-obj-of (b1 / give
                            :log-sbj (m2 / man)
		  	    :logical-dative (t1 / woman))
"The ring that the man gave to the woman"


:LOGICAL-SUBJECT-OF (= :LOG-SBJ-OF)

        (m2 / man
          :log-sbj-of (b1 / give
                          :log-obj (t1 / ring)
			  :logical-dative (t1 / woman)))
"The man that gave a ring to the woman"


:MANNER

        (b1 / build
          :patient (t1 / tunnel)
          :manner (b2 / excavate
                    :patient (m1 / mine)))
"The tunnel was built by excavating the mine."


:MEANS (= :INSTRUMENT)

        (r1 / reach
          :patient (h1 / house)
          :means (c1 / car))
"The house is reached by car."


:MOD (= :premod)

        (c1 / car
          :mod (s1 / shift
                 :mod (s2 / stick)))
"Stick shift car"


:MODAL

        (e1 / eat
	  :agent (d1 / dog)
          :patient (b1 / bone)
	  :modal (m1 / may)
	  :mood indicative)
"Dogs may eat bones."

See more examples of semantic inputs that sometimes map to modal verbs below.


:MOOD

        (e1 / eat
	  :agent (d1 / dog)
          :patient (b1 / bone)
	  :mood indicative)
"Dogs eat bones."
        (e1 / eat
	  :agent (d1 / dog)
          :patient (b1 / bone)
	  :modal (m1 / may)
	  :mood indicative)
"Dogs may eat bones."
        (i1 / increase
	  :agent (w1 / wedding)
          :postmod (e1 / exchange
                     :anchor (w2 / "with")
	             :agent (c1 / couple
		                :premod (m1 / more))
	             :patient (r1 / ring)
		     :temporal-locating (y1 / 1988)
	             :mood present-participle)
"Weddings increased, with more couples exchanging rings in 1988."
        (h1 / help
	  :agent I
          :compl (w1 / walk
	             :agent (b1 / baby)
	             :mood infinitive)
"I helped the baby walk."
        (w1 / want
	  :agent I
          :compl (b1 / go
	             :mood infinitive-to)
"I want to go."
        (e1 / eat
	  :agent YOU
          :patient (b1 / bug)
          :mood imperative)
"Eat bugs."
        (s1 / want
	  :agent (c1 / country)
          :compl (f1 / forgive
	             :patient (d1 / debt)
		     :mood past-participle)
"The country wants the debt forgiven."


:NAME

        (s1 / sing
          :agent (p1 / |someone|
                     :name "John"))
"John sang."


:OBJECT

                  (e1 / eat
                     :subject (b1 / boy)
                     :object (b1 / bug)))
"The boy eats bugs."


:OP (= :OP1, :OP2, :OP3, :OP4)

        (a1 / and
          :op (s1 / sing
                 :agent  (b1 / boy))
          :op (d1 / dance
                 :agent  (g1 / girl)))
"The boys sang and the girls danced."


:PATIENT (= :PHENOMENON, :SAYING, :GOAL, :CREATED-ENTITY)

        (e1 / eat
          :patient (b1 / bug))
"Bugs were eaten."
        (s1 / say
          :agent (b1 / boy)
          :patient (e1 / eat
                     :patient (b1 / bug)))
"The boy said that bugs were eaten."


:PATIENT-OF

        (b1 / bug
          :patient-of (e1 / eat
                        :agent (b1 / boy)))
"Bugs that the boy ate"


:POLARITY

        (g1 / go
          :agent (b1 / boy)
          :polarity -)
"The boy did not go."
        (n1 / |necessary<inevitable|
          :domain (g1 / go
                    :polarity -
                    :agent (b1 / boy)))
"The boy must not go."
        (n1 / |necessary<inevitable|
          :polarity -
          :domain (g1 / go
                    :agent (b1 / boy)))
"The boy need not go."


:PREDICATE (= :PRED)

        (w1 / seem
          :subject (p1 / she)
          :pred (b1 / blue))
"She seems blue."
        (w1 / |has the quality of being|
          :subject (p1 / man)
          :pred (b1 / lawyer))
"The man is a lawyer."


:POSTMOD

        (b1 / break
          :postmod (t1 / tradition
                       :anchor (f1 / from)))
"a break from tradition"
        (b1 / rise
	  :agent (p1 / price)
          :postmod (y1 / year
	               :mod (l1 / last)))
"Prices rose last year."


:PREDET

        (b1 / dog
          :predet (a1 / all))
"all the dogs"
        (b1 / dog
          :predet (e1 / every))
"every dog"


:PREMOD

        (b1 / bright
          :premod (v1 / very))
"very bright"
        (b1 / rise
	  :agent (p1 / price)
          :premod (y1 / year
	              :mod (l1 / last)))
"Last year prices rose."


:PRO

        (w1 / win
          :agent (p1 / |someone|
                   :pro i))
"I won."
        (w1 / win
          :agent (p1 / team
                     :pro 3p_pronoun))
"They won."

Note: Inputs can also contain the pronoun directly, as in:

        (h1 / help
	  :subject (w1 / WE)
          :compl (q1 / win
	             :subject THEY)
"We helped them win."


:PUNC (maps to :rightpunc, :leftpunc, :sandwichpunc)

VALUES: comma, colon, semi-colon, period, question_mark, exclamation_mark, dash, longdash, singlequotes, doublequotes, curlybraces, squarebrackets, parentheses, left_single_quote, right_single_quote, etc., ",", ".", "!", etc.

        (s1 / say
	  :punc period
          :agent (b1 / boy)
          :patient (g1 / (h1 / "hello"
                             :punc exclamation_mark)
		       :punc doublequotes))
'The boy said, "hello!".'


:PURPOSE

        (s1 / shout
          :agent (b1 / boy)
          :purpose (g1 / get
                     :patient (h1 / help)))
"The boy shouted to get help."


:QUANT

        (t1 / toy
          :quant 5)
"5 toys"
        (s1 / school
          :anchor (b1 / beyond)
          :quant (bl / block
		     :quant 5))
"5 blocks past the school"


:QUESTION (maps to :topic, :punc question_mark, and :subject-position post-aux)

        (e1 / say
          :agent (w1 / researcher)
          :question (b1 / what))
"What did the researcher say?"
        (e1 / happen
          :agent (w1 / it)
          :question (b1 / often
                        :premod (h1 / how)))
"How often did it happen?"


:QUOTED

        (s1 / say
          :agent (b1 / boy)
          :patient (r1 / rain
                     :quoted +))
"The boy said, 'It rained.'"


:RANGE

        (b1 / become
          :domain (b2 / boy)
          :range (f1 / fish))
"The boy became a fish."


:REASON

        (g1 / go
          :agent (b1 / boy)
          :reason (h1 / hurricane))
"The boy went because of the hurricane."


:RECIPIENT

        (g1 / give
           :agent (j1 / "John")
           :patient (b1 / book)
           :recipient (m1 / "Mary"))
"John gave the book to Mary." "John gave Mary the book."


:RECIPIENT-OF

        (m1 / "Mary"
           :recipient-of (g1 / give
	                     :patient (b1 / book)))
"Mary, who was given the book"


:RESTATEMENT

        (a1 / abdicate
          :agent (p1 / |someone|
                   :name "Nicholas"
                   :restatement (c1 / czar
                                  :gpi (r1 / russia))))
"Nicholas, Czar of Russia, abdicated."


:ROLE-OF-AGENT (= :ROLE)

        (s1 / speak
          :agent (m1 / man)
          :role-of-agent (p1 / president))
"The man spoke as president."
(= :ROLE)


:ROLE-OF-PATIENT

        (u1 / use
          :patient (b1 / barn)
          :role-of-patient (g1 / garage))
"The barn was used as a garage."


:SANS

        (c1 / car
          :sans (w1 / wheel))
"a car without wheels"


:SOURCE

        (c1 / come
          :agent (b1 / boy)
          :source (b2 / beyond
                    :anchor (g1 / galaxy)))
"The boy came from beyond the galaxy."


:SPATIAL-LOCATING

        (r1 / rain
	  :polarity -
          :spatial-locating (m1 / mars))
"It does not rain on Mars."


:SUBJECT

 
       (g1 / go
          :SUBJECT (b1 / boy))
"The boy went."
 
       (g1 / eat
          :voice passive
          :SUBJECT (b1 / bug))
"Bugs were eaten."


:SUBJECT-POSITION (VALUES: default, post-aux, post-vp)

        (e1 / say
          :subject (w1 / researcher)
          :subject-position post-aux
          :punc question_mark
          :topic (b1 / what))
"What did the researcher say?"
        (e1 / say
          :agent (w1 / researcher)
          :subject-position post-vp
          :topic (b1 / be
                     :subject (f1 / fiber)
                     :pred (r1 / resilient)))
"The fiber is resilient, said the researcher."
        (e1 / say
          :agent (w1 / researcher)
          :subject-position default
          :complement (b1 / be
                     :subject (f1 / fiber)
                     :pred (r1 / resilient)))
"The researcher said that the fiber is resilient."


:TEMPLATE

       (a1 :template (f1 / flight
                         :postmod (c1 / l1
			              :anchor from))
           :filler (l1 / "Los Angeles"))
"flights from Los Angeles"


:TEMPORAL-LOCATING

        (s1 / snow
          :temporal-locating (n1 / november))
"It snowed in November."


:THEME

        (e1 / eat
          :patient (w1 / worm)
          :topic (b1 / boy))
"As for the boy, worms were eaten."


:TOPIC

        (e1 / say
          :agent (w1 / researcher)
          :topic (b1 / be
                     :subject (f1 / fiber)
                     :pred (r1 / resilient)))
"The fiber is resilient, the researcher said."
        (e1 / say
          :subject (w1 / researcher)
          :subject-position post-aux
          :punc question_mark
          :topic (b1 / what))
"What did the researcher say?"


:WITHINMOD

        (e1 / eat
	  :withinmod (o1 / often)
          :patient (w1 / worm)
          :agent (b1 / boy))
"The boy often eats worms."
        (e1 / eat
	  :withinmod (s1 / still)
	  :aspect continuous
          :patient (w1 / worm)
          :agent (b1 / boy))
"The boy is still eating worms."



Possible, Obligatory, Likely, Permitted, etc.


The concepts |possible>workable|, |possible<latent|, |permitted|, |obligatory<necessary|, and |necessary>inevitable| are treated specially by the English generator to sometimes introduce modal verbs.

        
(h1 / |possible>workable|
   :domain (a1 / |eat,take in|
              :agent she
              :patient (C1 / |poulet|)))
"She can eat chicken."

Note: If `can' is used in the sense of 'might', please use the concept |possible<latent| as shown in the following example.


        
(h1 / |possible<latent|
   :domain (a1 / |eat,take in|
              :agent she
              :patient (C1 / |poulet|)))
"She might eat chicken."


        
(h1 / |obligatory<necessary|
   :domain (a1 / |eat,take in|
              :agent she
              :patient (C1 / |poulet|)))
"She must eat chicken."


        
(h1 / |necessary>inevitable|
   :domain (a1 / |eat,take in|
              :agent she
              :patient (C1 / |poulet|)))
"She needs to eat chicken."


        
(h1 / |permitted|
   :domain (a1 / |eat,take in|
              :agent she
              :patient (C1 / |poulet|)))
"She may eat chicken."


        
(h1 / |likely>apt|
   :domain (a1 / |eat,take in|
              :agent she
              :patient (C1 / |poulet|)))
"She is likely to eat chicken."


Note: Be careful when mixing modals and negation. Consider the placement of polarity in the following two cases.

        
(h1 / |possible>workable|
   :polarity -
   :domain (a1 / |eat,take in|
              :agent she
              :patient (C1 / |poulet|)))
"She can not eat chicken."

        
(h1 / |obligatory<necessary|
   :domain (a1 / |eat,take in|
              :polarity -
              :agent she
              :patient (C1 / |poulet|)))
"She must not eat chicken."


        
(h1 / |exist,be|
   :polarity -
   :domain (i1 / interlingua
              :mod (p1 / perfect)))
"There is no perfect interlingua."



VERBAL PROPERTIES


        (e1 / eat
	    :person 3s
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The dog eats bones."

        (e1 / eat
	    :person 3p
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The dogs eat bones."

        (e1 / eat
	    :taxis perfect
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The dog has eaten bones."

        (e1 / eat
	    :aspect continuous
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The dog is eating bones."

        (e1 / eat
	    :voice passive
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The bone was eaten by the dog."

        (e1 / eat
	    :taxis perfect
	    :aspect continuous
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The dog has been eating bones."

        (e1 / eat
	    :aspect continuous
	    :voice passive
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The bone was being eaten by the dog."

        (e1 / eat
	    :taxis perfect
	    :voice passive
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The bone has been eaten by the dog."

        (e1 / eat
	    :taxis perfect
	    :aspect continuous
	    :voice passive
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The bone has been being eaten by the dog."

        (e1 / eat
	    :tense past
	    :taxis perfect
	    :aspect continuous
	    :voice passive
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The bone had been being eaten by the dog."

        (e1 / eat
	    :modal may
	    :taxis perfect
	    :aspect continuous
	    :voice passive
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"The bone may have been being eaten by the dog."

        (e1 / eat
	    :mood infinitive
	    :taxis perfect
	    :aspect continuous
	    :voice passive
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"the bone to have been being eaten by the dog"

        (e1 / eat
	    :mood present-particple
	    :taxis perfect
	    :aspect continuous
	    :voice passive
            :logical-subject (d1 / dog)
            :logical-object (b1 / bone))
"the bone having been being eaten by the dog"