-
Namespaces
-
and?
Prior art :
-
Resource Description Framework (especially RSS 1.0)
-
XML Topic Maps
See also :
[DannyAyers RefactorOk] There has been talk of using XML namespaces as an extension mechanism in Necho. But this on its own only allows other elements to be included in the feed/post. It says nothing about how they should be interpreted. See Purpose below for why this is an issue.
Description of approaches to extension mechanisms:
"Wrapping" or "boxing" extensions
-
Extension modules define a wrapper element, properties of the extension appear as children of the extension.
Entities and Properties
-
Certain elements are identified as "entities" (as in "entity-relationship model" for RDBs or as classes in OO or RDF). Direct child elements of those entities are either properties or other entities. Entities and properties are fully qualified, either in the core Atom namespace or an extension namespace.
Display unknown entities/properties by default
Don't display unknown entities/properties by default
-
This relates to how one "ignores what they don't understand." In HTML <body>, unknown elements are treated as if the element tags didn't exist -- their content is displayed by default.
Separate data to be displayed (logical content) from data not to be displayed (metadata)
-
This is a technique for indicating that readers should display (all elements of an <entry>, for example) and those they shouldn't (elements appearing in a <metadata> element).
Strawman proposal
1. Any elements outside of the Atom namespace within a <metadata> element will be interpreted as being about the parent element.
Example :
<feed>
-
<entry>
-
...
-
<metadata>
-
<ent:topic id="games">Football</ent:topic>
</feed>
That single entry would be about football, the rest of the feed may be about something else.
2. Any other elements outside of the Atom namespace will be interpreted as secondary content associated with their parent element.
Example :
<feed>
-
<entry>
-
...
<xhtml:object type="image/jpeg" data="fatbloke.jpg">
</feed>
The image would be displayed in a viewer immediately following the content of the entry.
Purpose
For example, how might we use Easy News Topics (ENT) :
<feed>
-
<entry>
-
...
-
<ent:topic id="games">Football</ent:topic>
</feed>
Does this mean that the topic of that entry is Football? Probably. Ok then, how about :
<feed>
-
<entry>
-
...
<entry>
-
...
<ent:topic id="games">Football</ent:topic>
</feed>
Does this mean that the topic of the feed is Football? Probably. The topic of the last item is Football? Maybe.. The topic of the first item is Football? Possibly.
How about :
<feed>
-
<entry>
-
...
<foaf:Person>
-
<foaf:mbox rdf:resource="mailto:danny666@virgilio.it"/>
</feed>
or
<feed>
-
<xhtml:object>Blah</xhtml:object>
... </feed>
It needs to be unambiguous!
Requirements
There are (at least) two kinds of relationships that need to be expressable :
-
The extension is giving more information about entities already within the feed
-
The extension is including other entities in the feed
(these correspond to properties and resource in RDF)
Discussion
Related was originally a simple linking mechanism. Maybe we should consider it as a simple use case of DefinedDataModel + SyntaxExtensionMechanism + ComponentBlog. Please help to refactor the issues there to better understand the issues facing the larger issue of Semantic Web Logs.