sábado, 4 de abril de 2009

Notas sobre Engenharia Ontológica

Notas sobre Engenharia Ontológica

ENGENHARIA ONTOLÓGICA
Iraci Sobral de Oliveira, PUC/PR

image

1 Considerações sobre Ontologia


O entendimento de Engenharia Ontológica passa necessariamente pelo entendimento do que é ontologia. Várias são as definições encontradas na literatura, algumas das quais citadas na seqüência. Almeida e Bax (2003), afirmam que nos últimos anos, a utilização de ontologias para a organização de conceitos tem sido amplamente citada. Por esta razão eles acreditam que o uso das ontologias seja uma opção para caracterizar e relacionar entidades em um domínio, representando desta forma o conhecimento nele contido. Já Guarino e Welty (1998, p. 12), fazem uma diferenciação entre a ontologia em sentido ilosófico defendida por Aristóteles e a ontologia estudada pela Inteligência Artificial, segundo eles uma ontologia em sentido filosófico é uma disciplina que se preocupa com a estrutura das coisas, objetos e propriedades, e outros aspectos da ealidade, por utro lado, em Inteligência Artificial, uma ontologia refere-se à representação de um conhecimento por meio da engenharia e vocabulários específicos usados para descrever uma realidade. No caso específico desta pesquisa o foco está na definição de ontologia que surgiu da IA, cuja importância tem sido reconhecida em várias áreas de pesquisa, tais como engenharia do conhecimento, gestão do conhecimento e modelagem orientada a objetos. Guarino e Giaretta (1995, p. 7), confirmam que a palavra ontologia alcançou boa popularidade dentro da Comunidade de Engenharia do Conhecimento. Porém, segundo eles o significado da palavra é um pouco vago e possui diferentes interpretações, tais como: 1) ontologia como disciplina filosófica, radicalmente diferente de todas as outras, ontologia (sem o artigo indefinido e com a inicial minúscula) refere-se à disciplina filosófica que lida com a natureza e a organização da realidade; as outras interpretações de ontologia (com o artigo indefinido e com inicial maiúscula) referem-se a determinados objetos em particular.

Guarino e Welty (1998, p. 12) ampliam esta visão e assumem que uma ontologia refere-se a um artefato de engenharia formado por um vocabulário específico que é usado para descrever certa realidade e um conjunto de afirmações explícitas sobre o significado das palavras do vocabulário. Almeida e Bax (2003), observam que uma ontologia é criada por especialistas e define as regras que regulam a combinação entre temas e relações em um domínio do conhecimento. Definir ontologias é “classificar em categorias aquilo que existe em um mesmo domínio do conhecimento”, segundo Almeida (2003, p. 54), Para Almeida, Moura, Cardoso e Cendon (2005), uma ontologia é uma estrutura de organização do conhecimento que apresenta algumas inovações em relação ao “thesaurus” tradicional, dentre elas, algumas que permitem inferências automáticas, que podem ser úteis para a manutenção da estrutura em um domínio complexo.

Uma ontologia é um catálogo de tipos de coisas, as quais (Sowa 1999), assume-se existir em um domínio de interesse, na erspectiva de uma pessoa que usa uma linguagem. Almeida (2003) apud Borst (1997 p.12), apresenta uma definição de ontologia simples e completa, na qual ele define: “uma ontologia é uma especificação formal e explícita de uma conceitualização compartilhada .” Ontologia segundo Santos et al.(2001), basicamente é o vocabulário usado para representar um certo domínio do conhecimento e a conceitualização que estes termos pretendem capturar. Os autores argumentam que o processo de conceitualização implica definir um corpo de conhecimento, representado formalmente, que seja baseado nos seguintes elementos: objetos, entidades, relações entre objetos e entre conceitos. Já os estudos de Gruber (1995, p. 9) crescentam uma dimensão mais formal á definição de ontologia que é uma especificação explícita dos objetos, conceitos e outras entidades que assumam que existem em outras áreas de interesse, além das relações entre esses conceitos e restrições expressadas por meio de axiomas. Para Gruber (1995), os componentes básicos de uma ontologia são as classes, as quais são organizadas em uma taxonomia, as relações que representam a interação entre os conceitos, os axiomas que representam sentenças verdadeiras e as instâncias, que representam dados. De acordo com Duarte e Falbo (2000, p. 5, 12) ratificam esta definição e acrescentam uma dimensão de utilidade à ontologia. Uma ontologia é uma especificação de uma conceitualização, isto é, uma descrição de conceitos e relações que existem em um domínio de interesse, basicamente consiste desses conceitos e relações e suas definições, propriedades e restrições, descritas na forma de axiomas. Ontologias são úteis para apoiar a especificação e a implementação de qualquer sistema de computação complexo. Neste sentido: ontologia pode ser desenvolvida para diversos fins, mas, de modo geral, os seguintes propósitos são atingidos: ajuda as pessoas a compreender melhor uma certa área de conhecimento; ajuda as pessoas a atingir um consenso sobre uma área de conhecimento; ajuda outras pessoas a compreender uma certa área de conhecimento.

As autoras Noy e McGuiness (2001, p. 15) reforçam a razão para utilizar ontologia e acrescentam outras. São elas:
a) compartilhar a mesma estrutura de informação entre pessoas e agentes de software; b) permitir o reuso do conhecimento o domínio; c) separar o conhecimento do domínio do conhecimento operacional; e d) analisar o conhecimento do domínio. Almeida e Bax (2003, p. 7), confirmam o caráter de representação do conhecimento por meio de ontologias. A utilização de ontologias para a organização de conceitos tem sido amplamente aplicada e, por esta razão, o uso das ontologias seja uma opção para caracterizar e relacionar entidades em um domínio, representando desta forma o conhecimento nele contido.
Cantele, Adamatti, Ferreira e Sichman (2004, p. 11) adicionam que, para que possa existir o compartilhamento de conhecimento, é necessário que pelo menos os conceitos mais comuns estejam descritos em uma ontologia básica, que possa ser o ponto de convergência dos engenheiros ontológicos. 36 As autoras Noy e McGuinness (2001, p. 15), afirmam que uma ontologia define um vocabulário comum para pesquisadores que necessitam compartilhar informações em um domínio. Inclui definições de conceitos básicos e a relação entre eles. Ainda, ontologia é uma descrição explícita formal de conceitos em um domínio do discurso (classes algumas vezes chamadas conceitos), propriedades de cada conceito que descreve várias características e atributos do conceito, (slots algumas vezes chamados papéis ou propriedades) e restrições em slots (facets algumas vezes chamados restrições do papel). Uma ontologia com um conjunto de exemplos de classes individuais constitui uma base de conhecimento. Reitera-se que o presente trabalho não se fixa a uma definição de ontologia específica por considerar que as mesmas não são de natureza contraditória mas sim complementar. A ontologia a ser tratada nesta pesquisa considerará apenas a aplicação relacionada à representação de conhecimento, com objetivo de contribuir para o desenvolvimento de sistemas baseados em conhecimento, ou engenharia do conhecimento. O principal objetivo é a possibilidade de desenvolver uma base de conhecimento para utilização em outras ontologias relacionada a assuntos semelhantes. Deve-se ressaltar que, embora várias das definições apresentadas estejam relacionadas à utilização de ontologias na área de engenharia de software, está aplicação da ontologia não será foco deste trabalho. Após a apresentação das definições de ontologia, faz-se necessário classificar a ontologia a ser obtida quanto aos diferentes tipos existentes.

2 Tipos de ontologias

Almeida e Bax (2003), dizem que as ontologias não têm sempre a mesma estrutura, mas algumas características e componentes estão presentes na maioria delas. Adicionalmente, apresentam uma síntese dos tipos de ontologia e sua
descrição, os quais são apresentados no Quadro 1- tipos de ontologia.
A Estratégia de Pesquisa se apóia neste Quadro e ilustra a classificação da ontologia a ser representada em termos de função, grau de formalismo, aplicação, estrutura e conteúdo.
Tipos de Ontologia - Abordagem, Classificação e Descrição
Ontologia de domínio Reutilizável no domínio, fornece vocabulário sobre conceitos, seus relacionamentos, sobre atividades e regras que os governam.
Ontologia de tarefa Fornece um vocabulário sistematizado de termos, especificando tarefas que podem ou não estar no mesmo domínio.
Quanto à função
Mizoguchi, Vanwellkenhuysen & Ikeda (1995) Ontologias gerais Inclui um vocabulário relacionado a coisas, eventos, tempo, espaço, casualidade, comportamento, funções etc.
Ontologia altamente informal Expressa livremente em linguagem natural
Ontologia semi-informal Expressa em linguagem natural de forma restrita e estruturada.
Ontologia semiinformal Expressa em uma linguagem artificial definida formalmente Quanto ao grau de formalismo Uschold & Gruninger (1996).
Ontologia rigorosamente formal Os termos são definidos com semântica formal, teoremas e provas.
Ontologia de autoria neutra Um aplicativo é escrito em uma única língua e depois convertido para uso em diversos sistemas, reutilizando-se as informações.
Ontologia como especificação Cria-se uma ontologia para um domínio, a qual é usada para documentação e manutenção do desenvolvimento de softwares.
Quanto à aplicação Jasper & Uschold (1999)
Ontologia de acesso comum à informação Quando o vocabulário é inacessível, a ontologia torna a informação inteligível, proporcionando conhecimento compartilhado dos termos.
Ontologia de alto nível Descreve conceitos gerais relacionados a todos os elementos da ontologia (espaço, tempo, matéria, objeto, evento, ação etc.) os quais são independentes do problema ou domínio.
Ontologia de domínio Descreve um vocabulário relacionado a um domínio,
como por exemplo, medicina ou automóveis.
Quanto à estrutura Haav & Lubi (2001).
Ontologia de tarefas Descreve uma tarefa ou atividade, como por exemplo,
diagnósticos ou compras, mediante inserção de termos especializados em ontologia.
Ontologia terminológica Especifica termos que serão usados para representar o conhecimento em um domínio (por exemplo, os léxicos).
Quanto ao Conteúdo Van-Heijist, Schreiber & Wielinga (2002) apud Almeida e Bax (2003)
Ontologia de informação Especifica a estrutura de registros de bancos de dados (por exemplo, os esquemas de bancos de dados). Ontologia de modelagem do conhecimento Especifica conceitualização do conhecimento, tem uma estrutura interna semanticamente rica e são refinadas para uso no domínio do conhecimento que descreve.
Ontologia de aplicação Contém as definições necessárias para modelar o conhecimento em uma aplicação.
Ontologia de domínio Expressa a conceitualização que é especifica para um
determinado domínio do conhecimento.
Ontologias genéricas Similar á ontologia de domínio, mas os conceitos que a definem são considerados genéricos e comuns a vários campos.
Ontologia de representação Explica as conceitualizações que estão por traz do formalismo de representação do conhecimento. FONTE: ALMEIDA E BAX (2003:10) Faz-se necessário ressaltar que embora haja diversos tipos de ontologia, apenas aquelas destacadas no Quadro 1 foram escolhidas. Esta classificação está orientada a buscar a representação de um domínio de conhecimento.

3 Engenharia Ontológica
Russel e Norvig (1995, p. 65), afirmam que a Engenharia Ontológica incorpora decisões sobre como representar uma ampla seleção de objetos e relações, dentro de uma ordem lógica, levando a um modelo de nível ontológico.
Segundo os autores, trata-se de organizar os seguintes títulos:
a) categorias;
b) medidas;
c) composição de objetos;
d) tempo, espaço e evento;
e) eventos e processos;
f) objetos físicos; g) substância; e
h) objetos mentais e crenças.
O presente trabalho assume em particular a abordagem de Noy e McGuiness para construção de ontologias. Noy e Mcguiness (2001), apresentam algumas regras para tal:
a) não há um modelo correto – existem sempre alternativas viáveis. a melhor solução sempre depende da aplicação e extensão que se pretende para a ontologia;
b) desenvolvimento de ontologia é sempre um processo interativo;
c) conceitos em ontologia deveriam ser próximos para objetos (físicos ou lógicos) e relacionamentos em seu domínio de interesse. estes são na maioria substantivos (objetos) ou verbos (relacionamentos) em sentenças que descrevem seu domínio.
Noy e Mcguiness (2001), ainda sugerem as seguintes etapas para a construção de ontologias:
a) Determinar o domínio e escopo da ontologia;
b) Considerar o reuso de ontologias existentes:
c) Enumerar termos importantes na ontologia;
d) Definir as classes e a hierarquia de classes;
e) Definir as propriedades de classes-slots;
f) Definir as facetas dos slots;
g) Definir instâncias.

3.1 Construção da ontologia
Na seqüência detalham-se estas etapas.

a) Etapa Determinação do domínio e do escopo da ontologia.
O desenvolvimento inicia-se pela definição do domínio e escopo, respondendo às questões de competência em relação ao tema estudado. Uma das maneiras de determinar o escopo da ontologia é elaborar uma lista de perguntas que uma base de conhecimento deve ser capaz de responder. Estas questões são denominadas questões de competência.
a) Qual é o domínio que a ontologia cobrirá?
b) Qual a finalidade que estamos usando a ontologia?
c) Quais respostas às informações da ontologia devem trazer?
d) Quem usará e manterá a ontologia?

b) Etapa Consideração da reutilização de ontologias existentes
Nesta fase é importante a verificação de ontologias já existentes no domínio de conhecimento. A reutilização de ontologias existentes pode ser um requisito se o sistema necessitar interagir com outras aplicações que já tenham sido consideradas por ontologias particulares ou vocabulários controlados. Muitas ontologias já estão disponíveis em formato eletrônico e podem ser importadas para o ambiente de desenvolvimento que está sendo utilizado. Visando evitar a construção de uma ontologia que já exista ou então aproveitar as bases conceituais de uma ontologia existente, realizou-se uma pesquisa para verificação da existência de ontologias já construídas nos domínios em estudo.
b) Considerar o reuso de ontologias existentes:
Nesta fase busca-se a ontologia numa biblioteca especializada na internet.

c) Etapa Enumeração dos termos importantes na ontologia
Nesta fase devem-se escrever uma lista de todos os termos que necessitam de definições ou explicações para os usuários, os termos sobre os quais é importante falar. Muitos dos termos identificados nas duas áreas de conhecimento podem ser usados ou descartados na construção da ontologia. A construção da ontologia também mostra a necessidade de que haja uma relação entre os termos encontrados com suas propriedades, ou seja, estas propriedades devem responder a seguinte pergunta: O que gostaríamos que a ontologia respondesse sobre estes termos?

d) Etapa Definição das classes e a hierarquia das classes
A definição de classes e hierarquias pode ser efetivada: (i) de cima para baixo, (ii) de baixo para cima ou (iii) por combinação. Um processo de desenvolvimento de cima para baixo começa com a definição da maioria dos conceitos gerais no domínio e as especializações subseqüentes dos conceitos, podem-se criar classes gerais de conceitos e então especializa-se em sub-classes categorizando-as. Um processo de desenvolvimento de baixo para cima começa com a definição da maioria das classes mais específicas, que partem da hierarquia, com subseqüente agrupamento destas classes em conceitos mais gerais. Um processo de desenvolvimento por combinação cima para baixo e baixo para cima inicia-se primeiro pela definição dos conceitos mais salientes e então se generaliza e especializa-se apropriadamente. Pode-se começar por poucos conceitos de alto nível e poucos conceitos específicos e então relacioná-los com conceitos de nível médio. Nenhum destes três métodos é melhor um do que o outro, o método depende do ponto de vista de quem vai desenvolver a ontologia e a visão que tem do domínio. Nesta etapa deve ocorrer uma seleção dos conceitos listados anteriormente. Os conceitos selecionados são as classes da ontologia e orientam a hierarquia. De acordo com Booch, Rumbauch e Jacobson (2000 p.47), uma classe é uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica. Os autores explicam que as classes são utilizadas para capturar o vocabulário do sistema que está em desenvolvimento. Um exemplo de classe pode ser a construção de uma casa: as janelas seriam uma classe, modelo e tamanho seriam considerados atributos destas classes. Outro termo importante na construção da ontologia é a instância que segundo Booch,Rumbauch e Jacobson (2000 p.181), é a manifestação concreta de uma abstração à qual um conjunto de operações pode ser aplicado e que tem um estado capaz de armazenar os efeitos da operação. De acordo com Almeida (2003), com a lista de conceitos identificada, as classes são criadas através de agrupamentos semânticos dos conceitos existentes, entretanto, apenas classes não possibilitam a construção da ontologia, é preciso definir as propriedades das classes, atributos e operações. Neste caso os conceitos excedentes, após a definição das classes podem ser propriedades das classes, normalmente estes termos são, em geral, chamados de relações (slots).

e) Etapa Definição das propriedades das classes – Slots ou atributos
Esta fase define atributos das classes e visa à estruturação interna dos conceitos necessária para satisfazer os requisitos de informação do cenário em desenvolvimento.
Booch, Rumbaugh e Jacobson (2000, p.50), definem atributo como sendo uma propriedade nomeada de uma classe que descreve um intervalo de valores que as instâncias da propriedade podem apresentar. Uma classe pode ter qualquer número de atributos ou nenhum atributo. Para cada atributo da lista, devese determinar à que classe pertence. Estes atributos anexam-se à classe. Em geral existem diversos objetos de propriedades que podem se tornar atributos em uma ontologia: propriedades intrínsecas, propriedades extrínsecas e peças. Se o objeto está estruturado, estas peças podem ser físicas e abstratas.

f) Etapa Definição das Facets (propriedades) dos atributos
Esta fase corresponde à definição das facets ou propriedades dos atributos que podem ser: tipo de valor, valores permitidos, número de valores (cardinalidade), e características que os valores do atributo podem tomar. Alguns exemplos destas características são: a) cardinalidade - define quantos valores um atributo pode ter: um valor ou valores múltiplos; b) atributo tipo valor – descreve que tipo de valores pode completar o atributo; tais como: nome; c) número- descreve algumas coisas mais específicas, tais como valores numéricos. Por exemplo: preço.; d) Boolean atributos são simples sim ou não flag. Por exemplo: verdadeiro ou falso; e) enumerado- especifica uma lista de valores permitidos para slots. Por exemplo: forte, moderado e delicado, pode-se usar símbolos; f) Tipo exemplo: permitem definição de relacionamentos entre indivíduos. A classificação dos atributos está disponível no capitulo 6 construção da ontologia.

g) Etapa Criação de instâncias
O último passo é criar instâncias exemplos de hierarquia de classes individuais. Definir um exemplo de classe individual requer (1) escolher a classe, (2) criar um exemplo individual daquela classe, e (3) completar os valores dos atributos.
Outra fase importante da construção da ontologia e a identificação de operações que segundo Booch, Rumbauch e Jacobson (2000, p.51), é a implementação de um serviço que pode ser solicitado por algum objeto da classe para modificar o comportamento. Uma operação é uma abstração de algo que pode ser feito com um objeto e que é compartilhado por todos os objetos da classe, podem ser movidos, redimensionados ou ter suas propriedades examinadas.

Texto extraído da Dissertação de Mestrado do autor

Nenhum comentário: