Dublin Core (Registered Trademark) Metadata Initiative logo and catchphrase: 
Making it easier to find information
Jump to main content: This Page
Jump to site map: New Page
Dublin Core (Registered Trademark) logo in banner
 
 

 

Guidelines for Dublin Core Application Profiles (Working Draft) (SUPERSEDED, SEE CURRENT VERSION)

Creator: Karen Coyle
Consultant
Creator: Thomas Baker
DCMI
Date Issued: 2008-xx-xx
Identifier: http://dublincore.org/documents/2008/xx/xx/dcap-guidelines/
Replaces: Not applicable
Is Replaced By: Not applicable
Latest Version: http://dublincore.org/documents/dcap-guidelines/
Description of Document: This document provides guidelines for the creation of Dublin Core Application Profiles. The document explains the key components of a Dublin Core Application Profile and walks through the process of developing a profile. The document is aimed at designers of application profiles -- people who will bring together metadata terms for use within a specific context. It does not address the creation of machine-readable implementations of an application profile nor the design of metadata applications in an broader sense. For additional technical detail the reader is pointed to further sources. This document represents work in progress.

Table of contents

  1. Introduction
  2. Framework for Dublin Core Application Profiles
  3. Defining Functional Requirements
  4. Selecting or Developing a Domain Model
  5. Selecting and Defining Metadata Terms
  6. Designing the Metadata Record with a Description Set Profile
  7. Usage Guidelines
  8. Syntax Guidelines

1. Introduction

When it comes to metadata, one size does not fit all. In fact, one size often does not even fit many. The metadata needs of particular communities and applications are very diverse. The result is a great proliferation of metadata formats, even across applications that have metadata needs in common. The Dublin Core Metadata Initiative has addressed this by providing a framework for designing a Dublin Core Application Profile (DCAP) that meets specific application needs while providing semantic interoperability with other applications on the basis of globally defined vocabularies and models.

Note that a DCAP is a generic construct that does not require DCMI metadata terms [DCMI-MT]. While the approach originally developed as a means of specifying customized applications based on the fifteen elements of the Dublin Core Element Set (e.g., Title, Date, Subject), a DCAP can use any terms that are defined in accordance with the RDF Vocabulary Description Language [RDFS], combining terms from different namespaces as needed.

Although the creation of an application profile requires effort, the return is better quality in the form of better guidance for metadata creators and improved consistency for application developers. By clearly specifying what is intended and expected in using the data, an application profile improves the opportunity to share data between communities.

2. Framework for Dublin Core Application Profiles

A DCAP is a document (or set of documents) that specifies and describes the metadata used in a particular application. To accomplish this, a profile:

The interoperability of these components in a broader Web environment derives from their basis in more widely used "domain" standards: Community Domain Models, Metadata Vocabularies (from which the terms in the DCAP are chosen), the Dublin Core Abstract Model (a generic syntax for metadata records), and the DCMI Syntax Guidelines (for concrete application encodings). The foundation standard on which these domain standards rest is the Resource Description Framework (RDF) [RDF] of the World Wide Web Consortium.

The DCAP framework is illustrated in the Singapore Framework for Dublin Core Application Profiles, a framework for designing metadata applications for maximum interoperability and reusability. [DCMI-SF]

Singapore Framework

The sections that follow describe the creation of a DCAP, presented in the upper section of the above diagram, in some detail. To illustrate the creation of a DCAP we will use an example of a simple application profile that describes a book and its author or authors. We'll call this example MyBookCase.

3. Defining Functional requirements

The purpose of any metadata is to support an activity. The development of clear goals for the application used in that activity is an essential first step.

Functional requirements guide the development of the application profile by providing goals and boundaries and are an essential component of a successful application profile development process. This development is often a broad community task and may involve managers of services, experts in the materials being used, technical application developers, and potential end-users of the services.

There are many methodologies to help in the creation of functional requirements, such as business process modeling, and methods for visualizing requirements, such as the Unified Modeling Language [UML]. Many find that the definition of use cases and scenarios for a particular application helps elicit functional requirements that might otherwise be overlooked.

Functional requirements answer questions such as:

Functional requirements can include general goals as well as specific tasks that you need to address. Ideally, functional requirements should address the needs of metadata creators, resource users, and application developers so that the resulting application fully supports the needs of the community.

These are some sample requirements from the Scholarly Works Application Profile (SWAP) [SWAP]:

Facilitate identification of open access materials.
Enable identification of the research funder and project code.

A set of functional requirements may include user tasks that must be supported such as the following from the Functional Requirements for Bibliographic Records (FRBR) [FRBR]:

Use the data to find materials that correspond to the user's stated search criteria.
Use the data retrieved to identify an entity.

For the MyBookCase DCAP our functional requirements are:

Use the data to retrieve books with a title search.
Limit a search to a particular language.
Sort retrieved items by publication date.
Find items about a given subject.
Describe the author as a person with a name and email address.

4. Selecting or Developing a Domain model

After defining functional requirements, the next step is to select or develop a domain model. A domain model is a description of what things (here: resources) your metadata will describe, the relationships between those things. The domain model is the basic blueprint for the construction of the application profile.

In the MyBookCase DCAP, our things are Books and Persons (i.e., authors of the books). We will see below how to describe the book (e.g., title and language) and the person (name and email address). For now, the domain model for our MyBookCase is simply:

Models can be even simpler than this (e.g., just a Book!), or they can be more complex The domain model for the Scholarly Works Dublin Core Application Profile, for example, is based on the library-community domain model Functional Requirements for Bibliographic Records (FRBR) [FRBR]:

SWAP defines "Scholarly Work" in place of FRBR's more general entity "Work", and introduces new "Agent" relationships beyond those in the FRBR, such as "isFundedBy" and "isSupervisedBy." In this way, SWAP makes use of FRBR but customizes the FRBR model to meet its specific needs:

5. Selecting or Defining Metadata Terms

As explained above, the entities in the domain model -- whether a Book and Author, Manifestation and Copy, or just a generic Resource -- are classes of things to be described in our metadata. The next step is to choose properties for describing them. For example, a Book has a title and an author; a Person has a name.

The best (and easiest) option is to use properties from existing vocabularies, such as DCMI Metadata Terms [DCMI-MT] or the "Friend of a Friend" vocabulary [FOAF].

If the properties one needs are not already available, it is possible to declare one's own. Guidance for doing this can be found in "Cool URIs for the Semantic Web" [COOLURIS], the RDF Primer [RDF-PRIMER], and "Best Practice Recipes for Publishing RDF Vocabularies" [RECIPES]. Best-practice examples include DCMI Metadata Terms [DCMI-MT], Dublin Core Collection Description Terms [CTERMS], and Eprints Terms [ETERMS], It is good practice for terms also to be published in RDF schemas (see the schemas associated with DCMI Metadata Terms [DCMI-MT] and Dublin Core Collection Description Terms [CTERMS]).

When evaluating properties from an existing RDF vocabulary for use in your profile, take note of the following:

End-users of metadata need not notice or care whether a property has a literal or non-literal range -- in an application interface, the string data presented to them may look the same regardless whether it is a "literal value" or a value string associated with a "non-literal value". However, this distinction has important consequences for the extensibility of metadata and for the form in which metadata is exchanged. Metadata-consuming applications like to know whether to expect value strings or URIs. For the price of some computational overhead for processing the "hook" on which the value strings and URIs are hung, the "non-literal value" offers better descriptive expressivity. In order to achieve the ideal of "linked metadata" -- descriptions that are cross-referenced using globally valid identifiers -- "non-literal" values are crucial because they support the use of URIs. "Non-literal" values can be the subjects of related descriptions. A Book was created by a Person, and that Person has a name and email address.

Now we are ready to select the properties for the MyBookCase application profile. We stated in our functional requirements that a Book will have a title, date, language, subject, and author:

Property Range Value String SES URI Value URI VES URI Related description
dcterms:title literal YES no not with a literal range not with a literal range not with a literal range
dcterms:created literal YES YES [1] not with a literal range not with a literal range not with a literal range
dcterms:language non-literal YES YES [2] no no no
dcterms:subject non-literal YES no YES YES [3] no
dcterms:creator non-literal YES no no no YES
[1] http://purl.org/dc/terms/W3CDTF
[2] http://purl.org/dc/terms/ISO639-2
[3] http://purl.org/dc/terms/LCSH

The selection of properties for describing the Person follows the same model:

Property Range Value String SES URI Value URI VES URI Related description
foaf:firstName literal YES no not with a literal range not with a literal range not with a literal range
foaf:family_name literal YES no not with a literal range not with a literal range not with a literal range
foaf:mbox non-literal no no YES [3] no no
[1] using mailto: URIs

Now we are ready to describe our metadata record.

6. Designing the Metadata Record with a Description Set Profile

Now we can describe the metadata record in detail. The DCMI Working Draft "Description Set Profiles: A constraint language for Dublin Core Application Profiles" [DSP] provides a method for specifying structural constraints on the descriptions and statements held in a metadata record. Such constraints specify, for example, whether a statement with a given property is repeatable or non-repeatable, optional or required. Description set profiles are based on the Description Set Model, part of the DCMI Abstract Model [DCAM], which is reproduced below in Appendix A. This section presents a simple Description Set Profile for MyBookCase.

A Description Set Profile (DSP) contains one description template for each thing in the domain model. The DSP for MyBookCase has two description templates -- one for Book and one for Person. Each description templates has statement templates for the properties used to describe the Book or Person.

If each metadata record is to represent exactly one book, a book description template will occur once in each description set:

DescriptionSet: MyBookCase
   Description template: Book
   minimum = 1; maximum = 1

Let us say that each book must have one (and only one) title, which is identified with the property URI http://purl.org/dc/terms/title. Note that title is used in statements with literal values. Statement templates are created for each of the other properties used to describe a Book (with occurrence options and other constraints as needed):

DescriptionSet: MyBookCase
   Description template: Book
   minimum = 1; maximum = 1
       Statement template: title
       minimum = 1; maximum = 1
         Property: http://purl.org/dc/terms/title
         Type of Value Surrogate = "literal"
       Statement template: dateCreated
       minimum = 0; maximum = 1
         Property: http://purl.org/dc/terms/created
         Type of Value Surrogate = "literal"
         Syntax Encoding Scheme URI = http://purl.org/dc/terms/W3CDTF
       Statement template: language
       minimum = 0; maximum = 3
         Property: http://purl.org/dc/terms/language
         Type of Value Surrogate = "non-literal"
         takes list = yes
         Syntax Encoding Scheme URI = http://purl.org/dc/terms/ISO639-2
       Statement template: author
       minimum = 0; maximum = 5 
         Property: http://purl.org/dc/terms/creator
         Type of Value Surrogate = "non-literal"
         defined as = person

Notice that some of the properties have a minimum occurrence of 0 (zero). This is another way of saying that these properties are optional in our record, or that you can create a valid record even if these properties are not present. Some of them are repeatable, such as the language, which can occur as many as three times, and the author, which can occur as many as five times. We've defined the author as having the value of Person, which is described in its own description template.

Description template: Person id=person
   minimum = 0; maximum = unlimited
   Statement template: givenName
     Property: http://xmlns.com/foaf/0.1/givenname
     minimum = 0; maximum = 1 
     Type of Value Surrogate = "literal"
   Statement template: familyName
     Property: http://xmlns.com/foaf/0.1/family_name
     minimum = 0; maximum = 1 
     Type of Value Surrogate = "literal"
   Statement template: email
     Property: http://xmlns.com/foaf/0.1/mbox
     minimum = 0; maximum = unlimited
     Type of Value Surrogate = "non-literal"
     value URI = mandatory

A given Person can have one optional given name and one optional family name, each of which are literal strings. A Person can also have an email address which must be represented by a URI of the form "mailto:". Because many of us have more than one email address, we allow this statement to repeat as often as necessary.

We allow our Person to be used any number of times in the metadata record. This may seem to conflict with the fact that Person can only represent an author up to five times in the Book description, but we anticipate other possible uses for Persopn in our record, such as subjects of the Book, so we have chosen not to limit its number in the record in general.

Note that each Person description contains data elements for only one Person. This also means that an author statement will have only one Person value. If there are two authors, then two author statements will be needed in the metadata record, each representing one Person. Note that one might allow a single Person to have more than one name, such as real names and pseudonyms; however, the metadata would clearly distinguish the case of multiple authors (multiple description templates) from that of a single author with multiple names (multiple statement templates).

If you wish to include an affiliated insitution for the author, you may want to create an institution description that contains the name and location of that institution, which will then link to the author description. You may also have other uses for corporate names and locations such as for recording information about the publisher of the book. As additional descriptions are created to hold the additional information, description sets can potentially become quite complex.

This completes the simple Description Set Profile for MyBookCase; see Appendix B for a version of this DSP encoded in XML.

7. Usage Guidelines

A Description Set Profile defines the "what" of the application profile; usage guidelines provide the "how" and "why". Usage guidelines offer instructions to the people who will create the metadata records, so ideally they should explain each property and anticipate the decisions that must be made in the course of creating a metadata record. Documentation for metadata creators presents some of the same information that is included in the DSP, but in a more human-understandable form. Those inputting metadata will need to know: is this required? is it repeatable? am I limited in the values that I can input in this statement? Oftentimes a user interface can answer these questions, for example by presenting the metadata creator with a list of valid values to choose from.

Some examples of the kinds of rules that might appear in usage guidelines are:

In some cases where usage guidelines are relatively simple, they may be included in the DSP document with the description of the property. The SWAP is an example where the guidance instructions are included in the same document that contains the Description Set Profile definition.

Other communities may have highly complex rules that are best presented as separate documents due to their length and complexity. For example, the Anglo-American Cataloguing Rules used as guidelines by some libraries are recorded in a 600-page book.[AACR2] Instructions relating to titles appear in numerous of the book's chapters and cover many pages of text. Guidelines of this length may not integrate well with the Description Set Profile definition.

8. Syntax Guidelines

The technologies described in this document are syntax neutral; that is, they do not require any particular machine-readable encoding syntax as long as the syntax employed can fully express the values and relationships defined in the DCAP.

To help developers turn their application profiles into functioning applications, DCMI has developed various encoding guidelines [DCMI-ENCODINGS]. Description Set Profiles can be deployed using any concrete implementation syntax for which a mapping to the abstract model has been specified. DCMI has developed or is developing guidelines for encoding DCAM-based metadata in HTML/XHTML, XML, and RDF/XML; others could be added in the future. There is no restriction on use of other types of syntax as long as the resulting data format is compatible with the foundation standards and with the Dublin Core Abstract Model.

 

References

AACR2
American Library Association and Library Association, Anglo-American Cataloguing Rules, 2nd ed. (London: Library Association, 1978).
CTERMS
Dublin Core Collection Description Terms.
<http://dublincore.org/groups/collections/collection-terms/2007-03-09/>
See also RDF schema < http://dublincore.org/groups/collections/collection-terms/2007-03-09/cldterms.rdf>
COOLURIS
Sauermann, Leo, Richard Cyganiak, eds. Cool URIs for the Semantic Web.
<http://www.w3.org/TR/cooluris/
DCMI-ENCODINGS
DCMI Encoding Guidelines
<http://dublincore.org/resources/expressions/>
DCMI-MT
DCMI Metadata Terms. January, 2008.
<http://dublincore.org/documents/dcmi-terms/>
See also RDF schema <http://dublincore.org/2008/01/14/dcterms.rdf>
DCAM
Powell, Andy, Mikael Nilsson, Ambjörn Naeve, Pete Johnston and Thomas Baker. DCMI Abstract Model. DCMI Recommendation. June 2007.
<http://dublincore.org/documents/2007/06/04/abstract-model/>
DCMI-SF
Nilsson, Mikael, Thomas Baker, Pete Johnston. The Singapore Framework for Dublin Core Application Profiles.
<http://dublincore.org/documents/2008/01/14/singapore-framework/>
DSP
Nilsson, Mikael. Description Set Profiles: A constraint language for Dublin Core Application Profiles. March, 2008.
<http://dublincore.org/documents/2008/03/31/dc-dsp/>
ETERMS
Eprints Terms.
<http://www.ukoln.ac.uk/repositories/digirep/index/Eprints_Terms>
FOAF
Brickley, Dan, Libby Miller. FOAF Vocabulary Specification 0.91. November, 2007
<http://xmlns.com/foaf/spec/>
FRBR
IFLA Study Group on the Functional Requirements for Bibliographic Records. (1998). Functional Requirements for Bibliographic Records - Final Report. Munich: K.G. Saur. Also available at <http://www.ifla.org/VII/s13/frbr/index.htm>
RDF
World Wide Web Consortium. Resource Description Framework (RDF) <http://www.w3.org/RDF>
RDFS
Brickley, Dan and R.V. Guha, editors. RDF Vocabulary Description Language 1.0: RDF Schema. W3C Recommendation. 10 February 2004.
<http://www.w3.org/TR/rdf-schema/>
RDF-PRIMER
Manola, Frank, Eric Miller. RDF Primer. W3C Recommendation 10 February 2004.
<http://www.w3.org/TR/2004/REC-rdf-primer-20040210/>
RECIPES
Berrueta, Diego, Jon Phipps, eds. Best Practice Recipes for Publishing RDF Vocabularies.
<http://www.w3.org/TR/swbp-vocab-pub/>
RFC3066
Alvestrand, H. Tags for the Identification of Languages. January, 2001.
<http://www.ietf.org/rfc/rfc3066.txt>
SWAP
Scholarly Works Application Profile.
<http://www.ukoln.ac.uk/repositories/digirep/index/Eprints_Application_Profile>
UML
Booch, Grady, James Rumbaugh and Ivar Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, 1998.

Appendix A: Description Set Model (from DCMI Abstract Model)

According to the "Description Set Model" of the DCMI Abstract Model [DCAM <#DCAM>], a Dublin Core description set has the following structure:

Appendix B: MyBookCase Description Set Profile

<?xml version="1.0" encoding="UTF-8"?>
<DescriptionSetTemplate xmlns="http://dublincore.org/xml/dc-dsp/2008/01/14" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://dublincore.org/xml/dc-dsp/2008/01/14">
	<DescriptionTemplate ID="Book" minOccurs="1" maxOccurs="1" standalone="yes">
		<StatementTemplate ID="title" minOccurs="1" maxOccurs="1" type="literal">
			<Property>http://purl.org/dc/terms/title</Property>
		</StatementTemplate>
		<StatementTemplate ID="dateCreated" minOccurs="0" maxOccurs="1" type="literal">
			<Property>http://purl.org/dc/terms/created</Property>
			<LiteralConstraint>
				<SyntaxEncodingScheme>http://purl.org/dc/terms/W3CDTF</SyntaxEncodingScheme>
			</LiteralConstraint>
		</StatementTemplate>
		<StatementTemplate ID="language" minOccurs="0" maxOccurs="3" type="nonliteral">
			<Property>http://purl.org/dc/terms/language</Property>
			<NonLiteralConstraint>
				<VocabularyEncodingSchemeURI>http://purl.org/dc/terms/ISO639-2</VocabularyEncodingSchemeURI>
				<ValueStringConstraint minOccurs="1" maxOccurs="1"/>
			</NonLiteralConstraint>
		</StatementTemplate>
		<StatementTemplate ID="author" minOccurs="0" maxOccurs="5" type="nonliteral">
			<Property>http://purl.org/dc/terms/creator</Property>
			<NonLiteralConstraint descriptionTemplateRef="person"/>
		</StatementTemplate>
	</DescriptionTemplate>
	<DescriptionTemplate ID="person" minOccurs="0"  standalone="no">
		<StatementTemplate ID="givenName" minOccurs="0" maxOccurs="1" type="literal">
			<Property>http://xmlns.com/foaf/0.1/givenname</Property>
		</StatementTemplate>
		<StatementTemplate ID="familyName" minOccurs="0" maxOccurs="1" type="literal">
			<Property>http://xmlns.com/foaf/0.1/family_name</Property>
		</StatementTemplate>
		<StatementTemplate ID="email" minOccurs="0"  type="nonliteral">
			<Property>http://xmlns.com/foaf/0.1/mbox</Property>
			<NonLiteralConstraint>
				<ValueURIOccurrence>mandatory</ValueURIOccurrence>
			</NonLiteralConstraint>
		</StatementTemplate>
	</DescriptionTemplate>
</DescriptionSetTemplate>

Copyright © 1995-2013 DCMI. All Rights Reserved.