Adrian, (01)
That is just a notational method for burying the phrase
"very likely" in the name of the predicate: (02)
AW> someperson is a Swedish national
> it is very likely that thatperson is tall
> 
> it is likely that thatperson is blond (03)
That is equivalent to writing (04)
(Ax)(is_a_Swedish_national(x) & it_is_very_likely_that_is_tall(x)
> it_is_very_likely_that_is_blond(x)) (05)
I have said that your method of writing rules with very readable
predicate names is useful. But it's not a general solution to
the question of how to deal with probability, fuzzy qualifiers,
etc. (06)
A more general method, which Bob Kowalski proposed for Prolog
many years ago, is to use a metalevel approach. For example,
consider Lotfi's original statement: (07)
LZ> Most Swedes are tall.
> Most tall Swedes are blond.
> Magnus is a Swede (picked at random)
> What is the probability that Magnus is blond? (08)
I'll use the IKL notation, which uses the operator 'that'
for making statements about propositions. Following is
a translation of the three premises to IKL: (09)
(forall (x)
(if (Swedish x)
(gt (ProbabilityOf (that (tall x)) 0.5)) )) (010)
(forall (x)
(if (and (tall x) (Swedish x))
(gt (ProbabilityOf (that (blond x)) 0.5)) )) (011)
(Swedish Magnus) (012)
From the first premise and the third premise, we derive (013)
(gt (ProbabilityOf (that (tall Magnus)) 0.5)) (014)
To go further we have to add some axioms about probability.
The first one is that if a proposition p is true, then its
probability is 1.0: (015)
(forall (p)
(if p (Probability p 1.0)) ) (016)
That allows us to deduce (017)
(Probability (that (Swedish Magnus)) 1.0) (018)
Then we need more axioms for computing the probabilities
of statements combined with various Boolean operators: (019)
(forall (p q x y))
(if (and (Probability p x) (Probability p y)
(Probability (that (and p q)) (* x y))) )) (020)
From this we can conclude that (021)
(gt (Probability (that (and (tall Magnus) (Swedish Magnus)))) 0.5) (022)
Then we need to add another axiom for 'if'. (023)
With this approach, Kowalski showed how to use Prolog to reason
about probabilities, fuzzy logic, and many other kinds of reasoning.
I am not recommending it or opposition it. I'm just showing how
it can be done by using any version of FOL that supports metalevel
statements. (024)
John (025)
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontologforum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontologforum/
Unsubscribe: mailto:ontologforumleave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgibin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontologforum@xxxxxxxxxxxxxxxx (026)
