Re: ISSUE-12: xs:string VS plain literals: proposed resolution

On Friday, May 6, 2011, Andy Seaborne <> wrote:
> On 04/05/11 20:13, Pat Hayes wrote:
> I am confused. There seems to now be a consensus view that plain,
> untyped literals are a Good Thing, to be preferred to clunky typed
> literals.  But the last time I encountered this whole issue of plain
> literals in RDF, there was a very strong consensus that plainness was
> a problem, and everything would be better if - in fact, for some,
> life would be possible only if - all literals had a type. Which is
> why the rdf:PlainLiteral type was invented, to be the type of these
> anomalous entities that had no type, in order that every literal
> would have a type.
> So, can anyone enlighten me? Are typed literals good or bad? Is
> plainness beautiful, or a dire problem? And are there any actual
> arguments either way, or is this all based on intuition and
> aesthetics?
> Pat
> I can take a partial explanation of this ... hopefully we can build a complete picture.  This is only my post hoc rationalisation.
> People writing data like to write "foo".  They don't really see the need to write "foo"^^xsd:string.  Just like writing 123 for "123"^^xsd:integer. This is the syntax and appearance side of the issue.  What is serialized by "foo"?

If that's the only reason to have untyped literals then I'd prefer to
see all literals as typed in the abstract syntax and "a" used as a
shortcut for "a"^^xsd:string in the concrete syntax. It would simplify
implementation logic (no longer have to check for no datatype as a
special case) and align better with RIF and OWL. It does leave open
the question of how to treat language tags.

I hesitate to formally propose that, however, because it would mean
reworking a lot of legacy code, and because making such a major change
to the RDF Concepts the week SPARQL goes to last call could jeopardize
their work.


> This carries over into XML: <property>foo<property>
> XML does not have datatypes for strings with a language; it has a separate mechanism for language and datatype.  I'd guess teh argument ran that because
>   <property xml:lang="cy">foo<property>
> isn't typed so why should
>   <property>foo<property>
> be.  Can someone from last time add some history here?
> rdf:PlainLiteral solves another part of the problem space.  It means there is a datatype for every kind of literal, which is very helpful in RIF and OWL.  The "consensus that plainness was a problem" came from that direction.  rdf:PlainLiteral should never appear as a datatype in RDF - it's supposed to be handled at the boundary so systems wishing to handle literals always with a datatype can use this - otherwise we now have yet-another-way of writing the text "foo".
> I wonder if most people would be happen if we emphasised that it's the value that matters.  xsd:string and simple literal have the same value, as do 00123 and +123.
>         Andy

Received on Friday, 6 May 2011 12:32:41 UTC