- From: Graham Klyne <GK@NineByNine.org>
- Date: Wed, 15 Jan 2003 18:41:41 +0000
- To: RDF core WG <w3c-rdfcore-wg@w3.org>
I'm trying to answer a question that's come up in the CC/PP working group.
Can a plain literal be regarded as an instance of xsd:string?
I think it's fairly clear that a plain literal with a language tag is not
an xsd:string, but less so in the case of a plain literal without a
language tag.
Here are my test cases:
(1) Is the following satisfiable?
ex:prop rdfs:range xsd:string .
ex:subj ex:prop "abc" .
(2) Is the following satisfiable?
ex:prop rdfs:range xsd:string .
ex:subj ex:prop "abc"@en .
My answers are:
(1) I'm not sure, but I lean toward "no" on the current wording.
The abstract syntax [1] suggests to me that a literal in the abstract graph
is a tuple of 1, 2 or 3 elements. (It doesn't say that explicitly, though
- it talks of a literal having up to three components.) The formal
semantics [2] says that a plain literal denotes itself. [3] and [4]
together state that the value space of an xsd:string (being the RDFS class
extension of xsd:string treated as an RDF datatype) is a finite sequence of
Unicode characters. (I note here that the references are not quite
compatible, since XML references [ISO/IEC 10646-2000] and the abstract
syntax references [UNICODE], so to be absolutely formally correct we may
need to revise the [UNICODE] reference. Do we regard a non-language plain
literal as a bare string or a 1-tuple or something else? The language
"contains" in [1] suggests it's not a bare string.
(2) No (because the two-component value ("abc","en") is not a value in
xsd:string -- i.e. is not a finite sequence of characters.
In summary, I think the combination of abstract syntax and formal semantics
needs tightening up here: either (a) the abstract syntax should be more
precise about what it is that contains three components, or (b) the formal
semantics should be more explicit about how the components relate to what
is denoted by a literal.
This may all seem rather arcane, but there's a real issue here: Art
Barstow has a proposal for UAProf/CCPP in which xsd:string is used as the
range of an property. Could the value of this property possibly be a plain
literal?
#g
--
[1]
http://www.w3.org/2001/sw/RDFCore/TR/WD-rdf-concepts-20030117/#section-Graph-Literal
[[
A literal in an RDF graph contains three components called:
]]
[2] http://www.w3.org/2001/sw/RDFCore/TR/WD-rdf-mt-20030117/#interp
[[
if E is a plain literal then I(E) = E
]]
[3] http://www.w3.org/TR/xmlschema-2/#string
[[
The ·value space· of string is the set of finite-length sequences of
characters (as defined in [XML 1.0 (Second Edition)]) that ·match· the Char
production from [XML 1.0 (Second Edition)].
]]
[4] http://www.w3.org/TR/2000/WD-xml-2e-20000814#dt-character
[[
[Definition: A character is an atomic unit of text as specified by ISO/IEC
10646 [ISO/IEC 10646] [E67](see also [ISO/IEC 10646-2000]). Legal
characters are tab, carriage return, line feed, and the legal characters of
Unicode and ISO/IEC 10646.
]]
-------------------
Graham Klyne
<GK@NineByNine.org>
Received on Wednesday, 15 January 2003 14:12:54 UTC