- From: Jos De_Roo <jos.deroo@agfa.com>
- Date: Sun, 4 Jan 2004 20:42:10 +0100
- To: "Mikhail Khlopotov <mik" <mik@chel.com.ru>
- Cc: "www-rdf-logic" <www-rdf-logic@w3.org>
[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 Sunday, 4 January 2004 14:43:12 UTC