| Aim: |
| To describe a language for representing logical forms - that is, intermediate representations on the way to transforming a parse tree into the final meaning representation. Logical forms must be able to encode possible ambiguities of meaning of a particular parse of a sentence. |
| Keywords: co-agent, compositional semantics, exists, experiencer, failure of substitutivity, FOPC, forall, instrument, logical form, logical operator, modal, MOST1, patient, PLUR, predicate operator, semantics, substitutivity, term, THE, thematic role, theme, victim |
| Plan: |
|
| The pig grunted ... |
| The pig grunted | |
| at the feminist. |
| The pig grunted | |
| at the demonstrator. |
| The pig grunted | |
| at the farmer. |
pig = { pig-animal, male-chauvinist-pig, police-person }
Jack ran the race
Is Jack in charge of the race (as in Fred ran the company) or did he participate in it (as in Harry ran from the burning house)?
| referential ambiguity: | Jon is angry with Jim. He bites him. | |
| structural ambiguity: | Happy cats and dogs live on the farm. | syntactic structure |
| Every man loves a woman. | semantic structure | |
| there can be mixes: | The major exhibits age. |
This section defines a formal language of logical forms, resembling FOPC (first order predicate calculus):
| The main purpose of the lower case, and the number "1", in fido1, jack1, and bites1, is to distinguish between the words "Fido", "Jack", and "bites" and the semantic symbols fido1, jack1, and bites1. If we needed to distinguish between different word senses, as we might with the word "dog", we would use dog1, dog2, dog3, etc. |
Each predicate has an associated number of arguments - bites1 is binary (unary = 1 argument; ternary = 3 arguments; n-ary = n arguments).
bites1(fido1, jack1) - Fido bites Jack
dog1(fido1) - Fido is a dog.
More complex propositions can be constructed using logical operators:
not(loves1(sue1, jack1))
(& bites1(fido1, jack1), dog1(fido1))
Note that and does not always "translate" as logical & - e.g. it may suggest temporal sequence: I went home and had a drink compared to I had a drink and went home.
Variables are introduced here, as in FOPC.
However variables in logical form language persist beyond the "scope" of the quantifier.
A man came in. He went to the table.
The first sentence introduces a new object of type man1. The He in the second sentence refers to this object.
NL quantifiers are typically restricted in the range of
objects that the variable ranges over. In Most dogs bark
the variable in the most1 quantifier is restricted to dog1 objects:
(most1 D1 : (dog1 D1) (barks1 D1))
Note that D1 is a variable.
the and a give rise to important NL quantifiers - the dog barks has logical form
the(X, dog1(X), barks1(X))
The schema for this is: the(X, Restriction on X, Proposition about X)
which would be true only if we can determine a unique dog in context, and that dog barks. How we find the unique dog is discussed in the section on Reference.
A new type of thing called a predicate operatoris introduced that takes a predicate as an argument and produces a new predicate.
For plurals, plur: if dog1 is true of any dog, then the predicate plur(dog1) is true of any set of dogs with more than one member:
the(X, plur(dog1)(X), barks1(X)).
believe1(sue1, happy(jack1)).
Modal operators may exhibit failure of substitutivity:
jack1 may = john22 (i.e. the individual known as Jack may also be called John, e.g. by other people)
However, Sue believes John is happy may not be true, e.g. because Sue may not know that jack1 = john22.
pres(sees1(john1, fido1)) - John sees Fido
past(sees1(john1, fido1)) - John saw Fido
fut(sees1(john1, fido1)) - John will see Fido
Again, substitutivity may fail.
john1 may = minister1, and past(owns1(john1, fido1)) may be true, but past(owns1(minister1, fido1)) can still be false because John was not minister when he owned Fido.
⇒ OWNS1(o1, (NAME m1 'Mary'), (THE p1 PIZZA))
⇒ OWNS1(o1, NAME(m1, 'Mary'), THE(p1, PIZZA))
⇒ owns1(O1, name(M1, 'Mary'), the(P1, pizza))
the(B1, (or(ball_dance(B1), ball_sphere(B1))), past(watch1(sue1, B1)))
loves1(every<C1, child1> <a(P1, pet1(P1)>))
every(C1, child1(C1), a(P1, pet1(P1), loves1(C1, P1)))
... For every child there is a pet, and the child loves their pet.
a(P1, pet1(P1), every(C1, child1(C1), loves1(C1, P1)))
... There is a single pet in the world, and every child loves that pet.
Abbreviation: every<C1, child1>= every(C1, child1(C1))
not(run1)(every<C1, child1>), encompassing
not(every(C1, child1(C1), run1(C1))) and
every(C1, child1(C1), not(run1(C1))).
name(Variable, the_name): for example John ran becomes
past(run1)(name(J1, "John")).
pro(Variable, some_proposition_restricting_the_pronoun).
Mary liked him becomes
past(like1)(name(M1, 'Mary'), pro(M2, male1(M2)))
Here male1 is the sense restricting proposition for the pronouns he and him.
| 1. | exists(E1, | break(E1, name(J1, "John"), pro(I1, neuter1)) |
| 2. | exists(E1, | &(break(E1, name(J1, "John"), pro(I1, neuter1)), |
| instr(E1, the<H1, hammer1>))) |
| 2'. | exists(E1, | &(break1(E1), |
| agent(E1, name(J1, 'John')), | ||
| theme(E1, pro(I1, neuter1)), | ||
| instr(E1, the<H1, hammer1>))) |
| 2''. | break1(E1, | agent[name(J1, 'John')], |
| theme[pro(I1, neuter1)], | ||
| instr[the(<H1, hammer1>)]) |
Strictly the break1 should be past(break1).
past(unhappy1)(name(M1, 'Mary'))
but how do we handle modifiers like in the meeting?
| past(unhappy1)(S, | experiencer[name(M1, 'Mary')], |
| at-loc[the<M2, meeting1>]) |
roles related to at-loc: on-loc, in-loc, under-loc)
from-loc (e.g. from here)
to-loc (to the ground)
path (along the gorge).
to-poss (gave a book to John)
from-poss
at-poss(John owns a book).
at-time
from-time
to-time.
at-value
from-value
to-value(The temperature reached 43 degrees).
experiencer, already met, for when the subject is not acting
(John believed it was raining)
beneficiary (Mary bought a present for her mother)
co-agent (Mary lifted the table with her sister)
[Father is pushing heavy trolley along back of supermarket ...]
Mother: You go and get the ice-cream cones for Daddy.
3-year-old: No! They're for meeeee!
The mother means that "Daddy" will benefit by not having to push the trolley down the isle to the ice-cream cones; the child is thinking about the ultimate benefit of getting to eat the (filled) ice-cream cones.
| assert(past(eat1)(E1, | agent[the<M1, man1>], |
| theme[a<P1, peach1>])) |
| (yn_query(past(eat1)(E1, | agent[the<M1, man1>], |
| theme[a<P1, peach1>])) |
| command(eat1(E1 | theme[the<P1, peach1>])) |
| who | wh(P1, person1) |
| what | wh(P1, anything1) |
| which dog | wh(P1, dog1) |
and extra quantifiers how_many and how_much
| wh_query(past(eat1)(E1, | agent[the<M1, man1>] |
| theme[wh(W1, physobj)])) |
e.g. The man who ate a peach left.
| assert( | ||
| past(leave1)(L1, | ||
| agent[the<M1, (& | man1(M1), | |
| past(eat1)(E2, | ||
| agent[M1], | ||
| theme[a<P1, peach1>]))])) |
| Summary: Semantics and Logical Form |
| We have described a logical form language that includes terms, predicates, propositions, logical operators, quantifiers (including special NL quantifiers such as THE), and shown how this language can be used to represent ambiguous sentences. |
CRICOS Provider Code No. 00098G
Copyright (C) Bill Wilson, 2009, except where another source is acknowledged.