Re: adjective noun first order logic
- From: Jan Burse <janburse@xxxxxxxxxxx>
- Date: Sat, 08 Dec 2007 14:36:26 +0100
David Ullrich schrieb:
Keenlearner wrote:I am doing natural language processing research, I was wondering which
is the correct way of representing "old man John" in first order
predicate calculus, later on this logic will be converted into Prolog
clauses.
old(john) ^ man(john)
old(john) => man(john)
man(john) => old(john)
if you think one is wrong or right please tell me why ?! Thank you
very very much.
None of those is a correct "representation" of "old man John",
because they are all (representations of) _assertions_, and
"old man John" is not an assertion.
If ^ means "and" then "old(John) ^ man(John)" is a correct
representation of the _assertion_ "John is an old man".
That's not the same thing.
I agree with ullrich. "old man john" is not a full sentence
but rather a phrase.
Its an interesting task to give meaning to phrases. And its
an even more interesting task to give compositional meaning
to phrase so that the meaning of a compound phrase
is some composition of the meaning of its components.
We are persuing this task for the german language. Adapting
this to the given phrase I would say at a first guess:
- old: Is an adjective, in our approach we give
to it the meaning age="old"
- man: Is an adjective, in our approach we give
to it the meaning sex="man"
- john: Is a noun, in our approach we give
to it the meaning john=%.
Grammatikally the composition rule for adjektiv noun that
we would have, is now replace "%" in the noun by "adjektive & %".
So we pursue a simplified montague approach. So the result will be:
- old man john:
john=(age="old" & sex="man" & %)
When it comes to sentences we would remove the % and nested
equations give longer variable names:
john_age="old" & john_sex="man"
Why do I tell you all this? Now because the text book approach
is to use FOL with predicates. But I used only the equational
part of FOL, respective FOL with equality.
What is the advantage of using equations instead of predicates?
Simple. You have some builtin background axioms that help
you in doing inferences that you do not have when you are
using predicates. Predicates are a little bit too prudent.
Here is an example:
john is a man and john is a woman
To infer that is contradictory needs some extra axioms about
the predicate man and woman. Something like:
~(woman(x) & man(x))
This could be part of your linguistical knowledge. Like
knowing about antonymis. But if you are using term models
you get this for free. You will have:
sex="woman" & sex="man"
Which will lead to the inference:
"woman"="man"
Which is contradictory, because in the term model you
have f1<>f2 if f1 and f2 are distinct function symbols.
So using predicates is rather clumsy for natural language
processing sometimes. Too prudent to have certain
inferences ready at hand. Which renders extracting predicates
from natural language texts often practically useless.
Best Regards
.
- References:
- adjective noun first order logic
- From: Keenlearner
- Re: adjective noun first order logic
- From: David Ullrich
- adjective noun first order logic
- Prev by Date: Re: predicate in a predicate
- Next by Date: Re: predicate in a predicate
- Previous by thread: Re: adjective noun first order logic
- Next by thread: Re: adjective noun first order logic
- Index(es):
Relevant Pages
|