Re: Question about subproperties

At 10:15 AM 8/17/99 +0100, Pierre-Antoine CHAMPIN wrote:
http://lists.w3.org/Archives/Public/www-rdf-comments/1999JulSep/0024

> <rdf:Property rdf:id="P1">
>   <rdfs:range rdf:resource="#C1"/>
> </rdf:Property>
> 
> <rdf:Property rdf:id="P2">
>   <rdfs:subPropertyOf rdf:resource="#P1"/>
>   <rdfs:range rdf:resource="#C2"/>
> </rdf:Property>
> 
> in this case, it seems logic to me that C2 must be a subclass of C1,
> (or at most to be the SAME class, of course).
> 
> Though, this constraint is not explicitely imposed by RDF, or am I wrong ?

RDF Schema does not state that you can infer a subclass relationship
here; a resource can be an instance of more than one class without
there being any subclass relationship between those classes.

http://www.w3.org/TR/1999/PR-rdf-schema-19990303 says (Section 2.3.3)

  "If some property P2 is a subPropertyOf another more general
   property P1, and if a resource A has a P2 property with a value B,
   this implies that the resource A also has a P1 property with value B."

Therefore B must be a permissible value for -- i.e. in the range of --
both P1 and P2.

For a specific value B1 to be a permitted value of P1 it must have
type C1 and similarly to be a permitted value of P2 it must have
type C2:

 {rdf:type, B1, #C1}
 {rdf:type, B1, #C2}

Now, B1 can have both types without either C1 or C2 being a subclass
of the other.  (Section 2.3.1: "A resource may be an instance of more
than one class.")  It is certainly true (by Section 2.3.2) that if the
statement

 {rdfs:subClassOf, #C2, #C1}

does exist in the graph then the statement

 {rdf:type, B1, #C1}

is implicit.  But the RDF Schema specification specifically does
require that C2 be a subclass of C1.

Consider a class WritingInstrument and a class PaintBrush.
Obviously a brush used for calligraphy could be an instance of both
classes but not all brushes are considered to be writing instruments.

-Ralph

Received on Tuesday, 21 September 1999 13:52:43 UTC