SPARQL Query Results XML Format Implementation Report

Introduction

This report by the RDF Data Access Working Group (DAWG) is in support of a transition to Proposed Recommendation for the SPARQL Query Results XML Format specification. In particular, it fulfills the following Candidate Recommendation exit criteria set forth in the 25 Sep 2007 CR publication of the specification:

Each identified SPARQL feature has at least two implementations.

Testing

The SPARQL Query Results XML Format defines an XML format for the variable binding and boolean results formats provided by the SPARQL Query Language for RDF. To demonstrate multiple implementations of the query results XML format, the Working Group has shown two implementations that produce the format as well as two implementations that consume the format.

The Working Group examined producers and consumers of the query results XML format in conjunction with producing an implementation report for the SPARQL Protocol for RDF. Several of the tests of the protocol require the protocol implementation to return the query results XML format, both for the variable binding format and boolean format. In addition, the python code that serves as the protocol test harness is a consumer of the XML results format, as it parses the format into an internal graph to check for correctness. Finally, we ran each of the result format instances through a second consumer, an XSL transform that consumes the query results XML format and generates HTML. We pairwise tested two producers of the results format with two consumers, and were successful in all tests.

Tested Implementations

The producers tested were:

The consumers tested were:

Test Results

Both Joseki and AllegroGraph produced SPARQL query results XML that the protocol test harness successfully parsed. This is evidenced by their results in the protocol implementation report: Joseki, AllegroGraph. Note that this includes results both for the variable bindings dialect of the results format as well as for the boolean results dialect.

The protocol test harness consumed the query results XML format. The automated test harness parsed the query results XML format produced by the services in order to determine their correctness. It successfully worked with the XML results from both Joseki and AllegroGraph.

Finally, all of the XML results produced by the two services were run through the aforementioned XSLT, without error. The results can be found here: Joseki, AllegroGraph. A visual inspection and a directory-diff indicates that the only difference is a semantically-insignificant reordering of some of the results.