Re: Tombstones and Link Extensions

James Snell <jasnell@gmail.com> Wed, 10 November 2010 16:02 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 627A43A6A0B for <ietfarch-atompub-archive@core3.amsl.com>; Wed, 10 Nov 2010 08:02:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.501
X-Spam-Level:
X-Spam-Status: No, score=0.501 tagged_above=-999 required=5 tests=[AWL=-1.054, BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, HTML_MESSAGE=0.001, J_CHICKENPOX_22=0.6, J_CHICKENPOX_27=0.6, J_CHICKENPOX_42=0.6, J_CHICKENPOX_45=0.6, J_CHICKENPOX_46=0.6, J_CHICKENPOX_48=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 5C77g1hHa0uN for <ietfarch-atompub-archive@core3.amsl.com>; Wed, 10 Nov 2010 08:02:22 -0800 (PST)
Received: from hoffman.proper.com (Hoffman.Proper.COM [207.182.41.81]) by core3.amsl.com (Postfix) with ESMTP id AFF8C3A698E for <atompub-archive@ietf.org>; Wed, 10 Nov 2010 08:02:22 -0800 (PST)
Received: from hoffman.proper.com (localhost [127.0.0.1]) by hoffman.proper.com (8.14.4/8.14.3) with ESMTP id oAAFu8LL044448 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 10 Nov 2010 08:56:08 -0700 (MST) (envelope-from owner-atom-syntax@mail.imc.org)
Received: (from majordom@localhost) by hoffman.proper.com (8.14.4/8.13.5/Submit) id oAAFu8GZ044447; Wed, 10 Nov 2010 08:56:08 -0700 (MST) (envelope-from owner-atom-syntax@mail.imc.org)
X-Authentication-Warning: hoffman.proper.com: majordom set sender to owner-atom-syntax@mail.imc.org using -f
Received: from mail-qw0-f43.google.com (mail-qw0-f43.google.com [209.85.216.43]) by hoffman.proper.com (8.14.4/8.14.3) with ESMTP id oAAFu7pA044442 for <atom-syntax@imc.org>; Wed, 10 Nov 2010 08:56:07 -0700 (MST) (envelope-from jasnell@gmail.com)
Received: by qwh5 with SMTP id 5so81177qwh.16 for <atom-syntax@imc.org>; Wed, 10 Nov 2010 07:56:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=0U5IQAroUawCvZsN0VQIqcAMOQQn2YhhMxRdI8en4ck=; b=Qc8G2kyT0GzkZeYarurk09cPihRY37weJZv5V4xrHFfmgD6tYNO56nAd8CXSMvrv/K w75jJZ+KZNYPrt72FTKcOeU2x5tioGQAJmxFaMkiUzYd/Lfu3lpALeneYoiFi6clJ6Cu tV9lLqWNlhMfLqWA9SK6UfzFUXCnoqx5ign8g=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=R/eysYpD4LyZT8pBpXQ3E8Ddc68Bz31mGJS4/DS+kP/UgYIFvV6PhZvOwcHANe2qUR D/4oUyeo49bv28duHkgHEoJ+Xzr4Vu2CKL9/Gg0W2tez36DD4XL+E5EkjhhXKzOgEOMn Fa2SXmLTO6rWNY6mduMqMTG3XhSvT8XjgWZn0=
MIME-Version: 1.0
Received: by 10.229.97.68 with SMTP id k4mr7858475qcn.261.1289404566699; Wed, 10 Nov 2010 07:56:06 -0800 (PST)
Received: by 10.229.5.20 with HTTP; Wed, 10 Nov 2010 07:56:06 -0800 (PST)
In-Reply-To: <AANLkTin4d+wthGrzdmqDvwx-9ub+LPsnR1yMNsQJYEYY@mail.gmail.com>
References: <AANLkTikwt6o9U0oye0H9jku4O62Ue7sJSV1HrOgz5FGB@mail.gmail.com> <20101110113537.GB4316@aliman-desktop> <AANLkTin4d+wthGrzdmqDvwx-9ub+LPsnR1yMNsQJYEYY@mail.gmail.com>
Date: Wed, 10 Nov 2010 07:56:06 -0800
Message-ID: <AANLkTinkccbxBNc4b+-4xD67jZOJfkxKCgFEi_Q5OM+v@mail.gmail.com>
Subject: Re: Tombstones and Link Extensions
From: James Snell <jasnell@gmail.com>
To: Bob Wyman <bob@wyman.us>
Cc: Alistair Miles <alimanfoo@googlemail.com>, Atom-Syntax <atom-syntax@imc.org>
Content-Type: multipart/alternative; boundary="0016367f99822bbf980494b4e595"
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>

Ok I was getting ready to say that the definition of deleted-entry already
allows for it but I went back to double check and it's a good thing I did. I
notice that it says "extensionElement*" instead of "anyElement*". In
rfc4287, extensionElement explicitly omits atom:* elements. I will change
that to anyElement so that additional atom:* metadata elements can be
included.

On Wed, Nov 10, 2010 at 7:53 AM, Bob Wyman <bob@wyman.us> wrote:

> Alistair Miles <alimanfoo@googlemail.com> wrote:
> > we have a need to include some metadata elements
> > from the original atom entry within the deleted entry
> +1
> In a variety of content-based message routing applications it is actually
> very important that the record of a deletion carry with it as much as
> possible of the data which is being deleted. The reason is that
> content-based streaming systems do message routing based on the content of
> an entry rather than simply on its source elements. (They implement "Track"
> not just "Follow.") For such a system to be able to route a deletion to a
> destination that might have previously received the item being deleted, one
> of two approaches must be used:
>
>    - The simplest approach is to include in the deleted entry the same
>    content that would have been used to route the entry prior to its deletion.
>    This makes it possible to simply route deleted-entries by using the same
>    code as is used for routing normal entries.
>    - A more complex and robust method requires that the router maintains a
>    persistent record of all routing decisions, keyed by atom:id. Deleted
>    entries are then routed based on this record of previous routing decisions.
>    This can be, however, excessively expensive in some contexts. If using this
>    approach, one must also deal with issues such as the maximum age of useful
>    routing data. (When, if ever, can you delete routing logs?)
>
> The second method (i.e. recording all routing decisions) is probably the
> most robust since it can also be used to handle cases of updates to entries
> which produce a new entry instance that would have not been routed in the
> same way as the original. However, it should be noted that few systems
> implement such complexity.
>
> Given the considerations above, I would support (as I have in the past) the
> suggestion that deleted entries be permitted to optionally carry much if not
> all of the same content as the entries which are being deleted. It should
> probably be made clear somewhere, that developers SHOULD NOT expect that all
> publishers of deleted entries will, in fact, include this content.
> Developers should only build code that relies on content-full
> deleted-entries in cases where application profiles extending the base
> specification assure that such content is provided. But, note that while
> carrying this content should be optional, it isn't possible unless
> permitted.
>
> I support the *optional* provision of additional content in the deleted
> entries.
>
> bob wyman
>
> On Wed, Nov 10, 2010 at 6:35 AM, Alistair Miles <alimanfoo@googlemail.com>wrote:
>
>>
>> Hi James,
>>
>> On Tue, Nov 09, 2010 at 12:48:04PM -0800, James Snell wrote:
>> > Ok, so the Atom Tombstones [1] draft, at this point, is definitely
>> complete.
>> > I decided to wait a while before advancing it to see if any further
>> comments
>> > would come in. I know there are some implementations already and no
>> major
>> > issues have come up so I'm ready to push that forward to get an RFC #
>> for
>> > it.
>>
>> In [1] I mentioned that we have a need to include some metadata elements
>> from
>> the original atom entry within the deleted entry, in particular
>> atom:title,
>> atom:author and atom:publised, but that this is prohibited by the content
>> model for the at:deleted-entry element, so we invented an extension
>> element
>> in our own namespace for this (see [2]).
>>
>> If no-one else has this requirement then fine, but I would have thought
>> there
>> would be quite a few situations where an application would want to present
>> a list of deleted entries to a user and show more than just @ref @when and
>> at:by - pretty much every situation in which a person wants to look at a
>> list of deleted entries.
>>
>> I would much rather avoid a custom extension element and instead make the
>> content-model for at:deleted-entry more permissive, e.g.:
>>
>>     deletedEntry = element at:deleted-entry {
>>       atomCommonAttributes,
>>       attribute ref { atomUri },
>>       attribute when { atomDateConstruct },
>>       ( element at:by { atomPersonConstruct }?
>>       & element at:comment { atomTextConstruct }?
>>       & atomAuthor*
>>       & atomCategory*
>>       & atomContent?
>>       & atomContributor*
>>       & atomId?
>>       & atomLink*
>>       & atomPublished?
>>       & atomRights?
>>       & atomSource?
>>       & atomSummary?
>>       & atomTitle?
>>       & extensionElement*)
>>     }
>>
>> An implementation would then be free to include as little or as many of
>> these
>> additional elements within a deleted entry as required. A client consuming
>> a feed with deleted entries could choose to render this information if
>> present.
>>
>> Again, if no-one else sees this as an issue then fine, but I do think
>> there
>> is a potential interoperability issue here that should be at least
>> commented
>> on prior to RFC.
>>
>> Apologies if I've missed anything relevant in previous discussions.
>>
>> Cheers
>>
>> Alistair
>>
>> [1] http://www.imc.org/atom-syntax/mail-archive/msg21574.html
>> [2]
>> http://code.google.com/p/atombeat/wiki/TombstonesDesign#Configuring_Ghosts
>>
>> --
>> Alistair Miles
>> Head of Epidemiological Informatics
>> Centre for Genomics and Global Health <http://cggh.org>
>> The Wellcome Trust Centre for Human Genetics
>> Roosevelt Drive
>> Oxford
>> OX3 7BN
>> United Kingdom
>> Web: http://purl.org/net/aliman
>> Email: alimanfoo@gmail.com
>> Tel: +44 (0)1865 287669
>>
>>
>