Re: langstring, datatypes and semantics

On 22 Aug 2012, at 10:30, Antoine Zimmermann wrote:
> Langstrings are said to have a datatype IRI but no datatype is defined for them.


> Yet, the current spec refers to the "value space" of rdf:langString. So, it leaves me wondering, is rdf:langString denoting a datatype?


> If not, what's a value space of something which is not a datatype.

RDF Concepts does not say. It says that datatypes have a value space, and that a value space is associated with the IRI rdf:langString.

> If yes, whatever datatype it denotes does not follow the definition of datatype.
> Anyway, putting aside the phrasing of RDF Concepts, should the following triple be axiomatic:
> rdf:langString  rdf:type  rdfs:Datatype .
> My opinion is no. 

I agree, it should not.

> However, there should be:
> rdf:langString  rdf:type  rdfs:Class .

This seems reasonable, given that we want to use rdf:langString in rdfs:range statements.

> Another point is: can rdf:langString be used as a datatype IRI in non-langstring literals?


> The current draft of RDF Concepts does not dissallow it

Wrong. The definition of literal is such that there can't be a literal with datatype IRI rdf:langString that is not a language-tagged string.

> , so one can write:
> <s> <p> "abc"^^rdf:langString .
> I think this should be forbidden.

It is forbidden. This has a datatype IRI of rdf:langString but no language tag, so it is not a literal as defined in the RDF abstract syntax.

> So, it's not only that langStrings MUST have a datatype IRI equal to rdf:langString, but also that any literal with this datatype IRI MUST have a language tag.

That's already the case, from the definition of literal and language-tagged string.

> This would have a consequence on the definition of datatype maps. If rdf:langString is not allowed for typed literals, then the following line should be added to Section 5.4:
> "A datatype map MUST not contain the IRI rdf:langString, as it is reserved for language-tagged strings and no formal datatype is defined for this IRI."

I don't see the benefit of saying that. If someone wants to define a formal datatype for rdf:langString, then why stop them? It would simply be a no-op, as there is no literal whose value would be defined by that datatype. Forbidding such a datatype might also create unnecessary roadblocks in the unlikely case that some future WG ever wants to update that rdf:PlainLiteral spec written by the RIF and OWL folks.


> Best,
> -- 
> Antoine Zimmermann
> ISCOD / LSTI - Institut Henri Fayol
> École Nationale Supérieure des Mines de Saint-Étienne
> 158 cours Fauriel
> 42023 Saint-Étienne Cedex 2
> France
> Tél:+33(0)4 77 42 66 03
> Fax:+33(0)4 77 42 66 66

Received on Wednesday, 22 August 2012 20:36:17 UTC