Edit Rename Changes History Upload Download Back to Top

Metadata Proposal

BottomFeeder MetaData Proposal

Browse Home Page
Browse Project Page
Browse Wish List

This document is a work-in-progress -- assume errors and omissions! Tell me what to fix. Send comments to Rich Demers

Last updated on June 4, 2003

Introduction

RSS stands for Really Simple Syndication or RDF Site Summary, depending on which version of the standards you read. Six versions are in current use, plus a variety of modules, corresponding to XML namespaces, have been added to make RSS more descriptive or more functional. This makes it difficult for producers to know how to build RSS files -- too many choices. And it makes it difficult for aggregators because there are too many variations to handle.

This document attempts to resolve this problem for the BottomFeeder aggregator by identifying general rules for handling elements, and by identifying how RSS elements should be individually handled.

RSS Versions

Version Standard or Module
0.9 RSS 0.9
0.91 RSS 0.91
0.92 RSS 0.92. RSS 0.92 is upward compatible with RSS 0.91, with the noted additional elements.
0.93 RSS 0.93. RSS 0.93 is upward compatible with RSS 0.92 and RSS 0.91, with the noted additional elements.
1.0 RSS 1.0. RSS 1.0 is upward compatible with RSS 0.9, but with an RDF syntax and extension through modules.
content RSS 1.0 Content Module
sy RSS 1.0 Syndication Module
admin RSS 1.0 Administrative Module
2.0 RSS 2.0
dc Dublin Core Module
tb Trackback Module
pb Pingback Module
geo RDF Geographical Module
icbm ICBM Geographical Module
wfw Well Formed Web Comment API Module

Element Normalization Table

The element normalization table alphabetically lists all metadata elements of all the RSS standards plus those of some important modules. It identifies which metadata elements are equivalent, and specifies how BottomFeeder should use them. This table is deliberately redundant across versions so that equivalences and differences are more visible.

  1. Each element is associated with a BottomFeeder identifier; elements with the same identifier are used the same way (displayed, searched, browsed, etc.). Click identifiers shown as links to go to the specification of how that element is used.
  2. Some elements with different names from different standards or modules have the same meaning. If more than one such element (or more than one instance of the same element) appears in the same containing element, BottomFeeder takes the contents of the last such element found.
  3. Element Table Legend:
    BottomFeeder Use Description
    tbd to be decided
    browse open a browser
    property display as a property
    tree display in BF tree
    table display in BF Item List table
    banner display in BF Feed Banner
    page display in BF Item pane
    search can be included in a search expression
    feedback used to provide feedback
    updating affects how BF updates the channel
    map open browser to mapping website
    pingback as defined by Pingback Module
    trackback as defined by Trackback Module

 

RSS Element BottomFeeder Element
Version Name In Identifier Label Use Definition
pb about item item_pbAbout about pingback A pingback target URL that was pinged in reference to this item.
tb about item item_tbAbout about trackback A trackback URL that was pinged in reference to this item.
geo altitude channel point feed_altitude altitude tbd The altitude of the source of the feed.
geo altitude item point item_altitude altitude tbd The altitude of the source of the item.
2.0 author item item_creator creator property search Email address of the author of the item.
xhtml body item item_description      
0.92 category item item_category category property search One or more categories that the item belongs to.
0.93 category item item_category      
2.0 category channel feed_category category tbd One or more categories that the feed belongs to.
2.0 category item item_category      
0.92 cloud channel feed_cloud cloud tbd A URI to be notified of updates to the feed, that implements a lightweight publish-subscribe protocol for feeds.
0.93 cloud channel feed_cloud      
2.0 cloud channel feed_cloud      
wfw comment item item_comment comment feedback URI to post an item fragment with a comment on the item.
2.0 comments item item_comment      
dc contributor channel feed_contributor contributor property An entity responsible for making contributions to the content of the feed.
dc contributor item item_contributor contributor property search  
0.91 copyright channel feed_copyright copyright property Copyright notice for content in the feed.
0.92 copyright channel feed_copyright      
0.92 copyright item item_copyright copyright property search Copyright notice for content in the item.
0.93 copyright channel feed_copyright      
0.93 copyright item item_copyright      
2.0 copyright channel feed_copyright      
2.0 copyright item item_copyright      
dc coverage channel feed_coverage coverage property The extent or scope of the content of the feed.
dc coverage item item_coverage coverage property search The extent or scope of the content of the item.
dc creator channel feed_creator creator property An entity primarily responsible for making the content of the feed.
dc creator item item_creator      
dc date channel feed_pubDate publication date property A date associated with an event in the life cycle of the feed.
dc date item item_pubDate publication date property search A date associated with an event in the life cycle of the item.
all description channel feed_description description tbd Text that describes the feed.
all description item item_description description search page Text that describes the item.
all description textInput feedback_description feedback tbd Text that describes the kind of feedback supported.
all description image image_description description tbd Text describing the image.
0.91 docs channel feed_docs format documents property A URL that points to the documentation for the format used in the feed.
0.92 docs channel feed_docs      
0.93 docs channel feed_docs      
2.0 docs channel feed_docs      
0.92 enclosure item item_enclosure enclosure property Describes a media object that is attached to the item.
0.93 enclosure item item_enclosure      
2.0 enclosure item item_enclosure      
content encoded item item_description      
content encoding channel feed_encoding encoding property A URI representing the encoding of a content:item.
content encoding item item_encoding encoding property A URI representing the encoding of a content:item.
admin errorReportsTo channel feed_errorReportsTo report errors to property A URI (typically a 'mailto:' URL) for contacting the person or source of the feed.
admin errorReportsTo item item_errorReportsTo report errors to property A URI (typically a 'mailto:' URL) for contacting the person or source of the item.
0.93 expirationDate item item_expirationDate expiration date property Indicates when an item is no longer available.
content format channel feed_format format property A URI representing the format of a content:item.
content format item item_format      
dc format channel feed_format      
dc format item item_format format property search The physical or digital manifestation of the channel or item.
2.0 generator channel feed_generator generator property A string indicating the program used to generate the channel.
admin generatorAgent channel feed_generatorAgent      
2.0 guid channel feed_identifier identifier property A string that uniquely identifies the channel.
2.0 guid item item_identifier identifier property search A string that uniquely identifies the item.
0.91 height image image_height image height banner The height a displayed image should have.
0.92 height image image_height      
0.93 height image image_height      
2.0 height image image_height      
dc identifier channel feed_identifier      
dc identifier item item_identifier      
content item item item_description      
1.0 items channel feed_items items tbd A table of contents of the channel's items.
content items channel feed_items      
0.91 language channel feed_language language property The natural language of the content of the feed.
0.92 language channel feed_language      
0.93 language channel feed_language      
2.0 language channel feed_language      
dc language channel feed_language      
dc language item item_language language property search The natural language of the content of the item.
0.91 lastBuildDate channel feed_lastBuildDate last build date updating property The last time the feed was generated.
0.92 lastBuildDate channel feed_lastBuildDate      
0.93 lastBuildDate channel feed_lastBuildDate      
2.0 lastBuildDate channel feed_lastBuildDate      
geo latitude channel point feed_latitude latitude property map The latitude of the source of the feed.
geo latitude item point item_latitude latitude tbd The latitude of the source of the item.
icbm latitude channel feed_latitude      
icbm latitude item   item_latitude    
geo longitude channel feed_longitude   property map  
geo longitude item item_longitude longitude tbd  
icbm longitude channel feed_longitude longitude property map  
icbm longitude item item_longitude      
all link channel feed_link link property browse The URL of the resource covered by the feed.
all link item item_link link property page browse The URL to an item of the resource of the feed.
all link image image_link link tbd The URL to an image.
all link textInput feedback_link link "execute CGI script" The URL to send feedback to.
0.91 managingEditor channel feed_managingEditor managing editor property Email address for person responsible for editorial content.
0.92 managingEditor channel feed_managingEditor      
0.93 managingEditor channel feed_managingEditor      
2.0 managingEditor channel feed_managingEditor      
0.9 name textInput feedback_name name feedback The name of the text object in the text input area.
0.91 name textInput feedback_name      
1.0 name textInput feedback_name      
0.92 name textInput feedback_name      
0.93 name textInput feedback_name      
2.0 name textInput feedback_name      
tb ping item item_tbPing trackback ping trackback The item's trackback URL.
0.91 pubDate channel feed_pubDate   property  
0.92 pubDate channel feed_pubDate      
0.93 pubDate channel feed_pubDate      
0.93 pubDate item item_pubDate   property search table  
2.0 pubDate channel feed_pubDate      
2.0 pubDate item item_pubDate      
dc publisher channel feed_publisher publisher property An entity responsible for making the feed available.
dc publisher item item_publisher publisher property search An entity responsible for making the item available.
0.91 rating channel feed_rating rating property The PICS rating for the channel.
0.92 rating channel feed_rating      
0.93 rating channel feed_rating      
2.0 rating channel feed_rating      
dc relation channel feed_relation relation property A reference to a resource related to the feed.
dc relation item item_relation relation property search A reference to a resource related to the item.
dc rights channel feed_copyright      
dc rights item item_copyright      
pb server item item_pbServer pingback server pingback The URL of the item's pingback server.
0.91 skipDays channel feed_skipDays skip days updating A hint for aggregators telling them which days they can skip.
0.92 skipDays channel feed_skipDays      
0.93 skipDays channel feed_skipDays      
2.0 skipDays channel feed_skipDays      
0.91 skipHours channel feed_skipHours skip hours updating A hint for aggregators telling them which hours they can skip.
0.92 skipHours channel feed_skipHours      
0.93 skipHours channel feed_skipHours      
2.0 skipHours channel feed_skipHours      
0.92 source item item_source source property search The feed that the item came from.
0.93 source item item_source      
2.0 source channel feed_source source property The resource that the feed came from.
2.0 source item item_source      
dc source channel feed_source      
dc source item item_source      
dc subject channel feed_category      
dc subject item item_category      
pb target item item_pbTarget pingback target pingback The value that should be used as the target URI in a ping.
all title channel feed_title title property banner The name of the feed.
all title item item_title title property search table The name of the item.
all title image image_title title tbd The name of the image.
all title textInput feedback_title title feedback The label of the Submit button.
dc title channel feed_title      
dc title item item_title      
2.0 ttl channel feed_ttl time to live updating The number of minutes a feed can be cached before refreshing from the source.
dc type channel feed_type genre property The nature or genre of the content of the feed.
dc type item item_type genre property search The nature or genre of the content of the item.
sy updateBase channel feed_updateBase update base date updating Defines a base date to be used in concert with updatePeriod and updateFrequency to calculate the publishing schedule.
sy updatePeriod channel feed_updatePeriod update period updating Describes the period over which the feed format is updated. Acceptable values are: hourly, daily, weekly, monthly, yearly. If omitted, daily is assumed.
sy updateFrequency channel feed_updateFrequency update frequency updating Used to describe the frequency of updates in relation to the update period. A positive integer indicates how many times in that period the feed is updated. If omitted a value of 1 is assumed.
0.9 url image image_link   banner  
1.0 url image image_link      
0.91 url image image_link      
0.92 url image image_link      
0.93 url image image_link      
2.0 url image image_link      
0.91 webMaster channel feed_webMaster web master property Email address for person responsible for technical issues relating to the feed.
0.92 webMaster channel feed_webMaster      
0.93 webMaster channel feed_webMaster      
2.0 webMaster channel feed_webMaster      
0.91 width image image_width image width banner The width a displayed image should have.
0.92 width image image_width      
0.93 width image image_width      
2.0 width image image_width      

BottomFeeder enhancements

One of my reasons for spending so much time on this Metadata Proposal was to get a handle on what kinds of metadata have been included in the various RSS standards and modules. Clearly, a lot of it exists to support complex querys by search engines and syndicators, but that doesn't mean BF should ignore it. BF does a great job of displaying the elements that make sense in BF's three-pane window, and in supporting searches into title, body and category. Now the question is, "What about the rest?" Should BF just ignore them or do we give users a meaningful way to work with them?

The current BF Feed Properties window does a fine job of presenting a limited number of operational properties. It will be extended with additional metadata properties, but something more open-ended is needed for both feed metadata and item metadata. One possibility is a new Feed Properties window and a new Item Properties window -- both along the lines of Outlook Express's Message Properties window. The General tab would provide fixed properties, some of which are editable, similar to the current Feed Properties window. The Details tab would provide a scrollable list of formatted, read-only (but copyable) metadata elements from the feed or an item. And a Source button will provide a text listing extracted from the feed's source.

Something else BF will eventually do with the metadata elements is to allow them to be included in complex queries through the Search Tool, but there is no UI proposal for this yet.


Looks very interesting. So, is the idea to implement some/all of Dublin Core in Smalltalk, and then use it to represent the metadata described here? Having a DC package would be very useful for other applications too. --Mark Roberts May 20, 2003


Edit Rename Changes History Upload Download Back to Top