Re: ACTION-83 Get clarification from Maxx Deckers on what DC meant in what they specified

As Richard says, the essence of the question and the reason we have 
dragged Makx into this :), is to check what the *intention* of Dublin 
Core was.

In terms of the technicalities then there are three separate issues to 

(1) Since dct:language has range some class could it ever have a literal 
as an acceptable value?
Answer: yes

(2) Specially can an xsd:language literal denote a dcterms:LinguisticSystem?
Answer: no, I don't think so but it depends on what DC meant by 
dcterms:LinguisticSystem, hence the question

(3) Do the RDF and OWL specs allow use of xsd:language at all?
Answer: yes

To expand on the first two answers ...

#1 Literals and Resources

In the RDF world (by which I include RDFS, OWL 1 Full and OWL 2 with the 
RDF based semantics) there is no deep separation between literals and 
individuals. Classes (instances of rdfs:Class) can have literals as 
instances. Literals are just a subset of resources and instances of 
rdfs:Datatype are indeed rdfs:Classes.

So it is perfectly legal in that case to have a property (instance of 
rdf:Property) whose range is some rdfs:Class and then use a literal 
value for that property. This is fine *so long* as the literal can be a 
member of the intended class.

In the OWL DL world (OWL 1 or 2 with DL Semantics) there is the notion 
of an OWL Individual (a member of owl:Thing). Individuals and Literals 
are disjoint. OWL Classes (instances of owl:Class) are subclasses of 
owl:Thing and can only have Individuals as members, not literals. So in 
DL semantics owl:Class and rdfs:Class are different, whereas in RDF 
semantics they are not.

DC Terms defines dcterms:LinguisticSystem as an rdfs:Class and defines 
dcterms:language as an rdf:Property. So there is no ambiguity over which 
semantics applies.

At this level all is fine. The most picky RDFS validator will spot no 
inconsistency with the proposed use.

#2 Can an instance of xsd:language be an instance of 

The problem here is that XML Schema datatypes defines xsd:language as a 
subtype of xsd:string and RDF defines strings as denoting themselves. 
Both specs agree that an xsd:language denotes the *name* of the 
language, a string with valid spelling to meet RFC 3066. Whereas the 
intent of Dublin Core seems to be that an instance of 
dct:LinguisticSystem denotes the Lingustic System itself not the name of it.

So at this level the semantics do not appear match.


On 26/10/12 15:49, Phil Archer wrote:
> I'm struggling to see how this is not inconsistent. The HTML doc says
> that dcterms:language as a range of
> which is a class.
> The schema says the same thing:
> (that takes some finding!)
> IIRC this is something I've heard you say before that several others
> disagree with (I defer to others and make no assertion myself), that a
> literal is a resource and therefore you can always give a literal as the
> value even when a URI is expected (DC doesn't use the terms object
> property and datatype property but that's what we're talking about).
> I note though that dcterms:language is a sub property of dc:language
> (which has no domain and range), so is that a get out of gaol card?
> Phil.
> On 26/10/2012 15:19, Richard Cyganiak wrote:
>> Phil,
>> On 26 Oct 2012, at 15:04, Phil Archer wrote:
>>> That's a datatyped string, not a class. That's data, not an object.
>>> That's inconsistent. We know.
>> As I already said in the call, it's *not* inconsistent with anything
>> that is formally or informally said in the DC documentation.
>> It may not be the intent of the DC group.
>> Best,
>> Richard

Received on Friday, 26 October 2012 15:43:50 UTC