Among the great privileges of working at W3C is the occasional geeking with people like Michael Sperberg-McQueen's evil twin Enrique.
Enrique's latest is on what RDF gets us. In that blog item, RDF is characterized as an extremely thin semantic layer -- interestingly, ignoring the RDF Semantics recommendation. The point of that recommendation is that RDF is -- even when you ignore RDF schema, OWL and friends -- more than just nodes, arrows, and URIs.
The critical piece that's added is a bit of logic that effectively tells you the following rules (which are really flip-sides of each other):
- You can always add more stuff, and that won't invalidate anything you've learned so far.
- You can always remove stuff, but you won't learn anything new if you do.
If you think of RDF as a framework to do web-scale data aggregation, then these are very useful principles: They guarantee that you won't run into a world of inconsistency when you discover additional information, and they also guarantee that you can learn things about the world piece by piece. These principles permit relatively stupid and generic software to draw useful conclusions without knowing anything about the "real" meaning of data. They are also why comparing XML and RDF is comparing apples and oranges: There's nothing in XML that permits software to make similar assumptions; XML's semantic layer is indeed thinner than RDF's. All the interesting logic needs to be dealt with on the application layer.
Now, one important piece of Enrique's thinking is that precisely the thinness of RDF's semantic layer (similar to the thinness of XML's) is what makes it appealing. So, what does the semantic layer that the RDF Semantics add mean for that argument? The gain is clear, in that tools can make stronger assumptions about the data they deal with, and some aspects of application logic are pushed deeper in the stack. The price, though, is that those who model data on top of RDF need to understand what constraints are imposed on them by the format's properties -- in an RDF world, there isn't much of a "no"; "si tacuisset, philosophus mansisset" is a conclusion that won't work, since once you're a philosopher, you remain so till the end of your days.
RDF semantics, therefore, is exposed to criticism from two angles: On the small scale, it imposes restrictions on those who model data -- restrictions that are harder to understand than those imposed by just using XML trees, and that can indeed bite badly. On the large scale, real life isn't monotonic (we invalidate prior knowledge all the time), and RDF's modeling can't deal with that. The first of these criticisms is ultimately about the ability of people to use the model. The second is about the problem space to which the model can be applied.
XML is "dumb" enough to not be subject to either of these criticisms. It is, however, not even trying to address the issues that large-scale data integration and aggregation will bring.
Comments (3)
Posted by C. M. Sperberg-McQueen | July 23, 2008 12:45 AM
Posted on July 23, 2008 00:45
Posted by Dan Connolly | July 29, 2008 7:04 PM
Posted on July 29, 2008 19:04
Posted by Thomas Roessler | July 30, 2008 4:26 PM
Posted on July 30, 2008 16:26