W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > February 2007

RE: Ambiguity for Literal order in SPARQL

From: Stephane Fellah <stephanef@imagemattersllc.com>
Date: Wed, 21 Feb 2007 14:26:49 -0500
To: "'Richard Newman'" <r.newman@reading.ac.uk>
Cc: <public-rdf-dawg-comments@w3.org>
Message-ID: <006d01c755ee$3bad77b0$4500a8c0@SmartWorld>


I agree with the order you suggest however I think prior doing the
comparison on the lexical form, we need to do a comparison on the value
space (date, numbers, boolean). If the value space comparison returns
equality, then a lexical form comparison needs to be done.
In this case we ensure we have a "semantic"/mathematical ordering of literal
value, not only syntactic.


-----Original Message-----
From: public-rdf-dawg-comments-request@w3.org
[mailto:public-rdf-dawg-comments-request@w3.org] On Behalf Of Richard Newman
Sent: Wednesday, February 21, 2007 1:34 PM
To: Stephane Fellah
Cc: public-rdf-dawg-comments@w3.org
Subject: Re: Ambiguity for Literal order in SPARQL

 From an implementer's perspective, I agree that this section is  

The only reason I can see for 5 is that plain literals are implicitly  
xsd:strings, but they appear differently and so need an imposed order.

Here's the rule I've come up with for handling literals:

- all literals are sorted by lexical form.
- a tie (where the lexical form is the same) is resolved as follows:
   - sort by lexical form of datatype URI, with plain literals as  
xsd:string. Plain literals compare before literals explicitly typed  
as xsd:string.
   - only plain literals can have language tags, so language tagged  
literals can only tie with a plain literal of the same lexical form.  
In this case, sort by the lexical form of the language tag to break  
the tie, with simple literals (no language tag or datatype literal)  
having an implicit language of "".
   - two plain literals with the same language tag, or no language  
tag, are the same literal, so no ordering is needed.

A sorted order would look like this:

"abc"                  < plain literal, sorted by lexical form
"horse"                < plain literal, no language
"horse"@en             < plain literal, "en" > nil
"horse"@fr             < plain literal, "fr" > "en"
"horse"^^xsd:string    < xsd:string wins out over plain literal's  
implicit xsd:string
"horse"^^xsd:xstring   < sorting by type URI: "xstring" > "string"
"xyz"                  < lexical form wins out again.

I'd love to get the WG's feedback on this. Is this what the document  


On  21 Feb 2007, at 5:50 AM, Stephane Fellah wrote:

> Hi,
> The SPARQL specification is quite ambiguous on the sorting for  
> literals.  The specification mentioned in section 10.1.1. ORDER  
> BY,  the following order criteria.
> (Lowest) no value assigned to the variable or expression in this  
> solution.
> Blank nodes
> IRIs
> RDF literals
> A plain literal is lower than an RDF literal with type xsd:string  
> of the same lexical form.
> I like to get more clarification about the order of plain literal  
> with language as well as typed literal. I know that ARQ is handling  
> this case, but I like to see this formalized in the specs to ensure  
> that ordering remains consistent between implementations.  Thanks  
> in advance
> Best regards
> Stephane Fellah
> KnowledgeSmarts Architect
> Image Matters LLC

No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.412 / Virus Database: 268.18.3/694 - Release Date: 2/20/2007

No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.412 / Virus Database: 268.18.3/694 - Release Date: 2/20/2007
Received on Wednesday, 21 February 2007 19:27:00 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:52:08 UTC