Re: ObjectProperty defined using rdfs:range, equivalent to using owl:allValuesFrom?

[Mike Dean has already provided some answers, but here are some more.]

From: "Roger L. Costello" <costello@mitre.org>
Subject: ObjectProperty defined using rdfs:range, equivalent to using owl:allValuesFrom?
Date: Tue, 04 Mar 2003 15:27:11 -0500

> Hi Folks,
> 
> I have several questions:
> 
> 1. XML Schema distinguishes between "defining" and "declaring", e.g.,
> you "define" types, but you "declare" elements.  Does OWL make such a
> distinction?  That is, do you "define" a class, or do you "declare" a
> class?  Do you "define" a property, or do you "declare" a property?

OWL doesn't really have any notion of defining or declaring.  There are
some aspects of these, but really all you do is provide information about a
class, a property, or an individual.

> 2. Consider this ObjectProperty (er) definition from the OWL Guide:
> 
> <owl:ObjectProperty rdf:ID="regionOf"> 
>     <owl:allValuesFrom rdf:resource="#Country"/>
>     <owl:cardinality rdf:datatype="&xsd;NonNegativeInteger">
>         1
>     </owl:cardinality>
> </owl:ObjectProperty> 

This is an error in the Guide.  Part of the meaning of this can be captured
as 

 <owl:FunctionalProperty rdf:ID="regionOf"> 
     <rdfs:range rdf:resource="#Country"/>
 </owl:FunctionalProperty> 

but this misses the part that would appear to require that the property is
total. 

> I have two questions about it:
> 
> (a) How is it different than if rdfs:range had been used[?]

If it was valid syntax, it should mean the same as if rdfs:range was used.

[...]

> If the two forms are equivalent, then when should each form be used?

Only one is possible.

> (b) I am struggling to understand why one would ever put a cardinality
> in a property definition - cardinality seems to me to be something that
> a class would want to assert, i.e., "when used in this class the
> property has a cardinality of 1".  Can someone please elaborate upon
> when you would use cardinality in a property definition?

In general, global conditions of this sort are to be avoided.  Instead use
restrictions, which are local to classes.  Sometimes, however, it is useful
to provide a global domain or range.   Also, some conditions on properties
can only be stated globally, such as transitivity and inverse.

> Thanks!  /Roger

peter

Received on Wednesday, 5 March 2003 10:00:52 UTC