Newsgroups: comp.ai.fuzzy
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!pipex!warwick!bsmail!zeus!entpm
From: entpm@zeus.bris.ac.uk (TP. Martin)
Subject: Re: ? How to determine fuzzy truth degree for an induced concept from
Message-ID: <D7xz2M.EJG@info.bris.ac.uk>
Sender: usenet@info.bris.ac.uk (Usenet news owner)
Nntp-Posting-Host: zeus.bris.ac.uk
Organization: University of Bristol, England
X-Newsreader: TIN [version 1.2 PL2]
References: <3np0cn$bss@csi0.csi.UOttawa.CA>
Date: Tue, 2 May 1995 08:18:21 GMT
Lines: 63

G. R. Ad (u061855@csi.uottawa.Ca) wrote:

: I have a question about truth degree of a induced fuzzy relation.

: Let's say we have the following fuzzy fact data.

:         Name    Age     Sex     height  Truth degree
:         ===========================================
:         wang    56      male    185     0.9
:         smith   26      male    198     0.76
:         bob     29      male    190     0.95
:         tom     23      male    200     1.0
:         susan   20      female  185     1.0
:         mary    65      female  180     0.99
:         li      23      male    152     0.95

: Now, a non-fuzzy learning algorithm is applied to this set of data to
: induce a concept of 'strong man', suppose we get the concept as:

: 	All male , young and tall person can be considered as a strong man, 

: This concept can be represented as Prolog Horn clause :

:      strong_man(Name,Age,Sex,Height):- Age = #young, Sex = male, Height = #tall.
: where, #young and #tall are two fuzzy linguistic values
: My question is how to determine the fuzzy truth degree of this induced concept?
: Your valuable information will be highly appreciated.

It seems to me that you need to define what you mean by the table above first.
What exactly does the "truth degree" column represent?
Uncertainty in a data value, I can understand - e.g. if you put #young
where someone's age was not known precisely. I can also understand the idea
os a fuzzy relation - for example, "smith" and "tom" satisfy the
relation "similar_height" to a very high degree, "bob" and "tom" to a lower
degree, etc. This is like a fuzzy set, where elements have
memberships varying from 0 to 1; in a fuzzy relation, the "elements"
are tuples of values like (bob, tom) but the principle is the same.

In the example above, what is the relation satisfied by
 wang    56      male    185
to degree 0.9?

Finally, the rule "strong_man" does not define a relation between name,age,
sex, and height; it is actually a property of "Name" and
should be defined 
	strong_man(Name) :- people_data(Name, #young, male, #tall).

where "people_data" refers to the table you gave above.
But it is not always true that young, tall males are strong, so you
should have some degree of qualification on the rule. My advice
is to use Fril, which can handle fuzzy sets as fundamental data types,
deal with uncertainty in the relation between data, and also manages
uncertainty in rules. If you never use any uncertainty, it reduces
to a standard Prolog system - with a slightly different syntax.

Try
 Baldwin, J. F., Martin, T. P. & Pilsworth, B. W. (1995). 
"FRIL - Fuzzy and Evidential Reasoning in AI"
 Research Studies Press (Wiley). ISBN 0 471 95523 X

which also contains a demo disk for the Mac and WIndows 3.1

Trevor Martin
