- From: Andreas Langegger <al@jku.at>
- Date: Fri, 11 Sep 2009 12:47:19 +0200
- To: Gregory Williams <greg@evilfunhouse.com>
- CC: RDF Data Access Working Group <public-rdf-dawg-comments@w3.org>, axel@polleres.net, michael.hausenblas@deri.org
Hi Greg,
Gregory Williams wrote:
> It looks like a "DESCRIBE DATASET/SERVICE" won't be the path taken, as
> there are some concerns about this operating at the query engine level,
> when it's really a protocol operation. The exact method for how to do it
> hasn't been nailed down yet, but some of the options under discussion are:
I also had some concerns when changing the grammar, because parts of a
description may be "protocol"-specific. Why should a non-HTTP query
engine (e.g. RDF store) provide SPARQL endpoint descriptions that are
only relevant when using the HTTP protocol? I'll explain what I've
experienced.
Many features are query engine specific (e.g. fulltext seach, query
language, initial bindings, etc.) and should be announced in a query
engine specific way and not via the SPARQL HTTP protocol.
I'd advice not to announce them as OPTIONS/X-Headers/etc. since they are
relevant to any client using the query engine even without a HTTP
endpoint (e.g. via in-process API, ODBC/Virtuoso, etc.) - Can you give
me a reason why HTTP OPTIONS/X-Headers makes more sense?
> - an HTTP response header linking to a service description document
> - the use of the HTTP OPTIONS verb on the endpoint URI
> - using content negotiation on the endpoint URI to request RDF (or
> possibly having the endpoint URI return RDFa)
> - a new protocol operation (/sparql?serviceDescription)
I would also prefer an approach which allows to query endpoint
descriptions with sub queries or FROM <uri>. It would allow clients to
read descriptions without the need for parsing them, they may not have a
SPARQL engine themselves. That won't be possible with HTTP OPTIONS, nor
with X-Headers, I'd prefer a new protocol operation, as you suggested
?serviceDescription or maybe just ?desc.
e.g.
http://example.com/sparql?query=select+*+from+<http%3A%2F%2Fexample.com%2Fsparql%3Fdesc>+where+{+%3Fs+%3Fp+%3Fo+}
would work (if FROM is allowed, should always allow local URIs)
Some features are SPARQL protocol-only, such as result formats. I would
suggest a way where the SPARQL endpoint can inject statements into the
description generated by the query engine originally and pass ith
trough. Those parts of the description will only be provided when a
client connects via HTTP/SPARQL protocol.
I think there are many non-LOD applications using SPARQL without HTTP.
They should also be able to check out if a query engine supports
full-text search, etc.!
Dataset descriptions such as voiD are not protocol specific either. They
exclusively relate to the dataset served. Why not provide such meta data
in a more generic form than via HTTP SPARQL? A DESCRIBE DATASET would
really make sense. If the query engine has no such information it would
return an empty model, which would be more than correct. Are there any
concerns with that?
I would keep in mind that dataset descriptions may become large cause
users want to include statistics, summaries, etc. Since it is cumbersome
to send HTTP cache headers upon specific queries (DESCRIBE DATASET), it
may be better to just return a voiD dataset URI which can be retrieved
(or not if it hasn't changed).
> Can you explain why returning a dataset description as SPARQL results
> would be better than returning it as RDF?
I ment SPARQL DESCRIBE results, which is RDF (not XML results).
>> For query federation, it would be very useful if the future SPARQL REC
>> supports BINDINGS such as introduced by Eric [2] before. My proposal
>> works with a set of bindings with a special "null" keyword for unbound
>> variables, e.g.:
> ...
>> It is not much effort for implementers and a federated query processor
>> can then process pipelined blocks of queries more efficiently.
> Unfortunately, this won't be part of the next SPARQL version, but
> service descriptions should allow any implementations to declare that
> they support such an extension.
Well, no good news but I understand. Can I find some chat log about
that? Just would like to get a picture of the reasons apart from lack of
time (it's a fairly easy feature and simple to implement). The main
bottleneck for large scale query federation is lack of statistics
anyway. But these can be generated periodically remotely. If we add
support for initial bindings to the SPARQL spec it would be much better
than advertise it as a feature, nobody will do that (lack of
incentives), and thus, impossible to do large scale query federation in
the end. Are there any chances to still talk about it?
Regards,
AndyL
Received on Friday, 11 September 2009 10:48:04 UTC