Print

Print


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  *
**************************************************************