Re: Open Issues -- Attributes

I have a number of concerns about how the spec treats attributes.  Some are
related to the very basic fact that we treat attributes as independent
resources, linked to the resource they apply to.  Others are separate concerns:

Treating attributes as resources has some desirable consequences:

- Attributes are resources, and so can themselves have attributes.  They can
be versioned.  Content negotiation can be done for them.  Etc.

- An attribute can be shared by many resources.

- Attributes of a single resource can be distributed across multiple servers.

But treating attributes as resources also causes some serious problems:

1. For many applications, the most important reason for having attributes is
for searching.  It needs to be possible to search for a resource based upon
the values of its attributes.  We may not want to specify anything about
search syntax, but we do need to make sure that our attribute model can
support reasonably efficient searches.  The very fact that our attributes
are independent resources makes this difficult, and I don't see that we
require attributes to point back to their resources, which would make it
impossible.

2. There is no way to set multiple attributes at a time. You would like to
be able to set all attribute values for a document at the same time you put
its content on the server, and change multiple attribute values in a single
step at any time.

3. This approach makes it extremely difficult to manage attributes. In the
typical case, attributes should automatically get deleted when a document
gets deleted - this won't happen. Neither will they get moved automatically
with their document or copied automatically with their
document. 

4. Since attributes are resources, they can be linked to more than one
resource.  So a link back to the parent is required in order to know whether
an attribute can be deleted when one of its parents is deleted.

Other issues about attributes:

5. How can you find out the constraints on values of attributes supported by
a given server? Does this information come back when
you ask for DAV.SupportedLinkTypes?  You need (arguably) to be able to find
out the data type of an attribute, maximum length, valid values, whether its
value can be a list, etc.

6.  Is there a way to find out whether a server will let you assign
attributes to a resource that do not belong to any well-known schema?  

A thought:

If links seem like the right implementation of attributes, we might want to
have a separate section on links (which are really infrastructure on which
attributes are based, and useful for many other things besides attributes)
and a separate section on attributes.  I think this would make more certain
that we address all issues related to attributes.

--Judy
Name:			Judith A. Slein
E-Mail:			slein@wrc.xerox.com
Internal Phone:  	8*222-5169
External Phone:		(716) 422-5169
Fax:			(716) 265-7133
MailStop:		128-29E

Received on Friday, 7 February 1997 12:05:15 UTC