- From: Simon Spero <sesuncedu@gmail.com>
- Date: Fri, 2 May 2014 13:09:57 -0400
- To: public-owl-comments@w3.org
- Message-ID: <CADE8KM5cBXTQeXBo022y=tv9W6gN=ee-7vuZ6dwnRGDQFjSV1w@mail.gmail.com>
1) There is an error in the examples given for the langRange facet in the rdf:PlainLiteral specification sec. 3. The recommendation requires the use of extended filtering ; however the examples are taken from the basic filtering section, and indicate that the range "de-de" should not match the language tag "de-latn-de". The test cases in the extended filtering specification explicitly list that value as a match. 2) OWL-2 is currently out of alignment with RDF-1.1 in its treatment of literals. RDF-1.1 no longer has the concept of plain literals. A literal with no datatype and no language tag is defined to be syntactic sugar for a literal of type xsd:string. A literal with no datatype and in language tag is defined to be syntactic sugar for a literal with type rdf:langString (with the associated language tag). Note that this is a syntactic transformation, not the optional RDF 1.0 entailment. Like PlainLiteral, langString may not appear in serialization formats that support simple literals. Literals of type xsd:string may be serialized with or without the explicit datatype. It is thus no longer possible to distinguish an xsd:string from a PlainLiteral with no language tag after RDF processing. This may impact tools that rely on preservation of xsd:string typing. The value spaces remains identical. Literals without explicit datatypes are called simple, not plain. This is distinct from SPARQL simple literals, which cannot have language tags, and have minor differences in sorting order to xsd:string. Proposed changes to OWL AS/FSS 0) Note the removal of plain literals from rdf 1.1, and deprecate rdf:PlainLiteral. Note that literals without language tags that are parsed from rdf may be typed as xsd:string and that explicitly typed xsd:string literals may lose their explicit typing. 1) Define serialization of FSS literals to conform with RDF 1.1, permitting explicit xsd:string typed literals to be rendered without explicit typing. 2) Add rdf:langString to the datatype map. rdf:langString can be defined as internally equivalent to rdf:PlainLiteral [langRange "*"] 3) Define xsd:string as internally equivalent to (rdf:PlainLiteral [langRange ""]). This is not strictly necessary, but makes the RDF 1.1 partitioning more obvious. 4) Allow all facets applicable to PlainLiteral to be applied to the two partitioning subtypes. Obviously, any rdf:LangRange on xsd:string apart from "" gives a trivially unsatisfiable datatype. -- Alternative: Modulo langRange, it would also be possible to define PlainLiteral as a legacy type that is internally equivalent to (xsd:string or rdf:langString); if langRange is defined as applicable to to both types, PlainLiteral can be deprecated. This would be a more extensive change, and if treated as a purely syntactic expansion, would require some minimal distributive rule for restricting disjunctive types. Simon p.s. (Not an erratum or proposed change - just a whine) I don't quite understood why defined datatypes cannot inherit the compatible facets from the types they are defined in terms of (at the very least for defined types that are defined as mapped types, or restrictions on same. If named data ranges are just syntactic abbreviations, facets applicable to the expansion should be available).
Received on Friday, 2 May 2014 17:10:30 UTC