The W3C announced yesterday the standardization of SPARQL. This broken and immature standard has the capability to rapidly change business operations, Web searching, the advertising model of most Web revenue and enable a new generation of Web-based services.
SPARQL is broken and immature for the simple reasons that it failed to include a way to write data. I have my gripes about the way it reads data, too, but those are less important. As long as the W3C continues to treat the Web as a read-only system, the longer the Web will primarily be a read-only system. It is bad enough that we have failed to widely implement and use HTTP PUT and DELETE (fully half of REST), but we really should know better than to create new standards in 2008 that make the Web look like an information retrieval system and not an information aggregation and creation system.
For all that, SPARQL is still an incredibly important set of standards. There are three of them, SPARQL the query language for the Semantic Web, SPARQL the protocol and SPARQL the results format in XML.
SPARQL is important because it gives the world a standard way to perform distributed queries across disparate data sets. In other words, it allows you to treat the Web (the Semantic Web) as a database. Relational databases and other data stores can play, too. They just need a SPARQL overlay. This is something that the relational database crowd has never been able to pull off. I suspect that a standards body would have failed do create a standard for an RDB distributed query language if they had tried due to industry competitive pressures, but SPARQL is that critical end run. By pursuing the goal in the Semantic Web community, we now have something that will work for the RDB folks, too.
I remain fussed that Mulgara doesn't have SPARQL support yet, but Paul tells me it should come soon. I certainly haven't done anything to help, so I shouldn't complain.
Why do I think SPARQL can fundamentally change business models? Because of my experiences with this blog. I started experimenting with advertising once my readership reached reasonable levels. Impressions are few, even though readership is decent. Why? RSS. Most people read this blog via news readers or aggregators and not via the Web. They don't ever see the ads. Cool, right? Yeah. Imagine, though, the impact on the online advertising market (which financially supports Google and its competitors) when the Web is a database. Nobody will see the ads. Watch out, world. Where there is chaos, there is opportunity. I can't wait to see what happens next.
David,
ReplyDeleteAlthough not part of the official standard there are extensions to SPARQL that cover CRUD (Create, Update, and Delete). Even better, most of the major RDF Data Stores that support SPARQL also support this extension.
See:
1. SPARUL
2. TimBL's RDF Data Wiki demo (which uses SPARQL INSERTs via HTTP POST method)
3. Virtuoso's SPARUL Documentation section
Hi David,
ReplyDeleteFor what it's worth, in QDOS we use SPARQL with PUT and DELETE to the SPARQL endpoint to manage data. That seems perfectly logical to me.
In general that's not ideal, as you don't get to mess with triples, just graphs, but it's fine in this case.
- Steve
Yeah, I know. iTQL also has the ability to write (and walk graphs, and perform transitive closure, etc, etc). Can either of you tell me that writing doesn't belong in the standard? Do we really want an arbitrary number of ways to write but only one standards-based way to read?
ReplyDelete