On 14 Nov 2004, at 13:18, Bill de h�ra wrote:
The similarity between feeds and entries is that they both are metadata about web resources. That does not by itself make them conceptually similar in the Atom domain. My opinion of the Feed isa Entry approach is that it's looking for a abstraction that will serve only to obfuscates matters.
Bill, I agree in so far as I think that the feed is a Entry issue is a separate one from the PaceEntriesAllTheWayDown one.
The simplification given by PaceEntriesAllTheWayDown works just as well with the Feed is a Entry model, as with the Feed is a set of Entries model [1]. In fact both models could work with current spec text.
When Robert writes the EntriesAllTheWayDown pace "allows a straightforward way to implement hierarchy", I think the word "allows" should be understood as saying that it makes it easier to see that this could be done, but not necessarily that is should be done. I think that is a separate issue.
What we should first do, is concentrate on the refactoring proposed by Robert. As a re-factoring it hardly changes anything at all. But it simplifies the spec a lot.
You can accept the refactoring without accepting that a Feed is a Entry. You would prefer the model perhaps in which a feed is a set of entries, with a special entry being the head entry of the feed. That is the model I adopted in my latest attempts at modeling Atom in OWL.
My experience is that eliding aspects of domain models in favour of generic structures is often a flawed approach.
"often", but not always. Perhaps you can reference exactly where Martin Fowler specifies one should be careful.
Here we still have two classes: a Feed and a Entry class. So we are not much more generic than we were beforehand. You could say that we have simplified the Feed class down to its core. In doing so the specification has been much clarified.
There is another nice advantage of this on the API side of things. If the head of a feed is an Entry then the API might also be simplified quite dramatically, since adding all the head information to a feed would be just creating a new Entry element and associating it with a feed.
cheers Bill
[1] which I described in my mail http://www.imc.org/atom-syntax/mail-archive/msg11311.html
