;;; -*- Mode: Lisp; Syntax: Common-Lisp; -*- (S o:sem) (VP i:subject io:tense o:sem) (NP+VP i:tense o:sem) (NP o:sem) (V-args i:subj i:tense o:sem) (define-language :grammar '(((S (Report $v)) -> (NP+VP $tense $v)) ((S (Acknowledge $a)) -> (Acknowledge $a)) ((S (Command $c)) -> (VP self $tense $v)) ((S (Compound $s1 $s2)) -> (S $s1) '-- (S $s2)) ((S (Question $v)) -> (Aux $tense) (NP+VP $tense $v)) ((S (Question $v)) -> (Be $tense) (NP $subj) (V-args $subj $tense $v)) ((NP+VP $tense $v) -> (NP $subj) (VP $subj $tense $v)) ((VP $v) -> (Aux $tense) (VP $subj $tense $v)) ((VP $v) -> (Verb+args $v) (Adverb $v)) ((Verb+args $v) -> (Verb/i $v)) ((Verb+args $v) -> (Verb/t $v) (NP $obj) (:test (object $obj $v))) ((NP $n) -> (Pronoun $n)) ((NP $n) -> (Article) (Noun $n)) ((NP $n) -> (Noun $n)) ) :lexicon '(((Acknowledge $a) => (yes true) (no false) (maybe unknown) (huh unparsed)) ((Verb/t $rel) => (go move) (move move) (shoot shoot) (kill shoot) (grab grab) (release release)) #|| ($verb $subject $tense $object $loc) (verb down (down $subj $tense nil $loc)) (verb left (left $subj $tense nil $loc)) (verb down (right $subj $tense nil $loc)) (verb down (up $subj $tense nil $loc)) (verb shoot (shoot $subj $tense $obj $loc)) (verb go ( $subj $tense $obj $loc)) (verb shoot (shoot $subj $tense $obj $loc)) (verb shoot (shoot $subj $tense $obj $loc)) ||#