- From: Yuzhong Qu <yzqu@seu.edu.cn>
- Date: Mon, 5 Jan 2004 14:59:53 +0800
- 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 UTC