Skip to content

SPARQL service description and discovery

Timothy Lebo edited this page Feb 14, 2012 · 3 revisions
csv2rdf4lod-automation is licensed under the [Apache License, Version 2.0](https://github.com/timrdf/csv2rdf4lod-automation/wiki/License)

Thanks go Graham for these links.

I did a little digging, and came up with the following (in no particular order).

http://webofdata.wordpress.com/2009/03/10/sparql-endpoint-discovery/

http://semanticweb.org/wiki/VoiD -- http://vocab.deri.ie/void#sparqlEndpoint

http://www.w3.org/wiki/SweoIG/TaskForces/CommunityProjects/LinkingOpenDataGoodPractice

http://www.iana.org/assignments/link-relations/link-relations.xml (not seeing anything that looks like a SPARQL endpoint)

http://www.floop.org.uk/eagle/discovering-sparql

http://lists.w3.org/Archives/Public/semantic-web/2011Apr/0019.html (why semantic sitemaps don't work)

http://www.w3.org/wiki/SparqlEndpointDescription - defers to VoID

http://www.w3.org/TR/sparql11-service-description/ (seems overkill for our needs, and doesn't address discovery AFAICT)

and Graham again:

Mulling the problem of discovering provenance SPARQL endpoints, without defining additional features or terms, I have two suggestions:

  1. Extend provenance service description; e.g.

{ "provenance_service_uri": "http://example.info/provenance_service/", "provenance_query_uri": "http://example.info/provenance/sparql/", "provenance_locations_template": "http://example.info/provenance_service/locations/?uri={uri}", "provenance_content_template": "http://example.info/provenance_service/provenance/?uri={uri}" }

(Note that the new field is a URI not a template.)

  1. use void:sparqlEndpoint

2a. In link header field:

Link: http://example.info/provenance/sparql/ ; rel=http://rdfs.org/ns/void#sparqlEndpoint ; anchor=provenance-URI

Notes: (i) the anchor here is the provenance URI, not the resource/entity URI, to match the definition of void:sparqlEndpoint. The provenance URI here MAY be different from any provenance link relation given, as it would denote the complete set of triples available at the sparql endpoint, not necessarily those related to the single entity concerned. The URI is not required to be dereferenceable. (ii) RFC5988 says that link relation URIs SHOULD be lowercase, but not MUST. In this case, I think to change the case of the void:sparqlEndpoint URI would be counter-rpoductive, but I'm not offhand sure of the other ramifications of this. (iii) I'm not sure if this approach of mirroring RDF statement in link relations has any snags, but it seems a useful option to me.

2b in RDF

An RDF resource may refer to its own provenance SPARQL endpoint; e.g.

ex:someEntity prov:hasProvenance [ void:sparqlEndpoint http://example.info/provenance/sparql/ ]

Here, a blank node is introduced to denote the full provenance triple set. An explicit URI could be used.

Clone this wiki locally