Re: Question about duplicate triples

On Mon, 2012-07-30 at 18:18 -0400, David Booth wrote:
> Suppose I LOAD a single file of NTriples into a named graph foo:, and
> that file contains some duplicate triples such as:
> 
>   _:bnode <http://example/ppp> <http://example/vvv> .
>   _:bnode <http://example/ppp> <http://example/vvv> .
>   _:bnode <http://example/ppp> <http://example/vvv> .
> 
> According to the RDF Semantics, an RDF graph is a *set* of triples.
> Hence, AFAIK the above file represents an RDF graph containing *one*
> triple, and the graph is lean.
> 
> If I then query that named graph as follows, how many solutions should I
> get?
> 
>   SELECT * WHERE { GRAPH foo: { ?s ?p ?v } }
> 
> Is the SPARQL server permitted to return more than one solution (i.e.,
> duplicates) in this case?
> 
> I am aware of the DISTINCT keyword, but I always understood it as being
> intended for situations where the query could generate multiple
> candidate solutions, which is not the situation in this case.  It seems
> a little weird if a SPARQL server might return multiple solutions in
> this case, but would it still be conforming to the SPARQL spec if it
> did? 

To further elaborate, if I issue this query in the above situation

  SELECT (COUNT(*) AS ?count) WHERE { GRAPH foo: { ?s ?p ?v } }

would any number greater than zero be a conforming result for ?count ?

Or in a more general sense, if DISTINCT is not used, are the only
semantically distinguishable values for COUNT: (a) zero; and (b) at
least one?



-- 
David Booth, Ph.D.
http://dbooth.org/

Opinions expressed herein are those of the author and do not necessarily
reflect those of his employer.

Received on Tuesday, 31 July 2012 14:37:03 UTC