W3C home > Mailing lists > Public > public-owl-dev@w3.org > July to September 2008

Re: owl:TopObjectProperty in property chains?

From: Jeff Thompson <jeff@thefirst.org>
Date: Tue, 26 Aug 2008 21:51:49 -0700
Message-ID: <48B4DD65.1040409@thefirst.org>
To: public-owl-dev@w3.org

Uli Sattler wrote:
 >
 > On 26 Aug 2008, at 16:50, Jeff Thompson wrote:
 >
 >>
 >> Uli Sattler wrote:
 >> >>  In
 >> >> other words, suppose you have the OWL 2 axiom:
 >> >>
 >> >> ObjectProperty: childRelatedToBrother
 >> >>  SubPropertyChain: hasParent o owl:TopObjectProperty o hasBrother
 >> >>
 >> >> would that be the same as this rule:
 >> >> hasParent(x, y) ^ hasBrother(w, z) -> childRelatedToBrother(x, z)
 >> >>
 >> >> In other words, the parent of x does not need to be the same as the brother of z.
 >> >>
 >> >
 >> > Now this example looks very strange indeed: could you explain to us what the idea behind it 
is? Cheers, Uli
 >>
 >> I'm trying to fill out the table of combinations of variables for rules
 >> which can be converted to axioms without variables.  You already have:
 >>
 >> hasParent(x, y) ^ hasBrother(y, z) -> hasUncle(x, z)
 >>
 >> and
 >>
 >> hasPerformer(x, y) ^ loves(y, y) -> hasPrimadonna(x, y)
 >>
 >> How about this one:
 >>
 >> hasParent(x, y) ^ ownsCastle(y, z) -> hasRichParent(x, y)
 >>
 >
 > hm, in this case, I would rather add the following axiom:
 >
 > hasParent  some (owns some Castle)  subClassOf
 > HasRichParent
 >
 > or rather
 >
 > (owns some Castle)  subClassOf Rich
 >
 > hasParent  some Rich subClassOf
 > HasRichParent

The rule "hasParent(x, y) ^ ownsCastle(y, z) -> hasRichParent(x, y)" is trying
to define the property hasRichParent, but in both these examples, HasRichParent
is a class, not a property (unless I don't understand the notation).

 >> Notice that the consequent has (x, y), not (x, z) so that z is unbound.  I think this
 >> can done by turning ownsCastle(y, z) into a class description for y like OwnsCastle(y) with
 >> a someValuesFrom restriction on ownsCastle
 >>
 >> Class: OwnsCastle  SubClassOf: ownsCastle some owl:Thing
 >>
 >> Then the rule becomes one which can be converted to OWL:
 >>
 >> hasParent(x, y) ^ OwnsCastle(y) -> hasRichParent(x, y)
 >>
 >
 >> You see what I'm getting at.  In general, I'm interested in the way that
 >> "Rewriting Rules into SROIQ Axioms" turns
 >> rules with variables into axioms without variables.
 >
 > it's described in the papers mentioned earlier...but I think have a question in mind but you 
don't want to go through the algorithm's details?

I am interested in the algorithm details but fear I don't have the proper
context for what I was reading.  "Tight Integration of Description Logics and Disjunctive Datalog"
by Rosati talks about integrating DL database with a Datalog rules engine
but you are still expected to write the rules in Datalog.  However,
"Rewriting Rules into SROIQ Axioms" was the first place I heard about
"rules can be directly embedded into the knowledge base (KB) so
we do not need a rule format standard".  This is so compelling to me
but I don't have the background to know if people have been pursuing this
goal directly for years, or if they haven't whether that's because they
didn't think of it, or believed it is not possible.
Received on Wednesday, 27 August 2008 04:52:24 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:56 GMT