Note: This document has no formal status whatever as an artifact of DAWG. It is placed here for historical interest only; questions or comments regarding this document should be directed to Kendall Clark, DAWG has formaly postponed the serviceDescription issue:

whereas the serviceDescription designs aren't maturing in the timescale of the current schedule, and implementation experience is somewhat thin, RESOLVED to postpone serviceDescriptions

Thus, if you have new information — designs that are mostly baked or implementation experience to report — please report it to the DAWG comments list and it will be taken under advisement.

SPARQL Service Advertisement and Discovery Language (SADDLE)



The SPARQL protocol is intended to promote interoperability between RDF clients and servers, while minimizing the amount of out-of-band communication necessary. A standardized, well-understood means for servers to advertise their capabilities and configuration options, and for clients to discover and understand those capabilities and options, will limit out-of-band communications. In particular, a language for describing SPARQL services should require as little additional complexity for RDF clients and servers; hence the use of RDF for this language.




@prefix rdf: <> .
@prefix other: <>
@prefix saddl: <> .
@prefix sl: <>

wsdl:endpoint <http://a.example/sparql/>;
wsdl:interface sl:SparqlQuery.

wsdl:endpoint <http://b.example/sparql/>;
wsdl:interface other:SparqlQSR.

wsdl:endpoint <http://b.example/sparql/>;
wsdl:interface other:SparqlQS.

sl:extensionFunctions geo:distance, algebra:rootOfQuadraticEquasion.

wsdl:endpoint <http://a.example/sparql/>;
saddle:queryLanguage [ saddle:spec <> ],
                     [ saddle:spec <> ]. # serql, etc.

#hence, we need a list of URIs identifying RDF query languages... Or a generative scheme for creating them

wsdl:endpoint <http://a.example/sparql/>;
saddle:resultFormat [ saddl:mediaType "application/sparql-results+xml";
                      saddl:spec <> ],
                    [ saddle:mediaType "application/rdf+xml";
                      saddle:spec <> ].

saddle:humanInterface <http://my.example/sparql.php>. # e.g. an XForm or HTML form

saddle:dataSet <...fact-book-part-1.rdf>, <...fact-book-part-2.rdf>.

# this service invites queries that use predicates and classes 
# that start with <...foaf/> (aka "in the foaf namespace")
saddle:vocabulary <...foaf/>.

# Add:
# saddle:supportsDatatypeOperation
# formerly known as "closed over"