In the latest RDF/XML DCTERMS document http://purl.org/dc/terms/,
I believe there is a mistake at line 268.
Specifically, it reads:
" ...
<rdf:type rdf:resource="&rdfns;Class"/>
...
"
whereas it should read as:
" ...
<rdf:type rdf:resource="&rdfsns;Class"/>
...
"
since the rdfs:Class is defined in rdfs and not in rdf namespace.
Furthermore, I would like to ask if someone knows why rdf:type is used in
the first place for defining the type of the resources &dctermsns;RFC1766
and &dctermsns;ISO639-2?
Both of these resources already have a type, which is
dcterms:LanguageScheme. E.g. ISO639-2 (I quote from http://purl.org/dc/terms/):
<dcterms:LanguageScheme rdf:about="http://purl.org/dc/terms/ISO639-2">
<rdfs:label ...>...</rdfs:label>
<rdfs:comment ...>...</rdfs:comment>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Class"/>
;;;;;;;;;;;;; which is wrong as I mentioned above ;;;;;;;;;;;;;
<rdfs:seeAlso rdf:resource=.../>
<rdfs:isDefinedBy .../>
<dcterms:issued>...</dcterms:issued>
</dcterms:LanguageScheme>
The above translates in N3 syntax as:
<http://purl.org/dc/terms/ISO639-2>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://purl.org/dc/terms/LanguageScheme> .
...
<http://purl.org/dc/terms/ISO639-2>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#Class> .
i.e. the resource <http://purl.org/dc/terms/ISO639-2> has 2 types.
The above is of course perfectly legal RDF, as a resource can have multiple
types in RDF, but rather confusing in its meaning. I guess that the intended
meaning is that:
dcterms:ISO639-2 is an instance of dcterms:LanguageScheme (which is an
instance of rdfs:Class), but dcterms:ISO639-2 is also a class itself, that's
why we make it an instance of rdfs:Class, too.
I believe that the above semantics could be more elegantly and
comprehensibly encoded in RDF as follows:
dcterms:LanguageScheme rdf:type rdfs:Class
(which is already there)
dcterms:LanguageScheme rdfs:subClassOf rdfs:Class
(this is new, and makes dcterms:LanguageScheme a meta-class,
i.e. a class of classes)
dcterms:ISO639-2 rdf:type dcterms:LanguageScheme
(which is already there)
... and nothing more about dcterms:ISO639-2 typing.
In this way it is clearly stated that dcterms:ISO639-2 is an instance of
dcterms:LanguageScheme, which is a class of classes, therefore
dcterms:ISO639-2 is a class itself.
Below I quote the complete definitions of (I believe) the more elegant
definition of dcterms:LanguageScheme and its instances:
lines 247-273:
<rdfs:Class rdf:about="http://purl.org/dc/terms/LanguageScheme">
<rdfs:label xml:lang="en-US">Language Encoding Schemes</rdfs:label>
<rdfs:comment xml:lang="en-US">A set of language encoding schemes and/or
formats.</rdfs:comment>
<rdfs:subClassOf
rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Class"/>
<dcterms:references rdf:resource="http://purl.org/dc/elements/1.1/'language"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
<dcterms:issued>2000-07-11</dcterms:issued>
</rdfs:Class>
<dcterms:LanguageScheme rdf:about="http://purl.org/dc/terms/RFC1766">
<rdfs:label xml:lang="en-US">RFC1766</rdfs:label>
<rdfs:comment xml:lang="en-US">Internet RFC 1766 'Tags for the identification
of Language' specifies a two letter code taken from ISO 639, followed
optionally by a two letter country code taken from ISO 3166. </rdfs:comment>
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:seeAlso rdf:resource="http://www.ietf.org/rfc/rfc1766.txt"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
<dcterms:issued>2000-07-11</dcterms:issued>
</dcterms:LanguageScheme>
<dcterms:LanguageScheme rdf:about="http://purl.org/dc/terms/ISO639-2">
<rdfs:label xml:lang="en-US">ISO 639-2</rdfs:label>
<rdfs:comment xml:lang="en-US">ISO 639-2: Codes for the representation of
names of languages.</rdfs:comment>
<rdfs:seeAlso
rdf:resource="http://www.loc.gov/standards/iso639-2/langhome.html"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/"/>
<dcterms:issued>2000-07-11</dcterms:issued>
</dcterms:LanguageScheme>
Thanks,
Nick Bassiliades
--
**************************************************************
* Dr. Nick Bassiliades *
* *
* Programming Languages And Software Engineering (PLASE) Lab *
* Logic Programming and Intelligent Systems (LPIS) Group *
* *
* Dept. of Informatics, Aristotle University of Thessaloniki *
* 54006 Thessaloniki, Greece *
* *
* Tel: +30310998418 E-mail: [log in to unmask] *
* Fax: +30310998419 URL: http://www.csd.auth.gr/~nick *
**************************************************************
|