MicroformatsHow to add meaning to HTML with:●Microformats,● Microdata,● & RDFa
Part I What are these things?Why would you use them? What do they look like?
What are microformats?● microformats.org: “A set of [...] data formats...”● wikipedia.org: “An approach to semantic markup which seeks [...] to convey metadata.”● google.com: “Simple conventions used [...] to describe a specific type of information...”
What is microdata?● w3.org: “Allows machine-readable data to be embedded in HTML documents...”● wikipedia.org: “A simple way to embed semantic markup into HTML documents...”● google.com: “A way to label content to describe a specific type of information...”
What is RDFa?● w3.org: “A [way] to augment visual data with machine- readable hints.”● wikipedia.org: “[Embeds] rich metadata within web documents.”● google.com: “A way to label content to describe a specific type of information...”
Sound similar? They are!They all have common goals:● Semantics - Meaning. Ex: "This is the name of a person."● Metadata - Data about data. Ex: "This is the author of this article."● Machine Readability - Tell the machine what "adlfladkldbcdefg" means to the humans.
How are they different?Individual strengths and weaknesses. But theyre all tryingto solve the same problem.● Different approaches,● Different "specifications,"*● Different "vocabularies,"**● Different "syntaxes."**** All words used loosely.** "Native" vocabs closely related to each.*** The biggest difference.
How are they different?● Microformats: Uses existing HTML4 tags & attributes. Easiest to pick up.● Microdata: New in HTML5. Uses new HTML5 attributes.● RDFa: Adds RDF to XHTML using new attributes. The most complex! (Remember: <tag attribute="value"></tag>)
What are they used for?● Add Meaning to website content ○ How does a machine know that "Blah Blah" is the name of a person? ○ Currently? Context + vast amounts of data to analyze. ○ Microformats allow us to specify "this is a persons name" in our HTML code.
What are they used for?● Describe Relationships in website content ○ We can also use these techniques to describe relationships... ○ Especially between meaningful pieces of website content! ○ For example, we can indicate that a person is affiliated with a particular company.
Why would you want that?● Enable Parsing by... ○ Google (Rich Snippets, Zeitgeist) ○ Yahoo! (Pipes, SearchMonkey) ○ & other miscellaneous ■ aggregators, ■ apps, ■ browser plugins, ■ or your own custom code!
Why would you want that?● By enabling parsing, you enable sharing!● Sharing increases your potential traffic!● Effectively sharing increases your reach!
Why would you want that?● Find-Ability: Better understanding of contents meaning = potentially more targeted traffic.● User Experience: Parsed content can be downloaded and imported into software (ex: contact info or events)!● Workflow Efficiency: Help establish internal standards for class naming and markup patterns. (Emily Lewis, http://msdn.microsoft.com/en-us/scriptjunkie/ff979268.aspx)
Who should be interested?Lots of ways & reasons to use microformats et al.They are of especial interest regarding:● Search Engine Optimization● Social Networking● Front End Web Development
Example: Google Rich Snippets People & Orgs Reviews Events
What are common uses?● People & Organizations● Places / Locations● Events● Listings / Products● Dozens More! Custom Formats!
Who uses them?● hCard (Person): Yahoo! Local, Google Rich Snippets, Google Maps, Google Profiles, BrightKite, Twitter, Last.fm, 37Signals’ Basecamp, Telnic, Gravatar● hCalendar (Event): Facebook, Yahoo! Upcoming, Eventful, Google Rich Snippets, MapQuest Local● hResume (Resume): LinkedIn, SimplyHired, Xing● XFN (Relationships): Twitter, Flickr, Digg, Technorati, Ident Engine, Plaxo, Google Social Graph, Last.fm (cite: Emily Lewis, http://msdn.microsoft.com/en-us/scriptjunkie/ff979268.aspx)
Who uses them?In the real estate industry:● realestate.com● forrent.com● number1expert.com● zillow.com● realestate.tampabay.com● neighborcity.com
Questions?Who has the authority over these? / Where do the formats come from?Microformats - www.microformats.orgAn independent effort on the part of various web designers & webdevelopers. Its open to input from anyone! They identify common needs -- ie:the need to mark up contact information -- and collaborate to work upformats. Theres a core volunteer group in control (they make decisions basedon an ideology you can read about on the site), but its basically a populistmovement.Microdata - www.w3.org/TR/html5/Part of the HTML5 specification worked on by the WHATWG and W3C. TheW3C is the biggest "standards authority" of the net. There was a big argumentover how to add more semantic markup to HTML. Should they create a millionnew tags or make it extensible like XHTML? Should microformats becomepart of the HTML5 spec? Or RDFa? So WHATWG came up with their ownnew alternative, microdata.RDFa - www.w3.org/TR/xhtml-rdfa-primer/RDF & RDFa are W3C specifications.
Questions?If there are different vocabularies, where do they come from? Can onevocabulary be used with all the specifications?There are certainly some overlapping vocabularies.The same groups who worked on specifications for microformats, microdata,and RDFa have often also created custom vocabularies to use with theirspecifications.But a vocabulary can also be created by a completely separate group. Or anindividual. Some vocabularies youll come across can be used as amicroformat, microdata, or RDFa (no matter which they were intended for).So how do you choose? Basically, you want to choose the vocabulary thatworks for your situation. One which is understood by whatever searchengine/web application/software that you are hoping to enable.The two "best" places for vocabularies (ones that are easy to learn andunderstood on the web) are microformats.org and data-vocabulary.org.
How to spot a microformat.<div class="vcard"> <h1 class="n fn"> <span class="given-name">Rachael</span> <span class="family-name">Moore</span> </h1> <div class="org"> <span class="organization-name">Homes.com</span> <span class="organization-unit">Operations</span> <span class="title">Web Developer</span> </div> <div class="adr"> <span class="street-address">280 John Knox Rd.</span> <span class="locality">Tallahassee</span>, <span class="region">Florida</span> <span class="postal-code">32303</span> </div></div>
How to spot a microformat.● Uses regular old HTML4 (or new HTML5 tags).● Uses the @class, @rel, @title, @href and other long- established attributes.● @class names or @rel attribute values come from the formats specified at microformats.org.● Microformats have been established the longest and have the widest support.
How to spot microdata.<div itemscope itemtype="http://www.data-vocabulary.org/Person/"> <h1 itemprop="name">Rachael L. Moore</h1> <div itemprop="affiliation" itemscope itemtype="http://www.data-vocabulary.org/Organization/"> <span itemprop="name">Homes.com</span> <span itemprop="title">Web Developer</span> </div> <div itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address/"> <span itemprop="street-address">280 John Knox Rd.</span> <span itemprop="locality">Tallahassee</span>, <span itemprop="region">Florida</span> <span itemprop="postal-code">32303</span> </div></div>
How to spot microdata.● Uses regular old HTML4 or new HTML5 tags.● Uses the new @itemscope, @itemtype, and @itemprop attributes.● Can use @itemtype values and @itemprop names from anywhere! data-vocabulary.org is a good choice because of Googles support, though.● Microdata will be part of HTML5, so its likely it will become the most widely used (but who knows).
How to spot RDFa.<div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Person"> <h1 property="v:name">Rachael L. Moore</h1> <div> <div property="v:affiliation"> <div typeof="v:Organization"> <span property="v:name">Homes.com</span> </div> </div> <span property="v:title">Web Developer</span> </div> <div rel="v:address"> <div typeof="v:Address"> <span property="v:street-address">280 John Knox</span> <span property="v:locality">Tallahassee</span>, <span property="v:region">Florida</span> <span property="v:postal-code">32303</span> </div> </div>
How to spot RDFa.● Probably uses XHTML.● Declares a namespace using @xmlns, uses namespaces throughout.● Uses the custom @typof, @property, & @content attributes; also uses @rel, @href, <link>, & <meta>.● Again, can use a vocabulary from anywhere. Vocabs designed by RDF proponents also exist.
How to spot RDFa.● RDFa has the strongest theoretical foundation. Its also the most complicated. It has the ability to express more complicated statements of meaning and more complicated relationships.● ...But it looks like its probably going to remain the least popular of the options.