- 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