Difference between revisions of "AtomPub"

From BC$ MobileTV Wiki
Jump to: navigation, search
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Image:atom-feed-icon-64x64.png|100|ATOM An event/update publishing protocol]]
+
[[Image:atom-feed-icon-64x64.png|120px|right|ATOM An event/update publishing protocol]]
 
The '''Atom''' '''Pub'''lising protocol (commonly abbreviated ''AtomPub'') is a data format and publishing mechanism for making content easily available, indexable and searchable on the [[world wide web]].
 
The '''Atom''' '''Pub'''lising protocol (commonly abbreviated ''AtomPub'') is a data format and publishing mechanism for making content easily available, indexable and searchable on the [[world wide web]].
  
Line 8: Line 8:
 
== Specification ==
 
== Specification ==
  
ATOM is the name of a family of data formats and procotols, separated into two main subtypes: '''Atom Publishing Protocol''' (commonly abbreviated ''AtomPub'' or ''APP'') and Atom Syndication Format (Atom). Atom Publishing protocol is an application level protocol for both publishing and editing web resources using HTTP and XML (i.e. a RESTful protocol for data feeds); whereas Atom Syndication Format is an XML-based document format that describes lists of related information known as "feeds", which are composed of a number of items, known as "entries", each with an extensible (unconstrained by a strict DTD/XSD) set of attached metadata.<ref>Atom Publishing Protocol (APP) and Atom Syndication Format (ATOM): http://library.skjworld.com/internet/atom-publishing-protocol</ref>
+
ATOM is the name of a family of data formats and procotols, separated into two main subtypes: '''Atom Publishing Protocol''' (commonly abbreviated ''AtomPub'' or ''APP'') and '''Atom Syndication Format''' (commonly abbreviated ''Atom'' or ''Atom Feed'').  
 +
 
 +
''AtomPub'' is an application-level protocol for both publishing and editing web resources using HTTP and XML (i.e. a [[REST]]ful protocol for data feeds); whereas ''Atom'' is an XML-based document format that describes lists of related information known as "feeds", which are composed of a number of items, known as "entries", each with an extensible (unconstrained by a strict DTD/XSD) set of attached metadata.<ref>Atom Publishing Protocol (APP) and Atom Syndication Format (ATOM): http://library.skjworld.com/internet/atom-publishing-protocol</ref>
  
 
=== Publishing ===
 
=== Publishing ===
  
The Atom Publishing Protocol namespace is as follows:  
+
The '''Atom Publishing Protocol''' namespace is as follows:  
 
  http://www.w3.org/2007/app
 
  http://www.w3.org/2007/app
  
 
* The Atom Publishing Protocol spec: http://tools.ietf.org/html/rfc5023
 
* The Atom Publishing Protocol spec: http://tools.ietf.org/html/rfc5023
* Atom Publishing Protocol guide:  
+
* The Atom Syndication Format: https://tools.ietf.org/html/rfc4287
 +
* Atom Publishing Protocol guide: http://www.atomenabled.org/developers/tutorials/api-quick-guide/
  
  
 
=== Syndication ===
 
=== Syndication ===
  
The Atom Syndication Format namespace is as follows:  
+
The '''Atom Syndication Format''' namespace is as follows:  
 
  http://www.w3.org/2005/Atom
 
  http://www.w3.org/2005/Atom
  
 
* The Atom Syndication Format spec: http://tools.ietf.org/html/rfc4287
 
* The Atom Syndication Format spec: http://tools.ietf.org/html/rfc4287
 
* Atom Syndication Format guide: http://www.atomenabled.org/developers/syndication/
 
* Atom Syndication Format guide: http://www.atomenabled.org/developers/syndication/
 
 
 
  
 
== EXAMPLE ==
 
== EXAMPLE ==
Line 56: Line 56:
 
</pre>
 
</pre>
 
<ref>AtomEnabled - Sample Feed: http://www.atomenabled.org/developers/syndication/#sampleFeed</ref>
 
<ref>AtomEnabled - Sample Feed: http://www.atomenabled.org/developers/syndication/#sampleFeed</ref>
 +
 +
 +
 +
== RSS 2.0 .vs. ATOM 1.0 ==
 +
 +
Use-cases are important when considering which feed format to publish your data in. Based on the understanding gained researching<ref>LAWTECH GURU BLOG by Jeff Beard: http://www.lawtechguru.com/archives/2004/02/13_the_great_rss_vs_atom_news_feed_debate.html</ref>, past experience with both formats<ref>BCmoney RSS - Newest Videos: http://bcmoney-mobiletv.com/rss/new/</ref><ref>BCmoney Groups - Discussions: http://bcmoney-mobiletv.com/groups/atom</ref> and the specifications themselves:
 +
 +
ATOM
 +
- Lists of Users (extended via FOAF)
 +
- User Activities (i.e. shared links, status updates; extended via ActivityStrea.ms)
 +
- Group Discussions (extended via SIOC)
 +
- Full Content Feeds (i.e. entire news articles; possibly extended via NewsML, SportsML, DublinCore or others)
 +
 +
 +
RSS
 +
- Summary of general website updates (new articles, blog posts, comments, etc)
 +
- Video Sitemaps (extended via Yahoo!'s MediaRSS)
 +
- Search results (sharing a site's search results; extended via OpenSearch module)
 +
- New files added to servers (i.e. torrents, portfolio work etc, extended via E-Commerce)
 +
 +
  
  
Line 61: Line 82:
  
 
* Known ATOM feeds: http://intertwingly.net/wiki/pie/KnownAtomFeeds
 
* Known ATOM feeds: http://intertwingly.net/wiki/pie/KnownAtomFeeds
 +
* '''The world of Syndication -- Atom 1.0 vs. RSS 2.0?''': http://blogs.iis.net/vsood/archive/2008/10/06/the-world-of-syndication-atom-1-0-vs-rss-2-0.aspx
 +
* RSS 2.0 and Atom 1.0 compared: http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared
 +
 +
 +
== Tutorials ==
  
 +
* ASP, PHP, and JS Atom DateTime format conversion (to human-readable calendar date): http://blog.netnerds.net/2006/04/php-format-atom-date/
 +
* How the WCF Syndication Object Model Maps to Atom and RSS: https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-the-wcf-syndication-object-model-maps-to-atom-and-rss
  
 
== External Links ==
 
== External Links ==
Line 67: Line 95:
 
* The Web, The Browser And AtomPub: http://www.infoq.com/news/2009/04/web-browser-atompub
 
* The Web, The Browser And AtomPub: http://www.infoq.com/news/2009/04/web-browser-atompub
 
* PHP Atom Server: http://www.sitepoint.com/blogs/2004/09/09/php-atom-server/
 
* PHP Atom Server: http://www.sitepoint.com/blogs/2004/09/09/php-atom-server/
 +
* Atom vs. RSS Feed: http://www.freemarketingzone.com/rss/atom-vs-rss.html
 +
* RSS vs. Atom - What’s the Big Deal?: http://www.problogger.net/archives/2006/03/30/rss-vs-atom-whats-the-big-deal/
  
  
Line 76: Line 106:
 
== See Also ==
 
== See Also ==
  
[[RSS]]
+
[[Event]]s | [[Data Portability]] | [[RSS]] | [[Podcast]] | [[OPML]] | [[ActivityStreams]]
  
 
[[Category:Data Language]]
 
[[Category:Data Language]]

Latest revision as of 10:58, 30 March 2020

ATOM An event/update publishing protocol

The Atom Publising protocol (commonly abbreviated AtomPub) is a data format and publishing mechanism for making content easily available, indexable and searchable on the world wide web.


Atom is (arguably) best-suited for activity groups, discussions, forums and chronological (sequential) events or actions.


Specification

ATOM is the name of a family of data formats and procotols, separated into two main subtypes: Atom Publishing Protocol (commonly abbreviated AtomPub or APP) and Atom Syndication Format (commonly abbreviated Atom or Atom Feed).

AtomPub is an application-level protocol for both publishing and editing web resources using HTTP and XML (i.e. a RESTful protocol for data feeds); whereas Atom is an XML-based document format that describes lists of related information known as "feeds", which are composed of a number of items, known as "entries", each with an extensible (unconstrained by a strict DTD/XSD) set of attached metadata.[1]

Publishing

The Atom Publishing Protocol namespace is as follows:

http://www.w3.org/2007/app


Syndication

The Atom Syndication Format namespace is as follows:

http://www.w3.org/2005/Atom

EXAMPLE

 <?xml version="1.0" encoding="utf-8"?>
 <feed xmlns="http://www.w3.org/2005/Atom">
   <title>Example Feed</title>
   <subtitle>A subtitle.</subtitle>
   <link href="http://example.org/feed/" rel="self" />
   <link href="http://example.org/" />
   <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
   <updated>2011-03-08T11:30:02Z</updated>
   <author>
     <name>John Doe</name>
   </author>
   <entry>
     <title>Atom-Powered Robots Run Amok</title>
     <link href="http://example.org/2003/12/13/atom03" />
     <link rel="alternate" type="text/html" href="http://example.org/2003/12/13/atom03.html#comment"/>
     <link rel="edit" href="http://example.org/2003/12/13/atom03/edit"/>
     <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
     <updated>2003-12-13T18:30:02Z</updated>
     <summary>Some amount of text (anything from the first paragraph to the entire story, and everything in between).</summary>
   </entry>
 </feed>

[2]


RSS 2.0 .vs. ATOM 1.0

Use-cases are important when considering which feed format to publish your data in. Based on the understanding gained researching[3], past experience with both formats[4][5] and the specifications themselves:

ATOM - Lists of Users (extended via FOAF) - User Activities (i.e. shared links, status updates; extended via ActivityStrea.ms) - Group Discussions (extended via SIOC) - Full Content Feeds (i.e. entire news articles; possibly extended via NewsML, SportsML, DublinCore or others)


RSS - Summary of general website updates (new articles, blog posts, comments, etc) - Video Sitemaps (extended via Yahoo!'s MediaRSS) - Search results (sharing a site's search results; extended via OpenSearch module) - New files added to servers (i.e. torrents, portfolio work etc, extended via E-Commerce)



Resources


Tutorials

External Links


References

  1. Atom Publishing Protocol (APP) and Atom Syndication Format (ATOM): http://library.skjworld.com/internet/atom-publishing-protocol
  2. AtomEnabled - Sample Feed: http://www.atomenabled.org/developers/syndication/#sampleFeed
  3. LAWTECH GURU BLOG by Jeff Beard: http://www.lawtechguru.com/archives/2004/02/13_the_great_rss_vs_atom_news_feed_debate.html
  4. BCmoney RSS - Newest Videos: http://bcmoney-mobiletv.com/rss/new/
  5. BCmoney Groups - Discussions: http://bcmoney-mobiletv.com/groups/atom


See Also

Events | Data Portability | RSS | Podcast | OPML | ActivityStreams