- From: Dave Reynolds <dave.e.reynolds@gmail.com>
- Date: Fri, 26 Oct 2012 16:43:17 +0100
- To: Phil Archer <phila@w3.org>
- CC: Richard Cyganiak <richard@cyganiak.de>, Public GLD WG <public-gld-wg@w3.org>, Makx Dekkers <makx@makxdekkers.com>
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 consider: (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 dcterms:LinguisticSystem? 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. Dave 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 > http://purl.org/dc/terms/LinguisticSystem which is a class. > > The schema says the same thing: > http://dublincore.org/2012/06/14/dcterms.ttl (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