Functionality

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Functionality

selma selma
Hello,
My question may seem strange.
Is it possible to express Functionality between owl datatype properties ?
We know that functional properties between classes link each individual of the first class to at most one individual of the second class.
Is it possible to express the same thing with properties, which means that the value of the first property determines the value of the second property.
Thanks.

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Functionality

Thomas Russ

On May 22, 2011, at 12:31 PM, selma selma wrote:

> Hello,
> My question may seem strange.
> Is it possible to express Functionality between owl datatype properties ?
> We know that functional properties between classes link each individual of the first class to at most one individual of the second class.
> Is it possible to express the same thing with properties, which means that the value of the first property determines the value of the second property.

No. OWL does not support constraints between the values of different properties.  The only exception is a very limited one in OWL 2 where you can relate a property value to "self".

This means, for example, that one cannot define an OWL class for "a person whose boss is his brother".  And you also can't define "a person whose weight is lower than his age"



_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Functionality

Thomas Russ
In reply to this post by selma selma

On May 22, 2011, at 12:31 PM, selma selma wrote:

> Hello,
> My question may seem strange.
> Is it possible to express Functionality between owl datatype properties ?
> We know that functional properties between classes link each individual of the first class to at most one individual of the second class.
> Is it possible to express the same thing with properties, which means that the value of the first property determines the value of the second property.

Amplifying a bit.  There are some limited circumstances where one can make use of functional properties and inverse properties to give some ability to specify a particular filler.  But since datatype properties can't have inverse properties, you can't do that trick either.

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: Functionality

Martin Kuba
In reply to this post by Thomas Russ
Dne 23.5.2011 07:14, Thomas Russ napsal(a):

>
> On May 22, 2011, at 12:31 PM, selma selma wrote:
>
>> Hello,
>> My question may seem strange.
>> Is it possible to express Functionality between owl datatype properties ?
>> We know that functional properties between classes link each individual of the first class to at most one individual of the second class.
>> Is it possible to express the same thing with properties, which means that the value of the first property determines the value of the second property.
>
> No. OWL does not support constraints between the values of different properties.  The only exception is a very limited one in OWL 2 where you can relate a property value to "self".

If I understand the question correctly, a data property can be declared functional by

FunctionalDataProperty( :myproperty )

see http://www.w3.org/TR/owl2-syntax/#Functional_Data_Properties

>
> This means, for example, that one cannot define an OWL class for "a person whose boss is his brother".  And you also can't define "a person whose weight is lower than his age"

This cannot be expressed in OWL 2, but it can be expressed with a simple DL-safe SWRL rule
added to an OWL 2 ontology

Person(?x),hasBoss(?x,?y),hasBrother(?x,?y) -> PersonWhoseBossIsHisBrother(?x)

and such rule can be used by the reasoners Hermit and Pellet.

Best regards

Martin
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CERIT-SC                               Martin Kuba
Institute of Computer Science    email: [hidden email]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03