Yes, as I said you are splitting hairs here. You have identified 1 way to pass by value, and 2 ways to pass by reference. Under one of the interpretations of passing by reference (which you call passing by ID), it is true to say that what you are proposing is a pass by value version of what atom:origin passed by id-reference. With the important proviso that the reference should be a Feed version reference.


Ok. So what is the point of my pointing this out?

1. With a slight reworking of atom:origin it would do what you are proposing to do with atom:head
2. By insisting on calling it atom:head you are trying to identify an entry metadata with the feed metada. This was very well explained by Antone Roundy [1]
3. I find the model on which you are basing your idea [2] very difficult to follow [3], not to say incomprehensible.


((You argue that your inability to model this in UML is due to the limitations of UML and the restrictions imposed on the xml format [4]. But this is doubly suspicious. There are ways around this. One such is to build a model that is more powerful than what Atom currently allows and then simply to add restrictions later. If UML is not good enough, first order logic would also do. Another solution is OWL, which can be mapped onto set theory, so modelling in OWL inherits that precision.))

Henry Story


[1] http://www.imc.org/atom-syntax/mail-archive/msg11662.html [2] propounded here http://www.imc.org/atom-syntax/mail-archive/msg11639.html [3] http://www.imc.org/atom-syntax/mail-archive/msg11644.html [4] http://www.imc.org/atom-syntax/mail-archive/msg11653.html


On 16 Nov 2004, at 22:11, Bob Wyman wrote:


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






Reply via email to