W3C home > Mailing lists > Public > www-rdf-interest@w3.org > February 2000

Re: RDF Description Services - and WebDAV

From: Perry A. Caro <caro@Adobe.COM>
Date: Mon, 07 Feb 2000 18:19:59 -0800
Message-ID: <389F7D4F.12B6175A@corp.adobe.com>
To: www-rdf-interest@w3.org
Dan Brickley wrote:
> I was asked by a few people what exactly needs doing. In brief, I think we
> need a comparison of the metadata / property models of RDF and WebDAV to
> be written down for discussion. I suspect one way to achieve this is for
> the few of you with experience of both RDF and WebDAV (however
> sketchy!) to send a quick mesg to the list. Then someone (possibly but
> hopefully not me ;-) can summarise and we can start to pull together a doc
> that might usefully be sent to the webdav list for discussion.

Okay, here's the message I promised to write a couple of months ago. We have
a little experience with using WebDAV, Apache mod_dav in particular.  We
also have a little experience, in a separate project, with using RDF to
represent metadata "about this document", using Dublin Core, translated
IPTC, etc.  I'm familiar with both projects and can do a little

Question: is WebDAV a suitable protocol for exposing a resource discovery
service based on RDF?

Short answer: It's possible to use WebDAV as a protocol between an RDF-aware
client and an RDF-aware server, but I don't think WebDAV is suitable as a
"lingua franca" for communicating with non-RDF-aware clients.

The data model for WebDAV properties is flat key/value pairs, though the
values can be arbitrarily complex XML.  The WebDAV protocol has rudimentary
operators for getting resources that have properties set to a specified
value. The property is associated with a resource by virtue of the protocol,
and is sometimes implied.  For example, the side-effect of doing a GET
request is that you can also get all the properties associated with that


... <!- ellipses indicates omitted protocol boilerplate -->
GET http://www.w3.org/~danbri HTTP/1.1

	<dc:creator>Dan Brickley</dc:creator>

The data model for RDF you already know.  If I had to summarize it for a
non-RDF audience, I'd say something like: it is based on Statements. Each
Statement is a triple consisting of a Property, a Resource, and a Value. The
association of the property and the resource is intrinsically part of the
data model.

Example: {dc:creator, http://www.w3.org/~danbri, "Dan Brickley"}

The Value of a property may also be a Resource, and a Resource may be
created anonymously to act as a structural binding for properties and
values.  This enables the expression of structures that are more complex
than flat key/value, including sub-properties, qualified values, and
structured containers.  You can even have Statements about Statements.

For example, to express the width and height of an image together as a unit:

{img:dimensions, http://www.w3.org/logo.gif, anonymous:123}
{img:width, anonymous:123, "640"}
{img:height, anonymous:123, "480"}


At first blush, it appears that WebDAV is too narrow a protocol to allow an
RDF-aware client to communicate with an RDF-aware server.  However, consider
a mapping from RDF triples to WebDAV flat key/value pairs:

* Each RDF Property becomes a WebDAV key.
* Each Value becomes a WebDAV value with an indication of whether the value
is a resource or a literal.
* Each RDF Resource is identified with a URL.

The RDF data model can be fully tranversed with unextended WebDAV protocol. 
It might take multiple requests, and the burden of naming and managing
anonymous resources would fall completely onto clients, but it would work.

Of course, non-RDF aware clients would not know what to do with a property
value of "<flatRDF:resource>anonymous:123</flatRDF:resource>", or how to
interpret rdf:type, and so on.  Fundamentally, an ordinary WebDAV client
expects to find a literal value for every property.  When an ordinary client
looks up the dc:title of a document, it doesn't expect to get an object
which describes an alternation of text values by language (rdf:Alt,
xml:lang), it just expects some text!

There's no hope for passing the unalterered RDF syntax in this scenario. 
Both client and server might be RDF-aware, but the protocol prevents direct
usage of the syntax, except for an escape-hatch, such as defining a
"special" URL which returns the entire RDF model in a single property, as a
full RDF serialization.  Even this escape-hatch is problematic: the mod_dav
implementation of WebDAV transforms the XML used to represent a property
value.  This transformation could damage RDF.  For example, comments and
PI's are thrown away, which could cause loss of fidelity for
parseType='Literal' values.

The good news is that there is a new HTTP extension on the horizon that is
intended to address the rudimentary nature of the property search mechanism
in WebDAV.  This extension, called DASL, could be exploited to allow better
access to the RDF model.

DASL is a close-to-being proposed working draft protocol for DAV Searching &

DASL is a framework protocol.  It does not directly implement searching.
Rather, its a standard transport and manager for a variety of query
grammars. Included with the base DASL protocol is a default query grammar,
called DAV:basicsearch.  DAV:basicsearch is an SQL-like query language which
operates over WebDAV properties.  Every DASL-extended server MUST implement
DAV:basicsearch, and MAY support additional query grammars.  A client can
query for the supported grammars, as well as the "schema" for a query in a
particular grammar.  That's DASL in a nutshell.

Obviously, an "RDF Search" grammar could be defined and implemented by
servers wishing to expose the unadulerated RDF model. In addition, we can
still transform the RDF model into the flat key/value WebDAV model, and use
a nested DAV:basicsearch query (in some cases) to reduce multiple
rudimentary WebDAV property requests into a single DASL search request.

Perry A. Caro
Advanced Technology Group
Adobe Systems Incorporated
Received on Monday, 7 February 2000 21:20:52 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:44:22 UTC