RSS

From W3C Wiki

Fixing RSS 1.0

An attempt to fix RSS 1.0 maintaining a high level of compatibility to previous versions.

Issues

This tries to address following problems of RSS 1.0 version 1.3

  • image as hybrid property/class
  • items-Seq makes it unsuitable to merge the triples of different versions of the same channel
  • missing upper-casing of class-names

Furthermore it makes the following changes to reflect current usage priorities and for simplification

  • deprecates textinput
  • introduces enclosures as more generic replacement for image
  • introduces the icon-property as an easy way to add icons to channels and items
  • the link property id deprecated in favour of specifying that the Channel and Item classes must be named resources and dereferenceable to the representation previously linked by the link-property

Schema

<!--
 
RDF Schema declaration for Rich Site Summary (RSS) 1.0 <http://purl.org/rss/1.0/>

-->

<!-- Uses term_status to say whether the term, is 'stable','unstable','testing' 
or 'deprecated' Note that 'deprecated' isn't listed in danbri's schema-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
		xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
		xmlns:owl="http://www.w3.org/2002/07/owl#"
		xmlns:vs="http://www.w3.org/2003/06/sw-vocab-status/ns#"
		xmlns:foaf="http://xmlns.com/foaf/0.1/"
		xmlns:wot="http://xmlns.com/wot/0.1/"
		xmlns:dc="http://purl.org/dc/elements/1.1/"
		xml:base="http://purl.org/rss/1.0">
	
	<rdf:Description rdf:about="">
		<dc:title>The RSS 1.0v1.4 Voabulary</dc:title>
		<rdfs:comment>A vocabulary for describing syndicated news items and news 
		channels</rdfs:comment>
	</rdf:Description>
	
	<rdfs:Class rdf:about="http://purl.org/rss/1.0/channel" rdfs:label="channel" 
	rdfs:comment="An RSS information channel.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
		<vs:term_status>deprecated</vs:term_status>
		<rdfs:subClassOf rdf:resource="http://purl.org/rss/1.0/Channel"/>
	</rdfs:Class>
	
	<rdfs:Class rdf:about="http://purl.org/rss/1.0/Channel" rdfs:label="Channel" 
	rdfs:comment="An RSS information channel.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdfs:Class>

	
	<rdfs:Class rdf:about="http://purl.org/rss/1.0/image" rdfs:label="Image" 
	rdfs:comment="An RSS image. DEPRECATED: use icon or enclosure properties 
	instead">
		<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Property" />
		<vs:term_status>deprecated</vs:term_status>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdfs:Class>
	
	<rdfs:Class rdf:about="http://purl.org/rss/1.0/item" rdfs:label="Item" 
	rdfs:comment="An RSS item.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
		<vs:term_status>deprecated</vs:term_status>
		<rdfs:subClassOf rdf:resource="http://purl.org/rss/1.0/Item"/>
	</rdfs:Class>
	
	<rdfs:Class rdf:about="http://purl.org/rss/1.0/Item" rdfs:label="Item" 
	rdfs:comment="An (news) item that can be contained in a channel.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdfs:Class>
	
	<rdfs:Class rdf:about="http://purl.org/rss/1.0/Enclosure" 
	rdfs:label="Enclosure" rdfs:comment="Represent an enclosure of an (multimedia)
	resource in a channel or item. Typical properties include title, format, 
	enclosed.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdfs:Class>
	
	<rdfs:Class rdf:about="http://purl.org/rss/1.0/textinput" rdfs:label="Text 
	Input" rdfs:comment="An RSS text input.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
		<vs:term_status>deprecated</vs:term_status>
	</rdfs:Class>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/items" rdfs:label="Items" 
	rdfs:comment="Points to a list of rss:item elements that are members of the 
	subject channel. DEPRECATED: the items are associated to a channel with the 
	inChannel property. Usually they are sorted by date.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
		<vs:term_status>deprecated</vs:term_status>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/title" rdfs:label="title" 
	rdfs:comment="A descriptive title for the channel.">
		<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/title"/>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/link" rdfs:label="link" 
	rdfs:comment="The URL to which an HTML rendering of the subject will link. 
	DEPRECATED: Items and Channel can be dereferenced to a suitable 
	representation, additionally rdfs:seeAlso may be used to point to further 
	resources">
		<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/identifier"/>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
		<vs:term_status>deprecated</vs:term_status>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/url" rdfs:label="URL" 
	rdfs:comment="The URL of the image to used in the 'src' attribute of the 
	channel's image tag when rendered as HTML.">
		<rdfs:subPropertyOf 
			rdf:resource="http://purl.org/dc/elements/1.1/identifier"/>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
		<vs:term_status>deprecated</vs:term_status>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/description" 
	rdfs:label="Description" rdfs:comment="A short text description of the 
	subject.">
		<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/description"/>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/releaseDate" 
	rdfs:label="releaseDate" rdfs:comment="The date the subject was release. By default 
        this is the primary Sorting criterium for the items">
		<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/date"/>
		<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#date"/>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/inChannel" 
	rdfs:label="inChannel" rdfs:comment="Indicates a channel witch features the 
	subject.">
		<rdfs:domain rdf:resource="http://purl.org/dc/elements/1.1/Item"/>
		<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/Channel"/>
		<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/description"/>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/enclosure" 
	rdfs:label="enclosure" rdfs:comment="Indicates ecnlosed content of the subject
	(image, sound, etc)">
		<rdfs:domain rdf:resource="http://purl.org/dc/elements/1.1/Item"/>
		<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/Enclosure"/>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/icon" rdfs:label="icon" 
	rdfs:comment="Indicates a primary icon of the subject, the object is a named 
	resource which is dereferenceable as an icon.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/format" rdfs:label="format" 
	rdfs:comment="the mymetype of the subject">
		<rdfs:domain rdf:resource="http://purl.org/dc/elements/1.1/Enclosure"/>
		<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/elements/1.1/description"/>
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/enclosed" 
	rdfs:label="enclosed" rdfs:comment="The Document encloused with an enclosure">
		<rdfs:domain rdf:resource="http://purl.org/dc/elements/1.1/Enclosure"/>
		<rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Document" />
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
	</rdf:Property>
	
	<rdf:Property rdf:about="http://purl.org/rss/1.0/name" rdfs:label="Name" 
	rdfs:comment="The text input field's (variable) name.">
		<rdfs:isDefinedBy rdf:resource="http://purl.org/rss/1.0/"/>
		<vs:term_status>deprecated</vs:term_status>
	</rdf:Property>
</rdf:RDF>


Examples

Compact

This examples does not use any deprecated features, at the price that old aggregators may not be able to parse it correctly:


<?xml version="1.0"?>

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/">
    
  <Channel rdf:about="http://www.xml.com/xml/news">
    <title>XML.com</title>
    <description>
      XML.com features a rich mix of information and services
      for the XML community.
    </description>
    <icon rdf:resource="http://xml.com/universal/images/xml_tiny" />
  </Channel>
    
  <Item rdf:about="http://xml.com/pub/2000/08/09/xslt/xslt.html">
    <title>Processing Inclusions with XSLT</title>
    <description>
     Processing document inclusions with general XML tools can be
     problematic. This article proposes a way of preserving inclusion
     information through SAX-based processing.
    </description>
    <enclosure rdf:parseType="Resource">
      <title>The speech</title>
      <enclosed rdf:resource="http://http://xml.com/pub/2000/08/09/speech.ogg" />
      <format>audio/ogg</format>
    </enclosure>
    <releaseDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1999-08-16</releaseDate>
    <inChannel rdf:resource="" />
  </Item>
  <Item rdf:about="http://xml.com/pub/2000/08/09/rdfdb/index.html">
    <title>Putting RDF to Work</title>
    <link>http://xml.com/pub/2000/08/09/rdfdb/index.html</link>
    <description>
     Tool and API support for the Resource Description Framework
     is slowly coming of age. Edd Dumbill takes a look at RDFDB,
     one of the most exciting new RDF toolkits.
    </description>
    <releaseDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1999-08-14</releaseDate>
    <inChannel rdf:resource="" />
  </Item>

</rdf:RDF>


Compatible

This examples uses deprecated properties and classes to be more compatible with consumers following a spec previous to 1.4. For old parsers it looks like and old feed containing not-understood (but legal) elements resp. triples. New parsers will identify some types and properties as deprecated an ignore them.


<?xml version="1.0"?>

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/">
    
  <channel rdf:about="http://www.xml.com/xml/news">
    <rdf:type rdf:resource="http://purl.org/rss/1.0/Channel"/>
    <link>http://www.xml.com/xml/news</link>
    <title>XML.com</title>
    <description>
      XML.com features a rich mix of information and services
      for the XML community.
    </description>
    <icon rdf:resource="http://xml.com/universal/images/xml_tiny" />
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://xml.com/pub/2000/08/09/xslt/xslt.html" />
        <rdf:li rdf:resource="http://xml.com/pub/2000/08/09/rdfdb/index.html" />
      </rdf:Seq>
    </items>
  </channel>
    
  <item rdf:about="http://xml.com/pub/2000/08/09/xslt/xslt.html">
    <rdf:type rdf:resource="http://purl.org/rss/1.0/Item"/>
    <link>http://xml.com/pub/2000/08/09/xslt/xslt.html</link>
    <title>Processing Inclusions with XSLT</title>
    <description>
     Processing document inclusions with general XML tools can be
     problematic. This article proposes a way of preserving inclusion
     information through SAX-based processing.
    </description>
    <enclosure rdf:parseType="Resource">
      <title>The speech</title>
      <enclosed rdf:resource="http://http://xml.com/pub/2000/08/09/speech.ogg" />
      <format>audio/ogg</format>
    </enclosure>
    <releaseDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1999-08-16</releaseDate>
    <inChannel rdf:resource="" />
  </item>
 
  <item rdf:about="http://xml.com/pub/2000/08/09/rdfdb/index.html">
    <rdf:type rdf:resource="http://purl.org/rss/1.0/Item"/>
    <link>http://xml.com/pub/2000/08/09/xslt/xslt.html</link>
    <title>Putting RDF to Work</title>
    <link>http://xml.com/pub/2000/08/09/rdfdb/index.html</link>
    <description>
     Tool and API support for the Resource Description Framework
     is slowly coming of age. Edd Dumbill takes a look at RDFDB,
     one of the most exciting new RDF toolkits.
    </description>
    <releaseDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1999-08-14</releaseDate>
    <inChannel rdf:resource="" />
  </item>

</rdf:RDF>