With slides borrowed from Jason Eisner Semantics CS 224n / Lx 237 Tuesday, May 11 2004 With slides borrowed from Jason Eisner
Objects Three Kinds: Boolean – semantic value of sentences Entities Objects, NPs Maybe space / time specifications Functions Predicates – function returning a boolean Functions might return other functions Functions might take other functions as arguments.
Nouns and their modifiers expert g expert(g) big fat expert g big(g) fat(g) expert(g) But: bogus expert Wrong: g bogus(g) expert(g) Right: g (bogus(expert))(g) … bogus maps to new concept Baltimore expert (white-collar expert, TV expert …) g Related(Baltimore, g) expert(g) Or with different intonation: g (Modified-by(Baltimore, expert))(g) Can’t use Related for that case: law expert and dog catcher = g Related(law,g) expert(g) Related(dog, g) catcher(g) = dog expert and law catcher
Modifiers continued Non-intersective adjectives overpriced(in(paloalto)(house)) in(paloalto)(overprice(house)) Adjectives denotation depend precisely on what they are modifying.
Compositional Semantics We’ve discussed what semantic representations should look like. But how do we get them from sentences??? First - parse to get a syntax tree. Second - look up the semantics for each word. Third - build the semantics for each constituent Work from the bottom up The syntax tree is a “recipe” for how to do it
Compositional Semantics Add a “sem” feature to each context-free rule S NP loves NP S[sem=loves(x,y)] NP[sem=x] loves NP[sem=y] Meaning of S depends on meaning of NPs NP V loves VP S x y loves(x,y) NP the bucket V kicked VP S x died(x)
Compositional Semantics Instead of S NP loves NP S[sem=loves(x,y)] NP[sem=x] loves NP[sem=y] might want general rules like S NP VP: V[sem=loves] loves VP[sem=v(obj)] V[sem=v] NP[sem=obj] S[sem=vp(subj)] NP[sem=subj] VP[sem=vp] Now George loves Laura has sem=loves(Laura)(George) In this manner we’ll sketch a version where Still compute semantics bottom-up Grammar is in Chomsky Normal Form So each node has 2 children: 1 function & 1 argument To get its semantics, apply function to argument!
START Sfin NP Punc . VPfin Det Every N nation T -s VPstem Vstem want Sinf NP George VPinf T to VPstem Vstem love NP Laura
the meaning that we want here: how can we arrange to get it? START Sfin NP Punc . VPfin Det Every N nation T -s VPstem loves(G,L) Vstem want Sinf the meaning that we want here: how can we arrange to get it? NP George VPinf T to VPstem Vstem love NP Laura
apply to G to yield the desired blue result? (this is like division!) START Sfin NP Punc . VPfin Det Every N nation T -s VPstem loves(G,L) Vstem want Sinf what function should apply to G to yield the desired blue result? (this is like division!) G NP George VPinf T to VPstem Vstem love NP Laura
loves(G,L) START Sfin NP Punc . VPfin Det Every N nation T -s VPstem Vstem want Sinf x loves(x,L) G NP George VPinf T to VPstem Vstem love NP Laura
loves(G,L) x loves(x,L) START Sfin NP Punc . VPfin Det Every N nation VPstem loves(G,L) Vstem want Sinf x loves(x,L) G NP George VPinf a a x loves(x,L) T to VPstem Vstem love NP Laura We’ll say that “to” is just a bit of syntax that changes a VPstem to a VPinf with the same meaning.
loves(G,L) START Sfin NP Punc . VPfin Det Every N nation T -s VPstem Vstem want Sinf x loves(x,L) G NP George VPinf a a x loves(x,L) T to VPstem y x loves(x,y) L Vstem love NP Laura
x loves(x,L) x loves(x,L) y x loves(x,y) START Sfin NP Punc . VPfin x wants(x, loves(G,L)) Det Every N nation T -s VPstem by analogy loves(G,L) Vstem want Sinf x loves(x,L) G NP George VPinf x loves(x,L) T to VPstem a a Vstem love NP Laura L y x loves(x,y)
x loves(x,L) x loves(x,L) yx loves(x,y) START Sfin NP Punc . VPfin x wants(x, loves(G,L)) Det Every N nation T -s VPstem by analogy loves(G,L) Vstem want Sinf y x wants(x,y) x loves(x,L) G NP George VPinf x loves(x,L) T to VPstem a a Vstem love NP Laura L yx loves(x,y)
x present(wants(x, loves(G,L))) START x present(wants(x, loves(G,L))) Sfin NP Punc . VPfin x wants(x, loves(G,L)) Det Every N nation T -s VPstem v x present(v(x)) Vstem want Sinf NP George VPinf T to VPstem Vstem love NP Laura
present(wants(every(nation), loves(G,L)))) START Sfin NP Punc . every(nation) VPfin x present(wants(x, loves(G,L))) Det Every N nation T -s VPstem Vstem want Sinf NP George VPinf T to VPstem Vstem love NP Laura
present(wants(every(nation), loves(G,L)))) START Sfin NP Punc . every(nation) VPfin present(x wants(x, loves(G,L))) Det Every N nation T -s VPstem n every(n) Vstem want Sinf nation NP George VPinf T to VPstem Vstem love NP Laura
present(wants(every(nation), loves(G,L)))) START Sfin NP Punc . s assert(s) VPfin Det Every N nation T -s VPstem Vstem want Sinf NP George VPinf T to VPstem Vstem love NP Laura
In Summary: From the Words START assert(present(wants(every(nation), loves(G,L)))) Sfin NP Punc . s assert(s) VPfin Det Every N nation T -s VPstem every nation Vstem want Sinf v x present(v(x)) NP George VPinf y x wants(x,y) G T to VPstem a a Vstem love NP Laura y x loves(x,y) L
So now what? Now that we have the semantic meaning, what do we do with it? Huge literature on logical reasoning, and knowledge learning. Reasoning versus Inference “John ate a Pizza” Q:What was eaten by John? A: pizza “John ordered a pizza, but it came with anchovies. John then yelled at the waiter and stormed out.” Q: What was eaten by John? A: nothing
using the own predicate. Problem 1a Write grammar rules complete with semantic translations that could be added to the grammar fragment, which will parse the above sentence and generate a semantic representation using the own predicate.