Re: RDF Schema - question on implied typing with rdfs:Class

A couple of additional comments on this discussion:

1.  The RDF Primer notes, in the discussion of the Vehicle class 
hierarchy example:

"To simplify the figure, the rdf:type properties relating each of the 
classes to rdfs:Class are omitted in Figure 18.  In fact, RDF Schema 
defines both the subjects and objects of statements that use the 
rdfs:subClassOf property to be resources of type rdfs:Class, so this 
information could be inferred.  However, in actually writing schemas, it 
is good practice to explicitly provide this information."

So, technically, you could simply write

     ex:PassengerVehicle rdfs:subClassOf ex:MotorVehicle .

without writing *either* of the triples

     ex:MotorVehicle       rdf:type                rdfs:Class .
     ex:PassengerVehicle   rdf:type                rdfs:Class .

and the RDFS semantics would entail both of the latter triples. 
However, as noted, it is good practice to explicitly provide these 
statements.

2.  As Ivan notes, RDF environments don't necessarily have to understand 
RDFS as well (RDFS is a semantic extension to RDF).  However, you have 
to be careful about the kind of "safety" you expect to get in those 
environments by providing all the triples explicitly.  A non-RDFS 
environment would not only *not* provide the RDFS entailments we've been 
discussing, but it would not associate any special semantics with 
rdfs:Class or rdfs:subClassOf, since these resources are defined in 
RDFS.  As far as RDF per se is concerned,

     ex:PassengerVehicle rdfs:subClassOf ex:MotorVehicle .

is simply a statement that the first resource has some property whose 
value is some other resource.  Similarly, the statement

     ex:MotorVehicle       rdf:type                rdfs:Class .

has minimal semantics as far as RDF (as opposed to RDFS) is concerned 
because, strictly speaking, classes (rdfs:Class) are defined in RDFS, 
not in RDF.

--Frank

Ivan Herman wrote:
> 
> 
> Hans Teijgeler wrote:
> 
>> Jeremy,
>>  
>> Thanks for the quick response! I still have to get used to your RDF 
>> lingo,
>> so in order to make sure I'll say it in my own lingo: The typing with
>> rdfs:Class of the subclass ex:PassengerVehicle is not required in case 
>> the
>> recording of the fact that it is a subclass of ex:MotorVehicle is
>> guaranteed. If OK:closed, and thanks again.
>>  
> 
> 
> That is true.
> 
> To be very practical: not all RDF environments implement the RDFS 
> entailing rules. If you *know* that the RDF data will be processed by a 
> RDFS aware environment then, by virtue of the entailing rules, the 
> (ex:PassengerVehicle,rdf:type,rdfs:Class) triplet will be 'added' to the 
> triple store (whether 'added' means physically or virtually is besides 
> the point). If you want to be on the safe side, you can add the explicit 
> statement, as Jeremy said.
> 
> Ivan
> 
>> Regards,
>> Hans
>>
>>   _____ 
>> From: semantic-web-request@w3.org [mailto:semantic-web-request@w3.org] On
>> Behalf Of Jeremy Wong
>> Sent: woensdag 6 april 2005 8:32
>> To: Hans Teijgeler; semantic-web@w3.org
>> Subject: Re: RDF Schema - question on implied typing with rdfs:Class
>>
>>
>> ex:PassengerVehicle rdf:type rdfs:Class is an explicit assertion of what
>> you're describing. Your rdfs:subClassOf triple entails 
>> ex:PassengerVehicle
>> rdf:type rdfs:Class. However, if the assertion ex:PassengerVehicle
>> rdfs:subClassOf ex:MotorVehicle is removed and you do not assert
>> ex:PassengerVehicle be an instance of rdfs:Class, then 
>> ex:PassengerVehicle
>> is no more an instance of rdfs:Class unless you retain the explicit
>> assertion.
>>  
>>  
>> Jeremy
>>
>> ----- Original Message ----- From: Hans Teijgeler 
>> <mailto:hans.teijgeler@quicknet.nl>  To: semantic-web@w3.org Sent: 
>> Wednesday, April 06, 2005 2:09 PM
>> Subject: RDF Schema - question on implied typing with rdfs:Class
>>
>> Hi,
>>  
>> I am new in the RDF scene, and I have read most of the related W3C
>> Recommendations and the Primer.
>>  
>> I have a simple question about RDF Schema, with probably a simple answer:
>> In the Primer I read that ALL classes need to be typed with 
>> rfds:Class. So
>> for example:
>>     ex:MotorVehicle          rdf:type                rdfs:Class .
>>     ex:PassengerVehicle   rdf:type                rdfs:Class .
>>     ex:PassengerVehicle   rdfs:subClassOf   ex:MotorVehicle .
>>  
>> Is there a reason why the subclass ex:PassengerVehicle doesn't inherit 
>> being
>> an rdfs:Class from the superclass ex:MotorVehicle?
>>  
>> Regards,
>> Hans
>>  
>> ____________________________
>> Hans Teijgeler
>> co-author of ISO 15926-2 <http://www.infowebml.ws/ECM4.5/ECM4.5.html> 
>> author of ISO 15926-7
>> website www.InfowebML.ws <http://www.infowebml.ws/> e-mail 
>> hans.teijgeler@quicknet.nl
>> phone +31-72-509 2005                      
>>
>>
> 

Received on Wednesday, 6 April 2005 14:58:35 UTC