- 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