Open Content Syndication Directory Format (Version 0.3)
Introduction
Open Content Syndication (OCS) is an application of XML. It allows the definition of 'channels' of content and includes such information as the title and description of the content, the frequency of update and categorisation of the information. This format has arisen due to the popularity of channel formats such as Netscape's RSS format, which has led to the creation of a multitude of channels. This format is designed to enable channel listings to be constructed for use by portal sites, client based headline software and other similar applications.
Version 0.4 has added the <ocs:contentType> element. An RDF schema will follow shortly.
For more information and feedback please contact iand@InternetAlchemy.org or join the Syndication mailing list.
Description of Format
The OCS Directory format is intended to allow providers of syndicated content the means to describe the content available. Each OCS file contains information about the directory itself and sub sections for each of the content channels available at that site. Each channel may be syndicated in multiple formats, languages or frequencies of publication. For example, the OCS Directory format could be used to provide two syndicated versions of a site, the first in RSS format, containing only headlines and updated hourly, the second in a more extensive format such as scriptingNews, updated daily and more suitable for downloading to read offline.
The format has the following logical structure:
Directory Information
|
|
+-- 1st Channel Information
| |
| |
| +-- Format Information
| |
| |
| +-- Format Information
| |
| |
| +-- ...
|
|
+-- 2nd Channel Information
| |
| |
| +-- ...
|
+-- ...
The Dublin Core elements take their accepted meanings. The <dc:subject> element should consist of a comma separated list of keywords.
Elements from the OCS schema are described below
- <ocs:image>
- This optional element is the URL of an image that should be used when displaying the channel. The image should be 88 pixels wide, 31 pixels high.
- <ocs:language>
- This optional element describes the language of the channel format. If omitted, en (English) is assumed.
- <ocs:format>
- This mandatory element contains a URL that links to the definition of the channel format. Typical examples could be http://my.netscape.com/rdf/simple/0.9/ for RSS, and http://www.scripting.com/dtd/scriptingNews.dtd for scriptingNews.
- <ocs:contentType>
- This optional element contains a standard MIME type for the content such as text/html or text/plain.
- <ocs:updatePeriod>
- This optional element is used to describe the period over which the channel format is updated. Acceptable values are: Hourly, Daily, Weekly, Monthly, Yearly. If omitted, daily is assumed.
- <ocs:updateFrequency>
- This optional element is used to describe the frequency of updates in relation to the update period. The value indicates how many times in that period the channel is updated. For example, an updatePeriod of daily, and an updateFrequency of 2 indicates the channel format is updated twice daily. If omitted a value of 1 is assumed for this element. Note, this element's value must be a positive integer greater than zero.
- <ocs:updateBase>
- This optional element defines a base date which can be used to calculate the publishing schedule. The date format takes the form: yyyy-mm-ddThh:mm
Who is Using OCS?
- The RSS Maker channel listing is now being published as an OCS version 0.3 listing
- XMLTree is publishing it's entire list of channels in OCS Directory format
- Carmen's Headline Viewer can read in channels from OCS Directory lists
OCS Example
<?xml version="1.0"?> <rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ocs = "http://InternetAlchemy.org/ocs/ocs-syntax#" xmlns:dc = "http://purl.org/metadata/dublin_core#"> <!-- This is information about this channel listing --> <!-- The about attribute points to the directory file, usually the same file as the one being parsed --> <rdf:description about="http://InternetAlchemy.org/ocs/ocsdirectory.rdf"> <!-- This section contains information about the channel directory listing --> <dc:title>Internet Alchemy OCS Directory</dc:title> <dc:creator>Ian Davis (mailto:iand@fdc.co.uk)</dc:creator> <dc:description>This is a list of channels available at Internet Alchemy</dc:description> <!-- This is the first channel available --> <rdf:description about="http://InternetAlchemy.org"> <!-- Information about the channel --> <dc:title>Internet Alchemy</dc:title> <dc:creator>Ian Davis (mailto:iand@fdc.co.uk)</dc:creator> <dc:description>Internet Alchemy is a random collection of elements</dc:description> <dc:subject>Technology, Java, XML, Web Design</dc:subject> <ocs:image>http://InternetAlchemy.org/images/alchemylogo.gif</ocs:image> <!-- This is the first format for this channel --> <!-- Information about the RSS version of Internet Alchemy --> <rdf:description about="http://InternetAlchemy.org/alchemyrss.xml"> <ocs:language>en</ocs:language> <ocs:format>http://my.netscape.com/rdf/simple/0.9/</ocs:format> <ocs:updatePeriod>hourly</ocs:updatePeriod> <ocs:updateFrequency>2</ocs:updateFrequency> <ocs:updateBase>1999-05-30T00:00</ocs:updateBase> </rdf:description> <!-- This is the second format for this channel --> <!-- Information about the possible scriptingNews version of Internet Alchemy --> <rdf:description about="http://InternetAlchemy.org/scriptingnews.xml"> <ocs:language>en</ocs:language> <ocs:format>http://www.scripting.com/dtd/scriptingNews.dtd</ocs:format> <ocs:updatePeriod>daily</ocs:updatePeriod> <ocs:updateFrequency>1</ocs:updateFrequency> <ocs:updateBase>1999-05-30T00:00</ocs:updateBase> </rdf:description> <!-- This is the third format for this channel --> <!-- Information about a plain text version of Internet Alchemy --> <rdf:description about="http://InternetAlchemy.org/plain.txt"> <ocs:language>en</ocs:language> <ocs:contentType>text/plain</ocs:contentType> <ocs:updatePeriod>daily</ocs:updatePeriod> <ocs:updateFrequency>1</ocs:updateFrequency> <ocs:updateBase>1999-05-30T00:00</ocs:updateBase> </rdf:description> </rdf:description> <!-- This is the second channel available --> <rdf:description about="http://InternetAlchemy.org/othernews/"> ... </rdf:description> </rdf:description> </rdf:RDF>
Version History
- Version 0.3
- Removed <ocs:channel> and <ocs:directory> elements
Allowed any Dublin Core elements - Version 0.2
- Redefined OCS in terms of RDF and Dublin Core
- Version 0.1
- Initial draft version