Categories
RDF

Newest RDF goodies and challenges

Recovered from the Wayback Machine.

I spent the last several days reading through the six RDF documents currently under final review. During the last few days I acted the minor irritant to some members of the W3C RDF Working Group, primarily getting clarification on some confusing or complex aspects of the documents. I also spent time trying to bring concerns expressed by fellow webloggers to the attention of the group members — trying to bring the viewpoint of non-RDF folks to the RDF table. I find myself in the interesting position of being an RDF supporter who doesn’t necessarily support all aspects of RDF. Which means I can’t claim kinship with any ‘side’ in the RDF debate.

Of the items I couldn’t cover in the article (due to space considerations), and their possible impacts:

Containers Containers such as Bag, Seq, and Alt are still included, but without additional semantics attached. What does this mean? It means that a container is a grouping of resources, but there is no additional assumptions attached to the RDF specification about how container elements relate to each other, or how applications process the data. Elements in a Bag are treated no differently, to the specification, than elements in a Seq. It’s up to each individual application to determine what ‘Bag’ or ‘Seq’ means.

Sound familiar? Can we all say “HTML”?

RSS 1.0, the same RSS 1.0 generated by most weblogging tools, uses a container to group items — a Seq (sequence). I have never been particularly happy with this as I believe that ordering or other processing should result from the data rather than the structure, such as using the posting date to determine sequence of display. In addition, container within RSS add redundancy. Individual items are contained in Items which is contained in Channel. Added redundancy is equivalent to added complexity.

In fact, we can simplify RSS, as I tried to demonstrate once before. Unfortunately, this example won’t validate as RSS.

However, this one does.

By putting the onus of semantics — the behavior if you will — of containers on to the applications, there will be differing results based on different applications interpretation of ‘Bag’ and ‘Seq’ or ‘Alt’. The RSS 1.0 group can specify that RSS 1.0 uses a Container, but there is no guarantee that the data within the container will be processed in any specific way by any specific aggregator, or generated a specific way by a specific application.

That’s what happens when precision of meaning is lost…or deliberately withheld.

(I think I’m going to change my Movable Type RSS template to support the new and improved SORSS — Shelley’s Own RSS. I could unite disparate RSS sides under one banner. Instead of a king, a Queen, Dark and Beautiful. All will Love me and Despair…. )

nodeID For those of you who ran into problems with blank nodes (bnodes) when trying to work with RDF, you’re going to love this: the WG has created the nodeID that allows you to apply a label to blank nodes. This means you can use whatever you want as a bnode label and the document will validate. No more having to figure out how to create a fake URI in order to specifically access the relationship denoted by a bnode.

Collection A new container like construct has been created: the Collection. This is used with groups of resources to create a list-like structure. However, just as with Containers and Reification, there is no assumption about the semantics of a Collection — it is up to each application. If I use this in my own applications, it will only be because there’s an absolute need for it, and I can’t avoid it’s use.

datetype There’s a new RDF attribute, rdf:datatype, that can be attached to a property to give a specific datatype URI reference, usually to Schema datatypes. Adding in support for datatyping is a goodness, but I’m absolutely appalled that the Working Group is adding this in at the property instance, rather than into the vocabulary definition. This means that one person can define create-date as an integer, the number of seconds since January 1, 1972. Another person could define create-date as a Schema date, with a value of 1999-10-01. Both would be valid instances of the same RDF vocabulary.

Of course, the designers can provide documentation about what format is to be used, but I would prefer something other than the honor system.

Embedding The WG did come out specifically on the issue of embedding RDF in HTML and XHTML — don’t do it, use link instead.

There’s a lot more, but you’ll have to buy the book. Literally.