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