Henry Story wrote:
>Tim Bray wrote:
>> Would it be an oversimplification to say that this provides by
>> value what atom:origin provides by reference? -Tim
>Ok. So the oversimplification is only that atom:origin does not use a
> version construct.
What you are saying is that Tim would not have been oversimplifying
if only he had said something that he did not say.
As much as you may wish to avoid the point, atom:origin does *not*
pass data by reference. The atom:id is explicitly defined in the Atom spec
as being something that can not be dereferenced -- even though it is noted
that it sometimes might be. This is not like a "broken URL." URLs are
intended to be dereferenceable and we say they are "broken" if they aren't
derefenceable. However, an atom:id is not "broken" if it can't be
dereferenced since there is neither a guarantee nor an expectation that you
should be able to dereference an atom:id.
What we may be distinguishing here is a third, and not terribly
useful way of passing data... Consider that we have:
1. Pass by value (real bits)
2. Pass by reference (via an URL)
3. Pass by ID (via a URI that can't be dereferenced.)
That third form, "pass by id" is simply not very useful in most
situations even though it does have utility in some situations. Nonetheless,
it ain't "pass by reference."
bob wyman