problems with RDF literals

It appears to me that RDF(S) literals are now broken.  (I'm working from
the LCC candidate at 

The only semantic constraints that mention rdfs:Literal are
1/ I(rdfs:Literal) is a member of IC
2/ rdfs:comment rdfs:range rdfs:Literal.
2/ rdfs:label rdfs:range rdfs:Literal.

All this means is that rdfs:Literal denotes a class, but it says nothing
about the class extension of rdfs:Literal.  In particular, the denotation
of untyped literals do not have to be instances of rdfs:Literal, nor need
there be *any* instances of rdfs:Literal at all.  Further, comments and
labels are not necessarily literals (typed or untyped).

This makes several parts of RDFS and datatyped interpretations problematic,
because rdfs:Literal is not (no longer?) the class of all literals nor is
rdfs:Literal necessarily (any longer?) a datatype.

1/ The denotation of "arthur"^^xsd:decimal is not necessarily not in
   ICEXT(I(rdfs:Literal)) in a datatype interpretation that makes
   xsd:decimal be the XML Schema decimal datatype.

2/ The following RDFS closure rule is not valid:

   rdfs11: xxx rdf:type rdfs:Datatype . -> xxx rdfs:subClassOf rdfs:Literal .

3/ The following RDFS LBase axioms are not valid:

   rdf:XMLLiteral(?x) implies rdfs:Literal(?x)
   LBase:String(?y) implies rdfs:Literal(?y)
   (rdfs:Literal(?x) and LBase:String(?y)) implies rdfs:Literal(pair(?x,?y))

   The second-last axiom would not be valid even if rdfs:Literal was fixed,
   because only certain strings can be language tags.  The last axiom would
   not be valid even if rdfs:Literal was fixed, because datatypes are not

Peter F. Patel-Schneider
Bell Labs Research
Lucent Technologies

PS: I believe that only certain strings can be language tags, but the
concepts document only mentions constraints on language tags where it
talks about rdfs:XMLLiteral.  By the way these are language *tags*, not
language identifiers.  Concepts does not place any restriction on language
tags at all, except for language tags for rdfs:XMLLiteral.  Semantics also
does not place any constraint on language tags, where it introduces them.
Therefore it appears to me that "foo"@rdf:type is a valid untyped
literal. (Semantics does, later, talk about simple literals, which have
strings for their language tags.)  The entire development of the syntax of
untyped literals appears to me to be totally messed up.

PPS:  The pointer to RFC 3066 is wrong in Concepts.  It took me a while to
discover that I was reading the wrong RFC.

Received on Friday, 3 January 2003 11:21:45 UTC