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

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

From: Andy Seaborne <andy.seaborne@epimorphics.com>
Date: Fri, 06 May 2011 09:33:08 +0100
Message-ID: <4DC3B244.4020209@epimorphics.com>
To: public-rdf-wg@w3.org


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"?

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 08:33:41 GMT

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