350 likes | 433 Views
CAS LX 502 Semantics. 3a. A formalism for meaning (cont ’ d) 3.2, 3.6. Recap. “F1” = Rules for generating and interpreting a small fragment of English. Syntax: Phrase structure rules Reviewed on the next slide
E N D
CAS LX 502Semantics 3a. A formalism for meaning (cont’d) 3.2, 3.6
Recap • “F1” = Rules for generating and interpreting a small fragment of English. • Syntax: Phrase structure rules • Reviewed on the next slide • Idea: All and only sentences generated by the PS rules are part of the language (F1, approximating English). • Interpretation: [ ]M • Goals: • Assign an interpretation to every node in the structure • Arrive at the interpretation compositionally • Interpretation is assigned with respect to a model (effectively, the facts about the world: The players [U] and their properties [F]).
F1: The syntax • Phrase Structure rules (the syntax): • To be revised…
Using the syntax of F1 • Starting with S, we can “rewrite it” using the rules of the syntax until we get to a structure such as this one. • S N VP • N Pavarotti • VP Vi • Vi is boring • S N VP • What is the interpretation of S? Put another way, what is [S]M? S VP N Pavarotti Vi is boring
The interpretation of S • We developed a semantic rule that tells us what the interpretation of [S N VP] is: • [S N VP]M = true iff [N]M [VP]M • Great, are we done? Well, we would be, if we knew what [N]M and [VP]M were. • What’s [N]M? • Since meaning is compositional and N does not branch, [N]M is the same as [Pavarotti]M. • So, what’s [Pavarotti]M? S VP N Pavarotti Vi is boring
The interpretation of S • So far: • [S N VP]M = true iff [N]M [VP]M • [N]M = [Pavarotti]M • What’s [Pavarotti]M? • We have a semantic rule that tells us that: • [Pavarotti]M = F(Pavarotti) • That is, the interpretation of a name is the individual from the model M that the “pointing” (or “naming”) function F designates. • F(Pavarotti) in this model is the individual PAVAROTTI. • So [Pavarotti]M = PAVAROTTI. • So [N]M = PAVAROTTI. S VP N Pavarotti Vi is boring [Pavarotti]M =F(Pavarotti) =PAVAROTTI
The interpretation of S [N]M = PAVAROTTI • So, given that, we have: • [S N VP]M = true iff PAVAROTTI [VP]M • Now, what is [VP]M? • Since meaning is compositional and VP does not branch, [VP]M is the same as [Vi]M. • So, what is [Vi]M? • Since meaning is compositional and VP does not branch, [Vi]M is the same as [is boring]M. • We have a semantic rule that tells us that [is boring]M is the set of individuals from the model M that the function F designates. • So [is boring]M = F(is boring). S VP N Pavarotti Vi is boring
The interpretation of S [N]M = PAVAROTTI • So far: • [S N VP]M = true iff PAVAROTTI [VP]M • [VP]M = [Vi]M • [Vi]M = [is boring]M • [is boring]M = F(is boring) • Now, what is F(is boring)? • It will depend on the model—who are the boring individuals in this particular model? F(is boring) will be a set of individuals that are boring in this model. • On one particular model, perhaps F(is boring)= {PAVAROTTI, LOREN} • In general: • F(is boring) = {x: x is boring in M} S VP N Pavarotti Vi is boring [is boring]M =F(is boring) ={x: x is boring in M}
The interpretation of S [N]M = PAVAROTTI • Now, we’re basically done. • F(is boring) = {x: x is boring in M} • [is boring]M = F(is boring) • [is boring]M = {x: x is boring in M} • [Vi]M = [is boring]M • [Vi]M = {x: x is boring in M} • [VP]M = [Vi]M • [VP]M = {x: x is boring in M} • [S N VP]M = true iff PAVAROTTI [VP]M • [S N VP]M = true iff PAVAROTTI {x: x is boring in M} • As desired. Picking the particular model where {x: x is boring in M} = {PAVAROTTI, LOREN}, [S]M = true. S VP N Pavarotti Vi is boring [is boring]M =F(is boring) ={x: x is boring in M}
Semantic rules of F1 • Summarizing the rules we used so far: • [S N VP]M = true iff [N]M [VP]M • [Pavarotti]M = F(Pavarotti) • [is boring]M = F(is boring) • F(Pavarotti) = the individual in M named by F as “Pavarotti” • F(is boring) = the set of individuals in M that are boring = {x: x is boring in M}
Saving ink and expressing a generalization • Some of these rules are very specific. Rather than add a new rule for each individual and predicate… • [Bond]M = F(Bond) • [Loren]M = F(Loren) • [is hungry]M = F(is hungry) • [is cute]M = F(is cute) • …we can abstract out the pattern here and write a more general rule: • [X]M = F(X) where X is a terminal node (has no children, does not appear on the LHS of a PS rule in the syntax)
The role of F • This perhaps also clarifies the role of F. • F is essentially the thing that translates the object language (English, say) into the metalanguage in terms of the model. • F is responsible for assigning the interpretations to the terminal nodes. • The semantic rules are responsible for assigning the interpretations to the combinations.
Continuing with the semantic rules • We can also generate trees with Neg that we need to assign an interpretation to as well. • Notice that we have written one of the S nodes as S. This is like painting one blue and one red—we just want to be able to refer to each one separately. As far as the rules are concerned, it is just a normal S. • We know what [S]M is, we justjust worked that out. • We know what we want[S]M to be—false when[S]M is true, and true when[S]M is false. S S Neg N VP It is notthe case that Pavarotti Vi is boring
Neg S • Goal: [SNeg S]M = false if [S]M = true, true if [S]M = false. • What interpretation must we assign to [Neg]M to arrive at this result? • Let’s try to make this look like is hungry in a certain sense. A property of truth values, in this case the property of being false. • [Neg]M = {false}
Neg S • Goal: [SNeg S]M = false if [S]M = true, true if [S]M = false. • [Neg]M = {false} • So [Neg]M is a set of truth values (like [is hungry]M is a set of individuals). • Now we can define an interpretation rule very much like our previous [S N VP]M rule. • [S Neg S]M = true iff [S]M [Neg]M
It is not the case thatPavarotti is boring • [S]M = [S NegS]M • [SNeg S]M = true iff [S]M [Neg]M • [Neg]M = {false} • [S]M= true iff PAVAROTTI {x: x is boring in M} • [S]M = true iff[PAVAROTTI{x: x is boring in M}] • [S]M = true iff PAVAROTTI {x: x is boring in M} S S Neg N VP It is notthe case that Pavarotti Vi is boring
Transitive verbs • The syntax of F1 also generates trees with transitive verbs, like likes. • S N VP • VP Vt N • Vt likes • We want to be able to evaluate [SN VP]M the same way whether VP is built from a transitive verb or an intransitive verb. That is, we want [VP]M to be a predicate, a set of individuals in either case.
Transitive verbs • Essentially, we want [likes Bond]M to be a set of those individuals that like Bond in M. • However, we need a definition for [likes]M (we already have one for [Bond]M). It should be something that creates a set of individuals that depends on the individual next to it in the structure. • [VP likes Bond]M = {x: x likes Bond in M}
Transitive verbs • A transitive verb relates two individuals. They stand in an (asymmetrical) relationship. • Suppose that this is expressed in the model as a set of pairs that are involved in the relationship. • For example, if P likes L, L likes B and that’s all the liking in this situation, then F(likes) = { <P,L>, <L,B> } • We could express this as follows, to use a (metalanguage) shorthand: • [likes]M = { <x,y> : x likes y in M }
Transitive verbs • And then, we define a rule that will interpret the VP in a sentence with a transitive verb: • [VP Vt N]M = {x : < x, [N]M > [Vt]M } • If [N]M = Bond, [VPVt N]M is the set containing those individuals who like Bond in M. • For example Loren likes Bond: If in a particular model M1, [likes]M1 = {<P,L>, <L,B>}, then[VP Vt N]M1 = {L}, and [S]M1 = true. • In general, [S]M = true iffF(Loren) {x: <x, F(Bond)> F(likes)}= true iff <F(Loren), F(Bond)> F(likes).
Sentence coordination • We also need a way to interpret or and and. • Two options: New rule for ternary branching and symmetric relations. Or recast as binary branching. S S Conj S N S or VP Neg N VP Loren Vi It is notthe case that Pavarotti Vi is hungry is boring
Thoughts on coordination • Like transitive verbs, or and and express a kind of relation (between truth values, rather than between individuals). • The relation expressed by or and and is symmetrical, order does not seem to affect the relation. • But some transitive verbs are like this too (e.g. resemble). • And we might want to consider if a kind of coordinator—but for if, order does matter. • Let’s consider symmetry an accidental property, due to the definition of the word in question (according to F), and not a property inherent in a new type of semantic combination.
Breaking the structural symmetry • In order to reduce symmetrical and and or to a binary-branching (and therefore necessarily asymmetrical) structure, we modify the syntax slightly: • S S ConjP • ConjP Conj S
Revised structure for or: • Thus: S S ConjP S Conj S Neg N N VP or VP It is notthe case that Pavarotti Vi Loren Vi is boring is hungry
Or • For or we need to consider pairs of sentences. We want S1 or S2 to be false when S1 is false and S2 is false , and true under any other circumstance. • Goal: • [SS1[ConjP or S2 ]]M = true iff [S1]M [S2]M. • The combination occurs in two stages, first with S2, to yield a property then applied to S1.
Or • On the model of transitive verbs, suppose that F(or) is a set of relations between true values: • F(or) = {<true, true>, <true, false>, <false, true>} • And a rule of combination just like that for [VP Vt N]: • [ConjP Conj S]M = {x : < x, [S]M > [Conj]M } • Does it work? • What’s F(and)? • What would be involved in adding if?
Semantic rules of F1 • Summarizing the rules we used so far: • [S N VP]M = true iff [N]M [VP]M • [SS1 Conj S2]M = true iff {[S1]M, [S2]M} [Conj]M • [SNeg S]M = true iff [S]M [Neg]M • [X]M = F(X) where X is a terminal node • F(It is not the case that) = {false} • F(or) = {{true, true}, {false, true}} • F(and) = {{true, true}} • Note the change for and, or, not (ultimately assigned by F)
What we have • We have created a little fragment describing a (very small) subset of English, generating structural descriptions of syntactically valid sentences and providing the means to determine the truth conditions of these sentences. • We did this by formulating a set of syntactic rewrite rules, each accompanied by a semantic rule of interpretation, such that every syntactic step can be interpreted compositionally.
One step more general • Looking over the rules that we have, there are basically just two kinds: • [S N VP]M = true iff [N]M [VP]M • [S S ConjP]M = true iff [S]M [ConjP]M • [S Neg S]M = true iff [S]M [Neg]M • [VP Vt N]M = {x: <x,[N]M> [Vt]M } • [ConjP Conj S]M = {x: <x,[S]M> [Conj]M } • More generally: • [A B]M = true iff [A]M [B]M • (where [B]M is a set of [A]M-type things) • [A B]M = {x: <x,[A]M>} [B]M • (where [B]M is a set of pairs, the second member being an [A]M-type thing) • [ [A] ]M = [A]M • This will cover our other rules… and make it easier to extend our syntax as well.
One step further…? • If we have these rules: • [A B]M = true iff [A]M [B]M • (where [B]M is a set of [A]M-type things) • [A B]M = {x: <x,[A]M> [B]M } • (where [B]M is a set of pairs, the second member being an [A]M-type thing) • [ [A] ]M = [A]M • It feels as if we still have a kind of specific rule: the first looks kind of like a “special case” of the second. But how can we reduce them to one rule? • One option: • Redefine F(is boring) as, e.g., {<Bond,true>,<Loren,false>,…} • Define {true} as true and {false} as false. • Redefine F(likes) as, e.g., {<Bond,<Loren,true>>, <Loren,<Bond,false>>,…} • See how it works? But it’s confusing…
Exploring the option… • The option: • Redefine F(is boring) as, e.g., {<Bond,true>,<Loren,false>,…} • Define {true} as true and {false} as false. • Redefine F(likes) as, e.g., {<Bond,<Loren,true>>, <Loren,<Bond,false>>,…} • What we have to do is, for properties: redefine the set so that there is a pair for each individual, with true or false depending on whether the individual has the property. • But, wait. What we just defined is in fact a function. The first member of the pair is the argument, the second is the return value. • Is-boring(x) = true iff x is boring. • Ah. It would be less confusing if we just wrote it as a function. • F(is boring) = the function f such that f(x)=true iff X is boring (in M) • Or, using the -notation we saw before: • F(is boring) = x[x is boring in M] • This is the same thing as a set of pairs, the first of which is an individual, and second of which is true if the individual is boring in M and false otherwise. But thinking of it as a function is more graspable. It’s something that needs an individual and provides a truth value. Type <e,t>. See where the notation comes from?
Exploring the option… • As for transitive verbs: • Redefine F(likes) as, e.g., {<Bond,<Loren,true>>, <Loren,<Bond,false>>,…} • What we want is a function that applies to the object and returns a property. • A property is a function that applies to an individual and returns a truth value. • F(likes) = y[x[x likes y in M]] • F(is boring) = x[x is boring in M] • Well, that’s much more compact. • So, combining likes with Bond yields: • [likes Bond]M= y[x[x likes y in M]](Bond)= x[x likes Bond in M](the property of liking Bond)
What this buys us • Defining things in terms of functions allows us to reduce our semantic rules to just two: • Functional application:[ab]M = [a]M ([b]M ) or [b]M ([a]M), whichever is defined. • Pass up:[ba]M = [a]M • This will be the basis of F2, which we will define fully next time and then move on to the connection with “theta-roles.” • By the time we’re done, there will be one more semantic rule, to interpret “modification” relations like adjectives and adverbs. • We will also consider an alternative version in terms of “events” and “states” in future classes.