jRDFa: Browsing and Visualization of Linked Data on the Web
André Carlomagno Rocha, Tito Gardel P. Filho, Marilton Cerqueira, Cássio V. S. Prazeres
Universidade Federal da Bahia – Departamento de Ciência da Computação
MultiViUW: Laboratório de Pesquisa e Experimentação em
Multimídia, Computação Visual, Computação Ubíqua e Web
Av. Adhemar de Barros, Ondina, Salvador-BA, Brasil
{andreluiz, titogardel, mmcerqueira, prazeres}@dcc.ufba.br
Nesse sentido, esforços para aproximar essas duas abordagens
(documentos e dados) têm sido realizados, como é o caso da
recomendação W3C RDFa [1]. O RDFa é uma das formas de
serializar dados estruturados no formato RDF [13].
Especificamente, RDFa permite embutir triplas RDF em
documentos HTML usando os próprios atributos da linguagem de
marcação. Ao incorporar essas estruturas de metadados em
páginas HTML, autores são capazes de indicar aos agentes de
software o significado de dados que são exibidos para usuários
humanos (informações legíveis por humanos), transformando-os
em dados legíveis por máquinas [15].
ABSTRACT
Several efforts in research and development of technologies have
been spent to publish data in open standard formats. The main
project in this regard is the Linked Open Data, which goal is to
create an open and semantic Web of Data, enabling processing
and understanding the data by software agents. However, not only
the machines can take advantage of the explicit semantics of data.
People can take advantage from the semantic of the data to
explore unknown concepts, new relationships and to obtain
personalized access to relevant resources and services. However,
it is not trivial for a user without experience with Web of Data, to
satisfactorily explore and use these data. This paper presents the
jRDFa, an approach to support the web developer interested in
presenting to non-technical users, semantic data embedded in
HTML pages in RDFa format. This paper also presents two ways
of presenting data in RDFa that were created using the jRDFa:
tooltips visualization and facets navigation. To evaluate the
proposed approach, this paper presents results of experiments on
HTML pages with embedded jRDFa.
Na prática, RDFa refere-se a dados semânticos – obedecendo aos
princípios de Linked Data – embutidos na Web de Documentos,
de tal forma que possam ser lidos e entendidos por máquinas [2].
Entretanto, não apenas as máquinas podem se beneficiar da
semântica explícita e da estruturação dos dados que seguem os
princípios de Linked Data [17]. Pessoas podem se beneficiar da
semântica dos dados para explorar conceitos desconhecidos,
novos relacionamentos e obter acesso personalizado a recursos e
serviços relevantes. Contudo, não é trivial, para um usuário sem
experiência com a Web de Dados, explorar e usar esses dados de
maneira satisfatória [6].
Categories and Subject Descriptors
H.5.4 [INFORMATION INTERFACES AND PRESENTATION]:
Hypertext/Hypermedia – Navigation, User issues.
Para Camarda et al. [7], apesar das centenas de milhares de triplas
RDF já existentes na Web de Dados, é difícil encontrar
ferramentas de apresentação fáceis de usar, que sejam realmente
baseadas em padrões RDF e capazes de demonstrar a eficácia do
modelo Linked Data. Davies et al. [9] argumentam que: se a
finalidade é a de que os usuários finais possam contribuir para a
Web de Dados da mesma forma que eles contribuem para a Web
de Documentos, então eles precisam de ferramentas, adequadas à
sua condição de usuários não técnicos, que lhes permitam fazê-lo.
Além disso, para Cheng et al. [8], comparado com hipertexto da
Web, Linked Data pode satisfazer mais precisamente as
necessidades de informação, no entanto, ainda faltam ferramentas
direcionadas para usuários não técnicos.
Keywords
Linked Data, jRDFa, Visualização, Navegação, Tooltips, Facetas.
1. INTRODUÇÃO
A representação da informação na Web tem evoluído de um
espaço global de documentos interligados, a Web de Documentos,
para um espaço global em que tanto documentos quanto dados
podem estar conectados. No intuito dessa evolução está um
conjunto de melhores práticas para publicar, conectar, reutilizar e
consumir dados estruturados na Web conhecido como Linked
Data [3]. A adoção dessas melhores práticas está possibilitando o
desenvolvimento de um ambiente global de dados, chamado de
Web de Dados [5]. Segundo Bizer [4], a Web de Dados e a Web
de Documentos podem conviver, no mesmo espaço e ao mesmo
tempo.
Considerando os benefícios que podem ser obtidos por usuários
finais diante da semântica dos dados, a falta de habilidade desses
usuários no trato com tais dados e a carência de ferramentas com
foco na apresentação de dados semânticos, baseadas nos
princípios Linked Data, este trabalho apresenta a jRDFa
(Javasript for RDFa).
Permission to make digital or hard copies of all or part of this work for personal
or classroom use is granted without fee provided that copies are not made or
distributed for profit or commercial advantage and that copies bear this notice
and the full citation on the first page. Copyrights for components of this work
owned by others than the author(s) must be honored. Abstracting with credit is
permitted. To copy otherwise, or republish, to post on servers or to redistribute
to lists, requires prior specific permission and/or a fee. Request permissions
from [email protected].
WebMedia’13, November 5–8, 2013, Salvador, Brazil.
Copyright is held by the owner/author(s). Publication rights licensed to ACM.
ACM 978-1-4503-2559-2/13/11…$15.00.
http://dx.doi.org/10.1145/2526188.2526194
A jRDFa é uma abordagem para apoiar o desenvolvedor Web que
deseja apresentar, para seus usuários, dados semânticos embutidos
em páginas HTML no formato RDFa. A abordagem proposta está
implementada como uma biblioteca Javascript, que fornece
recursos para lidar, de forma simples e fácil, com as informações
semânticas contidas nessas páginas. A biblioteca abstrai as tarefas
de recuperação e tratamento de tais informações, deixando o
141
Apresentação (CIA). Essa camada pode ser estendida, por meio
do Módulo de Apresentação (MAP), com novas formas de
apresentação (navegação e visualização, por exemplo), usando as
informações amigáveis fornecidas pela biblioteca. Neste artigo,
duas formas de apresentação foram desenvolvidas, como extensão
do módulo MAP, e são descritas e discutidas na Seção 3.
desenvolvedor livre para se ater apenas na criação de suas formas
de apresentação. Para demonstrar a utilização da biblioteca, duas
formas de apresentação de conhecimento semântico foram
desenvolvidas: uma usando visualização por tooltips e outra
usando navegação por facetas.
O restante deste artigo está estruturado da seguinte forma: a Seção
2 apresenta e descreve jRDFa, que é a abordagem proposta neste
trabalho; na Seção 3 são descritas duas formas de apresentação de
informações semânticas geradas pela jRDFa; a Seção 4 apresenta
experimentos realizados para avaliação de desempenho da
biblioteca; na Seção 5 são apresentados trabalhos relacionados à
abordagem proposta neste artigo; e na Seção 6 são apresentadas
algumas considerações finais e direções para trabalhos futuros.
2. jRDFa: JavaScript for RDFa
A abordagem jRDFa (JavaScript for RDFa) é uma proposta que
foi desenvolvida com objetivo de possibilitar que usuários
humanos também possam tirar proveito da semântica explícita da
Web de Dados. A proposta possibilita a recuperação de dados
semânticos contidos em páginas Web, mais precisamente em
documentos HTML, e fornece informações previamente tratadas
que podem ser utilizadas para melhorar a experiência das pessoas
com a Web de Dados, por meio de formas dinâmicas de
apresentação.
Figura 1. Arquitetura jRDFa.
Explicando o fluxo mais detalhadamente, após o término do
carregamento da página Web, o MAQ (Módulo de Aquisição)
recupera todas as entradas RDFa contidas no documento, por
meio de um parser semântico (Green Turtle [11]) e monta o grafo
correspondente. Ou seja, nesse momento todas as informações
semânticas (triplas RDF) contidas na página Web são recuperadas
e adicionadas a um grafo RDF. Em seguida, esse modelo é
enviado para a CPS, onde é tratado pelos MRB (Módulo de
Resolução Blank Node) e MRA (Módulo de Resolução
Ancoragem) para resolver os respectivos problemas (seções 2.2 e
2.3).
Neste trabalho, a jRDFa foi implementada como uma extensão à
biblioteca jQuery, que é uma biblioteca JavaScript, independente
de navegador (browser), criada com o intuito de simplificar o
desenvolvimento de scripts em documentos HTML. Dessa forma,
a implementação da jRDFa também é uma biblioteca JavaScript,
para documentos HTML e independente de navegador.
Na prática, o objetivo da biblioteca é extrair conteúdo semântico,
representado por RDFa, de páginas HTML e prover visualização
e navegação desse conteúdo para usuários humanos.
Depois de processado e atualizado, o modelo é encaminhado, sob
a forma de informações amigáveis, para a CIA que, por meio do
MAP (Módulo de Apresentação), será responsável por apresentar
as informações semânticas ao usuário. O MAP possui interfaces
bem definidas que o desenvolvedor deve obedecer, para criar
novas formas de apresentação, que vão recuperar as informações
amigáveis a serem utilizadas na apresentação exibida para o
usuário. Por exemplo, o desenvolvedor pode criar uma
visualização de dados semânticos na forma de tooltips. Quando o
usuário passar o ponteiro do mouse sobre um recurso RDF, um
tooltip será exibido contendo as informações amigáveis
relacionadas a tal recurso. Da mesma maneira, o desenvolvedor
pode criar uma navegação facetada usando as informações
tratadas pela biblioteca. Assim, o usuário terá à sua disposição a
opção de navegar por meio de facetas em dados relacionados aos
recursos presentes na página Web que ele está visitando.
Esta seção apresenta os detalhes da arquitetura da biblioteca
jRDFa, seu funcionamento e forma de utilização. A seção também
descreve os dois algoritmos propostos neste trabalho para resolver
dois problemas encontrados durante o desenvolvimento da
proposta: o problema do blank node e o problema da ancoragem.
2.1 Arquitetura da jRDFa
A biblioteca jRDFa é composta por quatro módulos principais:
Módulo de Apresentação (MAP), Módulo de Resolução Blank
Node (MRB), Módulo de Resolução Ancoragem (MRA) e
Módulo de Aquisição (MAQ). Esses módulos estão distribuídos
em três camadas, como pode ser visto na Figura 1: Camada de
Interface e Apresentação (CIA), Camada de Processamento
Semântico (CPS) e Camada de Aquisição RDFa (CAR).
Na Camada de Aquisição RDFa (CAR) os dados semânticos
contidos na página Web, descritos por meio de RDFa, são
recuperados e adicionados a um grafo RDF, criado no momento
do carregamento da biblioteca. Em seguida, esses dados são
enviados para a Camada de Processamento Semântico (CPS), com
o objetivo de serem tratados adequadamente. O resultado desse
tratamento são informações semânticas mais amigáveis, próprias
ao consumo de usuários não técnicos. Em outras palavras, o
tratamento diz respeito à renomeação de recursos RDF de forma
conveniente, abstraindo os URIs, para oferecer uma melhor
compreensão ao usuário.
2.2 Resolução do problema do blank node
Durante o processo de aperfeiçoamento da proposta, alguns
problemas peculiares à natureza estruturada dos dados foram
encontrados e tratados. O primeiro deles é o problema do blank
node. Em um grafo RDF, um blank node é um nó que representa
um recurso para o qual não foi definido um URI ou um literal.
Um blank node só pode ser usado como sujeito ou objeto de uma
tripla e um recurso representado por um blank node é chamado de
recurso anônimo.
Depois do processamento dos dados na CPS, as informações
tratadas são encaminhadas para a Camada de Interface e
142
Como o objetivo da jRDFa é apresentar dados semânticos para
usuários não técnicos, a exibição de um recurso anônimo (não
nomeado por um URI ou literal), identificado apenas por um ID,
torna-se um problema para a compreensão das informações. Para
resolver essa questão, todos os blank nodes são resolvidos
utilizando o algoritmo apresentado na Figura 2. Com esse
algoritmo todos os blank nodes são nomeados antes da
disponibilização das informações amigáveis para a camada de
apresentação (CIA).
Figura 3. Parte da lista de predicados mais representativos.
De modo geral, um determinado blank node pode ser sujeito de
mais de uma tripla. Por exemplo, podem existir três triplas
contendo o mesmo blank node como sujeito: a primeira com
predicado givenName; a segunda com predicado homepage; e a
terceira com predicado email. Com base na lista de predicados, o
algoritmo vai resolver da seguinte forma: o objeto que melhor
representa esse blank node é aquele que possui o predicado
givenName, pois esse predicado tem prioridade sobre email e
homepage. A partir daí, esse recurso (inicialmente tratado por um
ID) passa a ser conhecido pelo valor contido no objeto da tripla
que possui o predicado givenName. O valor desse objeto pode ser
João ou Maria, que visualmente tem mais significado para o
usuário que, por exemplo, um email como [email protected], ou
uma homepage como http://www.maria.com.
Figura 2. Algoritmo de resolução de blank nodes.
O algoritmo funciona da seguinte forma, primeiro, triplesArray
(linha 1 da Figura 2) armazena todas as triplas que possuem um
determinado blank node como sujeito. Para cada uma dessas
triplas, objectsArray (linha 3 da Figura 2) armazena o objeto da
tripla. Ao final do processo, o algoritmo retorna o objeto que
melhor representa o blank node. Essa tarefa é realizada pela
função getRepresentObj (linha 5 da Figura 2), que determina o
objeto mais representativo, considerando o predicado de cada
objeto em objectsArray. Por exemplo, o dado que melhor
representa uma pessoa é seu nome. Portando, se o blank node se
refere a uma pessoa, o objeto que melhor representa esse recurso é
o que possui o predicado name.
2.3 Resolução do problema da ancoragem
O problema da ancoragem diz respeito a mapear um recurso (com
todos os dados aos quais ele está ligado diretamente) para um
elemento HTML, contendo a informação que melhor representa
tal recurso (<span>infoMaisRep</span>). Esse mapeamento é
importante porque facilita a exibição de recursos para os usuários
finais, organizando as informações em pontos estratégicos da
página.
A Figura 3 exibe parte da lista de predicados considerados como
mais representativos. A lista está ordenada por prioridade, onde
name é o predicado de maior representatividade.
Para encontrar a informação mais representativa de um
determinado recurso na página HTML, foi criado neste trabalho o
algoritmo de resolução de ancoragem apresentado na Figura 4.
Esse algoritmo recupera tal informação por meio do algoritmo de
resolução de blank nodes. Com essa informação, o conjunto de
dados, que representa o recurso, pode ser ancorado na página Web
por meio de um elemento DOM HTML.
Para definir a lista, primeiro foram consideradas as características
comuns encontradas na variedade de tipos de recursos presentes
na Web de Dados (pessoa, organização, evento, produto, lugar,
entre outros). Para muitos desses tipos, a informação que melhor
os representa é seu nome (João, SBC, WebMedia2013, Notebook
123abc, Salvador, etc.). No entanto, no caso de um recurso não
possuir nome (ou o nome não ter sido definido), a informação
mais amigável, a ser apresentada para um usuário final, é o email
seguido do título. Por exemplo, considerando um artigo
acadêmico, talvez não seja comum definir um nome para tal
recurso nem, tão pouco, um email, mas, muito provavelmente,
seja definido um título. Recursos como páginas Web ou arquivos
mantidos na Internet são certamente melhor representados por
seus endereços eletrônicos (por exemplo, uma URL). Essa lógica
foi seguida para todos os tipos de recursos. Nos casos em que o
recurso não possui nome, email, título ou URL, pode possuir um
endereço (addressLocality), no caso de um lugar, ou pode possuir
um preço (lowPrice), no caso de um produto, e assim por diante
conforme Figura 3.
Figura 4. Algoritmo de resolução de ancoragem.
O tipo de elemento escolhido para essa tarefa foi o elemento span,
por não alterar o layout da apresentação. Nos casos em que o
elemento retornado pelo algoritmo de resolução de blank nodes já
for do tipo span, a ancoragem (mapeamento) é efetivada. Nos
outros casos, um novo elemento do tipo span é criado e
adicionado ao DOM como filho do elemento retornado, e, em
seguida, a ancoragem é efetivada no novo elemento span. O
conteúdo do elemento retornado (informação mais representativa)
é transferido para o novo elemento span.
O segundo ponto considerado foi a heterogeneidade dos termos
utilizados pelos diversos vocabulários contidos na Web de Dados.
Muitos vocabulários definem as mesmas informações utilizando
termos distintos. Por exemplo, o vocabulário FOAF define um
nome como name ou givenName e uma imagem como img, image
ou depiction. Dessa forma, neste trabalho todas as variações
fazem parte da lista. A quantidade de vocabulários existentes hoje
na Web de Dados deve continuar crescendo. A lista de predicados
foi baseada apenas nos vocabulários mais conhecidos e
frequentemente utilizados (foaf, schema, dc, skos, dentre outros).
A lista também pode ser incrementada com a análise de novos
vocabulários.
Por exemplo, considerando que o recurso “pedro” é sujeito de três
triplas: pedro-temNome-Pedro; [email protected];
e pedro-temTipo-Pessoa. Essas informações dizem respeito à
pessoa nomeada Pedro e formam um conjunto único de
143
informações. Esse conjunto será atrelado a um elemento HTML
da página para melhor apresentar informações sobre Pedro,
quando necessário. Esse elemento deve conter como valor o dado
mais representativo do recurso “pedro”, por exemplo, seu nome.
Dessa forma, o elemento que envolve a string “Pedro” será
escolhido.
Portanto, o algoritmo de resolução de ancoragem começa
utilizando o algoritmo de resolução de blank nodes (ver linha 1 da
Figura 4), descrito anteriormente, para descobrir o dado mais
representativo de um recurso.
Após definir qual o dado mais representativo do recurso, o
algoritmo de resolução de ancoragem vai ancorar o conjunto de
informações referentes a tal recurso no elemento HTML, que tem
como valor exatamente o dado mais representativo do recurso.
Para isso, o algoritmo recupera o elemento usando
getDOMElement em representInfo (linha 2 da Figura 4). Se o
elemento recebido for um span, já é possível ancorar o conjunto
de informações nesse elemento (linhas 3 e 8 da Figura 4). Caso
contrário, o algoritmo cria um novo elemento span e atribui a ele
o conteúdo do elemento recebido (linha 4 da Figura 4). Após isso,
o conteúdo do elemento recebido é apagado (linha 5 da Figura 4),
pois o conteúdo agora está no elemento span recentemente criado.
Por fim, o novo elemento span é inserido na árvore DOM HTML
(linha 5 da Figura 4), como filho do elemento recebido e o
conjunto de informações é ancorado nesse span (linha 6 da Figura
4). O motivo para usarmos span é que esse elemento não altera os
aspectos de exibição das páginas Web (i.e. não modifica o layout
criado pelo desenvolvedor da página).
Figura 5. Referências e script de carga jRDFa.
Dessa forma, a ferramenta já está apta a fornecer informações
semânticas tratadas e amigáveis dinamicamente, sem intervenção
do desenvolvedor. Ou seja, depois do correto carregamento da
página e posteriormente da biblioteca, o objeto map (fornecido
pela interface da biblioteca pela função getSemanticInfo()) já está
disponível para uso pelo desenvolvedor. A implementação da
biblioteca assume que as páginas Web, contendo marcações
RDFa, são válidas e bem formadas, obedecendo a recomendação
W3C RDFa 1.11.
3. jRDFa: VISUALIZAÇÃO E NAVEGAÇÃO
Esta seção descreve duas formas de apresentação desenvolvidas
para demonstrar a viabilidade da proposta. A primeira foi criada
para apresentar dados semânticos por meio de tooltips dinâmicos.
A segunda utiliza facetas para permitir a navegação, de forma
simples e prática, nesses dados. As formas de apresentação, aqui
chamadas de tooltips e facetas, foram criadas tomando em
consideração apenas a apresentação, visualização e/ou navegação
dos dados. As questões relacionadas com a recuperação e
tratamento dos dados semânticos presentes nas páginas foram
deixados a cargo da biblioteca jRDFa.
Outros trabalhos, que também tratem da apresentação de conteúdo
semântico RDFa, podem se deparar com os problemas de
resolução de blank nodes e de resolução de ancoragem. Os
algoritmos com as soluções para esses problemas, apresentados
neste trabalho, foram implementados, na biblioteca jRDFa, e
avaliados (Seção 4). Dessa forma, esses algoritmos podem ser
indiretamente utilizados em outros cenários bem como podem ser
diretamente reutilizados a partir da biblioteca desenvolvida neste
trabalho.
2.4 Funcionamento e Utilização
O conhecimento semântico amigável fornecido pela biblioteca
jRDFa é disponibilizado por meio de uma interface, que oferece
um objeto Javascript contendo um map {infoset : x,
HTMLelement : y}. O infoset é um conjunto único de
informações de um determinado recurso e HTMLelement é o
elemento HTML onde esse conjunto de informações deve ser
ancorado. De forma simplificada, essa interface pode ser
imaginada como uma função Javascript, getSemanticInfo(), que
retorna o referido objeto. De posse desse objeto Javascript, as
apresentações podem ser construídas utilizando as informações
que ele fornece.
Figura 6. Comunicação entre jRDFa e JQueryUI.
Para criar novas formas de apresentação, foi utilizada a biblioteca
de interface de usuário Javascript JQueryUI. Essa biblioteca
facilita a criação das apresentações, por exemplo, tooltips ou
facetas, fornecendo toda a parte de interface gráfica com o
usuário, de forma que é necessário se ater apenas as informações
que serão apresentadas. Para que os tooltips ou as facetas
funcionem corretamente, a biblioteca JQueryUI exige, como
parâmetros, os textos que serão adicionados como informação e
exibidos no corpo do tipo de apresentação escolhido, bem como, o
elemento HTML onde o tooltip ou a faceta será ancorado.
A biblioteca jRDFa foi desenvolvida completamente em
Javascript e pode ser adicionada a qualquer aplicação Web. Para
usar a biblioteca, é necessário incluir o arquivo jRDFa.js (linha 7
da Figura 5) e suas dependências (Green Turtle e JQuery, linhas
9 e 11, respectivamente, da Figura 5) no diretório da aplicação,
fazendo referência aos arquivos nas páginas Web em que se
deseja mostrar as apresentações semânticas. Além disso, para dar
início ao processo, é necessário incluir um pequeno script nas
páginas, tal como exibido nas linhas 13 a 19 da Figura 5.
A Figura 6 mostra o esquema do processo de comunicação entre
as bibliotecas dentro do módulo MAP. Conforme descrito
1
144
http://www.w3.org/TR/rdfa-syntax/
anteriormente, a biblioteca jRDFa fornece um objeto Javascript
contendo exatamente as informações solicitadas pela biblioteca
JQueryUI. Portanto, a criação das formas de apresentação foi
facilitada pela utilização da proposta jRDFa. A saída da biblioteca
jRDFa foi usada como entrada da biblioteca JQueryUI. Esse
processo foi realizado, de forma simples, utilizando o Módulo de
Apresentação (MAP) da biblioteca jRDFa em sua Camada de
Interface e Apresentação (CIA).
3.1 Visualização por Tooltip
Neste trabalho, a visualização por tooltips (caixas de informações
ocultas, acionadas por uma determinada ação do usuário) consiste
na exibição de tooltips dinâmicos contendo conhecimento
semântico oriundo das marcações RDFa presentes na página Web.
Esse conhecimento, muitas vezes, não está disponível para o
usuário humano, pois o objetivo principal de tais dados é servir de
informação útil para agentes de software.
Figura 8. Tooltip mostrando informações de Alice.
Na Figura 8, pode-se ver o conjunto de informações de “Alice
Birpemswick”, mostrando que, além de suas informações básicas
como email e telefone, ela conhece “Bob”, “Eve” e “Manu”.
Essas últimas informações de relacionamento entre “Alice” e seus
amigos não são visíveis na página Web exibida para os usuários
sem a utilização da biblioteca jRDFa.
A biblioteca JQueryUI, descrita anteriormente e ilustrada na
Figura 6, facilita a criação de tooltips fornecendo toda a parte de
interface gráfica com o usuário. Para que os tooltips funcionem
corretamente a biblioteca JQueryUI recebe como parâmetro, por
meio da biblioteca jRDFa, os textos que serão adicionados como
informação e exibidos no corpo dos tooltips, bem como, o
elemento HTML onde o tooltip deve ser ancorado.
Figura 7. Página Web com RDFa embutido.
Por conseguinte, os tooltips são criados contendo esses conjuntos
de informações amigáveis e ancorados nos elementos HTML,
ambos fornecidos pela biblioteca jRDFa. Assim que o usuário
passa o ponteiro sobre um elemento que ancora um tooltip,
informações, sobre aquele recurso RDF, são exibidas. Por
exemplo, considerando que na página exibida para o usuário,
existe um texto que contem a string “Paulo” e essa string foi
definida como informação mais representativa do recurso “paulo”.
Dessa maneira, quando o usuário passar o ponteiro sobre essa
string, um tooltip é imediatamente exibido. Esse tooltip contém
um conjunto de informações amigáveis sobre Paulo. Esse
conjunto pode exibir o telefone, email, homepage, endereço,
organização, foto, amigos e várias outras informações sobre o
recurso RDF Paulo, que não são exibidas na página Web. A
Figura 7 apresenta uma página Web comum, que possui
marcações RDFa com o objetivo de disponibilizar dados
estruturados para agentes de software.
Figura 9. Tooltip mostrando informações de Manu.
Na Figura 9, é possível ver as informações que as marcações
RDFa guardam acerca da pessoa “Manu”. Na página Web apenas
o nome “Manu” está disponível para visualização dos usuários.
Entretanto, passando o ponteiro sobre essa string o tooltip exibe
todo um conjunto de informações sobre “Manu” (homepage,
imagem e telefone). Essas informações estariam inicialmente
disponíveis apenas para agentes de software não fosse a utilização
da biblioteca jRDFa em conjunto com a visualização por tooltips.
3.2 Navegação Facetada
A classificação em facetas busca ser um meio flexível para
catalogar itens de informação. As facetas vêm sendo utilizadas em
diversos cenários, como uma alternativa às classificações
hierárquicas e enumeradas, inerentemente mais rígidas e de difícil
manutenção. A origem do conceito de facetas é antiga, Taulbee
[18] cita o trabalho de Ranganathan [19], que sugeriu a utilização
do esquema em facetas na classificação de livros em um trabalho
que começou em 1924.
Pode-se observar que a página da Figura 7, mesmo contendo
dados estruturados Linked Data, por meio de marcações RDFa,
mostra poucas informações para o usuário final. É possível
perceber apenas que a página possui informações sobre uma
pessoa chamada “Alice Birpemswick”, com seu email, telefone,
além do nome de outras pessoas, “Bob”, “Eve” e “Manu”, que,
aparentemente, não possuem associação com Alice.
As Figuras 8 e 9 exibem a mesma página Web da Figura 7,
contudo, dessa vez utilizando a biblioteca jRDFa e a visualização
por tooltips para exibir o conhecimento semântico existente na
página através de informações amigáveis direcionadas para o
usuário comum.
Neste trabalho, o modelo de navegação facetada aproveita campos
de metadados e valores para fornecer aos usuários uma lista de
opções visíveis, com o objetivo de aperfeiçoar suas consultas e
tornar o conteúdo das páginas Web, visualmente, mais fácil de ser
145
RDF, definidos por meio de RDFa, dando uma visão clara ao
usuário final do conteúdo presente na página e abstraindo as
questões técnicas que envolvem o padrão Linked Data.
encontrado. A forma de apresentação em navegação facetada,
criada com base nas informações produzidas pela biblioteca
jRDFa, consiste em fornecer uma aba oculta (preferencialmente
no canto esquerdo da página), em forma de menu vertical,
disponibilizando facetas semânticas para navegação nos dados
estruturados, definidos por meio de RDFa, na página Web. No
modo oculto, o usuário pode ver apenas uma faixa vertical
translucida no canto da página (não prejudica o layout da página),
indicando a presença da aba de navegação facetada. Assim que o
ponteiro é posicionado sobre essa faixa, ela se estende, em direção
ao centro, para apresentar o menu vertical de facetas semânticas.
Assim como na visualização por tooltips, a biblioteca JQueryUI,
descrita anteriormente e ilustrada na Figura 6, facilita a criação
das facetas fornecendo toda a parte de interface gráfica com o
usuário. Para que as facetas funcionem corretamente a biblioteca
JQueryUI recebe como parâmetro, por meio da biblioteca jRDFa,
um objeto Javascript, contendo um conjunto único de
informações, relacionado a um determinado recurso e o elemento
HTML que possui o valor que melhor representa esse mesmo
recurso (elemento de ancoragem). No caso das facetas, a
biblioteca JQueryUI precisa receber como entrada básica o valor
do item de menu origem e as informações que serão associadas a
esse item de menu (além de outras informações de controle, como
nível de taxonomia, por exemplo).
Figura 11. Aba de navegação facetada completa.
Unindo os dois exemplos citados de utilização da navegação
facetada, com a utilização da biblioteca jRDFa, tem-se uma
poderosa e, por outro lado, amigável forma de navegação em
dados semânticos Linked Data. A Figura 11 mostra a aba de
navegação facetada explorando o conhecimento semântico
presente da página Web.
Portanto, considerando o exemplo do recurso “alice”, pode-se
passar, como valor do item de menu origem, o valor do objeto
mais representativo desse recurso, o nome “Alice”. Como
informações que serão associadas ao item de menu “Alice”, podese passar o conjunto único de informações relacionadas ao recurso
“alice”. Desse modo, as informações semânticas amigáveis
produzidas pela biblioteca jRDFa podem ser facilmente utilizadas
como entrada da biblioteca JQueryUI, para criação de navegação
facetada. Isso proporciona uma navegação facilitada nos recursos
Linked Data, possibilitando a descoberta de novos
conhecimentos, antes disponíveis apenas para as máquinas. A
Figura 10 apresenta como essa estrutura é exibida para o usuário.
4. AVALIAÇÃO DA BIBLIOTECA jRDFa
Devido ao fato da biblioteca jRDFa realizar um parser no DOM
HTML em busca de marcações RDFa durante o carregamento da
página Web, o desempenho na exibição das páginas pode ser
afetado pelo uso da biblioteca. Além disso, a biblioteca precisa
montar um grafo RDF contendo todas as triplas contidas na
página e gerar a forma de visualização/navegação. Todo esse
processo é realizado em tempo de carregamento da página
HTML. Com o objetivo de analisar o impacto de desempenho no
carregamento das páginas Web processadas pela biblioteca
jRDFa, foram realizados alguns experimentos levando em conta a
quantidade de triplas RDFa contidas na página e o respectivo
tempo de carregamento da mesma. A Tabela 1 exibe os resultados
de medições de desempenho (tempo de carregamento da página)
dos experimentos realizados.
Tabela 1. Tempo de carregamento (ms = milisegundos)
Quant. de Triplas
20
200
2.000
20.000
100.000
Figura 10. Aba de navegação facetada simples.
Outra forma interessante de usar a essência do modelo de
navegação facetada, é passar como item de menu origem o valor
do elemento type, contido em todo conjunto único de informações
de um recurso. O elemento type indica o tipo do recurso (pessoa,
organização, produto, evento, entre outros). Dessa forma, pode-se
passar como informações associadas a esse item de menu uma
lista contendo os recursos do tipo determinado. Por exemplo,
passando o valor “Pessoa” como item de menu origem para a
biblioteca JQueryUI, e como informações associadas a esse item
de menu os recursos “bob”, “eve”, “manu” e “alice”, a biblioteca
automaticamente apresentará na aba de navegação facetada a
opção “Pessoa (4)”. Isso facilita a navegação entre os recursos
Com jRDFa
100ms
150ms
520ms
6.950ms
96.200ms
Sem jRDFa
100ms
120ms
320ms
2.350ms
19.200ms
É possível notar na Tabela 1 e na Figura 12 que páginas contendo
até 200 triplas RDFa apresentam diferença de desempenho quase
nula em relação à utilização ou não da biblioteca jRDFa. De fato,
observando a Figura 12, os experimentos mostraram que em
páginas contendo até 2.000 triplas RDFa a diferença de
desempenho é pouco alterada. A métrica tempo de carregamento
utilizada na Tabela 1 para avaliar o comportamento da biblioteca
jRDFa é diretamente dependente do ambiente (CPU, memória,
etc.) de execução dos experimentos. Dessa forma, para melhor
avaliar o comportamento da biblioteca, foi utilizado o cálculo da
146
desses recursos já foi avaliada em outros trabalhos na literatura,
como, por exemplo, por Oren et al. [22].
escalabilidade, apresentado na Figura 13, que avalia o
comportamento da biblioteca em várias iterações à medida que se
aumenta o número de triplas RDFa na página.
5. TRABALHOS RELACIONADOS
Nesta seção são discutidos alguns trabalhos que tratam de
apresentação de dados na Web de dados. A pesquisa foi
concentrada, principalmente, nas áreas de navegação e
visualização de formatos Linked Data, além de trabalhos que
visam extração de informações em páginas Web.
Lin e Hu [14] apresentam o HTMLParser, que é um método para
analisar páginas HTML e efetivamente extrair conteúdos de forma
linear ou aninhada. O parser possui filtros e tags personalizadas,
oferecendo uma interface de utilização simples. As aplicações que
utilizam HTMLParser têm como principais aspectos a extração e
transformação de informações. O trabalho dos autores é similar ao
Módulo de Aquisição (MAQ) proposto neste trabalho. Entretanto,
o MAQ tem funcionalidades específicas para extração de RDFa
de páginas HTML, que não é o objetivo da proposta de Lin e Hu.
Figura 12. Tempo de carregamento da página.
A escalabilidade foi medida calculando a variação do tempo de
carregamento da página dividida pela variação da quantidade de
triplas na página a cada iteração, ou seja, à medida que se
aumenta a quantidade de triplas RDFa. Dessa forma, a
escalabilidade (ECB) foi calculada utilizando a seguinte equação:
Hepp et al. [12] propuseram o RDF2RDFa, que parte do princípio
de que muitos potenciais usuários da Web Semântica têm
dificuldades técnicas para publicar conteúdo no formato
estruturado (e.g usuários de Sistema de Gerenciamento de
Conteúdo ou Wikis). Dessa forma, RDF2RDFa permite o uso de
RDFa para embutir triplas RDF não triviais no formato de
elementos invisíveis div/span em documentos HTML
preexistentes, simplificando a publicação de conteúdo em formato
RDF em conformidade com Linked Data. Ao inserir RDFa
utilizando elementos invisíveis nas páginas HTML, Hepp et al.
deixam claro que o foco deles é disponibilizar essas informações
para agentes de software. Dessa forma, é possível utilizar a
biblioteca jRDFa, proposta neste artigo, para expor as
informações também para pessoas.
Conforme pode ser observado na Figura 13, cada ponto no gráfico
corresponde a uma medida de escalabilidade correspondente a
cada momento em que a página tinha 200, 2.000. 20.000 ou
100.000 triplas RDFa. É importante notar na Figura 13 que o
comportamento do carregamento da página, com ou sem a
biblioteca jRDFa, é semelhante até a quantidade de 20.000 triplas.
Os experimentos realizados tiveram o objetivo de avaliar os
limites de desempenho (computabilidade) da biblioteca, chegando
ao ponto de se colocar 100.000 triplas RDFa em uma única página
HTML. Considerando a avaliação realizada, concluiu-se que a
utilização da biblioteca jRDFa não impacta o carregamento da
página quando a mesma possui até 2.000 triplas RDFa. Segundo
Bizer et al. [21], existem na Web atual cerca de 168 milhões de
páginas HTML com RDFa embutido e com uma média de apenas
6,4 triplas RDFa por página HTML. Pode-se notar na Tabela 1 e
na Figura 12 que a utilização da biblioteca jRDFa, com até 20
triplas por página HTML, não impacta no tempo de carregamento
da página que se mantém em 100ms (com ou sem a jRDFa).
Camarda et al. [7] apresentam a ferramenta LodLive, que tem
como objetivo principal navegar em recursos RDF usando uma
visualização em grafo dinâmico. A diferença principal para a
proposta apresentada neste artigo é que a jRDFa pode ser
estendida com diversas formas de apresentação, enquanto que o
foco do LodLive é a navegação utilizando grafos RDF.
Cheng et al. [8] propõem um navegador Linked Data chamado
MyView, que permite aos usuários consultarem Linked Data por
navegação, de uma coleção de entidades para outra. O navegador
permite que usuários façam consultas na Web de Dados e utilizem
essas consultas para navegar sobre os dados. Claramente, os
objetivos de Cheng et al. são diferentes da proposta apresentada
neste artigo. O objetivo do jRDFa é permitir ao usuário
visualizar/navegar em informações RDFa embutidas nas páginas
HTML que ele está visitando.
Batista e Schwabe [20] apresentam o LinkedTube, que é um
serviço para criar relações, semânticas ou não, entre vídeos
disponíveis na Web. Para as relações semânticas, os autores
realizam consultas, em bases de vídeos e em bases Linked Data,
para gerar as relações entre os vídeos no formato RDF. Os
resultados das relações criadas podem ser visualizados
diretamente em RDF ou em uma interface HTML criada
especificamente para o LinkedTube. A biblioteca jRDFa, proposta
neste trabalho, poderia ser utilizada no LinkedTube, assim como
em outras ferramentas HTML, para apresentar dados RDF
serializados como RDFa.
Figura 13. Escalabilidade.
Do ponto de vista de avaliação de usabilidade, a jRDFa utiliza
recursos de navegação e visualização já bastante utilizados em
aplicações Web: tooltips e facetas. Dessa forma, a usabilidade
A análise dos trabalhos relacionados evidenciou que a
apresentação (visualização e navegação) para usuários não
técnicos na Web de Dados ainda é um problema em aberto e que
147
muita coisa ainda pode ser proposta. Este trabalho identificou a
relevância de construir uma biblioteca Javascript para apoiar o
desenvolvedor Web, interessado em apresentar, de forma simples
e eficiente, dados estruturados no formato RDFa para tais
usuários.
6. CONSIDERAÇÕES FINAIS
A semântica explícita na Web de Dados pode trazer benefícios
para uma grande diversidade e tipos de usuários. Em especial,
usuários sem experiência com esse espaço global de dados
precisam de ferramentas que os apoiem na descoberta de
informações interessantes e novos relacionamentos, na exploração
de conceitos desconhecidos e na apresentação do conhecimento
estruturado.
A proposta apresentada neste artigo está fundamentada e inserida
nesses aspectos, dado que permite a usuários comuns terem
acesso a informações semânticas, muitas vezes ocultas em
marcações RDFa de páginas Web. Os tooltips e as facetas,
exibidos pela biblioteca jRDFA proposta neste trabalho, visam
facilitar a apresentação dessas informações simplificando-as e,
consequentemente, ajudando as pessoas a entender melhor tais
informações, que, na maioria das vezes, têm como usuários alvo
os agentes de software.
[4]
Bizer, C. 2011. Evolving the web into a global data space.
In Proceedings of the 28th British national conference on
Advances in databases (BNCOD'11), Alvaro A. A. Fernandes,
Alasdair J. G. Gray, and Khalid Belhajjame (Eds.). SpringerVerlag, Berlin, Heidelberg, 1-1.
Camarda, D. V., Mazzini, S., and Antonuccio, A. 2012. LodLive,
exploring the web of data. In Proceedings of the 8th International
Conference on Semantic Systems (I-SEMANTICS '12), Harald
Sack and Tassilo Pellegrini
http://doi.acm.org/10.1145/2362499.2362532.
[8]
Cheng, G., Wu, H., Gong, S., Zhang, H. and Qu, Y. (2011).
Browsing Linked Data with MyView. In Proceedings of The 10th
International Semantic Web Conference (ISWC2011).
[9]
Davies, S., Hatfield, J., Donaher, C., and Zeitz, J. 2010. User
Interface Design Considerations for Linked Data Authoring
Environments. In Proceedings of LDOW.
[14] Lin, S., and Hu, Y. 2010 An Approach of Extracting Web
Information Based on HTMLParser. Information Technology and
Computer Science (ITCS), 2010 Second International Conference
on, vol., no., pp.284-287, 24-25.
[15] Pereira, M., and Martins, J.A. 2012. aRDF: a plugin to expose
RDFa semantic information using Grails. In Proceedings of the 6th
Euro American Conference on Telematics and Information
Systems (EATIS '12), Rogerio Patricio Chagas do Nascimento
http://doi.acm.org/10.1145/2261605.2261622.
[16] Talis http://docs.api.talis.com/platform-api/output-types/rdf-json
(last viewed April 28, 2013).
[17] Ziegler, J. 2011. Semantic web meets UI: context-adaptive
interaction with semantic data. In Proceedings of the 29th Annual
European Conference on Cognitive Ergonomics (ECCE '11).
http://doi.acm.org/10.1145/2074712.2074716
[18] Taulbee , O. E. Classification in information storage and retrieval,
in 20th National Conference. Cleveland, Ohio, United States:
ACM Press, 1965, pp. 119–137.
[19] Ranganathan, S. Prolegomena to Library Classification, 2nd ed.
London: Library Association, 1957.
Adida, B., Herman, I., Sporny, M. and Birbeck, M. 2012. RDFa
Primer, http://www.w3.org/TR/xhtml-rdfa-primer/ (visitado em
28/04/2013).
Berners-Lee, T. 2006. Design Issues: Linked Data.
http://www.w3.org/DesignIssues/LinkedData.html (visitado em
28/04/2013).
[7]
[13] Klyne, G., and Carroll, J. 2004. Resource Description Framework
(RDF): Concepts and Abstract Syntax. W3C Recommendation 10
February 2004. Series editor: Brian McBride,
http://www.w3.org/TR/rdf-concepts/ (last viewed April 28, 2013).
7. REFERÊNCIAS
[3]
Brunetti, J., Auer, S., and García, R. 2012. The Linked Data
Visualization Model.
[12] Hepp, M., García, R. and Radinger, A. 2009. RDF2RDFa: Turning
RDF into Snippets for Copy-and-Paste. 8th International
Semantic Web Conference (ISWC).
AGRADECIMENTOS: Os autores agradecem a CAPES, CNPq,
FAPESB e RNP, pelo apoio financeiro às pesquisas.
Adida, B., McCarron, S., Herman, I. and Birbeck, M. 2012. RDFa
Core 1.1: Syntax and processing rules for embedding RDF through
attributes, http://www.w3.org/TR/rdfa-syntax/ (visitado em
28/04/2013).
[6]
[11] Green Turtle https://code.google.com/p/green-turtle/ (last viewed
April 28, 2013).
Como trabalhos futuros, pretende-se adicionar à biblioteca um
módulo de consulta a Web de Dados, para permitir que a partir de
um recurso obtido na página, execute-se uma consulta em um
endpoint Linked Data, através de SPARQL e obtenham-se dados
relacionados. Isso enriquece o conjunto de informações exibidas
em um tooltip ou nas facetas e permite que as pessoas de fato
vivenciem a Web de Dados.
[2]
Bizer, C., Heath, T., and Berners-Lee, T. 2009. Linked Data---The
Story So Far. International Journal on Semantic Web and
Information Systems (IJSWIS).
[10] Dietzold, S., Hellmann, S., and Peklo, M. 2008. Using Javascript
RDFa Widgets for Model/View Separation inside Read/Write
Websites. 4th Workshop on Scripting for the Semantic Web
(SFSW).
Os experimentos realizados demonstraram a viabilidade da
proposta da jRDFa do ponto de vista de desempenho. Avaliações
com grupos de usuários podem ser realizadas com o objetivo de
descobrir tendências no comportamento das pessoas ao se
depararem com essas informações semânticas e estruturadas da
Web de Dados. Isso pode possibilitar a descoberta: i) de
limitações da proposta não observadas até então; ii) de aspectos
relativos à apresentação das informações, tais como, forma,
posicionamento, tamanho, cor, dentre outros. O estudo de usuário
ainda pode revelar novas ideias e abordagens a serem seguidas no
decorrer do desenvolvimento da biblioteca.
[1]
[5]
[20] Batista , C. E. C. F. e Schwabe, D. 2009. LinkedTube: semantic
information on web media objects. In Proceedings of the XV
Brazilian Symposium on Multimedia and the Web (WebMedia
'09). ACM, New York, NY, USA , 7 pages.
[21] Bizer, C., Mühleisen, H., Harth, A., Stadtmüller, S., Meusel, R.,
Schuhmacher, M., Völker, J. and Eckert, K. 2012. Web Data
Commons Extraction Report, http://webdatacommons.org/201208/stats/stats.html (visitado em 15/07/2013).
[22] Oren, E., Delbru, R. and Decker, S. 2006. Extending Faceted
Navigation for RDF Data. In Proceedings of The Semantic Web ISWC 2006. Lecture Notes in Computer Science Volume 4273,
2006, pp 559-572.
148
Download

jRDFa: Browsing and Visualization of Linked Data on the Web