There seem to be two equally important but contradictory requirements
regarding versioning and namespaces:
Archival precision. The requirement for archival precision suggests
that successive versions of metadata terms have unique (and persistent)
identifiers. Unique identifiers are necessary for reconstructing the
precise definitions and annotations in use at a particular time. This
is important, for example, for long-term access to legacy metadata; for
developers who need fixed targets for software contracts (perhaps for
hard-coding a given set of elements into an application, as in Ren's
example); or for linking a namespace translation (e.g., the Dublin Core
in Japanese) to the specific historical English version on which it is
based.
Fuzzy persistence. The semantic differences between successive
versions of metadata terms are generally not very significant in
practice (as Sigge has pointed out with respect to Title in DCMES 1.0
and 1.1). Such differences do not seem important enough to justify the
extra burden that a proliferation of unique identifiers puts on
application developers and implementors -- for example, to crosswalk
multiple versions of an element (e.g., Title 1.0 and 1.1) for
searching. In fact, wherever the semantic differences really are
significant, I assert that we are _by definition_ looking at a new
term, not a "version" of an existing one. Practically speaking, we
tolerate a certain measure of semantic drift in natural languages and
we should be able to tolerate this for elements and qualifiers as
well.
One way to meet these seemingly contradictory requirements would be to
represent vocabularies by two types of unique and persistent
identifiers:
-- by a generic identifier that never changes,
e.g., http://dublincore.org/elements/dcq#foo (or
http://purl.org/dc/elements/dcq#foo), [1] and
-- by version-specific identifiers that would be superseded
whenever any change in status or definition warranted a
change of "version", as in the sequence:
http://purl.org/dc/2000/03/13-dcq#foo
http://purl.org/dc/2001/05/02-dcq#foo
http://purl.org/dc/2004/01/24-dcq#foo. [2]
The generic identifier would always point to the version-specific
identifier of the most recent version. The expectation would be that
most implementors would use the generic identifier in their instance
metadata but that a few would use the version-specific identifier
(perhaps redundantly) for added precision when needed.
Offering two identifiers is what W3C does with its specifications,
allowing one to cite either the "latest version" of RDF Schema or a
particular draft, depending on need. This solution would do the same
with vocabularies.
NOTES
[1] Or http://purl.org/dc/qualifiers... -- I do not much care, as long
as we have a place to put new non-core elements such as Audience, if
necessary.
[2] A system with http://dublincore.org/elements/dcq#foo (generic) and
http://dublincore.org/elements/dcq#foo-20000124 (version-specific)
might achieve the same result.
_______________________________________________________________________________
Dr. Thomas Baker [log in to unmask]
GMD Library
Schloss Birlinghoven +49-2241-14-2352
53754 Sankt Augustin, Germany fax +49-2241-14-2619
|