W3C home > Mailing lists > Public > w3c-dist-auth@w3.org > October to December 1997

RE: Comments on draft 04

From: Yaron Goland <yarong@microsoft.com>
Date: Wed, 22 Oct 1997 13:38:32 -0700
Message-ID: <11352BDEEB92CF119F3F00805F14F48503F9F187@RED-44-MSG.dns.microsoft.com>
To: "'Judith Slein'" <slein@wrc.xerox.com>, w3c-dist-auth@w3.org
You're appreciation is well, appreciated. =) I just spent the last two days
doing format changes to the spec. Such mind numbing work isn't much fun so
having someone occasional say "thanks" really makes a difference.

Schemas - The reason I am not a fan of the "supported schemas" property is
that I think we will run into problems because the property is likely to be
"live". So, speaking strictly from an implementation point of view, I
believe it will be extremely difficult to create a mechanism whereby
multiple independent extensions to a server will all be able to access and
set part of this property. I personally feel that a search based solution
works better. By defining a standard wrapper for schema information one can
then say to a resource "Return me all properties which contain this
wrapper." That way the resource will get back a complete list of all schemas
defined on the resource, without having to know their name, and without
forcing servers to define some mechanism to allow various extensions to
share the schema property.

>On the current proposal, schemas are treated as properties, but are unlike
>other properties in that there is no distinction between the schema
>definition and the schema value.  That is, the content of the schema's
>value is its definition.  This seems very unintuitive.

I would phrase it differently. The value of a particular property is the
definition of a particular schema. That seems very intuitive to me.

>The current proposal forces us to commit ourselves to a syntax for schema
>definition.

In what way? All it asks us to do is to wrap schemas in a known element so
they can be identified. Absolutely nothing is said about what is in that
element.

>A schema definition presumably won't tell you anything about which
>properties are treated as live by a given server, since the schema
>definition is independent of any particular server.  So if we want to be
>able to find out which properties are live for a given resource, let's put
>that information in the response to a PROPFIND/Propname request.

Actually, section 2.3.5 of the current spec defines how to list supported
properties. I also don't think the propname proposal is the best way to go
because it only states which of the current defined properties are live, not
which properties, if they were defined on the resource, would be live.

Re: Live properties

Our current definition of live only specifies that the value is enforced by
the resource, it says nothing about who actually sets the value. I think
this is the "read only" issue coming back to haunt us. I think that is
information that needs to be returned as part of the schema, which means we
leave it to the XML types to deal with. As for copying/moving, if the schema
says "only the resource may set this property's value" and the client
specifies that this property's schema must be enforced on the destination
then the destination better only allow the resource to set the property's
value. That doesn't mean, btw, that a value could not be suggested by the
client.

Referencing RDF - Is there a new requirement that all posts to the WebDAV
list must contain a request to referenced RDF? =) Yes, we will be adding a
reference to RDF.

2.5 Properties and URLs - By removing proploc we remove the mechanism which
allows properties to become resources, in this draft. However an extension
draft will be released in the future which specifies how to do proploc, how
to deal with properties that have URLs, and how to implement hierarchical
properties. The beauty is that you can do all of that by building on top of
DAV and without breaking ANY DAV compliant clients or servers. I just love
extensible protocols.

Iscollection - The current plan is to replace iscollection with a more
general element which identifies typing data.

>3.4.3 INDEX Request.  I like the new flexibility you have allowed in the
>INDEX response -- it MAY now include lists of members of child collections,
>and it MAY now include other properties in addition to the required core
>set.  But this is really only useful if the request can specify whether it
>wants to see recursive membership and which properties it wants to see in
>addition to the core set.  I think we should add these options to the
request.

Index is a precanned search. If you want to do general searches for
properties please use the search mechanism. A BOF for the DAV Search group
is supposed to be held at the December IETF. I really think we are making a
mistake by making INDEX any more complex than it currently is. The best
place, in my opinion, to put this complexity is in the SEARCH method.

>3.7.3 MOVE request.  Just for clarification, a request to MOVE a non-empty
>collection will fail.  Right?  Because a DELETE on a non-empty collection
>fails. 

Correct. I will add language to the spec to make this clearer.

>The proposal to remove PROPLOC from the specification bothers me partly
>because we are ending up with too many scattered specifications, and partly
>because I think there is too much optional stuff in WEBDAV.  The more we
>leave as optional, the less we have a standard.  I'm inclined to say,
>either leave it in and make it mandatory, or take it out altogether.

I agree so completely that I put out a call for exactly the same thing
several days ago. After discussing it with a number of people and seeing no
other responses on the group I have removed proploc from the DAV
specification. In general we are removing ALL optional features but locking.
In a specification this complex there are only two types of features,
mandatory and not implemented.

>3.2.3.2 MKCOL with Request Body.  I think we should define a standard
>request body that must be supported, or alternatively not support a request
>body for MKCOL at all.  Same rationale.

I do not think this group does the world any good by trying to pick the
"winning" format. There are many formats out there which can be potentially
used with MKCOL, almost all of them proprietary. By allowing MKCOL with a
request body we are simply providing a secure mechanism for submitting these
bodies that can be controlled through ACLs and such rather than forcing
implementers to create their own closed, non-interoperable, submission
mechanism.

>We have already defined three levels of compliance within the core
>specification.  It also is unclear to me what the status of the ancillary
>specifications (tree operations, versioning, ACL, PROPLOC, etc.) is
>supposed to be.  If all of these are optional features, that makes WEBDAV
>considerably less useful as a standard.

I appreciate your concern on this topic but without some specific proposal
to respond to, I'm not sure how to answer your concerns. I can say, however,
that the levels of compliance in the DAV spec are the result of common
sense. We can not require everyone to support versioning features. As
evidence by the fact that a tiny fraction of all servers support versioning,
this is a feature many people neither need nor want. So loosing a level of
DAV compliance by requiring, say, versioning support, does nothing but make
DAV irrelevant by foisting a feature many do not want upon them in the name
of "compliance." Locking is in a different position due to the compromises
we have had to make in the past. The locking issue has been discussed at
length on this list as well as at the various DAV meetings. The group has
repeatedly upheld the position that locking is optional, so I will not
revisit the issue here but encourage interested readers to review the
mailing list archives.

>(Even if these ancillary specs describe optional features, they should all
>be referenced from the base spec, so that people can find all the bits and
>pieces of WEBDAV.  If they do describe optional features, we need to state
>this explicitly, both in the base spec and in the ancillary specs.)

I would make a counter proposal. I believe that an informational RFC should
be created which explains all the DAV specs and how they relate to each
other. I would like to keep this information out of the DAV base spec
because I expect a fairly constant stream of extensions which would require
us to continually re-issue the spec with updates. An informational RFC, on
the other hand, can be updated without having to revisit the entire
protocol.

>That's it unless you want to hear about typos.

Actually, we do want to hear about typos. Typos have this nasty habit of
reducing clarity and thus leaving too much room for interpretation.

			Thanks again for your comments,
					Yaron

> -----Original Message-----
> From:	Judith Slein [SMTP:slein@wrc.xerox.com]
> Sent:	Wednesday, October 22, 1997 10:57 AM
> To:	w3c-dist-auth@w3.org
> Subject:	Comments on draft 04
> 
> I just want to say that I hope the authors know how much we appreciate
> their work.  The spec looks better and better each time we see a new
> draft.
>  This is great!
> 
> Now, having said that . . . of course, I can't resist making some
> comments.
> 
> 2.3 Schemas
> 
> I would like to suggest a different way of handling schemas.  Let's have a
> DAV property called SupportedSchemas.  The value of this property is a
> list
> of schema names, where a schema name is a URI.
> 
> We don't define a PropSchema XML Element, but instead reference the RDF
> schema syntax (not yet defined).
> 
> This solves several problems with the current proposal:
> 
> 	On the current proposal, you can't ask "what schemas do you
> support?".
> You have to know a schema name, and ask whether that schema is supported.
> What's the test for schema identity?  Certainly not schema name, since the
> same schema may be defined at multiple URLs.  Syntactically identical
> schema definitions?  I think the right answer is semantically equivalent
> schema definitions.  So asking a resource whether it supports a given
> schema by asking about a particular schema name (URL) is not likely to be
> reliable anyhow.
> 
> 	On the current proposal, you can't tell whether any given property
> is a
> schema, except by retrieving the property value and examining it.
> 
> 	On the current proposal, schemas are treated as properties, but are
> unlike
> other properties in that there is no distinction between the schema
> definition and the schema value.  That is, the content of the schema's
> value is its definition.  This seems very unintuitive.
> 
> 	The current proposal forces us to commit ourselves to a syntax for
> schema
> definition.
> 
> A schema definition presumably won't tell you anything about which
> properties are treated as live by a given server, since the schema
> definition is independent of any particular server.  So if we want to be
> able to find out which properties are live for a given resource, let's put
> that information in the response to a PROPFIND/Propname request.
> 
> The definition of "live" is still unclear to me.  In 3.6.3.2, it is
> explained as "the server determines the syntax and semantics (hence value)
> of these properties."  But it does not follow from the fact that the
> server
> enforces syntax and semantics that it sets the value of a property.  If
> the
> valid values for a property are 0, 1, and 2, the server can enforce the
> syntax of that property by rejecting any other values, but still allow the
> client to set the property's value.  0 may mean that the server should
> never archive the resource, 1 may mean that the resource should be
> archived
> after 1 month of not being used, 2 may mean that the resource should be
> archived after 2 months of not being used.  The server may comply with
> this
> semantics.  So there are at least these two things you might be trying to
> get at with "live":
> 
> 	Server maintains the value itself -- client is not allowed to set
> the value
> 	Server makes sure that any value set complies with syntax and
> semantics
> defined for the property
> 
> We just need to figure out which of these we care about preserving when
> resources are copied / moved.
> 
> 2.4.3 Should we reference the RDF property syntax?
> 
> 2.5 Property Identifiers.  Properties are not resources unless they have
> URIs.  If PROPLOC gets removed from the spec, properties are never
> resources.
> 
> 3.3.1 IsCollection.  It might be useful to think about what other kinds of
> resources might usefully be tagged with their type. IsProperty (if
> properties can ever be resources) and IsSchema might also be useful.
> 
> 3.4.3 INDEX Request.  I like the new flexibility you have allowed in the
> INDEX response -- it MAY now include lists of members of child
> collections,
> and it MAY now include other properties in addition to the required core
> set.  But this is really only useful if the request can specify whether it
> wants to see recursive membership and which properties it wants to see in
> addition to the core set.  I think we should add these options to the
> request.
> 
> 3.7.3 MOVE request.  Just for clarification, a request to MOVE a non-empty
> collection will fail.  Right?  Because a DELETE on a non-empty collection
> fails. 
> 
> Optional Features
> 
> The proposal to remove PROPLOC from the specification bothers me partly
> because we are ending up with too many scattered specifications, and
> partly
> because I think there is too much optional stuff in WEBDAV.  The more we
> leave as optional, the less we have a standard.  I'm inclined to say,
> either leave it in and make it mandatory, or take it out altogether.
> 
> 3.2.3.2 MKCOL with Request Body.  I think we should define a standard
> request body that must be supported, or alternatively not support a
> request
> body for MKCOL at all.  Same rationale.
> 
> We have already defined three levels of compliance within the core
> specification.  It also is unclear to me what the status of the ancillary
> specifications (tree operations, versioning, ACL, PROPLOC, etc.) is
> supposed to be.  If all of these are optional features, that makes WEBDAV
> considerably less useful as a standard.
> 
> (Even if these ancillary specs describe optional features, they should all
> be referenced from the base spec, so that people can find all the bits and
> pieces of WEBDAV.  If they do describe optional features, we need to state
> this explicitly, both in the base spec and in the ancillary specs.)
> 
> That's it unless you want to hear about typos.
> 
> --Judy
Received on Wednesday, 22 October 1997 16:39:33 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:43:44 GMT