Presentation is loading. Please wait.

Presentation is loading. Please wait.

Presented by: Chuck Cartledge and Carlton Northern

Similar presentations


Presentation on theme: "Presented by: Chuck Cartledge and Carlton Northern"— Presentation transcript:

1 Presented by: Chuck Cartledge and Carlton Northern
Atom: The Atom Syndication Format RFC M. Nottingham and R. Sayre (editors) and hAtom 0.1 David Janes, Benjamin Carlyle, and Tantek Celik Presented by: Chuck Cartledge and Carlton Northern

2 CS-791/891 Web Syndication Formats, ODU, Spring 2008
Trying to set the tone. “In the Developer’s Bars of the world – those dark, sordid places filled with grizzled coders and their clans – a special corner is always reserved for the developers of content-syndication standards. There, weeping in their beer, you’ll find veterans of a long and difficult process. Most likely, they will have the Thousand Yard Stare of those who have seen more than they should. The standards you read about in the this book were not born fresh and innocent, of a streamlined process overseen by the Wise and Good. Rather the following chapters have been dragged into the world and tempered through brawls, knife fights, and the occasional riot.” Ben Hammersley, “Developing Feeds with RSS and Atom,” O’Reilly Media, Inc., 2005, ISBN CS-791/891 Web Syndication Formats, ODU, Spring 2008 2

3 What we will cover and how
What are RFCs and why should we care Where Atom fits in the Grand Scheme of things How Atom compares with RSS How Atom compares with RSS 2.0 Atom, the RFC Atom, the Simplest Feed Demonstration of Atom Feeds What hAtom is, and why we care Microformats Relationship between Atom and hAtom? Our conclusions Questions for you CS-791/891 Web Syndication Formats, ODU, Spring 2008 3

4 What is an RFC and why should we care?
Request for Comments (RFCs) are the glue that allows the I’net to work Draft RFCs (Internet Drafts) are submitted to the Internet Engineering Task Force (IETF) for review and comments IDs are assigned a sequential number and released for comment RFCs are the standards that anyone wanting to “play” on the I’net have to adhere to RFCs that we have addressed in class – 4287, 5005, 4685, 4946, 5023, RFCs that it would be nice to address in class – 1149 and 2549 The I’net works because people do things IAW the RFCs. It is the “law.” CS-791/891 Web Syndication Formats, ODU, Spring 2008 4

5 CS-791/891 Web Syndication Formats, ODU, Spring 2008
A Look Back in Time “Nothing exists except atoms and empty space; everything else is opinion.” Democritus, a Greek philosopher (460 – 370 BCE) CS-791/891 Web Syndication Formats, ODU, Spring 2008

6 How does Atom fit into the Grand Scheme of Things?
“… in 2003, it became painfully clear that the RSS world was not going to declare a truce and agree to sort things out … a large group of developers split off to design a new format from the ground up. After much tooing, foring, cogitating, and argument, not the least over the name of the thing, a format has arisen: the Atom Syndication Format.” Ben Hammersley, “Developing Feeds with RSS and Atom,” O’Reilly Media, Inc., 2005, ISBN CS-791/891 Web Syndication Formats, ODU, Spring 2008 6

7 How does Atom compare with RSS?
“So, there are now two basic formats for syndicating a web site. RSS is older with many different versions, Atom is newer, more standard, and only beginning to be adopted. Atom was constructed to work across a wide variety of platforms and devices.” Atom is documented in RFCs 4287 The Atom Syndication Format, Dec. 2005 4685 Atom Threading Extensions, Sept 2006 5023 The Atom Publishing Protocol , Oct. 2007 RSS has various flavors and mutually incompatible implementations CS-791/891 Web Syndication Formats, ODU, Spring 2008 7

8 How does Atom compare to RSS 2.0?
Content model – plain text or escaped HTML, no way to distinguish Date formats – based on RFC 822 Internationalization – can identify feed, but not items Modularity/reuse – not part of the design Atom Content model – explicitly and unambiguously labels the type of content being provided by the entry Date formats – based on RFC 3339 (a subset of ISO 8601) Internationalization – uses xml:lang to make it possible to specify a language for every piece of human readable content Modularity/reuse – specifically designed to allow elements to be reused Atom gives a good deal of info about the resource and the content, but leaves the meaning of the content to RSS CS-791/891 Web Syndication Formats, ODU, Spring 2008 8

9 A Cricket Topical Comparison
<?xml version="1.0"?> <rdf:RDF xmlns:rdf=" xmlns=" <channel>      <title>ICC</title>      <link>      <description> Cricket around the world </description> </channel> <textinput> <title>Send</title> </textinput> <item>      <title>Lethal Lee grabs five</title>      <link> </link> <description> Fast bowler Brett Lee took five wickets, including three in seven balls late in the innings, to help Australia beat Srilanka by 18 runs in a free-scoring tri-series ODI on Sunday. </description>   </item> </rdf:RDF> <?xml version="1.0" encoding="utf-8"?> <feed xmlns="   <title>ICC</title>   <link>   <summary> Cricket around the world</ summary > <entry>    <title>Lethal Lee grabs five</title>      <link> </link> <summary> Fast bowler Brett Lee took five wickets, including three in seven balls late in the innings, to help Australia beat Srilanka by 18 runs in a free-scoring tri-series ODI on Sunday. </summary>   </entry> </feed> CS-791/891 Web Syndication Formats, ODU, Spring 2008

10 CS-791/891 Web Syndication Formats, ODU, Spring 2008
Atom: The RFC Two kinds of Atom Documents Feeds – represents an Atom Feed Metadata about the feed Some or all entries associated with the feed Entries Exactly one entry Outside of an Atom feed Atom documents MUST be well-formed XML Atom is extensible CS-791/891 Web Syndication Formats, ODU, Spring 2008 10

11 Atom: The RFC – Verbose or Concise
RFC Specification in two different formats Verbose (words, words, lots of words) Concise Relax NG schema Verbose: The "type" Attribute Text constructs MAY have a "type" attribute. When present, the value MUST be one of "text", "html", or "xhtml". If the "type" attribute is not provided, Atom Processors MUST behave as though it were present with a value of "text". Unlike the atom:content element defined in Section 4.1.3, MIME media types [MIMEREG] MUST NOT be used as values for the "type" attribute on Text constructs. Concise atomPlainTextConstruct = atomCommonAttributes, attribute type { "text" | "html" }?, text atomXHTMLTextConstruct = atomCommonAttributes, attribute type { "xhtml" }, xhtmlDiv Verbose has implementation guidance as well as semantic information CS-791/891 Web Syndication Formats, ODU, Spring 2008 11

12 Atom: The RFC – Relaxed NG Symbols
A schema language for XML On track to become ISO Standard A language agnostic schema that can be processed language specific parsers For our purposes limited XML-tag following operators are of interest: * => 1 or more occurrences ? => less than or equal to 1 occurrence null => exactly one occurrence CS-791/891 Web Syndication Formats, ODU, Spring 2008 12

13 Atom: The RFC – Example of Relaxed NG Common Attributes
atomCommonAttributes = attribute xml:base { atomUri }?, attribute xml:lang { atomLanguageTag }?, undefinedAttribute* CS-791/891 Web Syndication Formats, ODU, Spring 2008 13

14 Atom: The RFC Partial Relaxed NG atom:feed
start = atomFeed | atomEntry atomPersonConsruct = (element atom:name {text} & element atom:uri { atomUri }? atomFeed = [ … various rules …] Element atomFeed { … atomAuthor* …} atomAuthor = element atom:author { atomPersonConstruct } CS-791/891 Web Syndication Formats, ODU, Spring 2008 14

15 Atom: The Simplest Feed
<?xml version="1.0" encoding="utf-8"?> <feed xmlns=" <title>The Simplest Feed</title> <link rel="alternate" type="text/html" href=" <author><name>Ben Hammersley</name></author> <updated> T15:07:02Z</updated> <entry> <title>The Simplest Entry Document</title> <link rel="alternate" type="text/html" href=" <id> <updated> T15:07:02Z</updated> <content type="TEXT">Simple Simple Simple</content> </entry> </feed> Ben Hammersley, “Developing Feeds with RSS and Atom,” O’Reilly Media, Inc., 2005, ISBN CS-791/891 Web Syndication Formats, ODU, Spring 2008 15

16 CS-791/891 Web Syndication Formats, ODU, Spring 2008
Google Reader Demo CS-791/891 Web Syndication Formats, ODU, Spring 2008 16

17 CS-791/891 Web Syndication Formats, ODU, Spring 2008
What is hAtom? A microformat conceptually based on the Atom Syndication Format. Identifies semantic information in weblog posts, news feeds or similarly formatted content. hAtom is not intended to replace RSS or Atom. CS-791/891 Web Syndication Formats, ODU, Spring 2008 17

18 CS-791/891 Web Syndication Formats, ODU, Spring 2008
Why hAtom? Provides a simple way to markup blog posts in the actual (X)HTML, eliminating the need of creating a separate file for RSS or Atom. Use cases: Make your web page your feed. Provide a more semantic meaning to a blog without adding the overhead of implementing everything needed for an Atom or RSS feed. For articles that were created before structuring syndication formats such as RSS and Atom, convert them to hAtom to give them structure and semantic meaning. CS-791/891 Web Syndication Formats, ODU, Spring 2008 18

19 CS-791/891 Web Syndication Formats, ODU, Spring 2008
What is a Microformat? A simple, open data format used to structure and represent very specific types of content on the web. Microformats: real world semantics, AKA lowercase semantic web.¹ Example: hCard is a microformat for representing people, companies, organizations, and places, using vCard. Demo: ¹ CS-791/891 Web Syndication Formats, ODU, Spring 2008 19

20 CS-791/891 Web Syndication Formats, ODU, Spring 2008
List of Microformats hCalendar – for marking up calendar events. hCard – for marking up people, companies, organizations, and places. hAtom – for marking up primarily blog posts. hResume – for marking up resumes. hReview – for marking up reviews. xFolk – for marking up bookmarks. VoteLinks – for marking up polls/votes. XFN – for marking up relationships between people. XMDP – for marking up metadata profiles. adr – for marking up addresses. geo – for marking up geographical coordinates. There are more that are not listed here, and many more to come! CS-791/891 Web Syndication Formats, ODU, Spring 2008 20

21 CS-791/891 Web Syndication Formats, ODU, Spring 2008
Microformats Demo Using Firefox and the extension “Operator” we can see some pretty interesting stuff. CS-791/891 Web Syndication Formats, ODU, Spring 2008 21

22 Semantic XHTML Design Principles
hAtom and other microformats conform to semantic XHTML design principles. Semantic XHTML, as opposed to presentational XHTML, deals with the identification of relationships and information. Rules: Reuse, Reuse, Reuse!!! Be precise. Use similar or same naming conventions as the original schema. CS-791/891 Web Syndication Formats, ODU, Spring 2008 22

23 CS-791/891 Web Syndication Formats, ODU, Spring 2008
hAtom Schema Elements hfeed - optional. feed category – optional, keywords or phrases, using rel-tag. hentry - required entry-title – required, text. entry-content – optional, text. entry-summary - optional, text. updated - required using datetime-design-pattern. published - optional using datetime-design-pattern. author - required using hCard. bookmark (permalink) - optional, using rel-bookmark. tags - optional, keywords or phrases, using rel-tag. CS-791/891 Web Syndication Formats, ODU, Spring 2008 23

24 CS-791/891 Web Syndication Formats, ODU, Spring 2008
hAtom Example Canned example: Example in the wild: CS-791/891 Web Syndication Formats, ODU, Spring 2008 24

25 What is the Relationship between hAtom and Atom?
hAtom is derived from Atom. Atom can be used to syndicate any kind of content that is frequently updated. hAtom can technically be used to markup any content that can be syndicated by Atom, but is generally used for blog posts. Atom can be constructed from hAtom. This is how documents that use hAtom are usually syndicated. hAtom uses very similar, or exactly the same attributes as Atom. CS-791/891 Web Syndication Formats, ODU, Spring 2008 25

26 Atom and hAtom Schema Comparison
feed hfeed title subtitle updated link category feed-category id rights contributor logo icon generator entry hentry entry-title content entry-content summary entry-summary published author bookmark (permalink) tags source entry-title, entry-content, entry-sumary, are all implemented the same as Atom. updated and published use the datetime-design-pattern. author uses an hCard implementation. Bookmark uses the rel-design-pattern. Feed-category and tags use the microformat rel-tag. CS-791/891 Web Syndication Formats, ODU, Spring 2008 26

27 CS-791/891 Web Syndication Formats, ODU, Spring 2008
How to Use hAtom? Use the hAtom2Atom XSLT to convert hAtom to Atom. Demo: using this input Use results of demo for a real world comparison of hAtom and Atom. CS-791/891 Web Syndication Formats, ODU, Spring 2008 27

28 CS-791/891 Web Syndication Formats, ODU, Spring 2008
Conclusion Recap Atom versus RSS Multiple non-standard formats Syntax and recommended processing in the public domain Designed based on lessons learned from RSS Atom Pure XML Moderate, but limited defined tag set Describes feeds and entries Extensibility built in hAtom Still a draft version, but considered to be completely useable One of many microformats A simpler, smaller, Atom. CS-791/891 Web Syndication Formats, ODU, Spring 2008 28

29 CS-791/891 Web Syndication Formats, ODU, Spring 2008
Our Questions for You What is the purpose of an RFC? And, how do we know that an RFC has done its job? What role do you see microformats playing in the semantic web? What kinds of problems are unique to providing feeds to handheld devices? CS-791/891 Web Syndication Formats, ODU, Spring 2008 29

30 CS-791/891 Web Syndication Formats, ODU, Spring 2008
Sources CS-791/891 Web Syndication Formats, ODU, Spring 2008 30


Download ppt "Presented by: Chuck Cartledge and Carlton Northern"

Similar presentations


Ads by Google