Capturing "Unless explcitly stated"

"Rangarajan Krishnamoorthy" <[email protected]> Wed, 2 Jul 2008 14:03:30 +0530
Newsgroups gmane.comp.ai.powerloom
Message-ID <000a01c8dc1e$53ca5e00$0201a8c0@COM>
Hi,


Consider the following KB in PowerLoom:

 

(defconcept BodyPart)

(defconcept BodyRegion)

 

(defrelation part-of ((?part1 BodyPart) (?part2 BodyPart))) 

(defrelation region-of ((?part BodyPart) (?region BodyRegion)))    

 

(assert (part-of abdomen trunk))

(assert (region-of abdomen abdominal-region))

 

(assert (part-of abdominal-wall abdomen))

 

At this point, I want to state a rule: 

"if A is not explicitly known to be in the region-of B, then A is in the region of the part C that contains A"

 

That is, in the above KB, I want to infer:  (region-of abdominal-wall abdominal-region)

 

However, if we explicitly state the following:

(assert (region-of abdominal-wall something-else))

 

then, we should not conclude: (region-of abdominal-wall abdominal-region), but only (region-of abdominal-wall something-else)

 

I defined the following rule:

(assert 

    (=> (and (region-of ?part ?region) (part-of ?another ?part))

        (region-of ?another ?region)))

 

But this does not work correctly because it allows us to infer both the following:

(region-of abdominal-wall abdominal-region)

(region-of abdominal-wall something-else)

 

How do we capture the effect of "unless stated explicitly"?

 

Regards,

Rangarajan

_______________________________________________
powerloom-forum mailing list
[email protected]
http://mailman.isi.edu/mailman/listinfo/powerloom-forum