Redland Notes - RDF and RDF Schema Concepts Referenceby Dave Beckett$Date: 2001/04/24 14:01:51 $ - Changes |
This document was created to aid me in writing the RDF parser for Redland. I needed to know the answer this question:
What are the XML-namespaced concepts that are defined in RDF Model and Syntax (M&S)[RDF] and RDF Schema (RDFS)[RDFS]?
This was required so that I could guarantee I was providing complete coverage of all legal RDF syntax and doing so correctly in all cases. In order to do this I compiled a table of what XML-namespaced concepts were defined in RDF and RDF Schema. Several additional properties of the concepts also needed to be recorded in order to complete the work:
(I could have extended this to other relevant [RDFS] properties - rdfs:range and rdfs:domain seem likely)
I give references to where I have found the answers to these questions, referencing only the [RDF] and [RDFS] documents.
Comments and corrections are welcome
Table 1 contains the concepts defined in the [RDF] supplemented by the type and sub-classing declarations made in [RDFS].
Concept | rdf:type | rdfs:subClassOf | Has a defined meaning as an Element |
Has a defined meaning as an Attribute |
Notes |
---|---|---|---|---|---|
rdf:Seq | 1. rdfs:Resource and not rdf:Property (FM 5.10) 2. rdfs:Class (RDFS) |
rdfs:Container | 1. YES (FG 6.25 - sequence) 2. YES (FG 6.13 - typedNode) |
NO | |
rdf:Bag | 1. rdfs:Resource and not rdf:Property (FM 5.10) 2. rdfs:Class (RDFS) |
rdfs:Container | 1. YES (FG 6.26 - bag) 2. YES (FG 6.13 - typedNode) |
NO | |
rdf:Alt | 1. rdfs:Resource and not rdf:Property (FM 5.10) 2. rdfs:Class (RDFS) |
rdfs:Container | 1. YES (FG 6.27 - alternative) 2. YES (FG 6.13 - typedNode) |
NO | |
rdf:Property | 1. rdfs:Resource (FM 5.3) 2. rdfs:Class (RDFS) |
rdfs:Resource | YES (FG 6.13 - typedNode) | NO | |
rdf:Statement | 1. rdfs:Resource and not rdf:Property (FM 5.7) 2. rdfs:Class (RDFS) |
rdfs:Resource | YES (FG 6.13 - typedNode) | NO | Only use mentioned is as the object of rdf:type in a reified statement (S4.1) |
rdf:object | rdf:Property (FM 5.8) | None | YES (S4.1, FM 5.8 - is a rdf:Property) | YES (BAS1) | |
rdf:predicate | rdf:Property (FM 5.8) | None | YES (S4.1, FM 5.8 - is a rdf:Property) | YES (BAS1) | |
rdf:subject | rdf:Property (FM 5.8) | None | YES (S4.1, FM 5.8 - is a rdf:Property) | YES (BAS1) | |
rdf:type | rdf:Property (FM 5.5) | None | YES (FG 6.11 - typeAttr, S4.1, FM 5.5 - is a rdf:Property) | YES (BAS1) | |
rdf:value | rdf:Property (S7.3) | None | YES (S2.3 - Qualified Property Values, S7.3 example - is a rdf:Property) | YES (BAS1) | |
rdf:li | None (syntax) | None (syntax) | YES (FG 6.29 - referencedItem, FG 6.30 - inlineItem) | NO (S3.2 - "is a convenience element") YES - rdf:li matches FG 6.12 - propertyElt and FG 6.13 - typedNode |
|
rdf:_n / _n where n is an integer >0 |
rdf:Property (FM 5.11) | YES (S3.1 - is a "membership property") | YES (FG 6.31 - memberAttr, BAS1) | ||
rdf:RDF | None (syntax) | None (syntax) | YES (FG 6.1 - RDF) | NO | |
rdf:Description | None (syntax) | None (syntax) | YES (FG 6.2 - obj, FG 6.3 - description) | NO | |
rdf:about / about | None (syntax) | None (syntax) | NO | YES (FG 6.7 - aboutAttr) | |
rdf:aboutEach / aboutEach | None (syntax) | None (syntax) | NO | YES (FG 6.8 - aboutEachAttr) | |
rdf:aboutEachPrefix / aboutEachPrefix | None (syntax) | None (syntax) | NO | YES (FG 6.8 - aboutEachAttr) | |
rdf:ID / ID | None (syntax) | None (syntax) | NO | YES (FG 6.6 - idAttr) | |
rdf:bagID / bagID | None (syntax) | None (syntax) | NO | YES (FG 6.9 - bagIdAttr) | |
rdf:resource / resource | None (syntax) | None (syntax) | NO | YES (FG 6.18 - resourceAttr) | |
rdf:parseType / parseType | None (syntax) | None (syntax) | NO | YES (FG 6.32 - parseLiteral, FG 6.33 - parseResource) |
Table 2 contains the concepts defined in [RDFS].
Concept | rdf:type | rdfs:subClassOf (all from RDF Schema definitions) |
Has a defined meaning as an Element |
Has a defined meaning as an Attribute |
Notes |
---|---|---|---|---|---|
rdfs:Class | rdfs:Class | rdfs:Resource | YES (FG 6.13 - typedNode) | NO (cannot take literal values) | |
rdfs:ConstraintProperty | rdfs:Class | 1. rdfs:ConstraintResource 2. rdf:Property |
YES (FG 6.13 - typedNode) | NO (cannot take literal values) | |
rdfs:ConstraintResource | rdfs:Class | rdfs:Resource | YES (FG 6.13 - typedNode) | NO (cannot take literal values) | |
rdfs:Container | rdfs:Class | rdfs:Resource | YES (FG 6.13 - typedNode) | NO (cannot take literal values) | |
rdfs:ContainerMembershipProperty | rdfs:Class | rdf:Property | YES (FG 6.13 - typedNode) | NO (cannot take literal values) | |
rdfs:Literal | rdfs:Class | None | YES (FG 6.13 - typedNode) | NO (cannot take literal values) | |
rdfs:Resource | rdfs:Class | None | YES (FG 6.13 - typedNode) | NO (cannot take literal values) | |
rdfs:range | 1. rdfs:ConstraintProperty 2. rdf:Property (because rdfs:ConstraintProperty is rdfs:subClassOf rdf:Property) 3. rdfs:ConstraintResource (because rdfs:ConstraintProperty is rdfs:subClassOf rdfs:ConstraintResource) |
None | YES (FG 6.12 - propertyElt) | NO (cannot take literal values) | |
rdfs:domain | 1. rdfs:ConstraintProperty 2. rdf:Property (because rdfs:ConstraintProperty is rdfs:subClassOf rdf:Property) |
None | YES (FG 6.12 - propertyElt) | NO (cannot take literal values) | |
rdfs:isDefinedBy | rdf:Property | None | YES (FG 6.12 - propertyElt) | NO (cannot take literal values) | |
rdfs:label | rdf:Property | None | YES (FG 6.12 - propertyElt) | YES (BAS1) | |
rdfs:comment | rdf:Property | None | YES (FG 6.12 - propertyElt) | YES (BAS1) | |
rdfs:seeAlso | rdf:Property | None | YES (FG 6.12 - propertyElt) | NO (cannot take literal values) | |
rdfs:subClassOf | rdf:Property | None | YES (FG 6.12 - propertyElt) | NO (cannot take literal values) | |
rdfs:subPropertyOf | rdf:Property | None | YES (FG 6.12 - propertyElt) | NO (cannot take literal values) |
Some things I've found from the above analysis:
RDF Schema type system is similar to the type systems of object-oriented programming languages such as Java" in section 2.1
[RDF] Model and Syntax W3C Recommendation at http://www.w3.org/TR/REC-rdf-syntax, 22 February 1999.
[RDFS] RDF Schema W3C Candidate Recommendation at http://www.w3.org/TR/2000/CR-rdf-schema-20000327, 27 March 2000.
Added rdfs:ConstraintResource as 3rd type of rdfs:range - expanding the subclassing in the table.
Expanded comment about rdfs:ConstraintProperty being subclass of two classes. Explained RDFS does not restrict this; i.e. has no position on inheritance.
Added reference to prose in S2.3 where rdf:value is defined.
Added rdf:li as propertyElt, typedNode
Added conclusions section based on the comments I made in my email announcing this document.
Changed the title to "RDF and RDF Schema Concepts Reference"
Copyright 2000-2001 Dave Beckett, Institute for Learning and Research Technology, University of Bristol