The W3C has announced the publication of SPARQL , a language for querying distributed data on the web. Similar to the way SQL is a generic language used to query relational databases regardless of vendor, SPARQL will allow users and applications to create queries that express high-level goals across many different data sources, regardless of the database technology or data format involved.
From the W3C press release:
"Trying to use the Semantic Web without SPARQL is like trying to use a relational database without SQL," explained Tim Berners-Lee, W3C Director. "SPARQL makes it possible to query information from databases and other diverse sources in the wild, across the Web."
The combination of the SPARQL query language and protocol creates a Web service in its purest sense; running on top of HTTP or SOAP, it provides a standard Web service for anything which asks a question.
"SPARQL's focus on querying the data models saves time for developers; there's no need for a host of little Web services to retrieve different aspects of the state of a system," explained Lee Feigenbaum, Chair of the RDF Data Access Working Group. "This allows the user of the SPARQL endpoint to ask any question -- it is as though they could design their own interface instead of having to work with a limited set of fixed services."
The press release goes on to say that the SPARQL specification defines both a query language and a protocol, and works well with other Semantic Web technologies from the W3C: RDF, RDF Schema, OWL and GRDDL.
Already available in 14 known implementations, SPARQL is designed to be used at the scale of the Web to allow queries over distributed data sources independent of format. It also can be used for mashing up Web 2.0 data.
I see this as a very positive development for the Semantic Web field in general. At its core, the operation of the Semantic Web is composed of the following basic functions:
- Creating content with meaning (either implicit, like XML, or explicit, like Tags)
- Understanding or extracting the information from a block of content
- Classifying the blocks of content (into a hierarchy, taxonomy or folksonomy)
- Presenting the information in a variety of forms (web, mobile, web services API, mashups, embedded devices and so on)
- Finding the information of interest; this information may have to be derived from the content provided
The rise of easy-to-use self-publishing tools has led to an explosion in the amount of content available on the Web, and being able to find the answer to a question from this mountain of information is vital.
But first users have to be able to express what they are looking for, in a meaningful way. It is this need that is being addressed by SPARQL, which allows users to formulate intelligent queries. These queries can then be used by agents and applications on our behalf to find us the information we need.