CONSTRUCTing illegal triples should be optional

Regarding this:
http://www.w3.org/TR/sparql11-query/#construct
[[
If any such instantiation produces a triple containing an unbound
variable or an illegal RDF construct, such as a literal in subject or
predicate position, then that triple is not included in the output RDF
graph.
]]

This really bothers me, because: (a) it unnecessarily couples SPARQL to
a controversial decision in the RDF WG that may well change in the
future, i.e., the prohibition against literals as subjects; and (b) it
forces a conforming implementation to perform checks that its user may
not want or need.  

If a user chooses to generate invalid RDF then that is his/her business.
The SPARQL spec should not prohibit it.  If a particular implementation
offers the feature of performing this check, then that is fine.  But it
is unnecessarily draconian to require all implementations to do it.

I suggest changing the above to:
[[
If any such instantiation produces a triple containing an unbound
variable then that triple MUST NOT be included in the output RDF graph.
Otherwise, if any such instantiation produces a triple containing any
illegal RDF construct, such as a literal in subject or predicate
position, then that triple MAY be excluded from the output RDF graph.
]]


-- 
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 Friday, 20 July 2012 16:19:26 UTC