Combining the ideas of microformats and Dublin Core
Dublin Core is one of the oldest metadata standards of the
WWW. Classic use cases
are limited to the html meta
element. But
as already
Dublin Core: Expressing Dublin Core in HTML/XHTML
meta and link elements
states, Dublin Core is as well
applicable to the html link
element.
The
microformats on the other side are specifying
attribute properties
mainly for usage within the body
seciton
of an html document. But both ideas are very well combineable.
This document is a metadata profile in the sense of the HTML specification, in section 7.4.4.3 Meta data profiles, as refined by XMDP.
Clarification
as already stated at Dublin Core, the notation of the attribute properties is:
DC.attributeproperty
This means: Uppercase "DC", period, then the attribute property in lower case. Using these attribute properties means to exactly follow this notation. If necessary, this implies a slightly more complex notation in CSS stylesheets:
p[class="DC.description.abstract"] { ... }
Main focus of this specification is not, how to style these elements, but how to logically and semantically markup appropriate content.
- DC.title
-
Document title
The usage in the
head
section is redundant and should be avoided. These two notations have the same meanings:title
Page title/title
meta name="DC.title" content="Page title"
Since it is already necessary by specification to include the
title
element, this notation is preferred. But it is possible to extract the contents of thetitle
element to xml (rdf) asdc:title
.Useful is, using this attribute property within the
body
section. In most cases there will be some headlines. One of them may be the official title of the document. This may be identical to thetitle
element, but not necessarily has to be. Possible locations for this title might be the first headline (h1
) or may be another headline. For example imagine a page, where the first headline contains a company or website name like a banner, followed by a headline which then is the pages title:body
h1
FooBar Ltd./h1
h2
Our Products/h2
.../body
To unambigeously mark the appropriate headline as the title you may add the Dublin Core attribute property. ID is preferred, since a page should have only one title:
body
h1
FooBar Ltd./h1
h2 id="DC.title"
Our Products/h2
.../body
- DC.creator
-
Denotes a person or group mainly responsible for this resource. For text documents the meaning is identical to the author attribute property. Other types of creators may be (among others) artists, photographers or illustrators
head
meta name="DC.creator" content="Siegfried Gipp"
link rel="DC.creator" href="http://www.rorkvell.de/impressum"
.../body
The first line shows the classical usage within the im
meta
element. This does not specify the format of the "content" attribute. It may contain plain text, a URL or anything else. Best practice is embedding the full name as plain text.
The second line shows the usage within thelink
element. Here it is clearly specified that the href attribute can only contain a URL. So the attribute property can only be a link to a web resource (web page) where we can find information about the creator. This notation is preferrable in all cases where we have a URL. Of course it is possible without problems to combine both notations.Using this in the
body
is interesting. As with the XFN microformats it is possible to use this attribute property in a very similar way. First an example according to XFN:This page was made by
a href="http://www.rorkvell.de/impressum" rel="me"
me/a
.The usage of "me" implies roughly that the target person is the one who created this page. More precise but else syntactically identical this is possible with Dublin Core:
This page was made by
a href="http://www.rorkvell.de/impressum" rel="DC.creator"
me/a
.Studying hCard it is self-evident using this property within hCard in much the same way as XFN:
address class="vcard"
a rel="fn" href="http://www.rorkvell.de/impressum"
Siegfried Gipp/a
/address
This only states that this is a (very much reduced) address record according to hCard standard. But there is no statement of whose address this is. Ths may be changed:
address class="vcard DC.creator"
a rel="fn" href="http://www.rorkvell.de/impressum"
Siegfried Gipp/a
/address
Since generally there is only one creator (as opposed to f.ex. DC.contributor, this construction is possible, too:
address class="vcard" id="DC.creator"
a rel="fn" href="http://www.rorkvell.de/impressum"
Siegfried Gipp/a
/address
BTW, in both i have avoided the "url" property, as opposed to the samples at hCard. The usage of the element
a
as well as the attribute href already imply by specification the url. - DC.subject
-
Subject of a web resource. Typically contains a list of keywords or key phrases describing the subject or topic of the resource.
Usage within the
head
section is redundant. Generally you should stick to only one of these:meta name="keywords" content="xml, metadata, xhtml, Dublin Core, microformat"
meta name="DC.subject" content="xml, metadata, xhtml, Dublin Core, microformat"
More interesting is the usage within the
body
section. Here we may mark up keywords or key phrases at any location. Usually the best element for this is thespan
element, but any kind of headline would be a good choice, too:This is about
span class="DC.subject"
metadata/span
, especially the usage ofspan class="DC.subject"
Dublin Core/span
attribute properties and their usage inspan class="DC.subject"
xhtml/span
. - DC.description
-
A textual description of the content, including a summary, an abstract or teaser. For images, movies or similar my contain a description of the content.
Usage in the
head
is redundant. There also exists the more known "description". So in thehead
section only one of these variants should be used (they are equivalent):meta name="description" content="Description of the content"
meta name="DC.description" content="Description of the content"
- DC.description.abstract
-
Usable as class name or ID for a paragraph containing a summary, foreword, abstract or teaser:
h2 id="DC.title"
Class of XHTML/h2
p id="DC.description.abstract"
Here we go with XHTML classnames.../p
- DC.publisher
-
Publisher of a web resource like a publishing house, an university, a company, but also single persons. May be syntactically used the same way as DC.creator:
head
meta name="DC.publisher" content="Siegfried Gipp"
link rel="DC.publisher" href="http://www.rorkvell.de/impressum"
.../head
Usable in the
body
section, f.ex. in address records:address class="vcard DC.publisher"
a rel="fn" href="http://www.rorkvell.de/impressum"
Siegfried Gipp/a
/address
The usage is the same as in hCard combined with XFN, just that instead combining with XFN, it is combined with Dublin Core. The statement is somewhat more precise than XFN. Since most commonly there will only be one publisher, as with DC.creator, this construction would be pretty legal, too:
address class="vcard" id="DC.publisher"
a rel="fn" href="http://www.rorkvell.de/impressum"
Siegfried Gipp/a
/address
- DC.contributor
-
Points to someone who has significantly contributed to the resource, like translation, illustration, edition, ...
Syntactically the usage is identical to DC.creator and DC.publisher:
head
meta name="DC.contributor" content="Siegfried Gipp"
link rel="DC.contributor" href="http://www.rorkvell.de/impressum"
.../body
Also possible is using it within the
body
, f.ex. in address records in an "about me" page:address class="vcard DC.contributor"
a rel="fn" href="http://www.rorkvell.de/impressum"
Siegfried Gipp/a
/address
It should be specially noted that this way it is possible to precisely define the roles of the different persons which have address records in a web resource.
- DC.date
-
Date of creation, modification or validity date. This is mostly similar to hCalendar, but explicitely defines dates related to this resource. The common hCalendar markup thus may be simply expanded (not replaced) by these properties.
- DC.date.created
- Date of creation.
- DC.date.valid
- Date, until this document is still valid.
- DC.date.available
- Date range where this document will be or was available.
- DC.date.issued
- Date this document was issued.
- DC.date.modified
- Date this document was modified.
If using in the
head
section the date is noted in the format YYY-MM-DD. This is the same as defined at hCalendar as title attribute property for theabbr
element. - DC.type
-
Type or role of the document (f.ex. homepage, poem, working paper, directory). The type should be selected from the Dublin Core vokabulary. Not to be confused with the html attribute type, which contains the mime type!
The usage in the
body
is not trivial, since DC.type as such cannot be used as class name or id on its own. This classname or id may be used if the content of the element is made of one of the words from the Dublin Core vokabular. Or, if the content is not exactly the word or is the word in another language, the exact word from the vocabulary may be added as the title element of the html container. - DC.format
-
This should contain the mime type. Since in html this is already done with the type attribute, or in the http header or in the html header in the
meta
element. On the other hand all these attributes may be exported to xml (rdf) asdc:format
- DC.identifier
-
This is most useful in the
head
section as property for the rel attribute of thelink
element. Similar tobase
this link does not add the extra functionality ofbase
:link rel="DC.identifier" href="http://www.rorkvell.de/tech/dc.xhtml.en" type="application/xhtml+xml" title="Combining the ideas of microformats and Dublin Core" lang="en" hreflang="en
This is the full identifier of the current document in the english xhtml version.
- DC.source
-
Points to a web resource which is the source for the current content or where the current content is based on or which gave the ideas to to current content. Or the current document may be a translated version of the source.
- DC.language
-
This is redundant in the
head
as well as in thebody
and so should be avoided. In html the same is achieved by the "lang" attribute, regarding parts of the current document, or by the "hreflang" attribute, specifying the language of the target attribute. In xml and xhtml documents this is specified by the xml:lang attribute, - DC.relation
-
For styting relations it is better to use the html rel and rev attributes. On the other hand it is possible to export the content of these attributes
dc:relation
in xml (rdf). - DC.coverage
-
this makes a statement about the spatial or temporal validity of the document. In case of spatial limitations this document is only valid for some specified region. The temporal validation may be used for documents about history.
This is mostly useful in the
meta
element, regarding the current document. - DC.rights
- The meaning is identical to the nowadays more widespread rel="license" and may be used alternatively.