innovation in metadata design, implementation & best practice

Dublin Core Tags Applied to XML-Data Schemas for Purpose of Description and Categorization

Title:

Dublin Core Tags Applied to XML-Data Schemas for Purpose of Description and Categorization

Creator:
Date Issued:
1999-05-20
Identifier:
Replaces:
Not Applicable
Is Replaced By:
Not Applicable
Latest version:
Status of document:
This is a DCMI Note.
Description of document: The Dublin Core Metadata Element Set is a collection of fifteen elements designed by librarians to categorize and catalog documents. The elements are sufficiently general that they are suitable for categorizing and describing XML-Data schemas. This paper proposes a schema, based on Dublin Core elements, and then gives guidelines for its application in XML-Data schemas.

The Dublin Core Metadata Element Set is a collection of fifteen elements designed by librarians to categorize and catalog documents. The elements are sufficiently general that they are suitable for categorizing and describing XML-Data schemas. This paper proposes a schema, based on Dublin Core elements, and then gives guidelines for its application in XML-Data schemas.

But first, a sample: A trivial schema categorized according to the elements described here might look like:

<Schema xmlns='urn:schemas-microsoft-com:xml-data'
          xmlns:dt = 'urn:schemas-microsoft-com:datatypes'
          >

  <catalogInformation xmlns= urn:electrocommerce-org:schemas/electrocommerce' >
      <title>My trivial schema</title>
      <creator>
          <FreeText>Andrew Layman</FreeText>
          <personReference>mailto:andrewl@microsoft.com</personReference>
      </creator>
      <subject>
          <subjectRef>urn:electrocommerce-org/taxonomy/teapot</subjectRef>
          <keyword>teapot</keyword>
      </subject>
      <subject>
          <subjectRef>urn:electrocommerce-org/taxonomy/coffee</subjectRef>
          <keyword>coffee</keyword>
          <keyword xml:lang="it">caffe</keyword>
      </subject>
  </catalogInformation>
</Schema>

The Schema
This defines a small set of tags, each based on the corresponding generic Dublin Core element shown in Appendix A, but specialized for the purpose of cataloging schemas.

<!-- Schema for Schema Catalog, version 1, based on Dublin Core,
generated 5/13/99 by AJL. -->
 
<Schema xmlns='urn:schemas-microsoft-com:xml-data'
          xmlns:dt = 'urn:schemas-microsoft-com:datatypes'
      >

  <description>This defines a small set of tags,
  each based on the corresponding generic Dublin Core,
  but here specialized for the purpose of cataloging schemas.
  See http://purl.org/dc for more information on Dublin Core.
  </description>

  <ElementType name="personReference" model="closed" content="textOnly" >
    <datatype dt:type="URI" />
  </ElementType>

  <ElementType name="subjectReference" model="closed" content="textOnly" >
    <datatype dt:type="URI" />
  </ElementType>

  <ElementType name="resourceReference" model="closed" content="textOnly" >
    <datatype dt:type="URI" />
  </ElementType>

  <ElementType name="FreeText" model="open" content="mixed" >
    <description>Mixed text and markup. Must be well-formed
    if marked-up.</description>
    <attribute type="xml:lang" />
  </ElementType>

  <ElementType name="keyword" model="closed" content="textOnly" >
    <description>A keyword used for categorization, with a human-language
    meaning but not drawn from a controlled vocabulary identified by a URI.
    We recommend using only lower-case text.</description>
    <attribute type="xml:lang" />
  </ElementType>

  <ElementType name="title" model="closed" content="textOnly" >
    <description>The descriptive title of this schema.</description>
    <attribute type="xml:lang" />
  </ElementType>

  <ElementType name="creator" model="open" content="eltOnly" >
    <description>The person or organization primarily responsible for
    creating the intellectual content of this schema. </description>
    <group order="one" minOccurs="1" maxOccurs="*">
        <element type="personReference" />
        <element type="FreeText" />
    </group>
  </ElementType>

  <ElementType name="subject" model="open" content="eltOnly" >
    <description>The topic of the schema. Typically, subject will be
    expressed as keywords or phrases that describe the subject or
    content of the schema. The use of controlled vocabularies and
    formal classification schemes is encouraged.</description>
    <group order="one" minOccurs="0" maxOccurs="*">
        <element type="subjectReference" />
        <element type="keyword" />
    </group>
  </ElementType>

  <ElementType name="description" model="open" content="mixed" >
    
    <description> A textual description of the content of the resource,
    including abstracts in the case of document-like objects or content
    descriptions in the case of visual resources.</description>
    <attribute type="xml:lang" />
    
  </ElementType>

  <ElementType name="publisher" model="open" content="eltOnly" >
    
    <description>The entity responsible for making the resource
    available in its present form, such as a publishing house, a
    university department, or a corporate entity.</description>

    <group order="one" minOccurs="1" maxOccurs="*">
        <element type="personReference" />
        <element type="FreeText" />
    </group>
    
  </ElementType>

  <ElementType name="contributor" model="open" content="eltOnly" >
    
    <description>A person or organization not specified in a Creator
    element who has made significant intellectual contributions to the
    resource but whose contribution is secondary to any person or
    organization specified in a Creator element (for example, editor,
    transcriber, and illustrator).</description>

    <group order="one" minOccurs="1" maxOccurs="*">
        <element type="personReference" />
        <element type="FreeText" />
    </group>
    
  </ElementType>

  <ElementType name="identifier" model="open" content="eltOnly" >
    
    <description>A string or number used to uniquely identify the
    resource. Examples for networked resources include URLs and URNs
    (when implemented). Other globally-unique identifiers, such as
    International Standard Book Numbers (ISBN) or other formal names are
    also candidates for this element.</description>

    <group order="one" minOccurs="1" maxOccurs="*">
        <element type="resourceReference" />
        <element type="FreeText" />
    </group>

</ElementType>

<ElementType name="source" model="open" content="eltOnly" >
    
    <description>Information about a second resource from which the
    present resource is derived. While it is generally recommended that
    elements contain information about the present resource only, this
    element may contain a date, creator, format, identifier, or other
    metadata for the second resource when it is considered important for
    discovery of the present resource; recommended best practice is to
    use the Relation element instead. For example, it is possible to
    use a Source date of 1603 in a description of a 1996 film adaptation
    of a Shakespearean play, but it is preferred instead to use Relation
    "IsBasedOn" with a reference to a separate resource whose
    description contains a Date of 1603. Source is not applicable if the
    present resource is in its original form.</description>

    <group order="one" minOccurs="1" maxOccurs="*">
        <element type="resourceReference" />
        <element type="FreeText" />
    </group>

    
  </ElementType>

  <ElementType name="language" model="closed" content="textOnly" >
    
    <description>The language of the intellectual content of the
    resource. When used, he content of this field must coincide
    with RFC 1766 [Tags for the Identification of Languages,
    http://ds.internic.net/rfc/rfc1766.txt ]; examples include en, de,
    es, fi, fr, ja, th, and zh.</description>
    
  </ElementType>

  <ElementType name="rights" model="open" content="eltOnly" >
    
    <description>A rights management statement, an identifier that
    links to a rights management statement, or an identifier that links
    to a service providing information about rights management for the
    resource.</description>

    <group order="one" minOccurs="1" maxOccurs="*">
        <element type="resourceReference" />
        <element type="FreeText" />
    </group>
    
  </ElementType>

  <ElementType name="catalogInformation" model="open" content="eltOnly" >
    
    <description>

    A small set of tags, each based on the corresponding generic Dublin Core element,
    but here specialized for the purpose of cataloging schemas. See
    http://purl.org/dc for more information on Dublin Core.
    Many tags may be repeated at this level, and also allow multiple occurences of
    their subelments. The intended usage is that distinct items (for example distinct
    creators) should be expressed with separate elements, while alternative forms of
    reference to the same item (for example, several ways of referring to the same
    creator) should be expressed as alternate subelements.

    </description>

    <group order="seq">
        <element type="title" minOccurs="0" maxOccurs="*" />
        <element type="creator" minOccurs="0" maxOccurs="*" />
        <element type="subject" minOccurs="0" maxOccurs="*" />
        <element type="description" minOccurs="0" maxOccurs="*" />
        <element type="publisher" minOccurs="0" maxOccurs="*" />
        <element type="contributor" minOccurs="0" maxOccurs="*" />
        <element type="identifier" minOccurs="0" maxOccurs="*" />
        <element type="source" minOccurs="0" maxOccurs="*" />
        <element type="language" minOccurs="0" maxOccurs="*" />
        <element type="rights" minOccurs="0" maxOccurs="*" />
    </group>
    
  </ElementType>

</Schema>

How to Use the Schema
Crucial to understanding how this is used is to first understand the role of the several URI-based references, such as personReference, subjectReference and resourceReference. These occur within elements whose content model is very flexible in Dublin Core. For example, in DC the creator element may have free text or it may have a reference to a specific company or individual via some well-known identification system. Controlled sets of names, for example D-U-N-S numbers, make excellent identifiers. We pair these with the Universal Resource Identifier specification , and propose that companies and organizations that control identifiers should name their identifier sets with URIs, thereby allowing us to use the datatype 'URI' wherever a controlled identifier is needed.

For example, supposing that Dun and Bradstreet gave a URI beginning with 'urn:www-dnb-com/dunsno' to every number they issue. A creator element might look like

<creator>
    <personRef>urn:www-dnb-com/dunsno/123456789012345</personRef>
</creator>

Similarly, subject taxonomies are reasonably going to be defined by many authorities. Each of these should have a corresponding URI namespace, used similarly to

<subject>
    <subjectRef>urn:electrocommerce-org/taxonomy/teapot</subjectRef>
</subject>

Subject categorizations also allow keywords from uncontrolled vocabularies, so the following might be seen:

<subject>
    <subjectRef>urn:electrocommerce-org/taxonomy/teapot</subjectRef>
    <keyword>teapot</keyword>
</subject>

A trivial schema categorized according to the elements described here might look like:

<Schema xmlns='urn:schemas-microsoft-com:xml-data'
          xmlns:dt = 'urn:schemas-microsoft-com:datatypes'
          >

  <catalogInformation xmlns= urn:electrocommerce-org:schemas/electrocommerce' >
      <title>My trivial schema</title>
      <creator>
          <FreeText>Andrew Layman</FreeText>
          <personReference>mailto:andrewl@microsoft.com</personReference>
      </creator>
      <subject>
          <subjectRef>urn:electrocommerce-org/taxonomy/teapot</subjectRef>
          <keyword>teapot</keyword>
      </subject>
      <subject>
          <subjectRef>urn:electrocommerce-org/taxonomy/coffee</subjectRef>
          <keyword>coffee</keyword>
          <keyword xml:lang="it">caffe</keyword>
      </subject>
  </catalogInformation>
</Schema>

Appendix A: The Generic Dublin Core Element Set
This defines each of the fifteen elements in a completely unconstrained fashion. Every element can contain anything.

<!-- Schema for Dublin Core, generated 5/13/99 4:03:15 PM by AJL. -->
 
<Schema xmlns='urn:schemas-microsoft-com:xml-data'
          xmlns:dt = 'urn:schemas-microsoft-com:datatypes' >

  <description> The Dublin Core is a simple metadata element
        set intended to facilitate discovery of electronic
        resources. 
  </description>

  <ElementType name="Title" model="open" content="mixed" >
    
    <description>The name given to the resource, usually by the Creator
    or Publisher.</description>
    
  </ElementType>

  <ElementType name="Creator" model="open" content="mixed" >
    
    <description>The person or organization primarily responsible for
    creating the intellectual content of the resource. For example,
    authors in the case of written documents, artists, photographers, or
    illustrators in the case of visual resources.</description>
    
  </ElementType>

  <ElementType name="Subject" model="open" content="mixed" >
    
    <description>The topic of the resource. Typically, subject will be
    expressed as keywords or phrases that describe the subject or
    content of the resource. The use of controlled vocabularies and
    formal classification schemes is encouraged.</description>
    
  </ElementType>

  <ElementType name="Description" model="open" content="mixed" >
    
    <description> A textual description of the content of the resource,
    including abstracts in the case of document-like objects or content
    descriptions in the case of visual resources.</description>
    
  </ElementType>

  <ElementType name="Publisher" model="open" content="mixed" >
    
    <description>The entity responsible for making the resource
    available in its present form, such as a publishing house, a
    university department, or a corporate entity.</description>
    
  </ElementType>

  <ElementType name="Contributor" model="open" content="mixed" >
    
    <description>A person or organization not specified in a Creator
    element who has made significant intellectual contributions to the
    resource but whose contribution is secondary to any person or
    organization specified in a Creator element (for example, editor,
    transcriber, and illustrator).</description>
    
  </ElementType>

  <ElementType name="Date" model="open" content="mixed" >
    
    <description>A date associated with the creation or availability of
    the resource. Such a date is not to be confused with one belonging
    in the Coverage element, which would be associated with the resource
    only insofar as the intellectual content is somehow about that
    date. Recommended best practice is defined in a profile of ISO 8601
    [Date and Time Formats (based on ISO8601), W3C Technical Note,
    http://www.w3.org/TR/NOTE-datetime] that includes (among others)
    dates of the forms YYYY and YYYY-MM-DD. In this scheme, for example,
    the date 1994-11-05 corresponds to November 5, 1994.</description>
    
  </ElementType>

  <ElementType name="Type" model="open" content="mixed" >
    
    <description>The category of the resource, such as home page,
    novel, poem, working paper, technical report, essay, dictionary. For
    the sake of interoperability, Type should be selected from an
    enumerated list that is currently under development in the workshop
    series.</description>
    
  </ElementType>

  <ElementType name="Format" model="open" content="mixed" >
    
    <description>The data format of the resource, used to identify the
    software and possibly hardware that might be needed to display or
    operate the resource. For the sake of interoperability, Format
    should be selected from an enumerated list that is currently under
    development in the workshop series.</description>
    
  </ElementType>

  <ElementType name="Identifier" model="open" content="mixed" >
    
    <description>A string or number used to uniquely identify the
    resource. Examples for networked resources include URLs and URNs
    (when implemented). Other globally-unique identifiers, such as
    International Standard Book Numbers (ISBN) or other formal names are
    also candidates for this element.</description>
    
  </ElementType>

  <ElementType name="Source" model="open" content="mixed" >
    
    <description>Information about a second resource from which the
    present resource is derived. While it is generally recommended that
    elements contain information about the present resource only, this
    element may contain a date, creator, format, identifier, or other
    metadata for the second resource when it is considered important for
    discovery of the present resource; recommended best practice is to
    use the Relation element instead. For example, it is possible to
    use a Source date of 1603 in a description of a 1996 film adaptation
    of a Shakespearean play, but it is preferred instead to use Relation
    "IsBasedOn" with a reference to a separate resource whose
    description contains a Date of 1603. Source is not applicable if the
    present resource is in its original form.</description>
    
  </ElementType>

  <ElementType name="Language" model="open" content="mixed" >
    
    <description>The language of the intellectual content of the
    resource. Where practical, the content of this field should coincide
    with RFC 1766 [Tags for the Identification of Languages,
    http://ds.internic.net/rfc/rfc1766.txt ]; examples include en, de,
    es, fi, fr, ja, th, and zh.</description>
    
  </ElementType>

  <ElementType name="Relation" model="open" content="mixed" >
    
    <description>An identifier of a second resource and its
    relationship to the present resource. This element permits links
    between related resources and resource descriptions to be
    indicated. Examples include an edition of a work (IsVersionOf), a
    translation of a work (IsBasedOn), a chapter of a book (IsPartOf),
    and a mechanical transformation of a dataset into an image
    (IsFormatOf). For the sake of interoperability, relationships should
    be selected from an enumerated list that is currently under
    development in the workshop series.</description>
    
  </ElementType>

  <ElementType name="Coverage" model="open" content="mixed" >
    
    <description>The spatial or temporal characteristics of the
    intellectual content of the resource. Spatial coverage refers to a
    physical region (e.g., celestial sector); use coordinates (e.g.,
    longitude and latitude) or place names that are from a controlled
    list or are fully spelled out. Temporal coverage refers to what the
    resource is about rather than when it was created or made available
    (the latter belonging in the Date element); use the same date/time
    format (often a range) [Date and Time Formats (based on ISO8601),
    W3C Technical Note, http://www.w3.org/TR/NOTE-datetime] as
    recommended for the Date element or time periods that are from a
    controlled list or are fully spelled out.</description>
    
  </ElementType>

  <ElementType name="Rights" model="open" content="mixed" >
    
    <description>A rights management statement, an identifier that
    links to a rights management statement, or an identifier that links
    to a service providing information about rights management for the
    resource.</description>
    
  </ElementType>
  </Schema>