* 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

Reply via email to