(Doing large chunks of quotation for the sake of the dc-general list, which
didn't get Jim's post.)
Jim Whitehead wrote:
> Thanks for taking the lead on this John! Please go ahead and submit this
> draft, but after internally renaming it to draft-ietf-webdav-dublin-core-01
> (the only other revision the IETF knows about is the -00 one).
OK, done. (I wanted to try to get the IETF to accept it as -02, but, in
off-list discussion, I was basically told that's been tried, and it won't
happen.) So, dc-general, heads up: there's going to be an official Draft with
the same version number as the unofficial one that's been on one of the DC
websites since last fall. ("Official" simply means "published in the IETF
Internet-Drafts repository", of course.) You can distinguish them at a glance
by looking at the first line: if it says "J. Stracke, Netscape", it's the old
one.
> After quickly reading through the document, it seems to me that most of the
> pieces are in place, but I'd still like to see:
>
> * A complete list of the names of the WebDAV properties that correspond to
> each RDF element. I think this is as easy as creating a table similar to
> that in Section 5 of
> http://www.ukoln.ac.uk/metadata/resources/dc/datamodel/WD-dc-rdf/ I know
> and you know they're going to be the same, as the element name, but I still
> think it makes sense to spell this out.
Done.
> * I'd feel much happier seeing a complete, non-trivial example done out.
> I'd like to see Example 14 from
> http://www.ukoln.ac.uk/metadata/resources/dc/datamodel/WD-dc-rdf/ put into
> the document, (1) showing how a PROPPATCH would be used to set it, (2)
> showing how PROPFIND can be used to retrieve an individual property from
> this set (say dc:title), and (3) showing how PROPFIND can be used to
> retrieve a few (but not all) of the DC properties, and (4) showing how
> PROPFIND can be used to retrieve all of the DC properties in one request.
I've done 1-3, but not 4, since there's nothing special about "all DC
properties". (There is a way to get all a resource's properties at once, but
it'd include non-DC stuff, so "all DC" would be the same syntax as "a few DC".)
> * I think you should bring in the RFC 2119 terms and then use them to be
> more precise in some of the restrictions. In particular, I think the
> document should explicitly state that the abbreviated encoding MUST NOT be
> used, and that multiple instances of each element (like multiple dc:creator
> elements) MUST NOT be used.
Done.
The updated Draft is attached; if I don't hear any further comments, I'll
submit it to the IETF later this afternoon.
--
/=============================================================\
|John Stracke | My opinions are my own | S/MIME & HTML OK |
[log in to unmask]
|Chief Scientist | NT's lack of reliability is only surpassed |
|eCal Corp. | by its lack of scalability. -- John Kirch |
\=============================================================/
WEBDAV Working Group J. Stracke, eCal Corp.
INTERNET DRAFT
<draft-ietf-webdav-dublin-core-01>
Expires November, 1999 May 22, 1999
Use of Dublin Core Metadata in WebDAV
1 Status of this Document
This document is an 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 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 in progress.''
To learn the current status of any Internet-Draft, please check the
``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
ftp.isi.edu (US West Coast).
Distribution of this document is unlimited. Please send comments to
[log in to unmask] or to the [log in to unmask] discussion list.
2 Abstract
This document specifies a mapping for using the metadata vocabulary
of Dublin Core ([DUBLIN]) in a WebDAV ([WEBDAV]) server.
3 Introduction
This document specifies a 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 incompatible ways to
provide this functionality, this document defines a mapping from
Dublin Core element labels into WebDAV property names.
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
The approach taken in this mapping is to leverage the RDF encoding
Stracke [Page 1]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
([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]) allow different groups to define sets of
properties without interfering with each other, the mapping is direct
and one-to-one. In this case, the namespaces being used are
<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/.
Stracke [Page 2]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
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.
Stracke [Page 3]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
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 which the 15 elements may be qualified are also
introduced.</rdf:li>
<rdf:li xml:lang="no">Dette dokumentet beskriver arbeide utfort av
Stracke [Page 4]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
arbeidsgruppen for datamodellering knyttet til Dublin
Core-initiativet. Spesifikt diskuterer dokumentet hvordan de
femten elementene i Dublin Core (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 </dc:subject>
<dc:publisher> Dublin Core Metadata Initiative </dc:publisher>
<dc:contributor> Dublin Core 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 property with PROPFIND
This example shows how to fetch the 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" ?>
Stracke [Page 5]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
<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
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>
</prop>
</propstat>
5.3 Retrieving multiple Dublin Core properties with PROPFIND
This example shows how to fetch the DC.Title, DC.Creator, and
DC.Publisher properties in a 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
Stracke [Page 6]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
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 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.
7 Security Considerations
The security considerations of this mapping are those of [DUBLIN]
plus those of [WEBDAV].
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].
Stracke [Page 7]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
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.
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.
Stracke [Page 8]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
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.
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.
Thanks to Paul Miller for clarifying to me how [DC-RDF] handles
multivalued properties.
12 References
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." 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. <http://www.w3.org/TR/1998/REC-xml-19980210>.
[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
Stracke [Page 9]
INTERNET-DRAFT Dublin Core in WebDAV May 22, 1999
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.
13 Authors' Addresses
J. Stracke
eCal Corp.
234 N. Columbus Blvd., 2nd Floor
[log in to unmask]
Stracke [Page 10]
|