Re: Thinking out lout about some strange SPARQL entailment test cases...

On 27 August 2010 17:42, Axel Polleres <axel.polleres@deri.org> wrote:
> Hi Birte, all,
>
> Do you think we should add a test case like that:
>
>  G:
>   :s :p "foo"
>
>  Q:
>  SELECT ?L
>  WHERE { ?L a rdfs:Literal }
>
> Similarly:
>
>  G:
>   :s :p 1
>
>  Q:
>  SELECT ?L
>  WHERE { ?L a xsd:integer }
>
>
> Obviously, those will not give an answer, but some people might expect those to return surrogate blank nodes... a colleague of mine just came to me with that (in a different context), and I thought I might share it.

Blank nodes should not be returned according o the regime.They are
treated like Skolem constants, i.e., you could rename them in the
graph as you want before answering the query, but then you just return
the ones that are actually in the graph and in this case there is
none.

Apart from that any binding will be invalid RDF anyway, but if you
were to neglect that (or if we assume RDF is extended to allow for
literals in subject position), then under RDFS reasoning, you could
get "foo", but not "abc" or "whatever" since only "foo" occurs in the
graph and we limit bindings to the vocabulary of the graph and the
RDFS vocabulary (rdf:_1, rdf:_2, ... have special treatment) and
literals are only in the vacabulary if they occur in the graph.

If we include it as a test, we might get different answers because
some systems are strict and don't allow literals whereas others are
not that strict and I am not sure we want to punish that? If we were,
one could ask why SPARQL not just says that any up-to-date RDF is
allowed, but SPARQL explicitly allows literals in subject position.
The conditions on ent. reg. require, however, that any instantiated
BGP is legal for the regime and "foo" a rdfs:literal is not legal
RDF(S).

Birte


> Axel



-- 
Dr. Birte Glimm, Room 309
Computing Laboratory
Parks Road
Oxford
OX1 3QD
United Kingdom
+44 (0)1865 283520

Received on Friday, 27 August 2010 19:04:07 UTC