Archive for March, 2008|Monthly archive page

The end of endpoints?

In meetings on March 13, 2008 at 2:16 pm

Last Thursday’s SWIG meeting in Oxford was another great event. With Leigh Dodds of Ingenta and Inigo Surguy of 67bricks speaking on the SPARQL query language; it was always going to be a good night. I was personally disappointed that we didn’t get more attendees, and I think I’m going to have to start cross-posting future events to other mailing lists. We attempted to broadcast the session on live.yahoo.com, but a combination of the university’s wireless network and Yahoo’s infrastructure conspired to make that a less engaging experience than it might have been.

Leigh’s first talk centered on Twinkle a graphical user interface onto a spqrql query engine. Twinkle manages the sparql connections with multiple data sources allowing the user to write queries over in-memory data collections.

Leigh noted that some data sets assume a default graph others need to have one specified – thereby highlighting issues of interoperability between sparql servicing interfaces. He showed how to edit etc\config.n3 to establish a new data source in the user interface (you will need to bounce the user interface to reload the available services) to create your own semantic user interface onto your data. Leigh has commented his configuration file but there is no dedicated documentation. He is thinking about moving Twinkle to an open source model possibly using Google Code. Future possibilities include distributed queries; his team at ingenta are making daily use of Andy Seabourne’s ARQ extensions to enhance queries (an issue that also cam up in Inigo Surguy’s talk – see below). As Leigh was talking, I couldn’t help but imagine how the data that I use on a daily basis might yield to a triple based approach and am now seeking a business justification for a proof of concept activity.

Leigh’s second talk discussed the four forms of sparql queries:
* select provides a comfort factor for learning sparql but may be the weakest query form (good for indexing)<br/>
* ask returns a true/false value as a test which can be optimised within implementations
* construct returns an rdf graph allows local aggregation of crawled data and generic object instantiation (good fo transformations especially if functions were available)
* describe also returns an rdf graph but the query engine decides what is relevant (good for prototyping/ad hoc apis)
Leigh talked about work that Alistair Miles have done on SPARQL for RDF validation (akin to using XPath for XML validation and known as Schemarama 2) using ASK WHERE {assertion of invalid data} and CONSTRUCT. Leigh also mentioned the ADC pattern ASK DESCRIBE CONSTRUCT – approach to developing semantic applications.

Inigo Surguy started his presentation by asking why there aren’t more sql endpoints available on the web. That led immediately to a question from Tony Hammond about what a sparql endpoint is obliged to do. In turn there was a shock revelation that the sparql protocol specification does not mention the term end point although it is in common use). It may be that the term is inherited from the webservices domain – especially as the sparql protocol refers to webservice implementations. But it is curious how language evolves by consensual use (or maybe not now that the issue of its use has been raised).

Inigo’s talk focussed on how to extend Joseki (again using n3 syntax). Inigo showed another neat demo of how to obtain geolocation details given (unambiguous) place names and then finding (and mapping) local items of interest once the geolocation details are known. He’s using D2R to expose data from out of relational databases but talked about the limited power of the sparql query languages built in functions. This led to the point that he was making about the need for a semantic function library (such as is available at exslt.org) to extend the capabilities of sparql (perhaps an esparql.org) as a community process for registering extension functions. Ther was a consensus that sparql is underpowered. However Leigh commented that ad hoc extensions could become another way of breaking a sparql service if the expectation is that the service provider implements the extension function. Sometimes a better approach would be to enhance the original data rather than creating functions to tidy the data up.

I found it to be inspiring evening that made me think of many applications that could be built. Just spending time with people like Leigh and Inigo is motivation to create services that help evangelise the empowering nature of abstract data models. Thanks to you both for another great event.

The next SWIG event is on the 12 May and will feature Ian Davis and his team from Talis showing how to use the freely available Talis platform to develop semantic web applications.