W3C home > Mailing lists > Public > w3c-dist-auth@w3.org > July to September 2010

Re: Data Model

From: Julian Reschke <julian.reschke@gmx.de>
Date: Sun, 29 Aug 2010 21:28:14 +0200
Message-ID: <4C7AB4CE.7070004@gmx.de>
To: David Nuescheler <david@day.com>
CC: w3c-dist-auth@w3.org
On 29.08.2010 21:05, David Nuescheler wrote:
> Hi Julian,
> thanks for kickstarting the conversation...


I was planning to actually insert my opinion as well, but was waiting 
for other's views first.

Here we go:

> Here my initial take on the topics below.
>> 1. Collections
>> 1.1 Hierarchy: WebDAV collections are hierarchical. A "direct" member of a
>> collection has the parent collections URI + one additional path segment. JCR
>> same. This also means that relative paths do the obvious thing.
>> CMIS/AtomPub: no constraints on the paths (AFAIU).
> I think the WebDAV hierarchy approach is great and very important
> since referencing by (relative) URL is core to basic web things.


>> 1.2 Multiple containment: allowed in WebDAV through multiple bindings, in
>> JCR through shared nodes. CMIS/AtomPub: not constrained anyway.
> While I think that multiple containment is interesting, it is
> definitely not at the top of my priority list.

Indeed. As we have seen in WebDAV and JCR, it can be added later on 
without affecting existing code (just be a bit careful when phrasing 
things, not confusing the identifier with the thing being identified).

>> 1.3 Identification: WebDAV: the same of a resource within a collection is a
>> unique identifier. JCR: same (except that for same-name-siblings, the array
>> index may change when siblings are removed).
> I think the WebDAV way works perfectly.


>> 1.4 Ordering: optional features in WebDAV and JCR.
> I think this is more important for fine-grained content since when we
> talk about DOM-like structures that are persisted on the server of
> course the sort order makes a big difference. (As a side comment:
> mapping things to JSON in the back of my mind creates a bit of tension
> here, since sort-order of JSON object is undefined, while all
> implementations in browsers keep the sort-order, technically a JSON
> parser is not obligated to do that...)
>> 1.5 Member naming: in WebDAV by path segment (URI syntax), in JCR per
>> optional namespace name + path segment.
> I am not sure if we need a special (xml-like) namespace management, it
> seems like a lot of overhead.
>> 1.6 Name encoding: in WebDAV per spec ASCII (+ URI percent encoding), in JCR
>> Unicode.
> ASCII + URI encoding sounds great

Yes, but I think we need to require that percent encoding actually is 
used to encode UTF-8 sequences. In WebDAV, the interop problems between 
*nix boxes (octet sequences as filenames) and Windows boxes (Unicode) 
have been painful.

>> 2. Properties
>> 2.1 Cardinality: properties can only occur once on a resource, but there are
>> ways to express lists (WebDAV, JCR)
> I think there is no need to change that.
>> 2.2 Typing: optional in WebDAV (see RFC 4316). Set of predefined types in
>> JCR (int, float, string, date, URI, ...)
> If we look at the types in a browser javascript runtime it seems that
> number, strings, boolean and Date seem like obvious candiates.

Yes. I also believe that special casing links would be good.

>> 2.3 Naming: namespace name + local name (WebDAV, JCR)
> Great.
>> 3. Content
>> 3.1 A single binary stream per HTTP in WebDAV (ignoring content negotiation
>> for now which is tricky in authoring); modeled as binary property in JCR
>> (with only conventions on naming)
> I think in JCR we went all out and in my mind went too far with
> binaries. I think I would be happy with having a single optional
> binary stream.
> More importantly though since this is about fine-grained information
> the typical case will be having "no" binary at all, but just a tree of
> properties (and "nodes?").

Would a zero length content work as well?

Best regards, Julian
Received on Sunday, 29 August 2010 19:28:49 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:01:38 UTC