Inter-net
These days, if you happen to spot an RJ45 outlet in a hotel room, it is a pretty safe bet that you can assume TCP/IP over Ethernet. It wasn't always that way. I know a company that once was betting on SNA over Token/Ring. Remember Banyan Vines? NetWare? NETBIOS? To be sure, each of these still exist, but have been greatly marginalized by TCP/IP.
How did it get there? Not by being better, or by ruthless marketing. But by being the connector that glues things together.
Inter - net. The network of networks. Ostensibly designed as the bridge between incompatible networks, the allure of implementing just this one additional protocol to complement your native one ultimately begat the notion that TCP/IP was the only protocol one would ever need.
On one hand, I have little sympathy for those who see too steep
of a learning curve in spelling a concept as
rdf:about="uri"
instead of
<id>uri</id>
. Both are equally as
templatable.
On the other hand, demanding that everybody does even this one simple step in a uniform fashion before any of the wonderful network effects that have been predicted pretty much makes this a non-starter. Things like RDF Twig are great, but they address the wrong side of the equation if one is really serious about getting the initial bootstrap going.
Aaron's wonderful little hack points the way to the solution. By adding this one line to your existing XML, you can have all the proper rdf:parseType elements sprinkled throughout your infoset in all the right places automagically.
Unfortunately, however, this hack relies on a leaky abstraction, namely support of XML parsers for attribute defaults. Furthermore, the results are rather brittle as one stray attribute can render the document invalid.
The fulcrum that we need to focus on is the RDF parser. If we can train that to intelligently consume a large subset of XML grammers, critical mass can be achieved. One constraint, however. This needs to be limited to the addition of at most one line to the XML. Like a DOCTYPE, but more general. Perhaps a PI like xml-stylesheet. But instead of a general purpose stylesheet, perhaps it could be a special purpose grammar designed for the task, like XR. Perhaps it could be as simple as a list of 3-tuples containing XPath expressions. If not a PI, then perhaps a single element that needs to be dropped into whatever corresponds to a header section in the target grammar.
Let's turn this thing around. Instead of requiring one to make their XML RDF friendly, let's make RDF XML friendly. Or, at least make RDF meet XML half way.