- From: Jeff Z. Pan <jpan@csd.abdn.ac.uk>
- Date: Tue, 21 Feb 2006 15:42:12 -0000
- To: "Bill Andersen" <andersen@ontologyworks.com>, "Jim Hendler" <hendler@cs.umd.edu>
- Cc: "Minsu Jang" <minsu@etri.re.kr>, "W3C RIF WG" <public-rif-wg@w3.org>
From: "Bill Andersen" <andersen@ontologyworks.com> >> I'm just trying to get people to be very careful about what they >> are claiming -- when we move to RL, we need to be careful about >> what is required for grounding variables (i.e. the rule above would >> be safe if you made it >> Uncle001: hasUncle(?x,?y) :- hasChild(?z,?x) ^ hasSibling(?z,?y) ^ >> Man(?y) ^ Person(?z) ^Person(?y) > > Does this mean "DL safe"? No. DL safe requires all the variables (?x,?y,?z) be evaluated as named individuals. Jeff -- Dr. Jeff Z. Pan (http://www.csd.abdn.ac.uk/~jpan/) Department of Computing Science, The University of Aberdeen > There is a perfectly nice (pre-)existing definition in logic > programming of a "safe rule" by which the above rule (without the > addition of the last two goals) is "safe". > > Just want to make sure we're keeping our terminology clear. > >> This open vs. closed world reasoning can get tricky, and even in >> closed worlds, you have to be careful exactly what you are claiming. > > That's an interesting point and I don't want to get us all off the > track, but let's consider Jim's question again: > >> umm, well, yeah sort of - there is an issue that if I tell you >> Uncle(John, Mary) it is unclear to me that you could conclude from >> the rules above that >> hasChild(?z, Mary) > > Right, if this is the only rule and you're assuming a prolog-like > semantics. Depends on what you want a "definition" of uncle to be > and how much of the classical flavor of that you want to preserve in > your rules. If you want (switching to CLIF syntax with classical > semantics for a second, if you'll allow) the definition to be: > > (forall (x y z) (iff (uncle x y) (and (parent x z) (brother z y))) > > then > > (forall (x y z) (implies (uncle x y) (and (parent x z) (brother z > y))), so > (forall (x y) (implies (uncle x y) (exists (z) (and (parent x z) > (brother z y)))) > > with a skolem, you can turn this latter into two rules (switching > back now to Prology syntax and semantics): > > parent(X,f(X,Y)) :- uncle(X,Y). > brother(f(X,Y),Y) :- uncle(X,Y). > > so if: uncle(mary,john), then > > parent(mary,X), and > brother(X,john) > > both follow. > >> (or that it would be inconsistent for Mary to be in a class of >> people who have no parents) without grounding the assertions (i.e. >> using some sort of safe reasoning) > > Well, aside from such a class being completely uninteresting except > by virtue of being a purely logical construct on top of actually > having parents... :-D > > But seriously, this is, I think, one of the central issues with the > classical vs NAF/CWA, and Jim's point here really illustrates it > well. With languages like OWL-DL, you get classes like "people who > have no parents" for free precisely *because* these languages blur > the line between ontology and logic. In exchange for that blurring, > you get all the classical niceties without having to sweat the > details. Notice, however, that this does not follow from the use of > classical logic. Given something like CL (or OWL-Full), you can > easily delineate your real classes (like people) from your logical > constructions (people with no parents). > > On the rule view, if you need such a class, then you can create it > and axiomatize it. For many, the following would work: > > orphan(X) :- person(X), not child(X,Y) > > If you don't like the NAF-ness of the "no parents" condition, then > use a LP language that includes the classical negation > > orphan(X) :- person(X), neg child(X,Y) > > and, if you want the contrapositive and all that stuff I mentioned > above, you can do that too. > > I don't know what the right answer is in some global sense but I know > it's not as simple as somehow painting the LP folks as being somehow > naive or vague about what they "claim" just because they aren't > making the assumptions that come with the use of (a particular) DL. > > .bill > > > > Bill Andersen (andersen@ontologyworks.com) > Chief Scientist > Ontology Works, Inc. (www.ontologyworks.com) > 1132 Annapolis Road, Suite 104, > Odenton, MD 21113 > Office: 410-674-7600 > Cell: 443-858-6444 > Fax: 410-674-6075 > > > >
Received on Tuesday, 21 February 2006 15:43:01 UTC