- From: Andy Seaborne <andy@apache.org>
- Date: Mon, 27 Mar 2017 22:10:09 +0100
- To: public-sparql-exists@w3.org
On 27/03/17 17:19, Peter F. Patel-Schneider wrote: > I was thinking about whether using fresh variables was a problem for SPARQL > and came across the Wikidta label service, described at > https://www.mediawiki.org/wiki/Wikidata_query_service/User_Manual#Label_service > > This service breaks if variables are renamed. However, I don't think that > this is a problem because at least the automatic version of this service is > *NOT* a compliant SPARQL 1.1 service. As far as I can tell, the only > permissable results from using the service in an experssion like > SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } > are the empty solution sequence and the solultion sequence containing an > empty set of binding. > > This makes the service not part of SPARQL at all because it returns bindings > for other variables. > > Does anyone think that this service can be considered to be a legal SPARQL > 1.1 service? > > peter > > IMO it is not strictly compliant; SERVICES is a remote invocation of SELECT * { ... } so the variables are those from the pattern. It's fairly harmless to add variables because it is possible to generate practical globally fresh variables even in the absence of any agreement between all parties. UUID (version 4 - the random ones) are 122 bits of random number so the chances of clash or guess are really quite small. (Many others things have much higher chances of happening, like data in RAM going from a 5 to a 6 in an unnoticed way.) Even knowing the algorithm does not mean you can guess what a UUID will be. So a UUID, made into a safe variable string is for all practical purposes globally unique for all time. Version 1 UUIDs are more guessable because they are clock+fixed unique id - they would really need everyone to play the "try not to clash" game - but version 4 are unguessable. Andy
Received on Monday, 27 March 2017 21:10:43 UTC