Hi all,

I'm still trying to work out a concept that will bring DAV to Midgard.

Since all midgard-served pages will consist of many elements (topics,
articles, style elements, page records), I was planning to use the
source-link feature of WebDAV to point into a reserved URL region
on a Midgard server (the DAV space) where resources would be
represented in their barest form.

I've met some challenges here in that it isn't know what resources
will be used for a page until the page is called up by HTTP, so
the page will need to "explain" what resources it uses. This is
doable (although not trivial) for single pages, harder for DAV requests
that issue a Depth: infinity header.

I've temporarily let that just sit there while I was thinking about
the DAV space. It looked simple enough, but there's going to be
some interesting challenges here too.

I had the following concept for the DAV space:

/DAV/person (collection that holds all person records)
/DAV/group/<gid> (collection that holds person records for group gid)
...
/DAV/host/<id>/root
/DAV/host/<id>/style
...
/DAV/article/<id>
/DAV/topic/direct/<id>
/DAV/topic/<id>/<id>/<id>/...
/DAV/topic/<id>/<id>/<id>/<article>
...

Something like symlinks would be useful (for things like linking root pages/
styles from a host tree to their corresponding page/style/etc tree) but
I can't find anything on that in the DAV spec. Maybe the source link is
good for this.

Anyway, for the real challenges: objects in the DAV space can be both
collections ("directories") and members ("files"). DAV dictates that
resources be either one, but not both. The new advanced collections
specification will probably address this, but mod_dav doesn't implement
it at the moment.

Then there's the issue that not all members and collections are equal.
Unlike in the filesystem, you can't move a member of the article
collection to a style collection. Issueing a 'NOT ALLOWED' response
for these situations probably solves that.

Both these are solveable, but there's a bigger challenge up ahead.

mod_dav will allow one to plug in a repository of your choice (filesystem,
database, desk clerk) but expects that repository to pretty much behave
as a filesystem. You can tell a WebDAV enabled server to create a member
'index.html' at URI '/user/emile', but that's not how Midgard works,
where you request a new object at URI '/user/emile' and get handed it's
ID in return.

This will be a major problem for DAV clients who expect to treat a DAV
server as a NFSish service (to wit, IExplorer and office 2000), and I
see no provisions in the DAV spec that would allow creation of
resources in the Midgard way.

DAV will probably be one of the topics of the IRC meet thursday, so
if you have any thoughts on this you're very welcome to join, or send
reactions to the list of course.

Bye,
Emile


--
This is The Midgard Project's mailing list. For more information,
please visit the project's web site at http://www.midgard-project.org

To unsubscribe the list, send an empty email message to address
[EMAIL PROTECTED]

Reply via email to