-
Notifications
You must be signed in to change notification settings - Fork 36
SPARQL service description and discovery
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:
- 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.)
- 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.