Re: Rethinking ISSUE-12 with lang datatypes

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 .
> (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).)


Received on Thursday, 26 May 2011 18:27:27 UTC