Microformats: A caminho da Web Semântica

Faz alguns anos que ouvi falar de microformats pela primeira vez. Estava eu aprendendo sobre padrões web (que na época conhecia apenas como tableless), lendo o blog do Henrique, que escrevia sobre css, webdesign e acessibilidade com bastante freqüência. Certo dia (8 de dezembro de 2005 para ser exato, faz um tempão já), ele publicou um texto com um título até então desconhecido para muitos. Fui apresentado aos Microformats. Vamos às definições:

O que são Microformats ou microformatos?

De uma forma simplista, é uma maneira de informar para robôs que lêem páginas HTML qual o significado de determinado conteúdo, sem interferir na maneira como este mesmo conteúdo é apresentado para entendimento humano. Isso é feito padronizando-se quais tags e atributos de tags devem ser usadas para destacar uma informação dentro do conteúdo total do site. Quer um exemplo?

No meu caso, estou desenvolvendo uma aplicação web para catalogar eventos. Cada evento possui informações como nome, descrição, data de início, data de fim e local onde será realizado.

Quando um sistema de busca encontrar a página do evento, ele não saberá o que esses dados querem dizer, e eles serão catalogados como informações comuns do site, sem distinção.

Agora, se eu utilizar certa padronização na formatação dos dados, e se esse padrão for conhecido pelo sistema de busca, os dados podem ser tratados de forma especial, certo?

Especificamente para a padronização de informação sobre eventos existe o microformato chamado hCalendar. Vamos a um exemplo de código:

<div class="vevent">
  <h3 class="summary">Campus Party Brasil</h3>
  <p class="description">Campus Party é considerado o maior evento de entretenimento eletrônico em rede do mundo. Um encontro anual realizado desde 1997, que reúne, durante sete dias, milhares de participantes com seus computadores procedentes de toda a Espanha e de outras nações, com a finalidade de compartilhar curiosidades, trocar experiências e realizar todo o tipo de atividades relacionadas a computadores, às comunicações e às novas tecnologias*.</p>
  <p>Será realizado de <abbr class="dtstart" title="2008-02-11">11</abbr> a <abbr class="dtend" title="2008-02-17">17 de fevereiro de 2008</abbr></p>
  <p>Local: <span class="location">Bienal, São Paulo, SP</span></p>
  <a class="url" href="http://www.campus-party.com.br/">http://www.campus-party.com.br/</a>
</div>

* Texto retirado do site da campus party brasil

Então só é preciso colocar as classes corretas nas tags de conteúdo do HTML?

Basicamente, mas não apenas isso. Observe que ao atribuir a classe "description" à tag <p>, eu rotulo a informação da tag, deixando claro que seu conteúdo é a descrição do evento. Logicamente essa classe só tem valor semântico se estiver dentro de uma tag com a classe "vevent".

Além do atributo classe, o atributo "title" também é usado para informar conteúdo, como acontece com "dtstart". Note que em "title" o formato da data está em ISSO 8601, que é um formato de fácil leitura para um robô de busca. Já o conteúdo da tag apresenta um valor humanizado, que será apresentado pelo navegador.

Posso utilizar outras tags, mantendo os valores da propriedade "class"?

Esta é uma dúvida antiga minha. Para descobrir, fiz vários testes utilizando a extensão Operator do Firefox, que reconhece microformats como o hCalendar e ainda possibilita a exportação para o formato iCal, ou ainda para serviços web, como o Google calendar.

Extensão Operator listando microformatos do site ativo

Cheguei às conclusões:

  1. Em tags onde apenas o atributo "class" é levado em consideração para distinção semântica, como em "vevent","summary","description", a troca de tag pode ser realizada.
  2. Em tags onde outros atributos além de "class" formam o valor semântico, a troca não é possível. Isso ocorre em "dtstart", "dtend" e "url". Isso é bem compreensível, já que apenas a tag <a> possui o atributo "href" em uma página XHTML válida.
  3. Web semântica significa usar tags que façam sentido para seu conteúdo, como <p> para a descrição do evento. Poderíamos usar uma lista de definições <dl> por exemplo. Funcionaria, mas não estaríamos utilizando a tag mais adequada.

Qual a vantagem de se utilizar esses padrões?

Aplicando microformatos, os dados de seu site passam a ter significado, o que permite buscas mais elaboradas. O Yahoo anunciou recentemente que seu mecanismo de busca passou a indexar semanticamente o conteúdo, trazendo à tona discussões sobre as possibilidades que isso traz. Breve, poderemos encontrar eventos em determinadas datas ou locais diretamente através desse tipo de mecanismo, pois os resultados serão mostrados de acordo com sua relevância e de forma diferenciada baseado nos microformatos.

Mostrei aqui apenas um exemplo de aplicação do hCalendar. Existem vários microformatos prontos com outras funções, como identificar dados para contato (hCard) e licenças de publicações (rel-license), além de alguns em desenvolvimento, como o padrão para indicar coordenadas geográficas (geo) e análises de produtos e serviços (hReview). A disseminação desses padrões permitirá buscas por publicações em Criative Commons mais facilmente, ou ainda, pesquisas apenas em sites que foram escritos por alguém próximo da cidade onde moramos.

A web semântica está cada vez mais próxima de se tornar realidade. Alguns dizem que sua implementação e utilização será o marco do início da Web 3.0.

Aprenda mais sobre microformatos em:

  1. Blog Oficial sobre microformatos
  2. Lista completa de microformatos
  3. Artigo sobre microformatos do Revolução.etc
  4. Cheat Sheets para consulta de microformatos comuns

Published on in Blog