In RDF 1.1, there is no longer a difference between simple literals (those 
without language or datatype) and literals having a datatype of xsd:string. 
From RDF 1.1 Concepts [1]:

[[[
A literal in an RDF graph consists of two or three elements:

        • a lexical form, being a Unicode [UNICODE] string, which should be in 
Normal Form C [NFC],
        • a datatype IRI, being an IRI that determines how the lexical form 
maps to a literal value.
...
Concrete syntaxes may support simple literals, consisting of only a lexical 
form without any datatype IRI or language tag. Simple literals only exist in 
concrete syntaxes, and are treated as syntactic sugar for abstract syntax 
literals with the datatype IRI http://www.w3.org/2001/XMLSchema#string.
]]]

I'm trying to reconcile this with the requirements of the SPARQL 1.1 tests, 
where there is a difference between a plain literal and one with xsd:string. 
For example [2], in this case, STRDT requires that it's argument be a simple 
literal, and specifically checks to be sure that literals having a datatype of 
xsd:string are excluded from the results:

[[[
PREFIX : <http://example.org/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?s (STRDT(?o,xsd:string) AS ?str1) WHERE {
        ?s ?p ?o
}
]]]

I realize that SPARQL 1.1 is defined against RDF 1.0, but I wonder if there is 
a transition plan, or an alternate set of tests that verify behavior against 
RDF 1.1 literal semantics? Or, perhaps I'm misunderstanding something else.

Gregg Kellogg
[email protected]

[1] http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal
[2] http://www.w3.org/2009/sparql/docs/tests/data-sparql11/functions/strdt03.rq

Reply via email to