Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!usc!snorkelwacker.mit.edu!ira.uka.de!rusux1!mark From: mark@adler.philosophie.uni-stuttgart.de (Mark Johnson) Newsgroups: comp.lang.prolog Subject: Question about DCGs and natural language grammars Message-ID: Date: 21 Nov 90 11:01:14 GMT Sender: zrf80385@rusux1.rus.uni-stuttgart.de Distribution: comp Organization: IMS, University of Stuttgart Lines: 73 I have a question about the *conceptualization* of (annotated) context-free grammars implicit in their "standard" DCG translations. Maybe I'm just terribly confused (is this what happens when you worry too much about GB parsing?), in which case maybe someone can point out an obvious mistake I'm making. What's worrying me is this: if we use a DCG grammar to define a relation means/2 true of a string of English words and some representation of its meaning (say, an encoding of a first-order formula), we can prove things like the following: S=[i,saw,a,man,with,a,telescope], means(S,M1), means(S,M2). where M1 represents a meaning where where the man has a telescope, and M2 represents a meaning where the seeing is done with the telescope. That is, from our axioms we can prove that S means M1 *and* S means M2. The problem is that in the real world it *doesn't*: the English sentence S means M1 *or* M2. There seem to be two ways out of this dilemma. First, you can deny that natural language ambiguity really leads to disjunctive, rather than conjunctive, consequents. But I think that this problem arises in a more serious manner in other cases. For example, suppose we try to write a predicate presupposes/2, which is true of a string of English words and a formula expressing one of the things it presupposes, e.g. S = [the,man,saw,the,woman], presupposes(S,exists(X,man(X))), presupposes(S,exists(Y,woman(Y))), ... presupposes(Sentence,Presupp) :- parse(Sentence,Tree), presupp(Tree,Presupp). But now the ambiguity problem comes back with a vengance. If we try to find the presuppositions of an ambiguous sentence, say, "I saw the man from the hill with the telescope", we can prove that both the existence of the man from the hill, and also the existence of the hill with the telescope are presupposed, whereas these are alternative presuppositions corresponding to alternative parses of the ambiguous sentence. Of course there are a number of technical fixes for this problem, so in practise there is no problem here. But I think there is a deeper issue here -- why doesn't the straight-forward approach sketched above work? Second, you can admit that we really do want to get disjunctive consequents. (This takes us out of Horn clause logic, but disjunctive logic programming is possible). Lexical ambiguity can be dealt with by disjunctive axioms; e.g. the lexical entry for an ambiguous word like "ball" might be something like: lex(ball,n,X^(toy(X)&round(X)&...)) ; lex(ball,n,X^(dance(X)&social-event(X)&...)). Such "disjunctive" axioms for ambiguous lexical entries express the intuition that an ambiguous word means either one thing or another thing, but not both things simultaneously. But I don't know how to write axioms that represent an (annotated) CFG that result in syntactic ambiguities producing disjunctive consequents. (Any suggestions?) Thanks, Mark Johnson mj@cs.brown.edu mark@adler.philosophie.uni-stuttgart.de