Drupal 7 e a web semântica

1. Introdução

A gestão de conteúdo é um imenso desafio, desde a época em que nossos antepassados passavam a seus descendentes o que consideravam importante de forma oral, através de histórias, contos, fábulas, passando depois à uniformização dos símbolos que permitiram a memória escrita e chegando até os dias de hoje onde uma infinidade de informação (a qual nenhum ser humano conseguirá ter acesso durante seu curto tempo de vida ) gerada por uma infinidade de fontes. As técnicas de gestão de conteúdo, de fato, sempre correram atrás da geração de conteúdo. As bibliotecas são posteriores aos livros, os mecanismos de busca são posteriores às páginas na web.

Em “The Semantic Web” (a web semântica), Tim Berners-Lee, que em 1989 havia proposto o que viria a ser a web da forma que conhecemos hoje, alertava para a importância de contextualizar para os vários dispositivos que fazem parte da internet os significados das informações, permitindo que ações fossem tomadas a partir destes significados. Ao menos dois conceitos seminais estavam expostos no artigo: interoperabilidade e significado. Tudo o que existe na web (ou na nuvem) tem a possibilidade de ser exposto de muitas formas através de muitos dispositivos. Tudo o que existe na web deve ter algum significado para algo ou alguém. Começou-se a discutir, então, formas e padrões de organização que estivessem intimamente ligados à informação na web desde o seu nascimento (ou ao menos desde a sua publicação na web).

Uma forma de organização é a RDF (Resource Description Framework – Estrutura para a Descrição de Recursos). De forma simples, a RDF trata toda e qualquer peça de informação na web como um recurso permitindo que indiquemos em uma determinada página, por exemplo, o que é o nome de uma pessoa, qual é a foto desta pessoa, qual o endereço de e-mail desta pessoa, assim por diante. Estas informações podem ser até intuitivas para nós, humanos, quando navegamos por uma página pessoal de alguém, mas para que programas (como mecanismos de busca) possam identificá-las bem elas devem estar descritas de maneira explícita. Além disso, a RDF permite estabelecer relações entre recursos que podem estar em locais distintos na web. Uma empresa pode ser um recurso que está associada a pessoas (também recursos) que nela trabalham.

Assim, usando a RDF podemos associar o recurso “The Semantic Web” (um documento) aos recursos que o criaram (seus autores, pessoas) e aos recursos que financiaram a criação do documento (empresas ou instituições de ensino). Cada um destes recursos, descrito individualmente, pode estar em computadores e bases de dados distintas. De fato, a descrição dos recursos na web permite que a tratemos como uma enorme, única, base de dados na qual podemos executar buscas de forma similar a que faríamos em qualquer outra base de dados.

Ao criarmos um portal web estamos expondo conteúdo ao mundo. A grande probabilidade é que este conteúdo sequer seja encontrado a partir de nosso próprio portal, mas sim através de mecanismos genéricos de busca. Há uma crescente probabilidade, também, que este conteúdo não seja exibido da forma como imaginamos, mas que seja “importado” por visualizadores dos mais variados tipos e não necessariamente um navegador convencional. Assim, se quisermos que nosso conteúdo seja visualizado de todas as formas possíveis temos que estar atentos a padrões de interoperabilidade e semântica. Felizmente, o sistema de gestão de conteúdo Drupal já expõe, no padrão RDF a informação nele armazenada.

2. Por que Drupal?

O Drupal, projeto iniciado em 2000 por Dries Buytaert modestamente como um sistema de avisos para os seus colegas da Universidade da Antuérpia, na Bélgica, evoluiu rapidamente para um sistema completo de gestão de conteúdo que conta, hoje, com cerca de dez mil desenvolvedores que fazem mais de duas mil contribuições semanais nas diversas partes do núcleo do sistema e módulos adicionais. Além disto, o Drupal sempre possibilitou a exposição do conteúdo nele gerado através de padrões, desde a simples exportação e importação de informações através do uso de “feeds” RSS ou Atom até a adoção do padrão RDF de forma pioneira entre todos os sistemas abertos de gestão de conteúdo para a web.

A resposta à pergunta “Por que Drupal?” está intimamente conectada à resposta de “Por que PHP?”. Por ter sido desenvolvido em PHP o Drupal beneficia-se de tudo o já foi desenvolvido nesta linguagem no que diz respeito à web semântica, como a interface programável RAP (Rdf Api for PHP) e outras que facilitam a criação de módulos para o Drupal que beneficiam-se da web semântica.

A instalação padrão do Drupal, a partir de sua versão 7, já ativa o módulo do núcleo do sistema que é específico para tratar a informação em seu portal, expondo-a no formato RDF. Ou seja, você sequer precisa conhecer o RDF para beneficiar-se dele. Para mais informações sobre a instalação do Drupal 7 visite o portal Dicas-L (ver referência número 4 ao final deste texto). Feito isto, você verá no código fonte de suas páginas geradas pelo Drupal 7 informações como esta:

<h1
property="dc:title" datatype="">Título da
Página</h1>

<div
class="submitted">

<span
property="dc:date dc:created"
content="2011-07-21T20:37:29-03:00"
datatype="xsd:dateTime" rel="sioc:has_creator">Enviado
por

<span
class="username" xml:lang="" about="/user/1"

typeof="sioc:UserAccount"

property="foaf:name">Fulano
de Tal

</span>

em
qui, 07/21/2011 – 20:37

</span>

</div>

Note que, misturado ao código HTML há uma série de descritores para a informação que está contida na página.

Friend of a Friend (FOAF): São descritores de pessoas (por exemplo: name, homepage, mbox, account, based_near). No exemplo, temos o criador do conteúdo:

<span
class="username" xml:lang="" about="/user/1"

typeof="sioc:UserAccount"

property="foaf:name">Fulano
de Tal

</span>

Dublin Core (DC):São os descritores de publicação (por exemplo: abstract, created, dateCopyrighted, publisher). Repare no exemplo:

<h1
property="dc:title" datatype="">Título
da Página
</h1>

<div
class="submitted">

<span
property="dc:date dc:created"
content="2011-07-21T20:37:29-03:00"

Semantically-Interlinked Online Communities (SIOC): São descritores relativos a redes sociais e seus usuários (por exemplo: follows, has_reply, last_reply_date, moderator_of, subscriber_of)


datatype="xsd:dateTime" rel="sioc:has_creator">Enviado
por

<span
class="username" xml:lang="" about="/user/1"

typeof="sioc:UserAccount"

property="foaf:name">Fulano
de Tal

</span>

Com estes descritores os mecanismos de busca poderão indexar melhor seu portal web. Você pode testar como isto acontece com a ferramenta Rich Snippets Testing Tool do Google, no seguinte endereço:

http://www.google.com/webmasters/tools/richsnippets

Basta fornecer o endereço do seu portal web com o Drupal 7 para observar os resultados.

Nota: no momento em que este texto foi escrito a ferramenta estava em estágio de testes e, mesmo sendo útil para mostrar que o Drupal 7 expõe as informações no formato RDF, alguns erros eram exibidos.

3. Ferramentas auxiliares

Se você conhece a linguagem SQL, para a busca de informações em bases de dados, não terá dificuldade em usar a linguagem SPARQL. Há vários aplicativos que implementam a busca com a linguagem SPARQL, mas um bastante fácil de instalar é o sparql-browser (http://code.google.com/p/sparql-browser/). Para executá-lo você precisará antes ter o Adobe Air instalado. Os usuários das distribuições Linux baseadas no Debian (como o Ubuntu e outras) podem instalá-lo com o comando:

sudo
apt-get install adobeair

Em seguida, basta baixar e executar o sparql-browser.

Outra ferramenta promissora é o sparql-query (https://github.com/tialaramex/sparql-query), que permite que você faça consultas à web semântica de forma similar às consultas em uma base de dados SQL, através da linha de comando.

4. Importando dados da web semântica para o Drupal

O módulo SPARQL Views do Drupal (http://drupal.org/project/sparql_views) permite que você “importe” dados de outros locais na web que expõem suas informações no formato RDF. Um bom exemplo sobre a forma como você pode fazer isto está na referência número 6 (“The Semantic Web, Linked Data and Drupal, Part 2: Combine linked datasets with Drupal 7 and SPARQL Views”).

5. Conclusão

Mesmo que você não queira aprofundar-se muito em todos os aspectos técnicos que fazem parte da web semântica, ao instalar o Drupal 7 você já passa a beneficiar-se dela ao expor seus dados para a pesquisa por mecanismos de buscas e para outros sistemas que podem vir a buscar as informações que você está disponibilizando.

Referências

  1. "The Semantic Web" (Scientific American, maio de 2001), por Tim Berners-Lee,
    James Hendler, e Ora Lassila - http://kill.devc.at/system/files/scientific-american_0.pdf

  2. “The Semantic Web and Drupal”, parte 1 - http://www.youtube.com/watch?v=xcPf4PeF57Y

  3. “The Semantic Web and Drupal”, parte 2 - http://www.youtube.com/watch?v=VvEVoY0sl6o

  4. “Semana Drupal 7 no Dicas-L” - http://miud.in/QWk

  5. “The Semantic Web, Linked Data and Drupal, Part 1: Expose your data using RDF” - http://www.ibm.com/developerworks/library/wa-rdf/

  6. “The Semantic Web, Linked Data and Drupal, Part 2: Combine linked datasets with Drupal 7 and SPARQL Views” - http://www.ibm.com/developerworks/library/wa-datasets/

  7. “Potential RDF use cases for Drupal” - http://groups.drupal.org/node/9010

Este texto, escrito por Cesar Brod e Joice Käfer, é parte integrante do Manual de Dados Abertos para Desenvolvexdores publicado pelo W3C. Conheça as demais publicações do W3C.



Design: Dobro Comunicação. Desenvolvimento: Brod Tecnologia. Powered by Drupal