WEBDAV Working Group                              J. Stracke, Netscape

<draft-ietf-webdav-dublin-core-00> eCal Corp.
INTERNET DRAFT
<draft-ietf-webdav-dublin-core-01>
Expires April, December, 1999                                      June 8, 1999

                  Use of Dublin Core Metadata in WebDAV

1 Status of this Memo Document

   This document is an Internet-Draft. Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or made obsolete obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work ``work in progress".

   To view the entire progress.''

   The list of current Internet-Drafts, please check
   the "1id-abstracts.txt" listing contained in the Internet-Drafts can be accessed at
   <http://www.ietf.org/ietf/1id-abstracts.txt>

   The list of Internet-Draft Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
   (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au
   (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu
   (US West Coast). can be accessed at
   <http://www.ietf.org/shadow.html>

   Distribution of this document is unlimited. Please send comments to
   the Distributed Authoring and Versioning (WEBDAV) working group at
   <w3c-dist-auth@w3.org>, which may be joined by sending a message
   with subject "subscribe"
   francis@ecal.com or to <w3c-dist-auth-request@w3.org>.

   Discussions of the WEBDAV working group are archived at
   <URL:http://www.w3.org/pub/WWW/Archives/Public/w3c-dist-auth>. w3c-dist-auth@w3.org discussion list.

2 Abstract

   This document specifies a standard mapping for using the metadata vocabulary
   of Dublin Core ([DUBLIN]) in a WebDAV ([WEBDAV]) server.

Contents

STATUS OF THIS MEMO                             1
ABSTRACT                                        1
CONTENTS                                        2

1 INTRODUCTION                                  2

2 MAPPING                                       3

2.1 NAMESPACE                                   3

2.2 PROPERTY NAMES                              3

2.3 PROPERTY FORMAT                             3

2.4 SUBELEMENTS

3

3 INTERNATIONALIZATION CONSIDERATIONS           4

4 SECURITY CONSIDERATIONS                       4

5 IANA CONSIDERATIONS                           4

6 COPYRIGHT                                     4

7 INTELLECTUAL PROPERTY                         5

8 ACKNOWLEDGEMENTS                              5

9 REFERENCES                                    6

9.1 NORMATIVE REFERENCES                        6

9.1 INFORMATIONAL REFERENCES                    6

10 AUTHORS' ADDRESSES                           6

1 Introduction

   This document specifies a standard mapping for using the metadata vocabulary
   of Dublin Core ([DUBLIN]) in a WebDAV ([WEBDAV]) server.

   WebDAV defines a protocol for manipulating metadata on a Web
   resource; in WebDAV, an element of metadata is called a property.
   Dublin Core defines several metadata elements, with standard names
   and standard meanings. A server which stores Dublin Core metadata for
   its content may wish to make the metadata available as WebDAV
   properties; to forestall the emergence of nonstandard incompatible ways to
   provide this functionality, this document defines a standard mapping from
   Dublin Core element labels into WebDAV property names.

2

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALLNOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and"OPTIONAL" in this
   document are to be interpreted as described in [MUSTS] .

4 Mapping

2.1 Namespace

   The approach taken in this mapping is to leverage the RDF encoding
   ([DC-RDF]) of Dublin Core. An [RDF] document encoding Dublin Core
   data would look something like this:

      <?xml version="1.0"?>
      <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:dc="http://purl.org/dc/elements/1.0/"
      xmlns:dcq="http://purl.org/dc/qualifiers/1.0/">
      <rdf:Description about="http://www.ietf.org/rfc/rfc822.txt">
      <dc:creator>
      <rdf:Description>
      <rdf:value>Crocker, David</rdf:value>
      <dcq:creatorType
      rdf:resource="http://purl.org/dc/schema/LastnameFirstname#"/>
      </rdf:Description>
      </dc:creator>
      </rdf:Description>
      </rdf:RDF>

   The mapping defined here works by identifying each subelement of
   <rdf:Description> with a single WebDAV property. Since WebDAV
   properties are expressed as XML elements ([XML]), using XML
   namespaces ([XMLNS]) to permit allow different groups to define sets of
   properties without interfering with each other.  XML other, the mapping is direct
   and one-to-one. In this case, the namespaces being used are
   named
   <URI:http://purl.org/dc/elements/1.0/>,
   <URI:http://purl.org/dc/qualifiers/1.0/>, and
   <URI:http://www.w3.org/1999/02/22-rdf-syntax-ns#>, as specified in
   [RDF] and [DC-RDF]. To obtain the Dublin Core creator for the
   resource <http://www.ietf.org/rfc/rfc822.txt>, a WebDAV client would
   issue a PROPFIND method to the resource, requesting the dc:creator
   property:

      PROPFIND /rfc/rfc822.txt HTTP/1.1
      Host: www.ietf.org
      Content-type: text/xml; charset="utf-8"
      Content-Length: xxxx

      <?xml version="1.0" encoding="utf-8" ?>
      <D:propfind xmlns:D="DAV:">
      <D:prop xmlns:dc="http://purl.org/dc/elements/1.0/">
      <dc:creator/>
      </D:prop>
      </D:propfind>

   The response to the request would provide the <dc:creator> element,
   and all its contents, just as in the RDF document above.

4.1 Correspondences

   The following table illustrates the relationship between [DUBLIN]
   element names and [WEBDAV] property names. The dc: prefix is assumed
   to be mapped to the namespace http://purl.org/dc/elements/1.0/.

   Dublin Core element    WebDAV property

   DC.Title               dc:title
   DC.Creator             dc:creator
   DC.Subject             dc:subject
   DC.Description         dc:description
   DC.Publisher           dc:publisher
   DC.Contributor         dc:contributor
   DC.Date                dc:date
   DC.Type                dc:type
   DC.Format              dc:format
   DC.Identifier          dc:identifier
   DC.Source              dc:source
   DC.Language            dc:language
   DC.Relation            dc:relation
   DC.Coverage            dc:coverage
   DC.Rights              dc:rights

4.2 Abbreviated Syntax

   The Abbreviated Syntax of [DC-RDF] MUST NOT be used in this encoding,
   since it requires packing separate properties into a single XML
   element, which is incompatible with the DAV property model.

4.3 Complications

   A previous version of this document had some difficulties with
   advanced sections of the Dublin Core model. This version addresses
   these problems, but it may be useful to enumerate them for future
   reference.

4.3.1 Multivalued Properties

   A WebDAV property can occur on a resource only once, while a content
   item may bear more than one instance of a Dublin Core element. The
   previous document defined an ad hoc XML syntax for listing multiple
   values, which drew criticism from people who wanted more general
   multivalued property support for WebDAV. This document is able to
   sidestep the problem because Dublin Core now has its own solution,
   and it is not necessary to create a new one. In the above example, if
   RFC-822 had multiple authors, the <dc:creator> element might contain
   an <rdf:Bag> element containing <rdf:li> elements.

4.3.2 Qualification (Subelements)

   When the previous document was written, some members of the Dublin
   Core group had plans to support more structure in their metadata, but
   had not yet defined a syntax for it. At this time, the debate over
   subelements is still not fully resolved, but the syntax in the RDF
   encding has been established: to add extra data on a dc: element, one
   nests a dcq: element within it, as a qualifier, as in the
   <dcq:creatorType> element in the RDF example above.

5 Examples

   The examples in this section are based on Example 14 of [DC-RDF],
   showing how [WEBDAV] would be used to set and get the properties
   presented there. (Note that non-ASCII characters in Example 14 have
   been elided for the sake of the ASCII Internet-Draft format.)

5.1 Set with PROPPATCH

5.1.1 Request

      PROPPATCH /metadata/resources/dc/datamodel/WD-dc-rdf/ HTTP/1.1
      Host: www.ukoln.ac.uk
      Content-type: text/xml
      Content-length: xxxx

      <?xml version="1.0"?>
      <D:propertyupdate
      xmlns:D="DAV:"
      xmlns:dc="http://purl.org/dc/elements/1.0/"
      >
      <D:set>
      <D:prop>
      <rdf:Description
      rdf:about="http://www.ukoln.ac.uk/metadata/resources/dc/datamodel/
      WD-dc-rdf/">
      <dc:title>
      <rdf:Alt>
      <rdf:li xml:lang="en">Guidance on expressing the Dublin Core
      within the Resource Description Framework (RDF)</rdf:li>
      <rdf:li xml:lang="no">Veiledning a uttrykke Dublin Core innenfor
      rammen av Resource Description Framework (RDF)</rdf:li>
      <rdf:li xml:lang="de">Dublin Core in RDF: Eine Anleitung</rdf:li>
      </rdf:Alt>
      </dc:title>
      <dc:creator>
      <rdf:Bag>
      <rdf:li>Eric Miller</rdf:li>
      <rdf:li>Paul Miller</rdf:li>
      <rdf:li>Dan Brickley</rdf:li>
      </rdf:Bag>
      </dc:creator>
      <dc:description>
      <rdf:Alt>
      <rdf:li xml:lang="en">This document describes work carried out by
      the Data Model Working Group of the Dublin Core Metadata
      Initiative. Specifically, the document discusses means by which
      the fifteen elements of the Dublin Core (as defined in RFC 2413)
      may be expressed using the Resource Description Framework (RDF)
      and encoded with the eXtensible Markup Language (XML). RDF-based
      mechanisms by URIs.  The which the 15 elements may be qualified are also
      introduced.</rdf:li>
      <rdf:li xml:lang="no">Dette dokumentet beskriver arbeide utfort av
      arbeidsgruppen for datamodellering knyttet til Dublin
      Core-initiativet. Spesifikt diskuterer dokumentet hvordan de
      femten elementene i Dublin Core datamodel group is defining a
   namespace (slik disse er definert i RFC
      2413) kan uttrykkes ved hjelp av Resource Description Framework
      (RDF) og kodes ved hjelp av eXtensible Markup Language (XML).
      Videre introduseres RDF-baserte mekanismer for a kvalifisere de 15
      elementene.</rdf:li>
      </rdf:Alt>
      </dc:description>
      <dc:subject> Dublin Core; Resource Description Framework; RDF;
      eXtensible
      Markup Language; XML tags representing </dc:subject>
      <dc:publisher> Dublin Core elements; WebDAV
   properties should use that same namespace.  The
   URI currently proposed for that namespace is
   <URL:http://purl.org/dc/elements/1.0/>.  Note that this is
   currently only a proposal within the datamodel group; if the Metadata Initiative </dc:publisher>
      <dc:contributor> Dublin Core group as a whole picks a different URI, WebDAV should use that
   URI.

2.2 Property Names

   A WebDAV property representing Data Model Working Group
      </dc:contributor>
      <dc:date>
      <rdf:Description>
      <dcq:dateScheme> WTN8601 </dcq:dateScheme>
      <rdf:value> 1999-05-26 </rdf:value>
      </rdf:Description>
      </dc:date>
      <dc:format>
      <rdf:Description>
      <dcq:formatScheme> IMT </dcq:formatScheme>
      <rdf:value> text/html </rdf:value>
      </rdf:Description>
      </dc:format>
      <dc:language>
      <rdf:Description>
      <dcq:languageScheme> RFC1766 </dcq:languageScheme>
      <rdf:value> en </rdf:value>
      </rdf:Description>
      </dc:language>
      </rdf:Description>
      <D:/prop>
      <D:/set>
      </D:propertyupdate>

5.1.2 Response

      HTTP/1.1 200 OK

5.2 Retrieving a single Dublin Core element has property with PROPFIND

   This example shows how to fetch the same
   name as DC.Title property.

5.2.1 Request

      PROPFIND /metadata/resources/dc/datamodel/WD-dc-rdf/ HTTP/1.1
      Host: www.ukoln.ac.uk Content-type: text/xml; charset="utf-8"
      Content-Length: xxxx

      <?xml version="1.0" encoding="utf-8" ?>
      <D:propfind xmlns:D="DAV:">
      <D:prop xmlns:dc="http://purl.org/dc/elements/1.0/">
      <dc:title/>
      </D:prop>
      </D:propfind>

5.2.2 Response

      HTTP/1.0 200 OK
      Content-Type: text/xml
      Content-Length: xxxx

      <?xml version="1.0" ?>
      <D:propstat
      xmlns:D="DAV:"
      xmlns:dc="http://purl.org/dc/elements/1.0/"
      >
      <prop>
      <dc:title>
      <rdf:Alt>
      <rdf:li xml:lang="en">Guidance on expressing the Dublin Core element label.

2.3 Property Format

   Since a WebDAV property can occur on a resource only once, while a
   content item may bear more than one instance of
      within the Resource
      Description Framework (RDF)</rdf:li>
      <rdf:li xml:lang="no">Veiledning a uttrykke Dublin Core
   element, some mechanism is needed to represent the multivalued
   elements
      innenfor rammen av
      Resource Description Framework (RDF)</rdf:li>
      <rdf:li xml:lang="de">Dublin Core in the singlevalued property syntax.  The RDF: Eine Anleitung</rdf:li>
      </rdf:Alt>
      </dc:title>
      </prop>
      </propstat>

5.3 Retrieving multiple Dublin Core
   datamodel group is working on defining an XML DTD for this
   representation; WebDAV properties should use that DTD when it is
   ready.

2.4 Subelements

   As of this writing, the Dublin Core group is debating how and
   whether to provide subelements (that is, a technique for
   structuring metadata elements).  Since subelements are not yet
   standardized, this document cannot yet give a definitive answer on with PROPFIND

   This example shows how to integrate them into WebDAV; a future document may be needed.

   One approach under consideration, set out in [GUENTHER], is to use
   structured element names (e.g., Creator becomes structured into
   Creator.PersonalName fetch the DC.Title, DC.Creator, and Creator.CorporateName); if this approach
   is adopted, then this document can be applied unchanged, because
   Creator.CorporateName is a perfectly legal XML tag name.
   Alternative approaches could include storing structured data
   DC.Publisher properties in an
   element; this approach would require a future document specifying single request.

5.3.1 Request

      PROPFIND /metadata/resources/dc/datamodel/WD-dc-rdf/ HTTP/1.1
      Host: www.ukoln.ac.uk Content-type: text/xml; charset="utf-8"
      Content-Length: xxxx

      <?xml version="1.0" encoding="utf-8" ?>
      <D:propfind xmlns:D="DAV:">
      <D:prop xmlns:dc="http://purl.org/dc/elements/1.0/">
      <dc:title/>
      <dc:creator/>
      <dc:publisher/>
      </D:prop>
      </D:propfind>

5.3.2 Response
      HTTP/1.0 200 OK
      Content-Type: text/xml
      Content-Length: xxxx

      <?xml version="1.0" ?>
      <D:propstat
      xmlns:D="DAV:"
      xmlns:dc="http://purl.org/dc/elements/1.0/"
      >
      <prop>
      <dc:title>
      <rdf:Alt>
      <rdf:li xml:lang="en">Guidance on expressing the Dublin Core
      within the Resource
      Description Framework (RDF)</rdf:li>
      <rdf:li xml:lang="no">Veiledning a
   mapping from that structure into XML.

3 uttrykke Dublin Core
      innenfor rammen av
      Resource Description Framework (RDF)</rdf:li>
      <rdf:li xml:lang="de">Dublin Core in RDF: Eine Anleitung</rdf:li>
      </rdf:Alt>
      </dc:title>

      <dc:creator>
      <rdf:Bag>
      <rdf:li>Eric Miller</rdf:li>
      <rdf:li>Paul Miller</rdf:li>
      <rdf:li>Dan Brickley</rdf:li>
      </rdf:Bag>
      </dc:creator>

      <dc:publisher> Dublin Core Metadata Initiative </dc:publisher>
      </prop>
      </propstat>

6 Internationalization Considerations

   XML is an inherently internationalizable format, able to express any
   language or character set; as a result, all WebDAV properties,
   including the Dublin Core properties defined here, are
   internationalizable.

4

7 Security Considerations

   The security considerations of this mapping are those of [DUBLIN]
   plus those of [WEBDAV].

5

8 IANA Considerations

   The namespace defined here is isomorphic to the element namespace
   defined in [DUBLIN], so this document introduces no new IANA
   considerations beyond those of [DUBLIN].

6

9 Copyright

   The following copyright notice is copied from RFC 2026 [Bradner,
   1996], section 10.4, and describes the applicable copyright for this
   document.

   Copyright (C) The Internet Society April 5, 1998. All Rights
   Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

7

10 Intellectual Property

   The following notice is copied from RFC 2026 [Bradner, 1996], section
   10.4, and describes the position of the IETF concerning intellectual
   property claims made against this document.

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use other technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights. Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11. Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard. Please address the information to the IETF Executive
   Director.

8

11 Acknowledgements

   The triviality of this specification is due to the hard work put into
   [WEBDAV], [DUBLIN], [XML], and [XMLNS] by their respective authors
   and working groups.

   The need for this specification was pointed out (by Jim Whitehead, I
   think) during the variants discussion held after a meeting of the
   versioning design team of the WebDAV working group.

   Thanks to Liz Parrot for alerting me to the question of subelements.

9

   Thanks to Paul Miller for clarifying to me how [DC-RDF] handles
   multivalued properties.

12 References

9.1

12.1 Normative References

   [DUBLIN] S. Weibel, J. Kunze, C. Lagoze, M. Wolf, "Dublin Core
   Metadata for Resource Discovery." RFC 2413. Online Computer Library
   Center; University of California, San Francisco; Cornell; Reuters.
   September, 1998.

   [WEBDAV] Y. Y. Goland, E. J. Whitehead, Jr., A. Faizi, S. R. Carter,
   D. Jensen, "Extensions for Distributed Authoring on the World Wide
   Web - WebDAV."
   Draft-ietf-webdav-protocol-08. Internet Draft, work in progress. RFC 2518. Microsoft, U.C. Irvine, Netscape, Novell.
   April, 1998.

   [XML] T. Bray, J. Paoli, C. M. Sperberg-McQueen, "Extensible Markup
   Language (XML)." World Wide Web Consortium Recommendation
   REC-xml-19980210.
   Rec-xml-19980210.  <http://www.w3.org/TR/1998/REC-xml-19980210>.

9.2

   [RDF] Resource Description Framework Model and Syntax Specification,
   February 1999, World Wide Web Consortium Recommendation
   Rec-rdf-syntax/.  <http://www.w3.org/TR/1998/REC-rdf-syntax/>..

   [DC-RDF] E. Miller, P. Miller, D. Brickley, "Guidance on expressing
   the Dublin Core within the Resource Description Framework", May 1999,
   http://www.ukoln.ac.uk/metadata/resources/dc/datamodel/WD-dc-rdf/

   [MUSTS] Bradner, S., "Key words for use in RFCs to Indicate
   Requirement Levels," RFC 2119, Harvard University, March 1997.

12.2 Informational References

   [XMLNS] T. Bray, D. Hollander, A. Layman, "Name Spaces in XML" World
   Wide Web Consortium Working Draft,
   <http://www.w3.org/TR/WD-xml-names>.

   [GUENTHER] R. Guenther, "Dublin Core Qualifiers/Substructure",
   <http://www.loc.gov/marc/dcqualif.html>. October, 1997.

10 AUTHORS' ADDRESSES

13 Authors' Addresses

   J. Stracke
   Netscape Communications Corporation
   501 E. Middlefield Rd.
   Mountain View, CA  94043
   Email: francis@netscape.com
   eCal Corp.
   234 N. Columbus Blvd., 2nd Floor
   francis@ecal.com