* Eric Scheid <[EMAIL PROTECTED]> [2005-05-24 01:40]: > Consider too a feed which has both authors and contributors at > the feed level, an entry with neither authors or contributors > (simple case of inheritance), and another entry with a single > author and no contributors (does the entry inherit the feed > contributors?), and a third entry with no specified author > (inherits, right?), but with contributors (no inheritance, > right?). > > The first case is easy to guess the intention. The third case > is easy to guess the intention. It's the second case which is > the beotch.
I think of these things in terms of what is possible to express. a) Any entry always has an author. b) A feed may or may not have an author. c) An entry may or may not have contributors. d) A feed may or may not have contributors. Any solution must not prevent any of these from being expressible. I already discussed why replacement is preferrable to merging when any of these are given at both the feed and entry level. Now with that in mind, c) and d) suggest to me that atom:feed/atom:contributor never inherits to entries. If entries were to inherit from the feed, then in a feed with contributors it is not possible to express that an entry had no contributors. With atom:author we can inherit safely, because a) means that there is no case in which an entry can have no author, which means that specifying an inheritable author at the feed level does not pose a problem in expressing any of the possible cases for an entry. So in summary: The set of atom:entry/atom:author overrides the set of atom:feed/atom:author for a particular entry, should the set be non-empty. [Inheritance with replacement semantics.] The set of atom:feed/atom:contributor applies only to the feed and not to any of its entries. [No inheritance.] Any permissible assertion about the feed and one of its entries is thus possible. Regards, -- Aristotle