Question about duplicate triples

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? 

Thanks


-- 
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 Monday, 30 July 2012 22:18:57 UTC