## Natural Language Toolkit: sem0.fcfg ## ## Feature-based grammar that divides the semantics for each element ## into two pieces: the core semantics, with path ('SEM','CORE'), and a set of ## binding operators, with path ('SEM','BO'). Each binding operator is encoded ## as a lambda-calculus expression , specifying ## that <@var> is an individual variable that should be instantiated, ## and is an expression that can bind that variable. ## ## In order for this grammar to generate the correct results, all ## variables of the form <@var> must be instantiated (i.e., replaced ## by unique new variables) whenever they are used. This can be ## accomplished by using the InstantiateVarsChart class when parsing. ## ## Author: Edward Loper , ## Ewan Klein ## URL: ## For license information, see LICENSE.TXT %start S ## Grammar summary: ## S -> NP VP ## VP -> TV NP | IV ## NP -> Det N | proper nouns... ## TV -> transitive verbs... ## IV -> intransitive verbs... ## Det -> determiners... S[SEM=[CORE=, BO={?b1+?b2}]] -> NP[SEM=[CORE=?subj, BO=?b1]] VP[SEM=[CORE=?vp, BO=?b2]] VP[SEM=[CORE=, BO={?b1+?b2}]] -> TV[SEM=[CORE=?v, BO=?b1]] NP[SEM=[CORE=?obj, BO=?b2]] VP[SEM=?s] -> IV[SEM=?s] NP[SEM=[CORE=<@x>, BO={{}+?b1+?b2}]] -> Det[SEM=[CORE=?det, BO=?b1]] N[SEM=[CORE=?n, BO=?b2]] # Lexical items: Det[SEM=[CORE=<\Q P.exists x.(Q(x) & P(x))>, BO={/}]] -> 'a' N[SEM=[CORE=, BO={/}]] -> 'dog' | 'cat' | 'mouse' IV[SEM=[CORE=<\x.bark(x)>, BO={/}]] -> 'barks' | 'eats' | 'walks' TV[SEM=[CORE=<\x y.feed(y,x)>, BO={/}]] -> 'feeds' | 'walks' NP[SEM=[CORE=<@x>, BO={}]] -> 'john' | 'alex'