September 22, 2004
With the exception of a not unfamiliar round of bile spilling about SOAP and web services, recent weeks have been quiet in the XML developer community. Those eager futurists from the RDF interest list have kept going, however, and an overview of that activity forms the core of my report this week.
Earlier this year Bob DuCharme published an article on XML.com called Googling for XML. Deriving from this interest, DuCharme has now set up rdfdata.org to provide a catalog of repositories of RDF data available on the Web. Though patchy in parts, it looks a good starting point for anyone needing RDF data to work with. DuCharme is also accepting suggestions for new data sources.
Howard Katz posed an interesting question to the RDF interest list recently: what is good practice for writing RDF/XML?
I'm writing a tutorial-type article that shows how to use XQuery to transform a standard XML datafile (not RDF/XML) into RDF. The main focus of the article is on XQuery, but I need to make sure that my RDF is also correct and not atypical.
Katz provides an example of the work he's doing. The question of what the RDF/XML should look like actually contains two sub-problems. The first of these concerns how to transform the incoming XML data into an RDF graph, and the second concerns how best to write this graph in RDF/XML. Tom Passin responded along these lines to Katz, giving feedback on his initial modeling, and in particular that the containment model of an XML document doesn't often translate directly into RDF.
This is a typical kind of situation that prevents automatic translation of arbitrary XML. In this case, there is a missing layer that would, if present, state what the relation is between a bib and a book. Since it is missing, you have to supply it. That is basically a little data-modeling task you have to do.
Libby Miller also responded with some helpful advice. Miller notes that it's possible to use the
rdf:parseType='Resource' attribute to make descriptions shorter.
<rdf:Description rdf:about="http://www.book-stuff.com/bib"> <bibterm:book> <rdf:Description> <bibterm:year>1994</bibterm:year> <dc:title>TCP/IP Illustrated</dc:title> <bibterm:author> <rdf:Description> <bibterm:last>Stevens</bibterm:last> ...
Often you see rdf:parseType='Resource' being used instead of rdf:Description (i.e. where there are no types on the nodes) for brevity, but depending on your audience this might be more confusing than helpful. The result would be:<rdf:Description rdf:about="http://www.book-stuff.com/bib"> <bibterm:book rdf:parseType="Resource"> <bibterm:year>1994</bibterm:year> <dc:title>TCP/IP Illustrated</dc:title> <bibterm:author rdf:parseType="Resource"> <bibterm:last>Stevens</bibterm:last> ...
Miller also points out the generally used RDF convention where classes are named with
uppercase first letter, e.g.
Book, and properties in lowercase, e.g.
The thread makes an interesting read, and Katz rather nicely sums up the essence of the difference between expressing data in XML and RDF.
So in short (if I may): in XML the typing is built-in; the relationships are implied. In RDF, the typing might or might be present, and the relationships are (generally) explicit.
No Love for Web Services
General despair and astonishment at the state of web services specifications has been breaking out all over recently. As my friend and colleague Simon St. Laurent notes, the whole web services project seems to have lost its way. Personally speaking, while I admit that the complexity may serve to facilitate some deeply complex e-business scenarios, I've never been a fan of the over-engineered and largely untested web services protocol mess.
And it's not just the WS-mess, even plain old SOAP itself isn't getting as widespread a welcome as you might have thought. Many developers are now admitting in public (and privately in the case of some high-profile companies) that SOAP complicates matters too much and the simple combination of HTTP and XML that is REST will suffice.
In his weblog, Tim Bray ponders the essential question for anyone who knows those who have worked on the WS-* suite of specifications.
Here's the problem: the people writing these WS-things aren't stupid. In particular, Don Box isn't stupid. And I'm starting to see names of people here at Sun pop up as WS-coauthors; people who aren't stupid.
Leaving aside the observation that in Bray's experience stupid people often are the reason for stupid specs, what's the answer? As no logical one is forthcoming, Bray decided he will play the "loyal opposition" and be prepared, in the event of the "WS-future" emerging, to admit he was wrong.
Continuing his analysis, St. Laurent links a useful dialog map, maintained by Eugene Eric Kim, about the problems with SOAP from the Python XML mailing list in 2002. This is the first time I've seen such a map, but it would make a useful addition to the sort of analysis we attempt to provide in the XML-Deviant column.
St. Laurent's own opinion about the paradoxical enthusiasm for the WS-mess is that "it's far easier to sell complicated things rather than simple things." This is a sentiment I find it easy to agree with. There's a certain class of organization that is reassured by expensive complexity. I felt the same way at the emergence of "application servers" a few years back. The WS-mess is simply the latest iteration of mediocre middleware.
Births, Deaths, and Marriages
The latest announcements from the XML-DEV mailing list.
- White Paper: XERT Your Data, Refocus Your Efforts
Brian Holmes strikes a blow for angle brackets in the binary vs. XML debate.
- tkxmllint and tkxsltproc Version 1.6
It's reassuring that people are still writing applications in Tcl/Tk. Steve Ball provides graphical interfaces for Daniel Veillard's xmllint XML checker and xsltproc XSLT processor.
- Proposed Change to W3C XML Schema for XML Namespace
Henry Thompson warns that the XML Core Working Group proposes to remove the default value of
xml:spacefrom W3C XML Schema for the
xml:namespace. Curiously, no debate ensued after this announcement.
- Micah Dubinko Launches Brain Attic
XML.com author and XForms expert Dubinko cuts loose into the fertile world of XML consulting.
- EXSLT.NET 1.1
A freely available implementation of the EXSLT XSLT extensions available for Microsoft's .NET platform.
- New Public List for X3D Discussions
Talk about XML-encoded 3D graphics.
Also in XML-Deviant
Nothing like leaving things late to focus the mind ... 58 mails to XML-DEV last week, Len rating 7% (thin pickings) ... XML will eat itself ... or it may eat you -- sound mental health advice from Michael Kay ... Microsoft's REST support shames Google ... can't resist one more WS-Snipe.