- From: Andy Seaborne <andy@apache.org>
- Date: Mon, 18 Nov 2013 21:06:54 +0000
- To: public-rdf-wg@w3.org
On 18/11/13 19:48, Markus Lanthaler wrote: > On Monday, November 18, 2013 7:35 PM, Andy Seaborne wrote: >> On 18/11/13 14:38, Markus Lanthaler wrote: >>> One more thing :-) >>> >>> On Monday, November 18, 2013 3:33 PM, Markus Lanthaler wrote: >>>> --------------%<----------------------- >>>> Literals are used for values such as strings, numbers, and dates. >>>> >>> [...] >>>> >>>> A literal is a language-tagged string if the third element is present. >>>> Lexical representations of language tags MAY be converted to lower >>>> case. >>>> The value space of language tags is always in lower case. >>> >>> A literal is a *typed value* if its datatype IRI does not equal >>> rdf:langString. >> >> ?? It's always typed in RDF 1.1 > > Right. Literals consist of language-tagged strings and things that are > literals but not language-tagged strings. I would like to give those things > a name and proposed "typed value". > > >> I think it's clearer if we say that literals always have a datatype. > > Isn't that obvious from the description in the other email ("A literal in an > RDF graph consists of two or three elements...")? No, not obvious if there is something called a "typed value" that is different from having a datatype and not related to "values" Why do we need terminology for "not rdf:langString" -- why not terminology for "not xsd:string" which is special in TTL syntax forms as well: :x :p "foo" . :x :p "foo"@en . :x :p "foo"^^my;type . I find it very confusing to have "datatypes" and "typed values" and "values" being different concepts. "typed values" is not the value of a literal either as it is due to abstract syntax not the value space. And :x :p "foo". is a typed value without the (data)type showing. > > >>> This would make it much easier to talk about "literals which are not >>> language-tagged strings". >> >> Previous email: >>> - if and only if the datatype IRI is rdf:langString, optionally a >>> non-empty language tag as defined by [BCP47]. The language tag MUST > be >>> well-formed according to section 2.2.9 of [BCP47]. >> >> If it has a datatype of rdf:langString then it must have a language >> tag. >> >> We ought to be clear about: >> >> "foo"^^rdf:langString > > This is not a language-tagged string but still a literal as far as I > understand it. Is that correct? No idea - that's why I'm asking. Your text which say says there is an optional non-empty language tag and it must be [BCP47] if the datatype is rdf:langString. This example fall outside that but it has a datatype IRI of rdf:langString so it's covered by the "if and only if". I propose 1/ If the datatype is rdf:langString then there is a language tag string. 2/ if the language tag string is not empty, it must be BCP47 syntax. I think it's important all impls do the same thing. Also, this is what SPARQL supports (since 1.0) although was motivated by RDF/XML using xml:lang="" for switching the language tag off if set further out. Andy > > > -- > Markus Lanthaler > @markuslanthaler > >
Received on Monday, 18 November 2013 21:07:24 UTC