----------------------------------------------------------------------
2009-02-26 from Pete to Jeff Albro <jalbro@BU.EDU> on dc-education
> 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.
[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/
----------------------------------------------------------------------
2007-07-23 From James Jeffery <cascadingstylez@GOOGLEMAIL.COM> on dc-education
Subject: Using MetaData in HTML
Over the weekend i began to read up more about the Dublin Core,
its pretty new to me, although i have herd of it ive never
actually implemented it into any of my Web Documents.
After reading some of the documents at the Dublin Core site i
got lost rather quickly. I understand that the DC Elements are
implemented within the <meta> tags in HTML documents, and have
strong knowledge of HTML, so on that side of things im pretty
clear, but below i have a few questions. If someone could
dedicate a few moments of their time in order to help me, i
would be greatly thankful.
1 - When embedding DC elements in HTML documents, do i need to
include any document or vocabulary before defining DC. elements?
For example, HTML pages include a doctype to point to a set of
rules, does the DC need anything like this within my documents?
2 - A DC element is NOT the same as a HTML element right?
Example, a HTML element would be <meta> whereas a DC element is
not <meta> but instead DC.title (the name trailing the period, 1
of 15 i believe).
3) What is DCTERMS.somethinghere ? What does the DCTERMS mean?
do i need to use it within my document?
At the moment im only concerned with using the 'standard'
elements within my documents, to add some extra value to them.
I have read the documents, and find some of it confusing,
especially the document that shows how to uses DC MetaData with
HTML, i get easily confused by DC.element and DCTERMS.element,
and dont understand the difference between them both.
James Jeffery
ClearVue Media Web Developer and Consultant
----------------------------------------------------------------------
2009-06-20 Tom on public-esw-thes
To: Norman Gray <norman@astro.gla.ac.uk>
Cc: SKOS <public-esw-thes@w3.org>
On Fri, Jun 19, 2009 at 06:40:03PM +0100, Norman Gray wrote:
> The SKOS Primer illustrates annotating ConceptScheme instances using
> DCTerms properties. Is it a recommendation to use that rather than
> the DC elements properties from <http://purl.org/dc/elements/1.1/>?
Yes. This point was raised and discussed in the SWD working
group (e.g., [1]). As I sometimes put it, DCMI "gently
promotes" the use of the dct: equivalents of the fifteen
elements because of their formal ranges.
> This is possibly more of a DC question than a SKOS one, but this list
> is probably as good a place as any to ask the question, especially
> since I'm asking it in the context of trying to describe 'good
> practice' for developing vocabularies.
>
> DC elements have the advantage that they're probably more generally
> understood, and more things might be declared as rdfs:subClassOf DC
> elements.
>
> On the other hand, the DCTerms properties are more expressive, are
> declared as subclasses of the DC elements properties, and are newer
> (though I couldn't find an explicit statement that the older ones are
> deprecated, beyond the incidental description of the DC Elements
> properties as 'legacy' in the DC Terms documentation).
>
> My guess would be that the DC Terms properties are what I should
> recommend -- is there anything wrong with that?
DCMI has gotten alot of positive feedback from the Semantic Web
community on the "makeover" of DCMI properties with domains and
ranges. A longer explanation, with historical context:
dc:title [1] and dc:subject [2] (and the other thirteen Dublin
Core properties) were among the first RDF properties declared
anywhere. They were declared as RDF properties before W3C
standardized the notion of "range" in the RDF Schema
specification.
As RDF matured, the DC properties became criticized in SW
circles for being underspecified. DCMI wanted to assign ranges,
but in doing so did not want to "break" existing legacy data,
which used "subject" (for example) both with literal and
non-literal values.
As described in [4, paragraphs starting "Formal domains..."],
DCMI resolved this dilemma by creating fifteen properties in the
/terms/ namespace in parallel to the corresponding terms in the
/elements/1.1/ namespace, and declared the former as
subproperties of the latter.
It is not actually incorrect to continue using dc:subject and
dc:title -- alot of Semantic Web data still does -- and since
the range of those properties is unspecified, it is not actually
incorrect to use (for example) dc:subject with a _literal_ value
or dc:title with a _non-literal_ value. However, good Semantic
Web practice is to use properties consistently in accordance
with formal ranges, so implementers are encouraged to use the
more precisely defined dcterms: properties.
[1] http://dublincore.org/documents/dcmi-terms/#elements-title
[2] http://dublincore.org/documents/dcmi-terms/#elements-subject
[3] http://dublincore.org/documents/dcmi-terms/#H1
[4] http://dublincore.org/documents/dcmi-terms/#terms-subject
[5] http://lists.w3.org/Archives/Public/public-swd-wg/2009Jan/0000.html
----------------------------------------------------------------------
2009-06-20
> As I sometimes put it, DCMI "gently
> promotes" the use of the dct: equivalents of the fifteen
> elements because of their formal ranges.
Many thanks for this detailed and interesting summary.
I'll include a recommendation (in [1]) to use the DCTerms namespace,
along with suitable examples and a validator.
[1] http://www.ivoa.net/Documents/latest/Vocabularies.html
----------------------------------------------------------------------
2009-05-13 Tom on literal/non-literal
dc:title [1] and dc:subject [2] were among the first RDF
properties declared anywhere. They were declared as RDF
properties even before RDF schema standardized the notion of
"range".
As RDF matured, the DC properties became criticized in SW
circles for being underspecified. We wanted to assign ranges,
but in doing so we did not want to "break" existing legacy data,
which used "subject" (for example) both with literal and
non-literal values.
As described in [4, paragraphs starting "Formal domains..."], we
resolved this dilemma by creating fifteen properties in the
/terms/ namespace in parallel to the corresponding terms in the
/elements/1.1/ namespace, and declared the former as
subproperties of the latter.
It is not actually incorrect to continue using dc:subject and
dc:title -- alot of Semantic Web data still does -- and since
the range of those properties is unspecified, it is not actually
incorrect to use dc:subject with a _literal_ value or dc:title
with a _non-literal_ value. However, good Semantic Web practice
is to use properties consistently in accordance with formal
ranges, so implementers are encouraged to use the more precisely
defined dcterms: properties.
So to get back to your question: are the ranges for
dcterms:title and dcterms:subject really so defined?
For dcterms:subject [4], we decided on the formulation "this
term is intended to be used with non-literal values" as a Note.
We did this because "non-literal resource" has not been
declared by anyone as a formal class, we didn't think it was the
role of DCMI to define such a class, and we felt that such
an "informal" annotation was sufficient for now.
For dcterms:title, we decided: "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" (see Note).
We did investigate the options (for example, Japanese titles
for which a single title resource is associated with
multiple literal representations in parallel), but decided
to follow the overwhelming preference of implementers for a
literal range. Complex titles, e.g. in parallel writing
systems (as in Japanese) would need to use dc:title or a new
title property with a non-literal range would need to be
created.
[1] http://dublincore.org/documents/dcmi-terms/#elements-title
[2] http://dublincore.org/documents/dcmi-terms/#elements-subject
[3] http://dublincore.org/documents/dcmi-terms/#H1
[4] http://dublincore.org/documents/dcmi-terms/#terms-subject
[5] http://dublincore.org/documents/dcmi-terms/#terms-title