W3C home > Mailing lists > Public > public-rdf-wg@w3.org > April 2011

Re: Comments on this afternoon session on Turtle (ISSUE-12)

From: Lee Feigenbaum <lee@thefigtrees.net>
Date: Sat, 16 Apr 2011 13:32:49 -0400
Message-ID: <4DA9D2C1.5050507@thefigtrees.net>
To: Richard Cyganiak <richard@cyganiak.de>
CC: antoine.zimmermann@insa-lyon.fr, public-rdf-wg <public-rdf-wg@w3.org>
On 4/16/2011 11:26 AM, Richard Cyganiak wrote:
> (Tagging this as ISSUE-12)
>
> On 14 Apr 2011, at 14:50, Antoine Zimmermann wrote:
>> I don't want xs:string to be marked as archaic because if it is,
>> then it means that I am not welcome to write something like:
>>
>> :passportNumber  rdfs:range  xs:string .
>
> Personally I don't mind xsd:string being used in range declarations
> to indicate that the value has to be a plain literal without language
> tag.

What do you think should be the return of datatype("foo")? I'd like it 
to be xs:string.

> The problem with xsd:string typed literals is that for authors, the
> choice between "foo" and "foo"^^xsd:string is arbitrary, but those
> who want to query the data or access it in an API need to know what
> choice the author made. This is a constant source of usability
> issues. Hence the desire to normalize both forms internally.

Agreed. Note that either approach (normalizing to plain literals or to 
xs:string literals) would accomplish this.

[snip]

>> Still, I am in favour of simplifying things, so instead of doing
>> nothing, I would rather have plain literals without language tag
>> removed altogether and replaced by typed literals of type
>> xs:string.
>
> I think it's important that the canonical form is "foo" rather than
> "foo"^^xsd:string because writing the latter is awkward in all
> syntaxes.

I agree, but I don't think the syntax issue is a big deal. What I would 
propose is something like:

+ Eliminate (or make archaic or what not) plain literals from RDF 
abstract syntax.

+ Note that all plain literals ought to be interpreted as xs:string 
literals, in all syntaxes. In Turtle, this would mean that "foo" is a 
syntactic shortcut for "foo"^^xs:string, the same way that 14 is a 
shortcut for "14"^^xsd:integer.

Basically, I'm motivated by:

* datatype("foo") = xs:string
* ...retaining the ability to have properties with rdfs:range xs:string
* ...retaining the ability to write "foo" in Turtle and Turtle-like syntaxes
* ...having "foo" match "foo"^^xs:string in SPARQL basic graph pattern 
matching

Lee

> Best, Richard
>
Received on Saturday, 16 April 2011 17:33:27 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:25:41 GMT