On 15 Nov 2004, at 23:11, Walter Underwood wrote:

--On Monday, November 15, 2004 09:25:47 PM +0100 Henry Story <[EMAIL PROTECTED]> wrote:

PaceEntriesAllTheWayDown2 is an actual Pace with supporting arguments from
Anotone Roundy [1], which on the face of it have a lot of weight.

-1

All the arguments for are based on structural similarity. That is enough
to suggest that they are related, but not enough to prove it. A shopping
cart and a baby stroller are structurally similar, but that doesn't
automatically make them related.

There are a couple of issues here. I have written these out in length and publish it here, not mostly as a reply to your comment above, but because once I found myself writing all of this out I realized it may provide a helpful context in which to understand what we are doing. It helps both show why what we are doing may appear to be obviously false, surprising even, yet how this may very well be in the nature of the operation. It also should help focus us a little on the context we are dealing with, and hopefully avoid false comparisons.


1. Identity assignments can be information rich.

Notice first of all that to prove that two things are the same you need not show
that their respective properties as they were known to be before the identity assignment was made, were the same. Very often an identity assignment is going to be informational rich.


Take for example Clark Kent and Superman. Clark Kent is Superman, yet most of the characters in the cartoon don't know this. For them Clark Kent is a weak geekish journalist who has trouble with physical exercise, and Superman is a strong powerful superhero who can fly and whose only weakness is kryptonite. So we could make a list of
properties that relate them such as


        Clark Kent                  Superman
    Journalist                 Superhero
        Physically weak            super strong
    Shy                        bold
        ...                            ...


And yet (Clark Kent == Superman). Those that discover this discover something very important. They discover for example that Clark Kent was only pretending to be physically weak, that he was only pretending to be shy, and so on for all the characteristics that may seem contradictory.


Notice also that if you were to tell a character in the cartoon of the identity they would laugh a very hearty laugh, or take you for a fool. This is another way to say that Identity assignments are often not obvious, ie. are information rich.

To convince someone of the identity of Superman and Clark Kent is not in any way an easy task. And neither do I think is it going to be easy to show that a head structure is indeed a Entry going to be easy.

2. How can one prove identity?

In the Superman/Clark Kent story we are dealing with physical entities. The identity of physical entities is a combination of a category of the physical entity and the spatio temporal position they occupy. Both Clark Kent and Superman are Men: if you can show that they occupy the same position in space you have proven that they are the same.

In the shopping cart vs baby stroller case we are both dealing with concepts of a functional nature for the purposes of everyday use. One can show that the classes are disjoint by looking at the purpose of both objects and finding instances of both that are different. In this case most instances of the concepts are indeed different, and it is only the rare case where one finds objects that fit both categories.

In our case we are working on a specification of a file format, to help interoperation between blog producers and blog consumers. The classes we define have no external Platonic existence outside of the work we are doing. So we cannot compare our definition of an Entry with the real thing out there. There are many other ways of cutting up the conceptual space as witnessed by the NewsML and other syndication formats.

Of course not everything goes. Atom is working in the spirit of the RSS formats, which is to "keep things simple". It is a format that has to interact with a protocol, which we also may wish to keep as simple as possible. This is nearly a founding principle I think behind the work that is being done on this group. So to find a huge amount of structural similarities between two constructs is a very weighty argument in favor of a spec simplification. Especially if it allows one to express the same things as were expressed before the simplification.

So to conclude:
- In the Clark Kent/Superman case identity is proven by spatio-temporal identity
- in the conceptual space of the shopping cart distinction is proven by the
largely distinct sets of objects that fall under each category
- in the case of our spec there is a purely functional notion: what data structures do we need to create the easiest to understand spec for an equivalent functionality.


Writing a spec in that regard is very much like programming, which is perhaps why this exercise I am putting forward here may seem very natural and straightforward to other programmers. In programming one is also constantly creating classes that don't necessarily have a relation to something in reality, where the primary assessment of the quality of the code is not how it corresponds with reality, but how well it functions, how easy it is to read, to extend, to understand and in general to work with. Since it is never possible to get this right the first time round, we spend a lot of time on Refactoring our code, as has recently been so well described by Martin Fowler. The aim of that process is to start off with some complex code and end up perhaps with something that is a lot easier to read or to work with, but with exactly (or very nearly) the same functionality. That the code is equivalently functional is in part verified by testing it against a bunch of unit tests.

If we had unit tests for the Atom spec, it is my belief that the re-factoring I am proposing would hardly impact those tests. And that the small changes required are amply justified by the gains achieved.

Ok, that should be enough with the theory. I'll look at the criticisms one by one now.

Henry Story





Reply via email to