Uma Proposta de Navegação na Web Utilizando Facetas
Cássio Prazeres1, Daniel Lucrédio1, Renata Fortes1, Cesar Teixeira2
1
Instituto de Ciências Matemáticas e de Computação–Universidade de São Paulo – USP
Caixa Postal: 668 – CEP: 13560-970 – São Carlos – SP
2
Departamento de Computação – Universidade Federal de São Carlos – UFSCar
{prazeres, lucredio, renata}@icmc.usp.br, [email protected]
Resumo. A consolidação da Web Semântica vai possibilitar o surgimento de uma
vasta gama de novas aplicações que tirem proveito da semântica do conteúdo
disponibilizado. Algumas destas aplicações já podem ser vislumbradas com o pouco
de semântica que já existe em alguns Websites atuais. Muitas outras dessas
aplicações poderão surgir à medida que a Web Semântica evolui. Este artigo trata
dos conceitos envolvidos com a Web Semântica e suas camadas, focando na camada
de RDF (Resource Description Framework) e na sua utilização, em conjunto com o
conceito de facetas, para navegação entre páginas Web. O artigo apresenta uma
proposta de navegação na Web com semântica agregada através do uso de
tecnologias como o RDF e o Dublin Core.
1. Introdução
Uma nova forma de conteúdo Web que pode ser entendido e manipulado por
computadores vai gerar uma revolução de novas possibilidades. Esta é a proposta, em
termos gerais, da Web Semântica [1].
O uso de tecnologias como, por exemplo, XML (eXtensible Markup Language)
e seus derivados, já possibilitam embutir semântica na Web. Afinal, a Web Semântica
não é uma Web separada, mas sim uma extensão da Web atual. Porém, a grande maioria
dos documentos da Web hoje está no formato HTML, que não tem semântica associada,
e a navegação ocorre por meio de links entre os documentos, links estes, geralmente,
também sem nenhum tipo de semântica agregado.
Prazeres et al. [2] propõem uma alternativa de navegação com semântica
associada e utilizando o conceito de facetas. O usuário pode selecionar um conjunto de
facetas, baseado nos metadados das páginas, e como resultado ele recebe um conjunto
de links que apontam para páginas que satisfazem à seleção das facetas escolhidas. Esta
é uma maneira de atribuir semântica aos links. Porém, a implementação proposta por
eles foi feita em um ambiente mais restrito e, portanto mais controlável, do que a Web:
a CoTeia1.
Este artigo propõe uma alternativa à navegação entre páginas da Web: o uso do
conceito de facetas juntamente com as tecnologias RDF e Dublin Core. A proposta aqui
é definir uma forma padrão para navegação por facetas e, por isso, a utilização de
padrões como o RDF, XML e Dublin Core.
1
http://coteia.icmc.usp.br/coteia
A seção 2 trata dos principais conceitos e tecnologias envolvidas na proposta de
navegação Web apresentada neste artigo: Facetas, RDF, Dublin Core e API Jena. A
proposta de navegação Web por facetas propriamente dita é apresentada na seção 3. E a
seção 4 tece algumas considerações finais e trabalhos futuros de relevância para a
proposta de navegação aqui apresentada.
2. Conceitos e Tecnologias Envolvidos
2.1 Facetas
A classificação em facetas busca ser um meio flexível para catalogar itens de
informação. Vem sendo utilizada em diversos cenários como uma alternativa às
classificações hierárquicas e enumeradas, inerentemente mais rígidas e de difícil
manutenção. Suas origens datam de muito tempo atrás. Taulbee [3] cita o trabalho de
Ranganathan [4], que teria sugerido a utilização do esquema em facetas na classificação
de livros em um trabalho que começou em 1924. Porém, a idéia da classificação em
facetas é um meio natural de organização da informação, e não pode ser atribuída a
nenhum autor específico.
Para se compreender a classificação em facetas, considere como exemplo um
catálogo de filmes. A maneira mais comum de se classificar filmes é pelo gênero:
filmes de ação, de suspense, de terror, comédias, etc. Porém, essa é apenas uma das
possíveis opções para se classificar um filme. Olhando por outro lado, pode-se
classificar um filme segundo sua faixa etária: livre, maiores de 15, maiores de 18,
maiores de 21, etc. Também é possível classificá-lo pela duração: curta-metragem ou
longa-metragem.
Estes diferentes pontos de vista para classificação são as chamadas facetas. Cada
faceta (gênero, faixa etária, duração) possui diferentes valores. Por exemplo, a faceta
gênero pode possuir os valores: ação, suspense, terror, comédia, etc. Por sua vez, a
faceta faixa etária pode possuir os valores: livre, maiores de 15, maiores de 18,
maiores de 21, e assim por diante.
No contexto da Web, a classificação em facetas surge como um novo paradigma
de navegação. Normalmente, navega-se de uma página para outra seguindo-se links
unidirecionais. Na navegação em facetas, pode-se navegar de acordo com os valores das
facetas.
Uma das vantagens da navegação baseada em facetas é a possibilidade de se
combinar um ou mais valores. Por exemplo, é possível obter todas as páginas escritas
em português (faceta língua), escritas entre 2001 e 2002 (faceta data), do tipo texto
(faceta tipo do conteúdo). Um exemplo deste tipo de navegação pode ser visto no
projeto Simile-Longwell2.
2.2 RDF
RDF é uma linguagem para representação de informação sobre recursos na Web [5].
Seu propósito é representar metadados de recursos na Web. Entende-se com um recurso
da Web, em RDF, não apenas objetos que podem ser recuperados através da Web, mas
2
http://simile.mit.edu/longwell/demo/tr/longwell
qualquer tipo de recurso que pode ser identificado na Web. Ou seja, além de representar
objetos recuperáveis pela Web tais como imagens, páginas Web, áudio, vídeo, etc.,
RDF também representa recursos como pessoas e artigos disponíveis lojas on-line.
Figura 1. Um grafo RDF [5]
A maioria das informações da Web está disposta para ser consumida por
pessoas. Com RDF a intenção é nas situações onde a informação precisa ser processada
por aplicações. Com a facilidade com que pessoas trocam informações hoje através da
Internet é razoável pensar que aplicações também o façam. Porém, é necessário um
meio que possibilite que as diversas aplicações processem os dados que as outras
produzirem.
A idéia básica de RDF é a de identificar coisas usando identificadores Web
chamados URI (Uniform Resource Identifiers) e descrever essas coisas em termos de
propriedades e seus valores. Isto possibilita a representação de simples declarações a
respeito dos recursos em forma de um grafo de nós e arcos como exemplificado na
Figura 1.
A
Figura
1
mostra
uma
pessoa
identificada
pela
URI
http://www.w3.org/People/EM/contact#me cujo nome é Eric Miller, possui e-mail
[email protected] e tem o título de Doutor. Além de grafos, pode-se representar declarações
RDF em forma de triplas (Exemplo 1) e com XML (Exemplo 2).
<!— Exemplo 1 -->
<http://www.w3.org/People/EM/contact#me>
<http://www.w3.org/2000/10/swap/pim/contact#mailbox> “Eric Miller”
<!— Exemplo 2 -->
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#">
<contact:Person rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:fullName>Eric Miller</contact:fullName>
<contact:mailbox rdf:resource="mailto:[email protected]"/>
<contact:personalTitle>Dr.</contact:personalTitle>
</contact:Person>
</rdf:RDF>
2.3 Dublin Core
O padrão Dublin Core possui um conjunto de elementos para descrição de recursos, que
foi criado para ser independente de domínio [6]. Um recurso em Dublin Core, assim
como em RDF, é definido como qualquer coisa que tem uma identificação dada por
uma URI.
Desta forma, torna-se muito natural o uso em conjunto de RDF e Dublin Core
para descrever recursos na Web. A Tabela 1 mostra os principais elementos de Dublin
Core que podem ser usados na descrição de recursos [6].
Elemento
Descrição
O nome que é dado ao recurso.
Responsável pelo conteúdo do recurso.
O assunto sobre o qual o conteúdo do recurso trata.
Uma breve descrição do conteúdo do recurso.
Responsável pela publicação do conteúdo do recurso.
Outros responsáveis por contribuir com o conteúdo do recurso.
Uma data de um evento no ciclo de vida do recurso.
A natureza ou gênero do conteúdo do recurso.
O formato físico ou digital do recurso.
Uma referência única para o recurso dentro de um dado contexto
(URI).
Uma referência para um recurso do qual o recurso atual é derivado.
A linguagem do conteúdo do recurso.
Uma referência para um recurso relacionado ao recurso atual.
O escopo do conteúdo do recurso.
Informações de sobre quem mantém direitos sobre o recurso.
Title
Creator
Subject
Description
Publisher
Contributor
Date
Type
Format
Identifier
Source
Language
Relation
Coverage
Rights
Tabela 1. Conjunto de elementos Dublin Core [6]
O conjunto de elementos do Dublin Core apresentado na Tabela 1 pode ser
representado de diversas formas [7]. Neste artigo estará representado na forma de
RDF/XML, como é apresentado no Exemplo 3.
<!— Exemplo 3 -->
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF PUBLIC "-//DUBLIN CORE//DCMES DTD 2002/07/31//EN"
"http://dublincore.org/documents/2002/07/31/dcmes-xml/dcmes-xml-dtd.dtd">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://www.ilrt.bristol.ac.uk/people/cmdjb/">
<dc:title>Dave Beckett's Home Page</dc:title>
<dc:creator>Dave Beckett</dc:creator>
<dc:publisher>ILRT, University of Bristol</dc:publisher>
<dc:date>2002-07-31</dc:date>
</rdf:Description>
</rdf:RDF>
2.4 A API Jena
Jena é um framework Java para construção de aplicações para a Web Semântica [8].
Jena fornece um ambiente de programação para RDF, RDFS e OWL. É uma iniciativa
open-source do HP Labs Semantic Web Programme.
O framework Jena inclui uma API para RDF que possibilita leitura e escrita de
RDF em RDF/XML, N3 e N-triplas, uma API para OWL, persistência em bases de dado
relacional e uma linguagem de consulta para RDF (RDQL).
A API RDF do Jena pode ser usada para criar e manipular grafos RDF. Existem
interfaces Java que representam recursos (Resource), propriedade (Property) e literais
(Literal) do RDF. Em Jena um grafo é representado pela interface Model. Um modelo
pode ser criado em memória ou usando uma base de dados relacional. Jena, além do
suporte aos esquemas RDF e RDFS, ainda provê suporte para outros esquemas
conhecidos tais como Dublin Core.
3. Proposta de Navegação na Web Utilizando Facetas
Como tentativa de uma navegação mais eficiente na Web este artigo propõe a
navegação por facetas em conjunto com os metadados Dublin Core expressos na forma
de XML/RDF. Nesta proposta o provedor do conteúdo3 deve especificar quais
informações devem virar facetas e como estas informações serão transformadas em
metadados do padrão Dublin Core (ver Tabela 1).
Figura 2. Arquitetura para a proposta de navegação Web por facetas.
Na arquitetura proposta e ilustrada na Figura 2 destacam-se quatro pontos
principais: i) a transformação dos documentos fontes para os metadados em Dublin
Core; ii) a extração de facetas a partir dos metadados Dublin Core na forma XML/RDF;
iii) o armazenamento numa base de dados RDF; e iv) a interface do usuário para
navegação pelas facetas. Conforme detalhado a seguir:
i.A transformação dos documentos, que serão navegados por facetas, em metadados
Dublin Core deve ser feita a priori pelo provedor do conteúdo, assumindo que apenas
ele sabe exatamente o significado dos seus dados. A transformação pode ser feita, de
preferência, no momento da criação do próprio documento. Para tanto, pode-se usar
uma folha de estilo XSLT que realizará a transformação. É preciso mapear quais
elementos no documento original serão extraídos para virar metadados do Dublin Core
apresentados na Tabela 1. É neste momento que o provedor do conteúdo deve escolher
as informações a serem mapeadas para Dublin Core.
ii.Com os metadados Dublin Core devidamente extraídos é necessário um extrator de
facetas. A extração de facetas visa gerar documentos XML/RDF a partir dos
documentos Dublin Core. A idéia de usar RDF aqui é padronizar a forma de
navegação nos documentos. Com isto, pode-se padronizar todo o processo de
navegação por facetas da Figura 2, deixando para o provedor do conteúdo apenas o
encargo da transformação, além de utilizar um padrão que tende a ser amplamente
utilizado na Web Semântica. O extrator de facetas será implementado utilizando a API
Jena para RDF que já inclui suporte para Dublin Core.
3
Provedor de conteúdo neste artigo é toda entidade que deseja disponibilizar conteúdo para ser navegado
através do conceito de facetas aqui proposto.
iii.As facetas geradas em Dublin Core e XML/RDF serão armazenadas em base de dados
relacional também utilizando a API Jena.
iv.Por fim deve ser implementada uma interface padrão para possibilitar ao usuário a
navegação pelas facetas. Ao selecionar as facetas o usuário estará restringindo o
número de páginas da interface. Assim, ele seleciona semanticamente (a partir dos
metadados Dublin Core) as páginas que ele realmente quer navegar.
4. Considerações Finais
Este artigo apresenta uma proposta de navegação em páginas Web utilizando o conceito
de facetas. A proposta apresentada utiliza conceitos e tecnologias da Web Semântica,
tais como RDF.
A idéia de navegação por facetas na Web possibilita agregar semântica à
navegação, visto que o usuário escolhe as páginas com base nos seus metadados.
Porém, aplicar essa proposta na Web atual de forma a permitir a navegação por facetas
como uma alternativa à navegação por links HTML ainda é bastante complicado devido
à heterogeneidade e à falta de semântica para a maioria das páginas na Web.
Como trabalho futuro, é importante pensar a aplicação desta proposta em
cenários reais com o intuito de testar sua viabilidade, por exemplo a CoTeia. Um outro
trabalho que pode ser vislumbrado é transformar a proposta de navegação por facetas
aqui apresentada em uma metodologia e posteriormente um framework. Esta
metodologia poderia guiar o provedor de conteúdo, interessado em disponibilizar
conteúdo para navegação por facetas, através de uma série de passos necessários para
que seu conteúdo torne-se possível de ser navegado através de facetas.
Referências
[1] T. Berners-Lee, J. Handler, and O. Lassila, The SemanticWeb, 2001. Disponível
on-line em: http://www.sciam.com/
[2] Prazeres, C.; Lucrédio, D.; Fortes, R.; Teixeira, C. Navegação sobre páginas
Web utilizando facetas. Submetido ao WebMedia 2005.
[3] Taulbee, O. E. Classification in information storage and retrieval. In 20th
National Conference, 1965, pages 119–137, Cleveland, Ohio, United States.
ACM Press.
[4] Ranganathan, S. Prolegomena to Library Classification. Library Association,
London, 1957, 2nd edition.
[5] Manola, F.; Miller, E. RDF Primer – W3C Recommendation 10 February 2004.
Disponível on-line em: http://www.w3.org/TR/rdf-primer/
[6] Dublin Core Metadata Element Set,
http://dublincore.org/documents/dces/
2004.
Disponível
on-line
em:
[7] Miller, E.; Brickley, D. Expressing Simple Dublin Core in RDF/XML, 2002.
Disponível on-line em: http://dublincore.org/documents/dcmes-xml/
[8] McBride, B. An Introduction to RDF and the Jena RDF API, 2005. Disponível
on-line em: http://jena.sourceforge.net/tutorial/RDF_API/index.html
Download

Uma Proposta de Navegação na Web Utilizando Facetas