W3C home > Mailing lists > Public > www-rdf-logic@w3.org > January 2004

Re: "Transitive over" properties

From: Yuzhong Qu <yzqu@seu.edu.cn>
Date: Mon, 5 Jan 2004 14:59:53 +0800
Message-ID: <004801c3d359$851f0aa0$fc0b77ca@xobjects>
To: <minsu@etri.re.kr>
Cc: <www-rdf-logic@w3.org>
One more use case of semantic web rules:

Property p3 is the "composition" of property p1 and p2:

If  p1(?x,?y) and p2(?y,?z)
Then p3(?x,?z) 

I didn't find a way in current OWL to express such a "composition" relation.


Yuzhong Qu



> 
> To me, Jos De_Roo's solution looks like a nice one 
> illustrating the complementary roles of rules and ontology.
> 
> But, it'd be more concise to me if there were two rules;
> one for expressing the semantics of owl:TransitiveProperty,
> and another for relating 'worksFor' and 'consistsOf'. Here's
> my take:
> 
> [Ontology Part]
> :consistsOf a owl:TransitiveProperty.
> :aCompany :consistsOf :rAndD.
> :rAndD :consistsOf :gSw.
> :gSw :consistsOf :gSwBe.
> :mk :worksFor :gSwBe.
> 
> [Rule Part 1: OWL Semantics]
> if owl:TransitiveProperty(?p) and ?p(?x,?y) and ?p(?y,?z)
> then ?p(?x,?z);
> 
> [Rule Part 2: TransitiveOver Property]
> if worksFor(?a,?b) and consistsOf(?b,?c) 
> then worksFor(?a,?c);
> 
> We need semantic web rules.
> 
> Minsu
> 
> > -----Original Message-----
> > From: www-rdf-logic-request@w3.org 
> > [mailto:www-rdf-logic-request@w3.org] On Behalf Of Jos De_Roo
> > Sent: Monday, January 05, 2004 4:42 AM
> > To: Mikhail Khlopotov <mik
> > Cc: www-rdf-logic
> > Subject: Re: "Transitive over" properties
> > 
> > 
> > 
> > 
> > 
> > [this is not a reply via webont-comments but rather via rdf-logic
> > as this is not wg official but rather intended as a discussion]
> > 
> > 
> > > I'm trying to use OWL in my research, in which I need a way 
> > to represent
> > > constraints on a semantic network, and while studying OWL 
> > and analyzing
> > > it's completeness, I found no direct way to express 
> > "transitive over"
> > > properties, I mean properties, which are not transitive by 
> > themselves,
> > > but are transitive over another property.
> > > For example "worksFor" may be considered transitive over 
> > "consistsOf",
> > > if we have a company consisting of departments.
> > >
> > > Are there any ways in current OWL to express such a relations? I
> > 
> > Not that I know of...
> > 
> > > suppose, they're vital for part-whole relationship.
> > >
> > > Hope, this message is clear to understand ;-)
> > 
> > If I understand it right, then for instance,
> > given following facts
> > 
> > :worksFor :transitiveOver :consistsOf.
> > :aCompany :consistsOf :rAndD.
> > :rAndD :consistsOf :gSw.
> > :gSw :consistsOf :gSwBe.
> > :mk :worksFor :gSwBe.
> > 
> > and also given following simple rule
> > 
> > {?P :transitiveOver ?Q. ?Z ?Q ?Y. ?X ?P ?Y} => {?X ?P ?Z}.
> > 
> > then it follows that (*)
> > 
> > :mk :worksFor :aCompany.
> > :mk :worksFor :rAndD.
> > :mk :worksFor :gSw.
> > :mk :worksFor :gSwBe.
> > 
> > But indeed it requires sw rules I guess :)
> > 
> > 
> > --
> > Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/

> > 
> > (*) I've checked that with Cwm
> > 
> > #############
> >     :aCompany     :consistsOf :rAndD .
> > 
> >     :gSw     :consistsOf :gSwBe .
> > 
> >     :mk     :worksFor :aCompany,
> >                 :gSw,
> >                 :gSwBe,
> >                 :rAndD .
> > 
> >     :rAndD     :consistsOf :gSw .
> > 
> >     :worksFor     :transitiveOver :consistsOf .
> > #############
> > 
> > and Euler
> > 
> > #############
> >  {:worksFor :transitiveOver [iw:Variable "?Q"; = :consistsOf].
> >   [iw:Variable "?Z"; = :aCompany] [iw:Variable "?Q"; = :consistsOf]
> > [iw:Variable "?Y"; = :rAndD].
> >    {:worksFor :transitiveOver [iw:Variable "?Q"; = :consistsOf].
> >     [iw:Variable "?Z"; = :rAndD] [iw:Variable "?Q"; = :consistsOf]
> > [iw:Variable "?Y"; = :gSw].
> >      {:worksFor :transitiveOver [iw:Variable "?Q"; = :consistsOf].
> >       [iw:Variable "?Z"; = :gSw] [iw:Variable "?Q"; = :consistsOf]
> > [iw:Variable "?Y"; = :gSwBe].
> >       [iw:Variable "?X"; = :mk] :worksFor [iw:Variable "?Y"; 
> > = :gSwBe]} =>
> >     {[iw:Variable "?X"; = :mk] :worksFor [iw:Variable "?Y"; = 
> > :gSw]}} =>
> >   {[iw:Variable "?X"; = :mk] :worksFor [iw:Variable "?Y"; = 
> > :rAndD]}} =>
> > {:mk :worksFor [iw:Variable "_:X_2"; = :aCompany]}.
> > 
> >  {:worksFor :transitiveOver [iw:Variable "?Q"; = :consistsOf].
> >   [iw:Variable "?Z"; = :rAndD] [iw:Variable "?Q"; = :consistsOf]
> > [iw:Variable "?Y"; = :gSw].
> >    {:worksFor :transitiveOver [iw:Variable "?Q"; = :consistsOf].
> >     [iw:Variable "?Z"; = :gSw] [iw:Variable "?Q"; = :consistsOf]
> > [iw:Variable "?Y"; = :gSwBe].
> >     [iw:Variable "?X"; = :mk] :worksFor [iw:Variable "?Y"; = 
> > :gSwBe]} =>
> >   {[iw:Variable "?X"; = :mk] :worksFor [iw:Variable "?Y"; = :gSw]}} =>
> > {:mk :worksFor [iw:Variable "_:X_2"; = :rAndD]}.
> > 
> >  {:worksFor :transitiveOver [iw:Variable "?Q"; = :consistsOf].
> >   [iw:Variable "?Z"; = :gSw] [iw:Variable "?Q"; = 
> > :consistsOf] [iw:Variable
> > "?Y"; = :gSwBe].
> >   [iw:Variable "?X"; = :mk] :worksFor [iw:Variable "?Y"; = :gSwBe]} =>
> > {:mk :worksFor [iw:Variable "_:X_2"; = :gSw]}.
> > 
> > :mk :worksFor [iw:Variable "_:X_2"; = :gSwBe].
> > #############
> > 
> > 
> 
> 
> 
> 
Received on Monday, 5 January 2004 02:00:36 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:48 GMT