A. Pagaltzis wrote:
>
> * 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.

Right, I forgot that.

Actually, I was reading the format-08 "inlined" RNC, which doesn't include
the schematron rules.
Could there be some "improvement" to the spec?

> 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.

Not if you consider the "group" formed by the authors and contributors.
Hmm, what about that: feed level contributors cascade to the entry level
only when there is an atom:author element at the feed level which also
cascades. Er, I might be not quite clear, so let's see examples: how would
you interpret the following?

a)
feed:
  author: A
  contributor: B
  entry:
    no author not contributor

b)
feed:
  author: A
  contributor: B
  entry:
    author: C

c)
feed:
  author: A
  contributor: B
  entry:
    contributor: C

d)
feed:
  contributor: A
  entry:
    author: B
    contributor: C

e)
feed:
  contributor: A
  entry:
    author: B

Other cases don't have any problem (or I missed it) or are invalid (e.g.
no author at all)


a) The entry inherits both the author and contributor from the feed.
b) The entry inherits nothing from the feed.
c) The entry inherits the author but overrides the contributor. I'm
   also open to considering it invalid.
d) The entry inherits nothing from the feed.
e) The entry inherits nothing from the feed.

Let's see what others have to say about this and then find the appropriate
wording.

> 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.]

I'm not opposed to that but it might not be obvious in the a) example above.

-- 
Thomas Broyer


Reply via email to