- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Mon, 18 Apr 2011 11:24:54 +0100
- To: public-rdf-wg@w3.org
On 16/04/11 18:32, Lee Feigenbaum wrote: > 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 Just so we get the details sorted out: datatype(simple literal) is already xsd:string in SPARQL 1.0 and lang(typed literal) = "" (I can't remember why it's not an error - Eric?) > * ...retaining the ability to have properties with rdfs:range xs:string > * ...retaining the ability to write "foo" in Turtle and Turtle-like > syntaxes This to me is as important as anything else. "foo", "foo"^^xsd:string being the same (not just as an entailment as per xsd 1a/1b). > * ...having "foo" match "foo"^^xs:string in SPARQL basic graph pattern > matching at the simple entailment level. Canonicalizing on input is possible. Andy > > Lee > >> Best, Richard >> >
Received on Monday, 18 April 2011 10:25:24 UTC