Hi Jeff,
> I've been asked by a professor to help organize student
> website projects on our webserver. I immediately though of
> using meta tags in the header.
>
> After poking around the web for a while I found the Dublin
> core project.
> I figured using a meta tag schema that is documented and
> has wide support is much better than me making up my own.
>
> I also found out about, and am playing with mksearch, a
> spidering tool for Dublin core tagged webpages.
>
> I am a bit confused about some of the meta tag specifics. On
> http://dublincore.org/documents/2007/11/05/dc-html/ , it
> talks about using tags like this:
>
> <link rel="schema.DCTERMS" href="http://purl.org/dc/terms/"
> /> <meta name="DCTERMS.title" content="Services to Government" />
>
> How is DCTERMS.title different than DC.title?
Since January this year, for each property of the Dublin Core Metadata
Element Set, i.e. the 15 properties with URIs of the form
http://purl.org/dc/elements/1.1/xyz , there is a now a corresponding
property in the DC Terms vocabulary with a URI of the form
http://purl.org/dc/terms/xyz (Aside: note that the reverse is not true:
there are terms with URIs of the form http://purl.org/dc/terms/xyz for
which there is no corresponding terms with the URI
http://purl.org/dc/elements/1.1/xyz )
The introduction of this "parallel" set of properties was primarily due
to the decision to specify domains and ranges for DCMI properties i.e.
to make formal assertions in the descriptions of its terms that DCMI
publishes which enable an applocation to make inferences about the type
of the described resource or the type of the value when it encounters a
statement using a specified property. See [1] for more details.
In order not to risk creating contradictions for applications using the
fifteen properties of the DCMES, which are frequently used with literal
values, domain and range assertions were not made for these properties,
but instead a new set of 15 properties were created, for which domain
and range assertions _were_ made.
So while no range is specified for the property with the URI
http://purl.org/dc/elements/1.1/creator and no inferences can be made
about the class of a value of that property, there is a new property
with the URI http://purl.org/dc/terms/creator for which a range is
specified, and for which an application can conclude that the value is
an instance of a class of "Agents" identified by the URI
http://purl.org/dc/terms/Agent .
Formally the new property http://purl.org/dc/terms/creator is a
subproperty - refinement - of the original property
http://purl.org/dc/elements/1.1/creator
(As a very minor side effect of this, the creation of these 15
additional properties allows for some minor simplification in their use
of concrete syntaxes since, if they can make use of the 15 new
properties (i.e. their usage of those properties is consistent with the
new domain/range assertions) then they require only one "namespace
declaration" for the names of all the DCMI-owned properties.)
The case of DC.Title and DCTERMS.Title is arguably slightly anomalous,
since - at this point in time - no range assertion is made for the new
property with the URI http://purl.org/dc/terms/title and so essentially
- at this point in time - there is no real difference between the
property http://purl.org/dc/terms/title and the property
http://purl.org/dc/elements/1.1/title . However it is worth taking heed
of the note in [1] regarding the new title property:
> In current practice, this term is used primarily with literal values;
however, there are important uses with non-literal values as well. As of
December 2007, the DCMI Usage Board is leaving this range unspecified
pending an investigation of options.
It is expected that the range for the property
http://purl.org/dc/terms/title will be changed in the near future.
For more details, see [1] and [2].
> If I have the link to the schema, is it okay for me to mix in
> my own tags if I don't use the DC or DCTERMS?
The short answer is "yes" :-)
To provide a longer answer and a bit of explanation, I probably need to
take a step back and emphasise that - as that doc you refer to above [3]
emphasises - the convention used in HTML meta and link elements is a
convention for "encoding" a data structure known as a DC description
set, the form of which is described by the DCMI Abstract Model [4]. So
the "Expressing DC metadata using X/HTML meta & link elements" doc
describes a mapping bewteen the components of that data structure and
the components of X/HTML meta and link elements.
Now, in the DC description set, all metadata terms - properties,
classes, vocabulary encoding schemes and syntax encoding schemes are
referred to using URIs. Those can be URIs owned by anyone, not just URIs
owned by DCMI - and it is perfectly possible for a DC description set to
contain no references at all to terms owned by DCMI! :-)
And in the meta data profile described by the "Expressing DC metadata
using X/HTML meta & link elements" doc, the "prefixed names" (like
"DC.Title") used as the values of X/HTML name, scheme and rel attributes
are abbreviations/shorthands for thoes term URIs i.e. the prefixed name
"DC.Title" is (typically - it depends on the association between prefix
and "namespace URI" provided by a link element) mapped to the URI
http://purl.org/dc/elements/1.1/title (using the convention described in
section 3.1.2 of [3]).
So if you wish to refer to terms other than those owned by DCMI, you
need a URI for each of those terms, provided by the owner of those
terms, either a third party (like the Library of Congress for the case
of the MARC Relator Codes) or, as in this case, yourself. So you need to
coin a URI in some URI-space where you can create URIs, and ideally if
you expect your metadata instances to be used over the medium/lon term
then that that URI would be chosen so that it was reasonably persistent.
And then to represent that URI as a name/rel/scheme attribute value, you
need to choose a suitable prefix for abbreviating the term URIs and add
a corresponding "namespace declaration" using the link/@rel="schema.XYZ"
convention described in section 3.1.2 of [3] e.g.
<link rel="schema.JEFF" href="http://jeff.example.org/terms/" />
<link rel="JEFF.isRelatedInSomeWeirdAndWonderfulWayTo" href="doc123" />
where the "prefixed name" "JEFF.isRelatedInSomeWeirdAndWonderfulWayTo"
is an abbreviation/shorthand for the URI
http://jeff.example.org/terms/isRelatedInSomeWeirdAndWonderfulWayTo
Incidentally, although DCMI hasn't yet addressed this in any of its own
specifications (but I think it probably will at some point!), you may
also be interested in the recently published working draft from the W3C
for RDFa [5], which specifies how to use a set of attributes to embed
RDF metadata in XHTML documents (and other XML documents, I think, but
the focus in the current draft is mainly on XHTML). Any RDF graph can be
represented using RDFa, so it's very powerful and flexible, and once you
become familiar with the basic RDFa "patterns", it is quite easy to use,
I think.
Finally, it's probably worth adding that _if_ your _only_ requirement is
to provide data to a local search engine and you have control over that
document set, you could just go ahead and use meta and link elements
without worrying too much about the conventions recommended by DCMI.
i.e. you could just use
<meta name="abcdef" content="blahblahblah" />
without worrying about the mapping of the @name attribute value to a URI
via the link/@rel="schema.XX" mechanism.
Cheers
Pete
[1] http://dublincore.org/documents/2008/01/14/domain-range/
[2] http://dublincore.org/usage/decisions/2008/dcterms-changes/
[3] http://dublincore.org/documents/2007/11/05/dc-html/
[4] http://dublincore.org/documents/2007/06/04/abstract-model/
[5] http://www.w3.org/TR/2008/WD-rdfa-syntax-20080221/
---
Pete Johnston
Technical Researcher, Eduserv Foundation
Web: http://www.eduserv.org.uk/foundation/people/petejohnston/
Weblog: http://efoundations.typepad.com/efoundations/
Email: [log in to unmask]
Tel: +44 (0)1225 474323
|