Re: Fwd: New Version Notification for draft-divilly-atom-hierarchy-01

James M Snell <jasnell@gmail.com> Mon, 08 June 2009 19:09 UTC

Return-Path: <owner-atom-syntax@mail.imc.org>
X-Original-To: ietfarch-atompub-archive@core3.amsl.com
Delivered-To: ietfarch-atompub-archive@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8E6253A6A14 for <ietfarch-atompub-archive@core3.amsl.com>; Mon, 8 Jun 2009 12:09:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.849
X-Spam-Level:
X-Spam-Status: No, score=-3.849 tagged_above=-999 required=5 tests=[AWL=-1.850, BAYES_00=-2.599, J_CHICKENPOX_44=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7Gd1IcS-2e5d for <ietfarch-atompub-archive@core3.amsl.com>; Mon, 8 Jun 2009 12:09:53 -0700 (PDT)
Received: from balder-227.proper.com (properopus-pt.tunnel.tserv3.fmt2.ipv6.he.net [IPv6:2001:470:1f04:392::2]) by core3.amsl.com (Postfix) with ESMTP id 1215C3A68D2 for <atompub-archive@ietf.org>; Mon, 8 Jun 2009 12:09:52 -0700 (PDT)
Received: from balder-227.proper.com (localhost [127.0.0.1]) by balder-227.proper.com (8.14.2/8.14.2) with ESMTP id n58ItaHb016763 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 8 Jun 2009 11:55:36 -0700 (MST) (envelope-from owner-atom-syntax@mail.imc.org)
Received: (from majordom@localhost) by balder-227.proper.com (8.14.2/8.13.5/Submit) id n58Ita4R016762; Mon, 8 Jun 2009 11:55:36 -0700 (MST) (envelope-from owner-atom-syntax@mail.imc.org)
X-Authentication-Warning: balder-227.proper.com: majordom set sender to owner-atom-syntax@mail.imc.org using -f
Received: from mail-qy0-f171.google.com (mail-qy0-f171.google.com [209.85.221.171]) by balder-227.proper.com (8.14.2/8.14.2) with ESMTP id n58ItZ3X016755 for <atom-syntax@imc.org>; Mon, 8 Jun 2009 11:55:36 -0700 (MST) (envelope-from jasnell@gmail.com)
Received: by qyk1 with SMTP id 1so4260764qyk.16 for <atom-syntax@imc.org>; Mon, 08 Jun 2009 11:55:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=iU/s3j75GnF9oJPytfJ4wNWu47KFAldO+9Z+/2uNrCw=; b=hQxAtoX1LjUgSsgdt1qjXcpzu6w8X1+eCn2v+P7qubl5OO+5HqjjKNH3Js4a61CCQm tMQcanV4iOo4NHB4z43zjCYiZGPRRhvidTegM2a2SVcwdJVvQpSEqb5CtiMoo6uow3Ku bMdY2/XqRvV8HfrPZyDTky5TqbPxLL1XbCpwA=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=aLUtC6BfPSnzigY9/FZuLwYGHVaSYnSFyZCS23A814oP2EOR8XjRhjsxAaBcolUP2s W+ATBUBLetmmI+lQ6xtZezamA+3ztoNel3+uZjvLkdgV5J4Y+os8ZUY9NqmxIvgv9ovB UotvNxE8Ms1EKEG/IPl6ZzUWXXjHaB5di0+18=
Received: by 10.224.61.14 with SMTP id r14mr7079148qah.250.1244487335231; Mon, 08 Jun 2009 11:55:35 -0700 (PDT)
Received: from ?192.168.2.102? (c-98-224-93-96.hsd1.ca.comcast.net [98.224.93.96]) by mx.google.com with ESMTPS id 6sm44090qwk.50.2009.06.08.11.55.32 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 08 Jun 2009 11:55:33 -0700 (PDT)
Message-ID: <4A2D5EDC.1020207@gmail.com>
Date: Mon, 08 Jun 2009 11:56:28 -0700
From: James M Snell <jasnell@gmail.com>
User-Agent: Thunderbird 2.0.0.21 (X11/20090409)
MIME-Version: 1.0
To: Al Brown <albertcbrown@us.ibm.com>
CC: "Nikunj R. Mehta" <nikunj.mehta@oracle.com>, Atom-Syntax Syntax <atom-syntax@imc.org>, owner-atom-syntax@mail.imc.org
Subject: Re: Fwd: New Version Notification for draft-divilly-atom-hierarchy-01
References: <20090605170645.A922728C10F@core3.amsl.com> <D29129D3-6D02-417D-AA18-78FCB7CF4E12@oracle.com> <OFD77552CC.EF05D1F7-ON882575CC.006E3712-882575CC.0073EA7D@us.ibm.com>
In-Reply-To: <OFD77552CC.EF05D1F7-ON882575CC.006E3712-882575CC.0073EA7D@us.ibm.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Sender: owner-atom-syntax@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/atom-syntax/mail-archive/>
List-Unsubscribe: <mailto:atom-syntax-request@imc.org?body=unsubscribe>
List-ID: <atom-syntax.imc.org>

Comments below...

Al Brown wrote:
>
> The 01 draft is a much better. I am concerned the generic mechanism 
> using inlining links is sub-optimal for displaying a hierarchy that 
> this I-D helps navigate via the new link relations.
>
in-lining arbitrarily complex hierarchies is always going to be 
problematic and suboptimal... which is why I was so adamant about not 
baking hierarchy into Atom and Atompub in the first place when we were 
working on all this stuff initially.  Despite the added verbosity that 
this approach adds, however, I think it's likely the most acceptable 
approach.

> First example: there are two down relations: down and down-tree. It is 
> important to have both of those link relations on the [standalone] 
> atom entry that represents a folder so the client can chose a flat 
> (feed) or tree (expanded feed) representation. If the client chooses 
> the tree representation, then on the atom feed returned the server 
> will inline using the link relation down. down-tree is not expanded 
> with content inline. E.g.,
>
> <atom:entry>
> ...
> <!-- children level 1 -->
> <atom:link rel="down" type="application/atom+xml;type=feed"
> href="/finance/feeds/default/portfolios/1/positions">
> <ae:inline>
> <atom:feed>
> <!-- /a -->
> <atom:entry>
> ...
> <!-- children level 2 for /a -->
> <atom:link rel="down"
> href="/finance/feeds/default/portfolios/1/positions"/>
> ...
> <ae:inline>
> <atom:feed>
> <!-- entry /a/1 -->
> <atom:entry>
> ...
> <atom:link rel="down"
> href="/finance/feeds/default/portfolios/1/positions/down">
> <!-- repeats -->
> </atom:link>
> <atom:link rel="down-tree"
> href="/finance/feeds-tree/default/portfolios/1/positions/down" />
>
> ...
> </atom:entry>
> </atom:feed>
> </ae:inline>
> <atom:entry>...</atom:entry>
> <atom:entry>...</atom:entry>
> </atom:feed>
> </ae:inline>
> </atom:link>
> <atom:link rel="down-tree" type="application/atom+xml;type=feed"
> href="/finance/feeds-tree/default/portfolios/1/positions" />
>
> ...
> </atom:entry>
>
> The contents of the down link relation will be what should be included 
> in the down-tree due to recursion through the atom entries. Having a 
> separate extension element, side-steps this issue of expression.
>
Hmmm.... I know we've discussed this, but after thinking about it more 
and looking through the examples, I'm becoming increasingly less 
convinced that we need a distinction between "down" and "down-tree".  
One should simply assume that "down" could point to a child entry or 
child feed and that those children could potentially also be parents. 
Yes, that possibly increases the processing compexity but I think it 
simplifies the model overall.

> Second example: verbosity
> This proposal now has:
> <atom:entry>
> ...
> <atom:link rel="down" type="application/atom+xml;type=feed"
> href="/finance/feeds/default/portfolios/1/positions">
> <ae:inline>
> <atom:feed>
> <atom:link rel="self"
> href="/finance/feeds/default/portfolios/1/positions"/>
> ...
> <atom:entry>...</atom:entry>
> <atom:entry>...</atom:entry>
> <atom:entry>...</atom:entry>
> </atom:feed>
> </ae:inline>
> </atom:link>
> ...
> </atom:entry>
>
> instead of a simpler mechanism:
> <atom:entry>
> ...
> <ah:include rel="down">
> <atom:entry>...</atom:entry>
> <atom:entry>...</atom:entry>
> <atom:entry>...</atom:entry>
> </ah:include>
> ...
> </atom:entry>
>
> The I-D introduces a concept of hierarchy through 
> up/up-tree/down-tree/down relations yet a all-purpose mechanism for 
> inclusion. Most (all?) of the information on the feed element is 
> duplicated on the enclosing entry (id, uri, etc). Can't we do better 
> for this specific scenario the I-D is addressing?
>
I think we can address this by eliminating the restriction that "down" 
and "up" must always point to Atom feed documents and by changing the 
cardinality rules for those links. That restriction, I think, is 
arbitrary and unnecessary

It would allow us to do something like....

<atom:entry>
...
<atom:link rel="down" type="application/atom+xml;type=entry" href="child1">
<ae:inline>
<atom:entry>...</atom:entry>
</ae:inline>
</atom:link>
<atom:link rel="down" type="application/atom+xml;type=entry" href="child2">
<ae:inline>
<atom:entry>...</atom:entry>
</ae:inline>
</atom:link>
...
<atom:link rel="down" type="application/atom+xml;type=entry" href="childN">
<ae:inline>
<atom:entry>...</atom:entry>
</ae:inline>
</atom:link>
...
</atom:entry>

Unlike any of the other methods discussed, this approach would allow 
clients that don't understand the hierarchy model to still understand 
that there is some kind of link relationship with each of the individual 
child resources and eliminates the need to include the extraneous 
atom:feed metadata.

Note that this is the same basic approach taken by my comment thread 
extension (in-reply-to).

- James