Hi Andy,
> I took an action at the last meeting of the DCMI Usage Board
> to write up some guidelines for assigning identifiers to
> metadata terms.
>
> The current DCMI encoding guidelines and the draft abstract
> model require that all terms (DCMI terms and others) are
> assigned URI references before they can be used in metadata
> application profiles. This document attempts to provide some
> guidance about how to assign such identifiers.
I do recognise that your current text does already touch on this issue
at several points (where it talks about _encoding_ URI references), but
- at the risk of nit-picking! ;-) - I feel that the document should be
clearer that neither the assignment of URI references to metadata terms,
nor the subsequent use of those URI references, is in any way dependent
on the use of XML Namespaces.
Specifically....
1. My ability to assign a URI reference to a metadata term (or to any
other resource for that matter) does not depend on my defining an XML
Namespace. I just assign a URI reference in some URI space where I have
control over the assignment of names.
The way the examples are presented suggests that the agent coining a new
metadata term first defines an XML Namespace, and then derives the URI
reference for the term; it suggests that the XML Namespace URI reference
determines the URI reference for the term. But (IMHO) quite the opposite
is true! I decide the URI reference I wish to assign to my term and then
I decide how I represent that URI reference as an XML Qualified Name (if
indeed I ever need to do so - see below).
(And if I wanted to be perverse, I could represent a single URI
reference as Quakified Names using multiple different XML Namespace URI
reference/Local Name combinations....)
2. My ability to cite/use/refer to a metadata term using a URI reference
that someone else has assigned is not in any way dependent on the use of
XML Namespaces. I just cite the URI reference.
So, in section 1, I think the sentences
"An XML namespace [XML-NAMES] is a collection of names, identified by a
URI reference that are used in XML documents as element types and
attribute names. By convention, all DCMI recommended encodings
[DCMI-ENCODINGS] use a concatenation of an XML namespace URI reference
and the term name to provide a mechanism for encoding the term URI
reference. The use of XML namespaces and URI references to uniquely
identify metadata terms allows those terms to be unambiguously used
across applications, promoting the possibility of shared semantics."
could be replaced by something like:
"The use of URI references to uniquely identify metadata terms allows
those terms to be unambiguously used across applications, promoting the
possibility of shared semantics."
without any mention of XML Namespaces. XML Namespaces are a syntactic
mechanism used in _some_ encodings only and the ability to identify
metadata terms using URI references does not depend on XML Namespaces.
3. An XML Namespace is _not_ a collection of URI references.
The "Namespaces in XML" spec [1] says (this is reproduced in section 1
of the current doc, and I'm suggesting above that it could be removed
;-)):
"An XML namespace is a collection of names, identified by a URI
reference [RFC2396], which are used in XML documents as element types
and attribute names."
This says that the XML namespace itself, the collection of names, is
identified by a URI reference. It does _not_ say that the individual
names within that collection are URI references.
I accept that the current document doesn't say explicitly that an XML
namespace _is_ a collection of URI references, but expressions like "URI
references within the same XML namespace" (in section 2) come very close
to suggesting it (IMHO), and I think that should be avoided.
So specifically I think the sentence
"Groups of related terms (for example, all the terms within a controlled
vocabulary) should be assigned URI references within the same XML
namespace."
must be reformulated. But I think it really requires that section 2 is
expanded/reorganised slightly.
Yes, it is useful to refer to sets of URI references that are related.
But these sets of URI references are _not_ XML namespaces. The RDF
Primer [2] makes this absolutely explicit and to avoid any confusion
adopts the term "vocabulary":
=====
Since RDF uses URIrefs instead of words to name things in statements,
RDF refers to a set of URIrefs (particularly a set intended for a
specific purpose) as a vocabulary
[snip]
In the rest of the Primer, the term vocabulary will be used when
referring to a set of URIrefs defined for some specific purpose, such as
the set of URIrefs defined by RDF for its own use, or the set of URIrefs
defined by example.org to identify its employees. The term namespace
will be used only when referring specifically to the syntactic concept
of an XML namespace (or in describing the URI assigned to a prefix in a
QName).
=====
FWIW, I think the "DCMI Namespaces" are examples of what the RDF Primer
calls "vocabularies".
So really I guess I would prefer to see section 2 say something along
the lines of the following (borrowing heavily from the RDF Primer):
====
All metadata terms must be assigned a URI reference. The use of fragment
identifiers in the URI references used to identify metadata terms is
optional and is left to the discretion of the implementor.
Any valid URI reference [RFC2396] may be used to identify a metadata
term. However, the use of a registered URI scheme is recommended
[URI-SCHEMES].
All term URI references should be assigned with the intention of them
being unique and persistent. This means that the URI reference must not
be used to identify anything else and that it should be expected to last
as long as the Internet.
To enhance human readability [and/or to meet the constraints of
particular syntaxes (?)], URI references are sometimes expressed in the
form of "Qualified Names", where the full URI reference is represented
as a prefix and a "local name", and the prefix is associated with a URI
reference known as the "Namespace URI reference". The full URI reference
is formed from the Qualified Name by appending the local name to the
Namespace URI reference that has been assigned to the prefix.
Metadata terms are typically developed [created?] not as isolated terms
but as groups of terms developed together for a purpose. [Should we call
these "vocabularies", following the RDF Primer?] When groups of terms
are associated in this way, they are often assigned URI references in
such a manner that when those URI references are represented as
Qualified Names, the Qualified Names share a common prefix. That is, the
URI references of the terms in the same set are formed by appending
different names to a single URI reference.
So, for example, the owner/administrator of two terms to describe the
relations between a resource and its owner and between a resource and
its curator might assign them the URI references
http://example.org/terms/owner
http://example.org/terms/curator
so that they could be represented as Qualfied Names like ex:owner and
ex:curator, where the prefix "ex" is associated with the namespace URI
reference http://example.org/terms/
This convention makes it easy for a human reader to recognise that two
URI references are associated with the same set of terms. However, it is
only a convention: a software application can not derive the existence
of a relationship between the term identifed by the URI reference
http://example.org/terms/owner and the term identified by the the URI
reference http://example.org/terms/curator
Further, the administrator/owner of a set of metadata terms may choose
to use a Namespace URI reference as the URL of a Web resource that
provides further information about the terms.
====
4. the URI references any of us assign to metadata terms must be usable
in contexts where XML Namespaces are not deployed
e.g. there are syntaxes for RDF which do not use XML Namespaces. Some
expect URI references to be provided in full e.g. N-Triples [3]; some
have a Qualified Name/Namespace mechanism which is not _XML_ Namespaces
e.g. N3 [4].
In fact I hadn't thought about this before, but I don't think it is
strictly accurate to say (as in section 1)
"By convention, all DCMI recommended encodings [DCMI-ENCODINGS] use a
concatenation of an XML namespace URI reference and the term name to
provide a mechanism for encoding the term URI reference."
because the current XHTML encoding does _not_ make use of XML
Namespaces. It makes use of an application-specific Qualified Name
convention for associating a prefix (the string before the first period
character in the value of the name attribute of the meta element) with a
URI reference (the value of the href attribute of the link element which
has the string "schema.[prefix]" as the value of the rel attribute (err,
I think I got that right!)). The value of that href attribute is a URI
reference, but it is _not_ "an XML Namespace URI reference". i.e. when I
use
<meta name="DC.title" content="My document" />
<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
in XHTML, there is no XML Namespace declaration for the
http://purl.org/dc/elements/1.1/ namespace in the XHTML document.
So in fact DCMI already has a case where URI references are encoded
using a mechanism that does not depend on XML Namespaces! ;-)
Apologies for the lengthy ramble: basically I disagree with the
suggestion that assigning URI references to terms is so closely
associated with the use of XML Namespaces, and I'd really prefer to see
the discussion of assigning URI references to terms without any mention
of XML Namespaces at all! ;-)
Pete
[1] http://www.w3.org/TR/REC-xml-names/
[2] http://www.w3.org/TR/rdf-primer/
[3] http://www.w3.org/TR/rdf-testcases/#n3
[4] http://www.w3.org/2000/10/swap/Primer.html
|