- 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