RDF Update

November 27, 2002

Shelley Powers

The W3C working group tasked to update and clarify the RDF specification recently released six new working drafts. The group is collecting comments, concerns, and corrections, which will be incorporated into the documents. At the end of November, in preparation for submitting the documents for review as Candidate Recommendations, the working group will begin its final review.

There was some initial dismay within the RDF community about the proliferation of documents. The RDF specification originally consisted only of two: the RDF Model & Syntax specification and the candidate RDF Schema document. The concern was that the release of so many additional documents signified an increase in the complexity of the RDF specification.

However, rather than signalling an increase in complexity of the RDF specification, the documents actually clarify it, primarily by separating its different aspects instead of keeping them bundled together in a confusing jumble of syntax, concept, and semantics. Additionally, two of the documents were written with very specific goals in mind: the Test Cases document aids RDF tool developers; the RDF Primer provides an introduction to RDF which is less formal than the specification itself.

In this article I examine the purpose and scope of each document. I also highlight some of the significant changes between these working drafts and the original release of the RDF specifications.

To read or contribute to discussions about the documents themselves, refer to the rdf-comments mailing list. For more discussion about RDF in general, see the rdf-interest group mailing list.

Resource Description Framework (RDF): Concepts and Abstract Syntax

The Concepts and Abstract Syntax document focuses on the core aspects that make up RDF, independent of any serialization format and outside the formal semantics of the RDF model. It essentially provides a glossary of RDF concepts and should be one of the first documents read by RDF newcomers.

Included in the document is a good overview of the major components of the RDF specification, including the RDF graph model, the XML serialization, data types, and URIs. In particular, data types are given considerably more discussion in the Concepts document (and in the other documents) than they got in the 1999 release of the RDF M&S.

The Concepts document doesn't require specialized knowledge to understand the topics discussed in it. However, there are some borderline concepts that possibly could cause confusion. For instance, a discussion of entailment provides an example and a model-specific interpretation of the example, but it doesn't define the term for those who lack a background in formal logic, model theory, and the like.

RDF Semantics

The RDF Semantics document is a semantic clarification of RDF constructs. It's not a trivial read, particularly if you don't have a background in model theory semantics, which forms the basis of the proofs in the document. However, the document is essential for providing precise semantic interpretation of each aspect of RDF. Hopefully this will mean the endless rounds of debate concerning the precise meaning of each RDF construct can eventually come to an end, which would allow the RDF community to focus its energy on using, rather than endlessly interpreting RDF.

Still, one aspect of the RDF Semantics document could generate considerable discussion in the future, in that two RDF concepts, reification and containers, lack a formal semantic specification in the document.

The Semantics document is readable by an audience with substantial exposure to the RDF model concepts. I recommend prospective readers work through the Concepts document and Primer first, before taking up the Semantics document. The material is not a light read and not necessarily required for everyone interested in RDF. However, I do recommend reading the document at some point, if for no other reason than it provides a good definition and understanding of the concept of entailment.

RDF/XML Syntax Specification (Revised)

Many people's first and primary exposure to RDF will be through RDF/XML, a serialization format that's been the center of a great deal of controversy. Some have called for a simplified XML syntax which more clearly demonstrates both the individual RDF triple and the underlying RDF graph. Whatever your opinion of the syntax, it is essential that you read the Concepts document and the Primer, at a minimum, before reading the RDF/XML Syntax specification.

One formatting change in the Syntax document was the inclusion of the concept of XML striping within the specification, rather than as a separate note. This does provide a better overview of the mapping of the RDF graph "node-arc-node-arc" to XML. In addition, because the concepts and semantics have been pulled into separate documents, the XML specification can focus more closely on the syntax without having to switch between abstract RDF concepts and RDF/XML implementation.

The document also provides greater detail about RDF data typing, as well as more examples of RDF/XML particulars, including a closer look at the parseType attribute and the container membership elements.

One particular clarification in the new specification deals with RDF/XML within HTML documents. This topic has generated a great deal of discussion and workarounds in the past, even including RDF/XML within a script tag. The document formalizes the RDF Working Group position that RDF should not be embedded in HTML. Users are encouraged to use the link element in HTML or XHTML documents to point to separate RDF resources.

An additional change to the new working draft from earlier drafts is that the RDF namespace is no longer required, though still strongly recommended, for the about and ID attributes. This change allows some users of RDF, such as Mozilla, to preserve the validity of existing documents.

At the end of the document is a change section detailing the many changes between releases. This section may be removed before final publication, but it's worth a read if you've worked with RDF and RDF/XML in the past. All in all, the RDF/XML specification document is much cleaner and has a tighter focus than previous releases of the same document.

RDF Vocabulary Description Language 1.0: RDF Schema

The RDF Vocabulary/Schema (RDFS) is used to describe RDF vocabularies. It's a revision of the original RDF Schema specification and provides additional detail and classes, including the new rdfs:Datatype. Other new classes have been defined to support collections, a new RDF concept. Collections are RDF resources grouped together whose order is determined by RDF properties rdf:first, rdf:rest, and rdf:nil. The rdf:List is the class representing all of these collections.

Other than these additions, and some clarifications, the RDF Vocabulary is quite similar to the original RDF Schema working draft. This document is essential reading for anyone who wants to understand more about how RDF vocabularies are defined.

RDF Primer

RDF is simple if you think about an RDF graph as a set of node-arc-node triples. However, RDF as a specification isn't trivial, primarily because of its semantics, which tend to trip us up, even though the RDF/XML syntax usually receives the brunt of criticism.

The RDF Working Group is aware that there has been difficulty understanding and interpreting the RDF specification, so among the working drafts it has released is the RDF Primer. Most of the document focuses on the RDF/XML and the associated RDF Schema, which isn't surprising because most uses of RDF are based in RDF/XML. The document also provides a look at some existing RDF applications, such as Dublin Core, PRISM, and RSS 1.0.

The Primer provides a good introduction to the basics of RDF without getting too mired in the semantic depths. It's the first document you'll want to read when you get exposed to the specification.

RDF Test Cases

The RDF Test Cases document provides test cases in RDF/XML and N-Triple format that demonstrate each RDF issue as it is resolved. These test cases are a way for RDF tool developers to verify conformance to the RDF specification.