RDF Update
by Shelley Powers
November 27, 2002
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.