On Jan 9, 2005, at 4:23 AM, Danny Ayers wrote:
There were a couple of points made in recent discussions that might have been misleading. One was that Atom is a tree. The XML may use that structure, and in it's simplest form the information being represented may be tree-shaped, but that isn't necessary the case.
No, the element containment hierarchy that establishes default relationships between data and metadata is a tree.
For example:
<feed xmlns...> <head> <link href="http://example.org/feed"/> ... </head> <entry> <id>http://example.org/entry</id> <link rel="related" href="http://example.org/feed" /> ... </entry> </feed>
If resources are view as nodes, then http://example.org/feed has two parents. The containment tree is violated.
Nonsense. The containment tree tells us what the tail of the link is, not the target of those links. The information is going to have far more relationships just by virtue of the content text, and thus the information will be a graph even if the relations are not made explicit via links. Their containment is only a very small subset of those relationships and cannot be violated by the mere presence of other types of links.
The reason this topic came up was because people wanted to know how the format is extensible given the implicit relationship between feed, entry, and entry elements. Containment is the only answer needed because all other relationships are explicitly targeted by a URI.
Personally, what I would change in the format is elimination of head and make feed a recursive element. Then there would be no doubt as to the hierarchical relations and feed vacuums can compose multiple feeds to their heart's delight without changing the entries at all.
....Roy