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