• Nenhum resultado encontrado

Este capítulo apresentou uma abordagem para expansão de consultas com base em um modelo para representar o contexto e de regras para seleção de novas restrições à consulta original. Uma vantagem dessa abordagem é que a expansão da consulta pode, além de facilitar o processo de definição de consultas semânticas, também pode auxiliar os usuários a descobrirem novos tópicos a serem buscados.

A abordagem também se baseou em uma ontologia de topo para RCs cujas classes estão associadas aos elementos do modelo de contexto. Desse modo, as regras são muito genéricas, mas que podem ser substituídas ou uti- lizadas em conjunto com novas regras, de acordo com requisitos particulares de domínio e/ou aplicação, conforme ilustrado no esquema da figura 5.13.

Topo Domínio Aplicação Regras “Topo” Regras para domínio e aplicação especialização

Figura 5.13: Níveis da ontologia em relação às regras.

Um detalhe a respeito do modelo é que, embora na prática o usuário possa estar em múltiplos contextos simultaneamente, é assumido que este está num único contexto.

Protótipo Computacional

Este capítulo apresenta a implementação do protótipo computacional, com base na arquitetura conceitual apresentada no capítulo anterior. Con- forme definido na metodologia, a abordagem adotada para o desenvolvimento do trabalho foi dividida em duas etapas. A primeira etapa consiste na instan- ciação da arquitetura utilizando-se ferramentas e soluções disponíveis. Esta etapa cobre a perspectiva semântica apresentada no modelo conceitual. Final- mente, a segunda etapa envolve a implementação da perspectiva de contexto.

6.1

Arquitetura de Implementação

A implementação da arquitetura conceitual para busca de informação em RCs foi feita com base numa arquitetura Service Oriented Architecture (SOA), usando serviços Web, e os serviços em si foram escritos em lingua- gem Java. Esta arquitetura foi denominada Knowledge Search Services, ou simplesmente K-search, termo que será utilizado a partir de agora para se referir a esta implementação. A figura 6.1 mostra os elementos que compõem a arquitetura de implementação do K-search.

As interfaces de implementação dos serviços (codificadas em Web

Service Definition Language(WSDL)) encontram-se no apêndice A.

6.1.1 Tecnologias e Ferramentas Utilizadas

A arquitetura conceitual foi instanciada com base em uma série de tecnologias e ferramentas, a saber:

• Linguagem Java, usando o ambiente de desenvolvimento Eclipse1.

• Padrões e ferramentas para serviços Web, em particular o Apache Tom-

cat2. Conforme identificado no Capítulo 2, uma arquitetura orientada a

1http://www.eclipse.org/ 2http://tomcat.apache.org/

Motor de Busca << serviço web >> Navegador de Ontologias << serviço web >> Gerenciador de Documentos << serviço web >> Capturador de Contextos << serviço web >> Motor de Regras << serviço web >> Editor de Modelos << aplicativo >> Modelo de Contexto & Regras Ferramenta de BPM arquivo XML Aplicação de Busca << portlet >> usuário final

Plataforma KIM Jess Protégé ontologia Aplicação de Publicação << portlet >> especialista do domínio especialista do domínio

Figura 6.1: Arquitetura de Implementação do K-search.

serviços (SOA) é um requisito tecnológico essencial para a implemen- tação de infraestruturas para RCs.

• O portal Liferay3, bem como a implementação de portlets em Java.

• Linguagem para represetação de ontologias, em particular os padrões RDF e OWL.

• Editor de ontologias Protégé4.

Adicionalmente, duas ferramentas de suporte foram utilizadas na im- plementação: a Plataforma KIM, que serviu de base para a perspectiva se- mântica; e o Jess, que permitiu a implementação do motor de regras para implementação da perspectiva de contexto. Essas ferramentas são detalhadas nas subseções a seguir.

Plataforma KIM

Conforme mencionado na revisão bibliográfica, a Plataforma KIM foi escolhida para implementar parte da arquitetura, visto que esta ferramenta oferece suporte para a perspectiva semântica: gestão de ontologias, anotação semântica automática, indexação e busca de documentos (Popov et al., 2003). Todas essas funcionalidades são oferecidas pela Plataforma KIM através de

3http://www.liferay.com/ 4http://protege.stanford.edu/

um servidor que oferece um conjunto de APIs (acessíveis via Java Remote

Method Invocation(RMI)). Estas APIs serão detalhadas mais adiante, quando

a implementação dos serviços for descrita. KIM também oferece uma onto- logia de alto nível e uma base de conhecimento que proporciona a cobertura de entidades de importância geral.

Outro detalhe interessante a favor da Plataforma KIM é que algu- mas de suas funcionalidades são suportadas por outras plataformas. Estas plataformas são de código aberto e representam implementações largamente utilizadas, cada qual com um propósito específico. São elas:

• GATE5: plataforma para processamento de texto, que oferece funcio-

nalidades personalizáveis e escaláveis para o processo de Extração de Informação (EI), bem como anotação e gerenciamento de documentos (Cunningham et al., 2002; GATE, 2007). Esta plataforma foi menci- onada na seção 3.6, pois tem sido utilizada por várias plataformas de anotação semântica para dar suporte à EI e à anotação em si. Para ser utilizada pela KIM, GATE teve vários de seus módulos modificados para que trabalhassem com base em ontologias.

• Sesame: plataforma que pode ser usada para armazenamento de on- tologias ou como uma biblioteca Java para aplicações que precisem trabalhar com ontologias internamente (Broekstra et al., 2002; Sesame, 2007). É usada pela Plataforma KIM para armazenar a ontologia e suas instâncias. Sesame trabalha com padrões como RDF, RDFS e Notation3.

• Apache Lucene: máquina de busca escrita em Java (Lucene, 2007). Como sua busca é baseada em palavras-chave, foi adaptada e utilizada pela KIM para implementar a funcionalidade de busca semântica.

Outro aspecto interessante da Plataforma KIM é que ela utiliza uma

ontologia chamada PROTo ONtology (PROTON)6. Desenvolvida no escopo

do projeto SEKT (SEKT, 2006), PROTON é uma ontologia de propósito geral, contendo mais de 300 classes e 100 propriedades que cobrem a maioria dos conceitos de mais alto nível, necessários para anotação semântica, inde- xação e busca. PROTON também proporciona independência de domínios, definições lógicas, alinhamento com padrões populares e boa cobertura de nomes e entidades de domínios concretos (por exemplo, pessoas, organiza- ções, localidades, números, datas e endereços). Esta ontologia é codificada em OWL Lite e dividida em quatro módulos: i) System; ii) Upper; iii) Top; e iv) KM (Terziev et al., 2005). O propósito desta divisão é permitir que se

5General Architecture for Text Engineering 6http://proton.semanticweb.org/

possa adicionar facilmente extensões específicas a um domínio em particular (aspectos de integração são apresentados na seção 6.3).

A Plataforma KIM também oferece uma base de conhecimento, que corresponde às instâncias da ontologia PROTON. Esta base de conhecimento cobre várias entidades de importância geral e é utilizada no processo de anota- ção semântica para auxiliar no reconhecimento de entidades nomeadas. Tais entidades incluem:

• Lugares: cidades, países, continentes, etc.

• Organizações: comerciais, acadêmicas, esportivas, governamentais, etc. • Pessoas específicas, governantes, gestores de empresas, etc.

Jess

Jess é um motor de regras e ambiente de escrita de scripts desenvolvi- dos na linguagem Java por Ernest Friedman-Hill (Jess, 2008). Usando Jess, é possível desenvolver aplicações em Java que sejam capazes de processar o conhecimento expresso na forma declarativa (regras). Jess implementa uma versão melhorada do algoritmo Rete, que é eficiente na solução de problemas de associação N-para-N de padrões (Forgy, 1982). Jess é composto por:

• Um motor de regras e APIs para a sua utilização em Java; ou seja, é possível fazer o Jess processar objetos em Java diretamente.

• Uma linguagem de script que permite o acesso às APIs do Java; de maneira alternativa, é possível manipular objetos sem a necessidade de se escrever código Java.

• Ambiente de desenvolvimento, disponível na forma de plugin para o ambiente Eclipse. Tal ambiente oferece as seguintes facilidades: colo- rização com base na sintaxe; assistente de preenchimento automático; verificação de erros em tempo real; formatação automática de código; execução e debug de código.

Com base nessas características, a sua escolha para utilização neste trabalho foi natural, visto que possui implementação eficiente, é integrado ao Java e possui licença gratuita para uso acadêmico.