../

Captcha confirmation

Please fill the box with the word in the image.

Refresh Captcha
Confirm

7 Things You Must Know About Microformats Before You Die

Notice the catchy title? It's called copywriting, and I am not very good at it, but I'm trying. In the last posts I was pretty thorough with my writing, but this time I will try to keep it short and sweet, so you still have time to watch Star Wars Kid and Chocolate Rain on YouTube like the rest of us. So here's a pre-washed, pre-cooked, pre-heated, pre-screened, pre-approved, pre-packaged, post-dated, freeze-dried, double-wrapped, vacuum-packed list of the ten things you must know about Microformats:

1 - You Can Talk to Machines With Microformats

Microformats are used to annotate semantics, so that humans, and especially machines, can parse a page's content and know what it's all about. With regular markup, it's possible to interpret content with natural language processing and other artificial intelligence techniques, or simple hardcoded data scraping, but these techniques obviously fall short, as there is no better way to extract semantics than to have them already specified along with the content in the first place, and this is where Microformats come in.

2 - Microformats are Damn Easy

Microformats are not based on some weird esoteric language, they use pre-existing syntax to specify semantic information, with most formats being represented in HTML by using "class", "id", "title", "rel" and "rev" attributes. So in a way, if you know HTML, you already know everything you need to start using Microformats.

3 - HTML5 is a Microformat Killer (slight exageration)

HTML5 takes semantics into account, as it has added a lot of tags that are meant to be used instead of their generic "div" predecessors (example: "header", "section", "article", "footer"). For example, in the past while creating a blog post entry, one would probably use the "div" tag to wrap the post's contents, whilst with HTML5, the kosher thing to do would be to use the "article" tag instead, giving parsers a greater insight as to the enclosed contents.

As the HTML5 specification matures, it may integrate further markup that may turn some Microformats obsolete. However, Microformats should be here to stay, as no organization can be as fast as a single individual at writing a specification, and no one can stop you from making your own Microformat addressing a new semantic description need you have identified.

4 - Microformats are in the Wild

There are already loads of Microformats available out there. I'm going to show you examples of two stable and widely used Microformats, but first, switch to Firefox, and install the Operator extension. This extension will parse pages for a multitude of Microformats, extract their enclosed contents and provide you with operations you can perform on them. It will give you a superficial example on the benefits of annotating data with semantics.

Now that you're running Firefox with Operator, here are some Microformat examples:

hCard

This one is used to represent contact information. Below you can see my business card, annotated with the hCard Microformat:

Tiago Silva Hive Solutions Personal Web Site Hive Solutions Web Site

If you check out the Operator bar, you will notice that it has detected the above contact information. This was a pretty straightforward feat, as it may look like regular text, but if you look under the hood:

<div class="vcard">
<span class="fn">Tiago Silva</span>
<span class="org">Hive Solutions</span>
<a class="url fn n" href="http://www.tiagosilva.me">Personal Web Site</a>
<a class="url" href="http://www.hive.pt">Hive Solutions Web Site</a>
</div>

This markup allows the parser to know the enclosed content is a contact information, since the "div" has the "vcard" class which indicates that hCard is being used in its contents, guiding the parser on how to interpret the data.

You can use this creator to encapsulate your contact information with the hCard Microformat.

hCalendar

This Microformat is used to represent information about an event. Below you can see the event of me writing this post, annotated using the hCalendar Microformat:

June 9, 2010 6 - 6pm at Hive - Hive Solutions Post
Make a post for the Hive Solutions Blog.

Once again, if you check out the Operator bar, you will notice that it has detected the above event, and if you look at the code, you can see more than meets the eye:

<div class="vevent">
<a href="http://blog.hive.pt" class="url">
<abbr title="2010-06-09T18:0000" class="dtstart">June 9, 2010 6</abbr> -
<abbr title="2010-06-09T18:00" class="dtend">6</abbr>pm at
<span class="location">Hive</span> -
<span class="summary">Hive Solutions Post</span>
</a>
<div class="description">Make a post for the Hive Solutions Blog.</div>
</div>

This markup allows the parser to know the enclosed content is an event, because the "div" has the "vevent" class which indicates that hCalendar is being used in its contents, providing the parser with insight on how to interpret the data.

You can use this creator to encapsulate your events with the hCalendar Microformat.

5 - You're Already Using Microformats

Google is starting to pay attention to Microformats in its crawling endeavours. Nowadays, if you search for thai green mango salad recipe you will get the following result:

Google didn't used any cutting-edge algorithm to figure out that the underlying page was talking about a recipe that could be cooked in 20 minutes, and was reviewed 5 times. If you follow the link and analyze the page's source code, you will notice that it uses the hRecipe and hReview Microformats to annotate these details explicitly.

6 - Lorem ipsum ipsum lorem

'Sup dawg, I heard you like 7 bullet points, so I put a 6th bullet point in your bullet points so you can have 7 bullet points.

7 - The Semantic Web is Here

Straight out of Wikipedia, here's the definition of the Semantic Web for you:

The Semantic Web is an evolving development of the World Wide Web in which the meaning (semantics) of information on the web is defined, making it possible for machines to process it. It derives from World Wide Web Consortium director Sir Tim Berners-Lee's vision of the Web as a universal medium for data, information, and knowledge exchange.

When you talk to an academic about the Semantic Web he/she will probably geek out on elaborated specifications like Resource Description Framework (RDF) being what the Semantic Web is all about, and it probably will be, but for now, keeping it real, HTML5 and Microformats are the tools we have to realistically make the web semantic today.

If you wonder where all of this is moving to, and what's the ultimate vision for the Semantic Web, have a look at WolframAlpha, a computational knowledge search engine where you can today make queries as magical as big mac + coke and know everything there is to know about this combination, thanks to the semantic data sources it uses to cross data and extract meaning out of of. Now imagine if WolframAlpha could use the whole web as its data source... now imagine if something much more intelligent and sophisticated could have access to the whole web as its data source...

WTF!!! Google Stole Our Idea!!!

I lied... Google DIDN'T steal our idea, just wanted to attract your attention. You see, Google I/O, a huge event bringing together thousands of developers, is having its 2010 edition right now, where it once again revealed itself to be following the same path as we are, by announcing the Chrome Web Store.

Buy Right Now and Get a Free Vacuum Cleaner

The Chrome Web Store will only be open at the end of the year, and it will be a marketplace where one can publish and sell web applications. The concept may seem a little bit strange for some people, but it is really not unlike Apple's App Store for iPods, iPhones, and alikes; or the Android Marketplace for Android powered mobile devices. Like in these previous installments, it will bring centralization, with all its benefits, to a world of web applications that often remain unnoticed due to the turbulence of the chaotic sea of information overload.

Even though it's getting easier and easier to sign up to different services nowadays, with open authentication methods becoming mainstream (Facebook Connect seems to be everywhere these days), they still don't beat the simplicity of hitting "buy" on the App Store, and being done with the process, with the application you selected now being easily accessible from your dashboard. This is the experience that I am expecting this marketplace to bring, hoping that it will bring forth an obliteration of nowadays' bias towards still developing native applications for cloud-connected devices.

Common sense would say that there is no reason to make native applications for smartphones for example, or that at least they should be a dying trend. Even though mobile devices are getting increasingly powerful, previous limitations that stopped the browser from being a container for any kind of application are disappearing, and internet access is becoming ubiquitous, the transactionable merchandise in the current popular application marketplaces, be it the App Store, Android Marketplace, or Steam, still consists of a native application. If you want to commercialize a web application in any of these stores, you still have to create a native application that will act as a client for it, and obviously deploying your application in all these markets amounts to lot of nonsensical extra work that shouldn't have to be done in the first place.

We're Losing Cabin Pressure

Google's version of a web application marketplace is not technologically revolutionary, but it is still nevertheless, a potential game changer, and another step in Google's apparent commitment to leave desktop applications dead and buried, an attitude we are on board with, and that I have addressed extensively in previous posts.

It's no coincidence that this service will be made available at the same time Google Chrome OS will be launched. To those not up to speed, Google Chrome OS is a very stripped down version of Ubuntu, that basically comes with the Google Chrome browser and little else, and which is meant to be run on netbooks with a custom firmware used to bypass traditional hardware detection routines for lightning-fast boot times.

If you join Google Chrome OS, with their evangelization of HTML5, their WebM codec, Chrome Web Store, Chrome's Native SDK and services like Google Cloud Print, you can see that Google is really pulling out all the stops to turn the browser into the container for all applications in the future.

We're in the Pipe, Five by Five

These moves are always a reassurance as to our mental sanity, as we were happy to see that at least one big industry player is seeing the future as we do, since this was yet another instance of Google revealing itself as to being on the same trail as us, but fortunately, still seeming to be miles away from the paradigm and service we want to establish for the next generation of the web.

Every post, I usually deliver a punchline or two about either Colony or Omni, one being our open-source modular application framework which is the fruit of two years of hardcore research and development, and Omni our holy-grail flagship platform-as-a-service that runs on Colony. There is currently no official portal for these technologies, since even though they are currently being used in-field successfully, they are for many reasons, still not consumer-ready. Today, and for the first time, I leave you with a coherent speech on what Omni is/will be, and how its ideology still distances itself as cutting-edge:

Traditional software development models fail miserably in promoting steady and measurable development of large-scale software that is highly pressured by environmental changes. We believe that a truly modular approach to software development (think legos) is the solution.

We have built the technology that supports a platform where beautiful modular rich internet applications, that rival desktop applications in every way, can be easily developed, deployed and consumed. We call this service Omni, and it will be "the iTunes of the web application world".

As a consumer you will be able to access all your applications from anywhere in the world, with any device and operating system, without ever having to think about storage or processing capabilities, paying only for what you use, just like electricity.

As a developer you will be able to develop and deploy new plugins using no more software other than a web browser. A plugin may be a new application by itself, which can re-use any of the hundreds of already available plugins (not counting third-party), or just an extension to an already existing application in the platform. You may sell and promote your work in our marketplace, benefiting from the ability to create attractive business models where you can offer and charge the consumer solely for the features he wants to use, thanks to our modular approach. You will be able to maintain your application without any kind of overhead, as you will be able to push any improvements to your consumers without them having to restart their service in any way, shape or form.

Desktop applications are dying, along with their isolated, rigid, and high-maintenance nature. A brave new world of flexible and ubiquitous services is coming to replace them, and it lacks only the earth where it can grow and flourish: Omni.

Newer Posts