Current Version: 1.0 (Draft)
Permission to use, copy, modify and distribute the RSS 1.0/2.0 TrackBack Module Specification and its accompanying documentation for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies. The copyright holders make no representation about the suitability of the specification for any purpose. It is provided "as is" without expressed or implied warranty.
This copyright applies to the RSS 1.0/2.0 TrackBack Module Specification and accompanying documentation and does not extend to the RSS Module's format itself.
The RSS TrackBack module builds off of the TrackBack system originally developed by the MovableType personal publishing system. TrackBack is a peer-to-peer framework designed to allow communication between websites. TrackBack enabled websites communicate via "pings," where each ping informs the receiving site that the sending site has made a reference to a post (or possibly a category) on the receiving site.
TrackBack pings are sent to TrackBack URLs. A TrackBack URL is a unique URL associated with a post (or possibly a category) that can receive TrackBack pings. A request is made through HTTP GET to the ping URL, which generally looks like this:
where ID is the ID of the TrackBack item.
This module uses TrackBack URLs in a such a way as to allow RSS items to communicate how they can be pinged, as well as TrackBack URLs they have pinged.
RSS 1.0 (RDF Site Summary) and RSS 2.0 (Really Simple Syndication) have different data models. As a result, the syntax of this module will vary between the two formats. The meaning of the various elements remains essentially the same between the two.
trackback:ping is a sub-element of an RSS item, and contains the item's TrackBack URL. Each RSS item may contain only one instance of trackback:ping
The following example shows an RSS item element including its TrackBack URL in an RSS 1.0 feed
<!-- beginning of RSS document omitted for brevity -->
<item rdf:about="http://foo.com/weblog/2002/09/23/tb_in_rss.html">
<title>TrackBack in RSS</title>
<link>http://foo.com/weblog/2002/09/23/tb_in_rss.html</link>
<description>Through the magic of modules, RSS now supports TrackBack!</description>
<trackback:ping rdf:resource="http://foo.com/trackback/tb.cgi?tb_id=20020923"/>
</item>
<!-- the rest of the RSS document continues below -->
The following example shows an RSS item element including its TrackBack URL in an RSS 2.0 feed
<!-- beginning of RSS document omitted for brevity -->
<item>
<title>TrackBack in RSS</title>
<link>http://foo.com/weblog/2002/09/23/tb_in_rss.html</link>
<description>Through the magic of modules, RSS now supports TrackBack!</description>
<trackback:ping>http://foo.com/trackback/tb.cgi?tb_id=20020923</trackback:ping>
</item>
<!-- the rest of the RSS document continues below -->
In essence, these RSS items are now saying, "My TrackBack URL is located at http://foo.com/trackback/tb.cgi?tb_id=20020923."
trackback:about is a sub-element of an RSS item, and contains a TrackBack URL that was pinged in reference to this RSS item. Each RSS item may contain zero or more instances of trackback:about.
The following example shows an RSS item element that, in addition to including its TrackBack URL, includes a reference to a TrackBack URL it has pinged in an RSS 1.0 feed
<!-- beginning of RSS document omitted for brevity -->
<item rdf:about="http://bar.com/weblog/rss_plus_trackback.html">
<title>RSS + TrackBack = Fun!</title>
<link>http://bar.com/weblog/rss_plus_trackback.html</link>
<description>I just found out that I can put TrackBack data in my RSS feed. How cool is that!?</description>
<trackback:ping rdf:resource="http://bar.com/tb.cgi?tb_id=rssplustrackback"/>
<trackback:about rdf:resource="http://foo.com/trackback/tb.cgi?tb_id=20020923"/>
</item>
<!-- the rest of the RSS document continues below -->
The following example shows an RSS item element that, in addition to including its TrackBack URL, includes a reference to a TrackBack URL it has pinged in an RSS 2.0 feed.
<!-- beginning of RSS document omitted for brevity -->
<item>
<title>RSS + TrackBack = Fun!</title>
<link>http://bar.com/weblog/rss_plus_trackback.html</link>
<description>I just found out that I can put TrackBack data in my RSS feed. How cool is that!?</description>
<trackback:ping>http://bar.com/tb.cgi?tb_id=rssplustrackback</trackback:ping>
<trackback:about>http://foo.com/trackback/tb.cgi?tb_id=20020923</trackback:about>
</item>
<!-- the rest of the RSS document continues below -->
In essence, these RSS items are now saying, "My TrackBack URL is located at http://bar.com/tb.cgi?tb_id=rssplustrackback. I also pinged http://foo.com/trackback/tb.cgi?tb_id=20020923 in reference to this item."
The inclusion of TrackBack data in RSS feeds allows for the further automation of the TrackBack process. Currently, users wanting to send a TrackBack ping either must first locate the TrackBack URL and then enter it into their weblog tool, or use a "Bookmarklet" to extract this information from a page. With TrackBack data embedded in RSS, properly designed software applications can now automatically handle the discovery of the TrackBack URL, and ping it when appropriate. Tools designed around RSS aggregation can use the embedded TrackBack information to infer connections between posts.