• Nenhum resultado encontrado

Inferência sobre Ontologias no contexto da Web Semântica

N/A
N/A
Protected

Academic year: 2021

Share "Inferência sobre Ontologias no contexto da Web Semântica"

Copied!
5
0
0

Texto

(1)

Inferência sobre Ontologias no contexto da Web Semântica

Fernando Wagner B. H. Filho¹, Bernadette F. Lóscio², Gustavo A. L. De Campos¹

1

Departamento de Computação - Universidade Estadual do Ceará (UECE)

2

Departamento de Computação - Universidade Federal do Ceará (UFC) {fernando.wagner@gmail.com, bernafarias@lia.ufc.br, gustavo@larces.uece.br}

Resumo

Atualmente, a quantidade de dados disponíveis na Web tem crescido em grandes proporções. Com o advento da Web 2.0, a tendência de crescimento desta massa de dados, bem como o grau de compartilhamento destes, é ainda maior. Por este motivo, faz-se necessário adquirir uma forma estruturada e padronizada de organizar este grande volume de dados. Tão importante quanto esta organização é garantir sua correta disposição ao usuário, através dos chamados metadados. Neste contexto, são desenvolvidas aplicações tendo como principal objetivo a filtragem de dados, fornecendo ao usuário, informações seguras e relevantes.

1. Introdução

A Web tem sido bastante utilizada como fonte de pesquisa entre usuários devido ao seu grande volume de dados e informações. Porém, estes recursos são disponibilizados de forma pouco organizada e padronizada, o que dificulta o processo de busca por meio de ferramentas automatizadas. O homem ainda é o grande responsável por raciocinar semanticamente sobre os dados disponíveis na Web a fim de encontrar o que se procura. Esta etapa de “triagem” da informação, bem como verificação da sua relevância, é demorada, custosa e pode muitas vezes acarretar em resultados não satisfatórios. Seria muito mais fácil e cômodo se as informações contidas na Web estivessem dispostas em um padrão de comunicação de tal forma que um software automatizado pudesse recuperar a informação desejada com segurança, rapidez e confiabilidade. É neste contexto em que se insere a Web Semântica, que tem como principal objetivo organizar as informações, adicionando dados (metadados) que dêem mais semântica à informação, de tal forma a obter uma maior facilidade de entendimento tanto por parte das aplicações quanto por parte do usuário, eliminando ambigüidades e melhorando o desempenho na recuperação de um recurso. Assim, sistemas web poderiam realizar buscas por informações com resultados mais relevantes e em tempo satisfatório. A Web Semântica [6] possui uma arquitetura em camadas,

onde cada camada depende das camadas inferiores a esta, como apresentado na Figura 1 e descrito a seguir.

Figura 1. As camadas da Web Semântica

• Camada URI/UNICODE: Permite identificar unicamente cada recurso disponível na Web através de um endereço (Universal Resource Identifier) como figuras e páginas HTML.

Também define o padrão de codificação de caracteres.

• Camada Metadados + XML: Permite a criação de marcações para descrição de informações.

Aplicações podem trocar conhecimento desde que tenham um entendimento comum no vocabulário vingente.

• Camada RDF+RDFSchema: Provê um modelo de descrição lógica de dados permitindo descrever logicamente os recursos da Web e seu relacionamento com outros recursos.

• Camada de Vocabulário da Ontologia: Camada responsável pela semântica formal e expressiva para a implementação de ontologias (definição formal e conceitual de um domínio).

• Camada Lógica: É responsável pelo raciocínio e execução de inferências lógicas a partir do modelo ontológico implementado.

• Camada de Prova e Confiança: Camada que provê um mecanismo para avaliar o nível de confiabilidade das fontes de recursos e informações.

Neste trabalho, abordaremos a camada lógica e discutiremos algumas das atuais maneiras de se fazer

ASSINATURA DIGITAL CONFIANÇA PROVA

LÓGICA

(2)

inferências em ontologias, destacando métodos, ferramentas, recursos, bem como vantagens e desvantagens do uso de cada abordagem. Na seção 2 dissertamos sobre os conceitos associados à ontologias.

Na seção 3 introduzimos alguns conceitos básicos sobre lógica e inferência e na seção 4 abstraímos estes conceitos para o contexto das ontologias na Web Semântica. Na seção 5, concluimos o trabalho.

2. Ontologias

A Web semântica requer a implementação explícita da semântica das informações para prover o suporte necessário para o processamento de dados por parte das máquinas, ou seja, o conteúdo abordado deve estar munido de contexto e vocabulário comuns. As ontologias têm sido usadas com o objetivo de prover estas informações semânticas. O termo ontologia possui várias definições em diversas áreas, mas para a Ciência da Computação, uma ontologia pode ser descrita como a conceitualização formal de um determinado domínio, ou seja, uma determinada área de conhecimento na qual se tenha um interesse particular[4]. Uma ontologia define formalmente os termos usados para descrição e representação deste domínio. Diversas linguagens foram propostas para representação de ontologias. Dentre estas linguagens, destacamos a Web Ontology Language (OWL), que foi proposta pelo W3C como linguagem padrão para representação de ontologias. A linguagem OWL possui recursos próprios para a definição de classes e propriedades para o domínio-alvo e pode ser classificada como se segue:

Full: Versão mais abrangente da linguagem que pode ser usada por quem procura a máxima expressividade. Porém, ainda não existe uma forma ou ferramenta de raciocínio eficiente sobre esta versão.

DL: Versão mais restrita que a Full, porém, passível de decidibilidade. Hoje, há várias ferramentas que funcionam como “motores de inferência” para esta linguagem.

Lite: A menos expressiva das versões de OWL.

Porém, a mais fácil de entender e implementar, tem sido muito usada para definição de domínios simples

Para ilustrar alguns conceitos da linguagem OWL, na Figura 2, apresentamos um trecho de uma ontologia que aborda o domínio família. Os conceitos de “homem” e

“pessoa” são definidos como classes, seguidas da propriedade “tem irmão”.

Figura 2. Trecho de uma ontologia em OWL

A versão Full da linguagem faz proveito da máxima expressividade do OWL. Porém, alcançar a máxima expressividade pode comprometer a decidibilidade das construções lógicas, comprometendo o correto funcionamento dos motores de inferência sob as ontologias. Como estamos interessados em trabalhar na camada lógica com uso de inferências, usaremos OWL DL. Atualmente, além de uma vasta documentação, existem ferramentas que auxiliam no processo de construção de uma ontologia, como o Protege e o Swoop

. 3. Lógica e Inferência

Lógica é a ciência que estuda a corretude do raciocínio, ou seja, estuda maneiras corretas de se pensar, a fim de obter conhecimentos verdadeiros. Um problema clássico de lógica consiste em, dado um conjunto de premissas (fatos conhecidos), obter uma conclusão correta, provando ou não a validade de um determinado argumento (se este é verdadeiro ou falso). Considere o seguinte exemplo:

é_Pai(x,y) :- é_filho(y,x), Homem(x).

é_Mãe(x,y) :- é_filho(y,x), Mulher(x).

Homem(x) :- Pessoa(x), ¬Mulher(x).

Mulher(x) :- Pessoa(x). ¬Homem(x).

temIrmão(x,y) :- ((é_Pai(z,x), é_Pai(z,y)) ; é_Mãe(z,x), é_Mãe(z,y)), Pessoa(x), Pessoa(y).

O exemplo acima descreve alguns conceitos básicos (ex: homem, mulher) de um determinado domínio (família) e a partir destes conceitos, é possível inferir um conhecimento (quando um indivíduo terá laços fraternos com outro indivíduo). Esta forma de raciocínio é o que chamamos de regras lógicas. Tais definições de regras são muito úteis para inferência de conhecimentos implícitos.

De posse dos conceitos e regras, podemos designar

(3)

valores para estes conceitos. Tais valores são chamados de fatos. Considere agora o seguinte conjunto de fatos:

Homem(José).

Homem(João).

Homem(Joaquim).

é_Pai(Joaquim,José).

temIrmão(João,José).

Dado três homens (Joaquim, João, José), sabe-se que Joaquim é pai de José e João é irmão de José. Destes fatos, podemos inferir alguns conhecimentos implícitos, como o fato de Joaquim também ser pai de João, pois está explícito que João é irmão de José e, segundo a definição da regra “temIrmão”, ambos devem ter o mesmo pai e/ou a mesma mãe.

4. Ontologias e Inferências

A camada ontológica permite a definição de classes (conceitos) e propriedades (relacionamento entre conceitos) para a conceitualização e formalização de um domínio. Porém, ela não é suficiente para descrever por completo as relações lógicas existentes em um domínio, pois só inclui composições de hierarquias de classes e propriedades. Visando complementar a modelagem semântica dos domínios, foi proposta a camada lógica.

Assim, podemos definir um conjunto de regras que podem ser usados para inferir novos fatos a partir dos conhecimentos já formalizados na camada ontológica.

Algumas vantagens de fazer uso de tal mecanismo são: i) Aumentar a capacidade de inferência no tratamento de ontologias por parte das aplicações, ii) Inferir informações a partir de axiomas definidos naontologia e iii) Expressar associações entre propriedades.

Para se trabalhar com inferências em ontologias é necessário ter uma linguagem para a definição de regras e um motor de inferência, uma ferramenta que vai mapear e inferir os conhecimentos implícitos e explícitos formalizados na ontologia-alvo. Pode-se implementar tais regras usando recursos como JESS[5], JENA[2] e SWRL[1]. Nas próximas sessões, apresentamos características básicas de um motor de inferência bem como exemplos de regras definidas na linguagem SWRL e no framework JENA.

4.1 Linguagens para definição de regras

Uma boa linguagem para definição de regras deve possuir todo o rigor lógico (ex: deve ser livre de ambigüidades e indeterminações), bem como clareza e

intuitividade em sua sintaxe. É necessário também que se adote uma padronização de linguagem, para que se possa preservar a facilidade de troca de informação e integração de dados.

A linguagem SWRL (Semantic Web Rule Language) foi proposta com o objetivo de padronizar a definição de regras em ontologias. Advindo do RuleML[3], SWRL é baseada em OWL DL, sendo a linguagem para definição de regras padrão recomendada pelo W3C. SWRL usa cláusulas de HORN no formato antecedente ->

conseqüente, como descrito abaixo, para a definição de regras:

A1,...,An -> B

onde Ai e B são fórmulas atômicas, podendo ser lido da seguinte forma: Se A1,...,An são verdades, então B é verdade(dedução) ou se A1,...,An, então execute B(reação).

Por exemplo, para o domínio família, podemos definir uma regra para a relação “temTio”, fazendo composições com base nas relações “temPai” e “temIrmão” já definidas previamente na ontologia:

temPai(?x,?y) ^ temIrmão(?y,?z) ^ Homem(?z) Æ temTio(?x,?z).

Perceba que não é possível fazer esse tipo de associação entre propriedades apenas com os recursos de OWL. O SWRL também disponibiliza as chamadas classes Built-Ins. As Built-Ins são funções computáveis, úteis em obter respostas sobre um processamento em cima de atributos. Os Built-Ins são definidos em um documento owl a parte, o swrlb. Estes também são baseados nos Built-Ins definidos no XQuery e XPath. A SWRL disponibiliza Built-Ins:

• Matemáticas

• Para manipulação de Strings

• Manipulação de Data, tempo, duração

• Listas, URI´s

Como exemplo, considere uma regra que, dada uma ontologia que descreve o domínio de uma famíliaa, defina o conceito de irmão “mais velho”. Podemos fazer uso de uma built-in que irá comparar diretamente a idade entre 2 irmãos:

hasBrother(?x,?y) ^ hasAge(?x,?idade1) ^ hasAge(?y,

?idade2) ^ swrlb:greaterThan(?idade1,?idade2) ->

hasOlderBrother(?x, ?y)

Dado que x e y são dois irmãos, x será mais velho que y se sua idade for superior. Perceba que, além do uso da Built-In swrlb:greaterThan, precisamos de 2 atributos numéricos que simbolizam as idades dos indivíduos.

Podemos representar estes atributos na própria ontologia como uma propriedade de dado (Datatype Property). É

(4)

importante ressaltar que os atributos devem ser do mesmo tipo de dado para que haja o bom funcionamento de uma Built-In. Apesar do SWRL ser o padrão recomendado pela W3C na definição de regras, a maioria dos motores de inferência suportam apenas parte das funcionalidades do SWRL. Outros motores como o JESS, traduzem as regras em SWRL para sua linguagem própria agindo também como motor de inferência. Na próxima seção, falaremos das definições e características de um motor de inferência. Umas das principais vantagens do SWRL é a facilidade de uso, visto que o SWRL é especificado em OWL.

4.2 Motores de inferência

Os motores de inferência ou raciocinadores são ferramentas de software que mapeiam uma base de conhecimentos existente (coleção de conceitos e relações entre estes conceitos, fatos e regras), inferindo conhecimentos adicionais e mostrando informações implícitas. Como exemplo de inferência, podemos citar a classificação (computação de todas as classes as quais um determinado indivíduo pertence) e a realização (encontrar as classes mais específicas no qual um indivíduo pertence) de indivíduos. Além da inferência de informações, os raciocinadores têm a capacidade de responder consultas em cima do conhecimento provido e inferido, bem como checagem de consistência de ontologias. Algumas características são desejáveis a um raciocinador, como:

• Dinamismo: Consiste em dar suporte ao acréscimo de informações na base de conhecimento, sempre atualizando as inferências de forma a manter a corretude das informações.

• Multiplicidade: Conseguir trabalhar num domínio que possa conter uma ou mais ontologias, dando suporte à conceitos externos.

• Suporte à linguagem padrão de ontologias (OWL).

• Trabalhar eficientemente com grandes volumes de informação.

Hoje em dia, existem vários raciocinadores implementados e em constante aprimoramento (ex: Racer [9], Pellet [7], Fact++, etc..). Cada um destes motores tem uma maneira diferente de tratar as informações na ontologia. Dentre os motores, destacamos o Pellet [7]. O Pellet é um motor de inferência para OWL-DL, totalmente feito em JAVA, podendo facilmente integrar- se ao framework JENA, além de ser open-source. Em sua versão 1.5.1, o Pellet possui um mecanismo de checagem de consistência de ontologias bem como suporte parcial ao SWRL, apenas suportando a sintaxe da linguagem bem como as Built-Ins de comparação (igualdades e desigualdade). Porém, o Pellet está em contínuo

desenvolvimento, contando inclusive com a participação da comunidade acadêmica no intuito de melhorar e ampliar suas funcionalidades.

Dentre as principais vantagens do Pellet podemos citar a portabilidade, facilidade de integração com os principais frameworks para desenvolvimento de ontologias (visto que estes foram desenvolvidos em java) e o bom desempenho se comparado à outros motores de inferência.

4.3 Framework para construção de aplicações - Jena

JENA é um framework java para a construção de aplicações semânticas para a Web, que provê um ambiente para construção de aplicações RDF, DAML+OIL, OWL. Além disso, o JENA possui uma linguagem e um motor de inferência próprios para o tratamento de inferências. A seguir, apresentamos um exemplo de definição de regras utilizando a linguagem do JENA:

[RegraTransitivaP: (?A p ?B), (?B p ?C) Æ (?A p ?C) ]

A RegraTransitivaP especifica que a propriedade p é transitiva (se ?A se relaciona com ?B através de p, e ?B se relaciona com ?C através de p, então ?A se relacionará com ?C através de p). As regras são guardadas em um arquivo .rule que é acessado através de linhas de comando usando classes da API JENA. Uma vantagem de usar o JENA para inferências é que você pode aproveitar todas as outras utilidades do framework. Porém, a linguagem adotada para definição de regras é relativamente difícil de utilizar, se comparado à outras linguagens de definição de regras. É recomendável também integrá-lo à outros motores de inferência feitos em Java, como o Pellet e Bossam[10], pois o motor de inferência deste framework está apto à fazer inferências somente sobre a versão lite da linguagem owl.

5. Conclusões

É fato que, atualmente, a Web necessita de uma melhor organização na disposição de informações. No contexto da Web semântica, as ontologias atuam como descritores lógicos, que permitem classificar e relacionar as informações e dados na Web. Na arquitetura da Web Semântica, apresentada por Berners-Lee, a camada lógica funciona como um complemento semântico à ontologia do domínio abordado, permitindo a definição e formalização de regras a partir de conceitos previamente definidos.

Com o advento da Web Semântica, será possível criar um ambiente padronizado no qual agentes poderão

(5)

auxiliar usuários em consultas, diminuindo as chances de erro do usuário e aumentando a relevância dos resultados das consultas.

Podemos perceber que há todo um esforço do W3C em padronizar uma linguagem para definição de regras, de forma a facilitar o desenvolvimento de raciocinadores bem como manter o padrão de comunicação idealizado pela Web Semântica

.

Referências bibliográficas

[1] HORROCKS Ian, et al., “SWRL: A Semantic Web Rule Language Combining OWL and RuleML”, W3C Member Submission, 2004

[2] REYNOLDS Dave. “Jena 2 Inference Support”,Disponível em: <http://jena.sourceforge.net/index.html>Acesso em: 12 fev.2008

[3] BOLEY Harol, et al. “Design Rationale of RuleML: A Markup Language for Semantic Web Rules”,Eindhoven ,2001.

[4] GRÜBER T.R, “A Translation Approach to Portable Ontology Specification, Knowledge Acquisition” 5(2):199-220, 1993.

[5] FRIEDMAN-HILL Ernest, SMITH, Craig, “Jess: The rule engine for the java plataform”. Disponível em:

http://www.jessrules.com/jess/index.shtml. Acesso em 10 fev.

2008

[6] BERNERS-LEE, T., HENDLER, J., LASSILA O. “The Semantic Web. ScientificAmerican”,v. 284, n. 5, p. 34-43, 2001 [7] SIRIN Evren, et al, “Pellet: A Pratical OWL-DL Reasoner”, Valencia, Journal of Web Semantics, 2007

[8] ANTONIOUS Grigoris; Harmelen Frank van. “A Semantic Web Primer”,Cambridge, MIT Press, Massachusetts, 2004.

[9] HAARSLEV Volker; MÖLLER Ralf, “Racer: A Core Inference Engine for the Semantic Web”, Montreal , 2005.

[10] JANG Minsu, SOHN Joo-Chan. “Bossam: An Extended Rule Engine for OWL Inferencing”, South Korea ,2004.

[11] TSARKOV Dmitry, HORROCKS Ian. “Fact++ Description Logic Reasoner: System Description”, Manchester, UK, 2006

Referências

Documentos relacionados

São João da Lagoa São João da Ponte São João das Missões São João do Pacuí São Joaquim de Bicas São José da Lapa São José da Varginha São Romão. São Roque de Minas

Uma análise fundamentada dessa proposta leva às seguintes conclusões: (1) O governo tem conseguido reduzir os valores do défice devido também a desorçamentação crescente;

Embargos acolhidos para, conferindo-lhes efeitos modificativos, dar provimento ao recurso especial para afastar o entendimento preconizado pela Súmula nº 70/STJ,

Neste trabalho, através de um estudo de caso - um projeto de expansão de uma indústria metalúrgica -, focalizaremos a análise económico-financeira como um

Carlos de Souza Fernandes. Elpidio Joaquim Afftnrso. João Miguel Vitaca. - João Pereira da Cruz Joaquim José do Rego. José Francisco Mendonça Manoel Ângelo Andrade Manoel

Rodrigo Magalhães, dos.. Antônio Neves da Rosa. João de Souza Gaya. João Miguel Vitaca. João Pereira da Cruz. Joaquim José do Rego .. José Francisco Mendonça » ... Vasco Carvalho

Joaquim José Gomes da Silva Júnior.. José Rodrigues

As editoras que integram o GEN, das mais respeitadas no mercado editorial, construíram catálogos inigualáveis, com obras decisivas para a formação acadêmica e o aperfeiçoamento