- From: Richard Cyganiak <richard@cyganiak.de>
- Date: Thu, 26 May 2011 19:26:58 +0100
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- Cc: public-rdf-wg@w3.org
On 26 May 2011, at 17:32, Andy Seaborne wrote: > We would need a (data)type to cover value space of both xsd:string and rdf:LangTaggedString so you can write: > > skos:prefLabel rdfs:range rdf:String . > > http://www.w3.org/TR/skos-reference/#S12 > > (If a datatype, empty value space - I don't think we can use rdf:PlainLiteral's lexical space without making it some sort of special case) Every datatype is automatically also a class that contains all members of the value space. This is why you can use rdfs:range with datatypes in the first place. So you can already say skos:prefLabel rdfs:range rdf:PlainLiteral . and that only says that objects of skos:prefLabel statements are members of the value space of rdf:PlainLiteral -- which covers the value space of both xsd:string and rdf:LanguageTaggedString. This doesn't say anything about the lexical form. I don't think any special casing is needed in the specs to make this work. It already follows from the definition of rdf:PlainLiteral. (I think RDF Concepts and/or RDF Schema could simply assert that rdf:PlainLiteral is a class, as this is consistent with the statement that rdf:PlainLiteral is a datatype -- it's implied anyways. So we keep the useful bit of rdf:PlainLiteral (it defines a name for a useful set of values), while ignoring the weird bit (the lexical form which MUST not be used anywhere anyways).) Best, Richard
Received on Thursday, 26 May 2011 18:27:27 UTC