A Syndication Project

Syndication Metadata

This URL: http://www.iangraham.org/projects/news/issues-2.html

Created: 24 September, 2000
Last Update: 2 October, 2000

Author(s): Ian Graham

Message Design

Information About the Syndication Service

Some (and more as time progresses) services will offer APIs for accessing and/or querying the data the service provides. It would be nice if each syndication message could provide information about the aggregator.

This information is provided by three elements inside a syndicationMessage element. The creationDate gives the time at which this syndicationMessage was assembled. The optional serviceInfo element provides a brief description of the aggregation service, and optionally a URL referencing more information about the service that created it. The optional interface element references (using a href attribute an API to the aggregation service. The type attribute defines the type of the API ("xml-rpc" or "soap"), while the info attribute provides a URL that references human and/opr machine-readable instructions explaining how the interface works. Finally, a copyright element provides copyright information relevant to the data content of the message. An example of this markup is:

<serviceInfo href="_uri_to_service_info"> text 
   description </serviceInfo>
<interface href="_uri-to-interface_" 
	   type="soap | xml-rpc" 
	   info="_uri-to-description_" /> 
<copyright href="_uri_to_copyright_"> 
   Copyright 2000 Bob's Deli. 
   All Rights Reserved. </copyright>

Each data item can provide copyright information specfic to that item, which would overload the copyright information applying to the entire message.

<syndicationMessage ...attributes...>
  <serviceInfo href="http://www.myco.com/serviceInfo"> </serviceInfo>
  <interface href="http://data.myco.com/xrpc" 
	     type="xml-rpc" 
	     info="http://data.myco.com/xrpc-info" /> 
  <copyright href="http://data.myco.com/copyright"> </copyright>
  <item ....> </item>
  <item ....> </item>
  <collection>
    <item ....> </item>
    <item ....> </item>
  </collection>
</syndicationMessage>

Information About Collections and Data Items

Each data item and/or collection can have metadata to describe it. This information can be broken down into three categories: (i) language-independent data, such as the identity of the creator of the data, or content rating information; (ii) data describing syndication rules for the data, and (iii) language-specific data, such as a text description or keywords list. In the latter case, it must be possible to define the language for this metadata -- which may be different from the language of the item itself.As a result, a single collection or item element can have at most one block of language-indendent and syndication rules metadata, but multiple blocks of language-specific data.

<meta>  
   <creator href="_uri-for-creator-of-resource_" />
      Bob's Deli and News Syndicate  </creator>
   <copyright href="_uri_to_copyright_"> Copyright 2000 Bob's Deli. 
      All Rights Reserved. </copyright>
   <contactInfo> contact info (phone, email)  </contactInfo>
   <pics-rating> .... </pics-rating>
</meta>
<syndicationRules> 
   <start-date date="_time_date_" />
   <stop-date date="_time_date_" />
   <update interval="xxx" />
   <distributionRules href="_uri_to_rules_specification" > 
      A text description of how the data can be
      used.  </distributionRules>
</syndicationRules>
<overview xml:lang="en">
   <keywords separator="," > comma, separated, words ....</keywords>
   <category separator="/" > a/b/c </category>
   <category separator="/"> d/e/f </category>
   <title> _a short one-line title_ </title>
   <desc> _a brief-text-description-of-the-resource_</desc>
</overview>

NOTE: Absence of Collection Metadata

Note that there is nothing defined here to describe the relationships between the differnet 'parts' inside a collection. Indeed, I rather doubt that there is any easy way to define generic metadata for this independent of knowledge of the specific type of the collected data.