W3C home > Mailing lists > Public > public-owl-dev@w3.org > October to December 2007

Re: Inferring Properties based on Types

From: Dmitry Tsarkov <dmitry.tsarkov@gmail.com>
Date: Mon, 1 Oct 2007 16:08:20 +0100
Message-ID: <7b84f3a00710010808x7991abc8te0a67c5a3b61da45@mail.gmail.com>
To: "Evren Sirin" <evren@clarkparsia.com>
Cc: "Michael Schneider" <schneid@fzi.de>, "Ian Horrocks" <horrocks@cs.man.ac.uk>, "Swanson, Tim" <tim.swanson@semanticarts.com>, "Owl Dev" <public-owl-dev@w3.org>
[reply to the list this time]

On 10/1/07, Evren Sirin <evren@clarkparsia.com> wrote:

[skip]

With these modifications we get the
> following set of axioms to express the above rule in OWL 1.1:
>
>     (R4) SubObjectPropertyOf( SubObjectPropertyChain(sibling manman)
> brother)
>     (A1') ReflexiveObjectProperty( manman )
>     (A3) ObjectPropertyDomain( manman Man )
>     (A4) FunctionalObjectProperty( manman )


One could possibly define a macro that would translate a user-friendly
> syntax into this set of axioms (and would generate the a unique property
> like manman for different uses).


I think this wouldn't work as expected. To be more precise, it would
silently introduce additional restrictions to the model. As the semantics of
the construction
          ReflexiveObjectProperty( manman )
is the following GCI
          SubClassOf ( owl:Thing ObjectExistsSelf(manman) )
and we have a domain of the property manman, than the (implicit) axiom
          SubClassOf (owl:Thing, Man)
would be added to the ontology. The same would happen for every other
reflexive property with either range or domain defined. So, every concept in
the ontology would be a Man (in addition to all other supertypes).

Best,
Dmitry.

Cheers,
> Evren
>
> [1] http://webont.org/owl/1.1/owl_specification.html#7
>
>
> On 9/29/07 9:16 AM, Michael Schneider wrote:
> > Hello, Ian!
> >
> > Ian Horrocks wrote on September 16, 2007:
> >
> >
> >> On 15 Sep 2007, at 23:18, Michael Schneider wrote:
> >>
> >>
> >>> Hi, Tim!
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: public-owl-dev-request@w3.org
> >>>> [mailto:public-owl-dev-request@w3.org] On Behalf Of Swanson, Tim
> >>>> Sent: Saturday, September 15, 2007 12:18 AM
> >>>> To: public-owl-dev@w3.org
> >>>> Subject: Inferring Properties based on Types
> >>>>
> >>>>
> >>>> Is there any way in OWL (or in any of the proposed extensions) to
> >>>> express an inference rule like the following:
> >>>>
> >>>> (?x :P ?y)
> >>>> :A(?y)
> >>>> =>
> >>>> (?x :R ?y)
> >>>>
> >>>>
> >>>> For a more concrete example:
> >>>>
> >>>> (?x :hasSibling ?y)
> >>>> :Male(?y)
> >>>> =>
> >>>> (?x :hasBrother ?y)
> >>>>
> >> It isn't possible in either OWL or OWL 1.1.
> >>
> >
> > This is a late response, but it kept me wondering, if there is an easy
> to
> > understand reason for /why/ Tim's rule
> >
> >     (R1) FORALL x,y: sibling(x,y) AND Man(y) ==> brother(x,y)
> >
> > is not possible to express in OWL-1.1. Now, I finally found the time to
> > think about this question more deeply. And, to my surprise, it seems to
> me
> > that there still is a way to make it happen. Can this be the case?
> >
> > My idea is trying to simulate the class 'Man(.)' by a role
> 'manman(.,.)',
> > which is intended to "behave equivalently" to 'Man'. I formalize this
> idea
> > by the the following set of two statements:
> >
> >     (S1) FORALL x: manman(x,x) <==> Man(x)
> >     (S2) FORALL x,y: manman(x,y) ==> x = y
> >
> > By (S1), I try to express that there is a "natural" one-to-one
> > correspondence between instances of class 'Man', and "loop" instances of
> > role 'manman' (by "loop" I mean role instances of the form
> 'manman(x,x)').
> > And (S2) is meant to express that (S1) already fully specifies the
> 'manman'
> > role.
> >
> > Using (S1), I can restate Tim's original rule (R1) in the following way:
> >
> >     (R2) FORALL x,y: sibling(x,y) AND manman(y,y) ==> brother(x,y)
> >
> > And I claim (see below for my argumentation) that from (S2) it follows
> that
> > (R2) is equivalent to:
> >
> >     (R3) FORALL x,y: [ EXISTS z: sibling(x,z) AND manman(z,y) ] ==>
> > brother(x,y)
> >
> > Then, (R3) can be translated into an OWL-1.1 "sub property chain":
> >
> >     (R4) SubObjectPropertyOf( SubObjectPropertyChain(sibling manman)
> brother
> > )
> >
> > And as you told me in a previous mail about the "uncle" problem, I am
> really
> > allowed to build such complex sub role chains, where the super role,
> > 'brother' here, may be different from the chained roles, 'sibling' and
> > 'manman' here.
> >
> > BTW: In this mail, I will always use for OWL-Axioms the (hopefully :))
> most
> > current functional syntax and semantics as specified in [1].
> >
> > So, /if/ my simulation of class 'Man' by role 'manman' is adequate, and
> /if/
> > I were able to translate the statement set {(S1),(S2)} into an
> equivalent
> > OWL-1.1 axiom set {A1,...,An}, /then/ I were able to express Tim's rule
> (R1)
> > as the OWL-1.1 axiom set {(R4),A1,...,An}.
> >
> > Before I further discuss this question, I will first try to give an
> argument
> > for my claim that from (S2) I can infer the equivalence of (R2) and
> (R3).
> > For this to be true, AFAICS it suffices to show that the predicates p
> and q,
> > defined by
> >
> >     p(x,y) := sibling(x,y) AND manman(y,y)
> >     q(x,y) := EXISTS z: sibling(x,z) AND manman(z,y)
> >
> > are equal under the condition (S2). This seems to be the case:
> >
> >     * Case "(S2) ==> FORALL x,y: [p(x,y) ==> q(x,y)]": Given arbitrary
> > instances x and y, for which sibling(x,y) and manman(y,y) both hold. I
> > define z := y, which provides me the existence of some z, for which both
> > sibling(x,z) and manman(z,y) hold. (Note that this direction of the
> argument
> > did not even use condition (S2)).
> >
> >     * Case "(S2) ==> FORALL x,y: [q(x,y) ==> p(x,y)]": Given arbitrary
> > instances x and y, and let's further assume that some instance z exists,
> for
> > which sibling(x,z) and manman(z,y) both hold. Then we can conclude from
> (S2)
> > that z = y. Hence, both sibling(x,y) and manman(y,y) hold.
> >
> > Thus, (R2) and (R3) really seem to be equivalent within the context of
> the
> > statement set {(S1),(S2)}.
> >
> > So the remaining question is: Can I express the statement set
> {(S1),(S2)} in
> > OWL-1.1 ?
> >
> > First, I split (S1) into the equivalent statement set
> >
> >     (S1a) FORALL x: Man(x) ==> manman(x,x)
> >     (S1b) FORALL x: manman(x,x) ==> Man(x)
> >
> > Next, I claim that the statement set {(S1b),(S2)} is equivalent to the
> > statement set {(S1b'),(S2)}, where (S1b') is given by:
> >
> >     (S1b') FORALL x: [ EXISTS y: manman(x,y) ] ==> Man(x)
> >
> > Again, it suffices to show that the predicates P and Q, defined by
> >
> >     P(x) := manman(x,x)
> >     Q(x) := EXISTS y: manman(x,y)
> >
> > are equal under the condition (S2). The argumentation for this is pretty
> > analog to the argumentation for the "(S2) ==> [(R2) <==> (R3)]" claim
> above.
> > Well, I won't perform this a second time. :)
> >
> > So what I have to do now is to find a set of OWL-1.1 axioms, which are
> > equivalent to the following set of three statements:
> >
> >     (S1a)  FORALL x: Man(x) ==> manman(x,x)
> >     (S1b') FORALL x: ( EXISTS y: manman(x,y) ) ==> Man(x)
> >     (S2)   FORALL x,y: manman(x,y) ==> x = y
> >
> > Here is my proposed set of OWL-1.1 axioms:
> >
> >     (A1) SubClassOf( Man ObjectExistsSelf(manman) )
> >     (A2) SubClassOf( ObjectMinCardinality(1 manman owl:Thing) Man )
> >     (A3) ObjectPropertyDomain( manman Man )
> >     (A4) FunctionalObjectProperty( manman )
> >
> > First, I deduce all statements from the axiom set:
> >
> >     * Deduction of (S1a): (A1) is the equivalent translation of (S1a),
> > because 'ObjectExistsSelf(R)' denotes the class {x:R(x,x)}.
> >
> >     * Deduction of (S1b'): (A2) is the equivalent translation of (S1b'),
> > because 'ObjectMinCardinality(1 R owl:Thing)' denotes the class {x:
> > #{y:R(x,y)} >= 1}.
> >
> >     * Deduction of (S2): Given arbitrary instances x and y, for which
> > manman(x,y) holds. So, x is in the domain of manman. Thus, from (A3) it
> > follows that Man(x) holds. This allows me to conclude from (A1) that
> > manman(x,x) also holds. And by (A4), I get (x,y) = (x,x), hence x = y.
> >
> > Second, I deduce all axioms from the statement set:
> >
> >     * Deduction of (A1): (A1) is the equivalent translation of (S1a).
> >
> >     * Deduction of (A2): (A2) is the equivalent translation of (S1b').
> >
> >     * Deduction of (A3): From (S1a), I learn that for each Man x there
> > exists a role instance manman(x,.), thus Man is a subset of
> domain(manman).
> > >From (S1b') I learn that whenever there is some role instance
> manman(x,.),
> > then x is a Man, thus domain(manman) is a subset of Man. Hence
> > domain(manman) = Man.
> >
> >     * Deduction of (A4): Given arbitrary instances x, y and z, for which
> > manman(x,y) and manman(x,z) both hold. From (S2) it follows x = y, and x
> =
> > z. Hence y = z, i.e. manman is a functional role.
> >
> > So, it turnes out that the statement set {(S1a),(S1b'),(S2)} is
> equivalent
> > to the OWL-1.1 axiom set {(A1),(A2),(A3),(A4)}. And I showed before that
> > {(S1a),(S1b'),(S2)} is equivalent to {(S1),(S2)}. And the latter
> statement
> > set had made it possible to express (R1) in the form of the OWL-1.1axiom
> > (R4). So it seems to me that Tim's rule really is expressable in OWL-1.1,
> as
> > the axiom set
> >
> >     { (R4), (A1), (A2), (A3), (A4) }    (Tim's Rule expressed in OWL-1.1
> )
> >
> > Did I make a mistake anywhere?
> >
> >
> > Cheers,
> > Michael
> >
> > [1] http://www.webont.org/owl/1.1/semantics.html#2
> >
> >
> >
> >> The "work-around" given below by Michael is similar to what you would
> >> get be using a suitable DL-safe rule -- intuitively, this is a rule
> >> of a form such that it will only affect named individuals. An
> >> arbitrary rule (such as the one you give above) can be transformed
> >> into a DL-safe one by introducing a new unary predicate, say
> >> NamedIndividual, that is true for all named individuals (this can be
> >> achieved by adding the ground fact => NamedIndividual(i) for every
> >> individual i occurring in the ontology), and by adding atoms
> >> NamedIndividual(?v) to the body of the rule for each variable ?v used
> >> in the rule.
> >>
> >> Of course using a DL-safe rule (or equivalently Michael's work-
> >> around) with an ontology O will *not* (by itself) result in
> >> entailments such as the class of people having a male sibling being a
> >> subclass of the class of people having a brother.
> >>
> >> Regards,
> >> Ian
> >>
> >>
> >>
> >>> I think, you can at least do the following:
> >>>
> >>> First, use the inverses of the roles 'hasSibling(.,.)' and
> >>> 'hasBrother(.,.)', called 'isSiblingOf(.,.)' and isBrotherOf(.,.)',
> >>> respectively.
> >>>
> >>> With this, the following rule is equivalent to yours:
> >>>
> >>>  (1) isSiblingOf(y,x), Man(y) => isBrotherOf(y,x)
> >>>
> >>> This can be transformed into:
> >>>
> >>>  (2) y IN {z|isSiblingOf(z,x)} AND Man(y) => y IN
> >>>
> >> {z|isBrotherOf(z,x)}
> >>
> >>> And this translates (and generalizes) into the following OWL/DL
> >>> (1.0) axiom:
> >>>
> >>>  (3) SubClassOf(
> >>>         intersectionOf(
> >>>             restriction( isSiblingOf value(x) )
> >>>             Class(Man)
> >>>         )
> >>>         Restriction( isBrotherOf value(x) )
> >>>      )
> >>>
> >>> Problem with this approach: You need one such axiom for each
> >>> individual x
> >>> (the variable 'x' appears free in (2)).
> >>>
> >>> Cheers,
> >>> Michael
> >>>
> >>>
> >>> --
> >>> Dipl.-Inform. Michael Schneider
> >>> FZI Forschungszentrum Informatik Karlsruhe
> >>> Abtl. Information Process Engineering (IPE)
> >>> Tel  : +49-721-9654-726
> >>> Fax  : +49-721-9654-727
> >>> Email: Michael.Schneider@fzi.de
> >>> Web  : http://www.fzi.de/ipe/eng/mitarbeiter.php?id=555
> >>>
> >>> FZI Forschungszentrum Informatik an der Universität Karlsruhe
> >>> Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
> >>> Tel.: +49-721-9654-0, Fax: +49-721-9654-959
> >>> Stiftung des bürgerlichen Rechts
> >>> Az: 14-0563.1 Regierungspräsidium Karlsruhe
> >>> Vorstand: Rüdiger Dillmann, Michael Flor, Jivka Ovtcharova, Rudi
> >>> Studer
> >>> Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
> >>>
> >>>
> >>
> >
> > --
> > Dipl.-Inform. Michael Schneider
> > FZI Forschungszentrum Informatik Karlsruhe
> > Abtl. Information Process Engineering (IPE)
> > Tel  : +49-721-9654-726
> > Fax  : +49-721-9654-727
> > Email: Michael.Schneider@fzi.de
> > Web  : http://www.fzi.de/ipe/eng/mitarbeiter.php?id=555
> >
> > FZI Forschungszentrum Informatik an der Universität Karlsruhe
> > Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
> > Tel.: +49-721-9654-0, Fax: +49-721-9654-959
> > Stiftung des bürgerlichen Rechts
> > Az: 14-0563.1 Regierungspräsidium Karlsruhe
> > Vorstand: Rüdiger Dillmann, Michael Flor, Jivka Ovtcharova, Rudi Studer
> > Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
> >
> >
>
>
>
Received on Monday, 1 October 2007 15:08:32 GMT

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