RSS and Atom in the Social Web


Published on

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

RSS and Atom in the Social Web

  1. 1. RSS and Atom in the Social Web Dr. Harry Chen CMSC 491S/691S March 10, 2008
  2. 2. Agenda <ul><li>RSS and Atom – history and differences </li></ul><ul><li>Their use in Social Web applications </li></ul><ul><li>Atom Publishing Protocol </li></ul><ul><li>Publishing RSS in gnizr </li></ul>
  3. 3. What’s RSS? RSS R eally S imple S yndication (RSS 2.0) R DF S ite S ummary (RSS 1.0, RSS 0.90) R ich S ite S ummary (RSS 0.91) There is a story behind all those names…
  4. 4. Before RSS (before 1997) <ul><li>Before blogs and feeds, PointCast experimented news “push and pull”. </li></ul>
  5. 5. The Birth of RDF <ul><li>PointCast technology was later succeed by the Meta Content Framework (MCF) sometimes btw. 1995-97 by R.V. Guha*. </li></ul><ul><ul><li>Guha left Apple and joined Netscape. </li></ul></ul><ul><li>In 1997, Guha led the creation of Resource Description Framework (RDF) </li></ul>* Guha now leads Google Custom Search @ Google
  6. 6. <ul><li>Netscape created “My Netscape” portal in 1999. </li></ul><ul><li>RDF was used to created a language for describing content information in the portal. </li></ul><ul><li>RSS 0.90 was born. </li></ul><ul><li>RSS 0.91 followed (mainly cleanups) </li></ul><ul><li>… the end of RSS at Netscape. (~1999) </li></ul>The Birth of RSS Note: RSS has its roots in RDF
  7. 7. RSS at the Forkroad RSS-Dev Working Group (R.V. Guha) Dave Winer RSS 0.91 RSS 1.0 (Dec. 2000) RSS 0.93, 0.94 (withdrawn) RSS 2.0 (Sept 2002)
  8. 8. The Birth of Confusion <ul><li>So many different syndication formats. </li></ul><ul><ul><li>RSS 0.90, RSS 0.91 </li></ul></ul><ul><ul><li>RSS 0.93, RSS 0.94 </li></ul></ul><ul><ul><li>RSS 1.0 </li></ul></ul><ul><ul><li>RSS 2.0 </li></ul></ul><ul><li>The Community was confused. </li></ul><ul><ul><li>Which format should I use? </li></ul></ul><ul><ul><li>If want to make changes, who should I talk to? </li></ul></ul>
  9. 9. Timeline Source: Where did this come from?
  10. 10. Atom <ul><li>Atom is a syndication format </li></ul><ul><li>Created because the official RSS 2.0 spec. doesn’t permit changes </li></ul><ul><ul><li>for stability reasons </li></ul></ul><ul><li>Since no one “owns” RSS, it’s difficult to create new iterative standards based either 1.0 or 2.0 </li></ul><ul><li>The Community sees Atom as the solution to the problem. </li></ul>AtomEnabled
  11. 11. About Atom <ul><li>XML, not RDF </li></ul><ul><li>Two different specifications </li></ul><ul><ul><li>Atom Format Syndication </li></ul></ul><ul><ul><li>Atom Publishing Protocol </li></ul></ul>
  12. 12. RSS vs. Atom
  13. 13. Overview <ul><li>RSS 1.0 </li></ul><ul><li>RSS 2.0 </li></ul><ul><li>Atom 1.0 </li></ul>Examples are adopted from
  14. 14. RSS 1.0 <ul><li>Is an RDF document </li></ul><ul><li>“ Channel” has a list of “Items” </li></ul><ul><li>An “Item” has a “title”, “link”, “description” etc. </li></ul>
  15. 15. RSS 1.0 and RDF <ul><li>Because it’s an RDF document, it’s easy to extend a syndication document with additional RDF description </li></ul><ul><ul><li>Dublin Core (DC) </li></ul></ul>
  16. 16. RSS 2.0 <ul><li>An XML document </li></ul><ul><li>Not RDF </li></ul>
  17. 17. XML Namespace in RSS 2.0 <ul><li>RSS 2.0 doesn’t permit spec changes, but it allows the use of “external module” </li></ul><ul><li>New modules (i.e., vocabularies) can be introduced using XML Namespace </li></ul><ul><ul><li>Similar to what’s permitted in RSS 1.0 </li></ul></ul>
  18. 18. Atom <ul><li>An XML document; defines some useful syndication concepts that are missing RSS 1.0 and RSS 2.0 </li></ul>
  19. 19. Why Atom 1.0 maybe better than RSS 2.0 <ul><li>RSS 2.0 is probably more widely used than Atom 1.0 </li></ul><ul><li>However, Atom 1.0 few useful features </li></ul>
  20. 20. RSS 2.0 Content Encoding <ul><li>RSS 2.0 allows both plain text and escaped HTML (‘&’  ‘&amp;’) </li></ul><ul><li>But, no way to tell a client that which encoding scheme is currently being used. </li></ul><ul><ul><li>This makes the client implementation difficult </li></ul></ul><ul><ul><li>In the open Web, software must implement addition logic to detect the encode scheme. </li></ul></ul>
  21. 21. Atom Content Encoding <ul><li>Atom allows the encoding schema to be explicitly labeled </li></ul><ul><ul><li>Plain text (default) </li></ul></ul><ul><ul><li>Escaped HTML </li></ul></ul><ul><ul><li>Well-format XHTML </li></ul></ul><ul><ul><li>Some other XML vocabulary (not XHTML) </li></ul></ul><ul><ul><li>Base64 binary content </li></ul></ul><ul><ul><li>A “pointer” to Web content not included in the feed </li></ul></ul>
  22. 22. Content Description <ul><li>Full content vs. Partial content </li></ul><ul><li>RSS 2.0: Can’t explicitly describe whether the content is “partial” or “full” </li></ul><ul><ul><li>Only <description/> is available </li></ul></ul><ul><li>Atom 1.0: Can choose to use <summary/> or <content/> </li></ul><ul><ul><li>Full content may be “audio” (binary) </li></ul></ul><ul><ul><li>Summary may be a text translation of the audio </li></ul></ul>
  23. 23. How Social Web Applications Use RSS and Atom
  24. 24. How We Use RSS
  25. 25. RSS & Atom in the Social Web <ul><li>Syndication is an important foundation of the Social Web </li></ul>(1) Pushing news and updates to the users (2) Describing Web resources (3) Publishing and editing Web resources
  26. 26. Pushing News and Updates <ul><li>Social Networking sites exploit RSS to build user loyalty – i.e., “news update! come back often”. </li></ul><ul><li>My News Feed </li></ul><ul><li>Friends’ Mini Feeds </li></ul><ul><li>Friends’ Profile Updates </li></ul><ul><li>Friends’ Updated Photos </li></ul><ul><li>Groups Updates </li></ul><ul><li>Events Updates </li></ul><ul><li>and more …. </li></ul>
  27. 27. Monitor Changes
  28. 28. Enabling Mashups
  29. 29. Describing Web Resources Solution: RSS
  30. 30. Web Resource with Multi-dimensional Properties Resources Relates to a YouTube video (link?) John Smith is in this picture (homepage?) Taken on 2007/12/03 @ 10:00PM Johnny is the photographer (homepage?) Relates to a family trip (trip’s homepage?) Location Piccadilly Square (latitude/longitude?)
  31. 31. Some Examples <ul><li>Many extensions of feed syndication </li></ul><ul><ul><li>GeoRSS – adds geo-location information </li></ul></ul><ul><ul><li>OpenSearch – adds Web search support </li></ul></ul><ul><ul><li>Google Base – adds resource property description </li></ul></ul>
  32. 32. GeoRSS
  33. 33. OpenSearch <ul><li>OpenSearch is a specification for discovering search services and describing search and search results. </li></ul><ul><li>Spec. adds extensions to RSS and Atom </li></ul><ul><li>Search results are described in a syndication document with meta-data about query paging. </li></ul>
  34. 34. OpenSearch example
  35. 35. Google Base <ul><li>An open database of many things </li></ul>
  36. 36. Create a GBase Item Item properties
  37. 37. GBase’s Attributes <ul><li>Extends the Atom spec, GBase defines additional terms for describe GBase Items </li></ul><ul><li>Universal Attributes </li></ul><ul><ul><li>These applies to all things in GBase </li></ul></ul><ul><li>Item Type specific attributes </li></ul><ul><ul><li>These applies to a specific kind of GBase items </li></ul></ul>
  38. 38. Universal Attributes
  39. 39. ItemType specific attributes
  40. 40. Course Schedules (e.g.)
  41. 41. Atom Publishing Protocol
  42. 42. About AtomPub <ul><li>An application-level protocol for publishing and editing Web resources using HTTP and XML. </li></ul>Client Server HTTP GET, POST, DELETE
  43. 43. AtomPub model Remember CRUD?
  44. 44. What can you do with AtomPub? <ul><li>Ask the server for a list of available resources. </li></ul><ul><ul><li>Collections  “folders” or “directories” </li></ul></ul><ul><ul><li>Entries  e.g. blogs or web pages </li></ul></ul><ul><li>Request the server to perform CRUD ops </li></ul>
  45. 45. Create and Read
  46. 46. Update and Delete
  47. 47. Why AtomPub is interesting <ul><li>Many Web 2.0 sites now implement AtomPub </li></ul><ul><ul><li>Google GData API </li></ul></ul><ul><ul><li>WordPress </li></ul></ul><ul><li>GData is the core API for interacting with Google services: Google Apps, Goolge Base, Blogger, Google Calendar, Google Contact, Google Notebook, Picasa Web Albums, YouTube </li></ul>
  48. 48. Summary <ul><li>We’ve come along way in creating syndication formats for the Web, from Pointcast to RSS, from RSS 0.90 to RSS 2.0, and then Atom 1.0. </li></ul><ul><li>Syndications continue to play important role in the Social Web – for pushing updates to the users, and for describing, publishing and editing web resources. </li></ul>
  49. 49. AtomPub and beyond <ul><li>The Web is a computing platform </li></ul><ul><li>We need protocols like the AtomPub that allows resources to be created and updated via HTTP and XML. </li></ul>
  50. 50. Publishing RSS in gnizr