Ontologias na Computação Claudio Akio Namikata, Henrique Sarmento, Marcio Valença Ramos [email protected], [email protected], [email protected] Resumo: Este trabalho tem como objetivo apresentar os principais conceitos de Ontologias na Computação, a sua estrutura geral assim como principais abordagens e metodologias para sua criação, além de introduzir quais são as principais aplicações atuais de uma Ontologia seja no mercado ou em áreas de pesquisa. Ao final da apresentação, a elaboração prática de uma Ontologia será abordada com a utilização do software Protégé (ver. 3.1). 1. O que é ontologia. O conceito de ontologia surgiu com Aristóteles em Metafísica (IV A.C.) a principal característica da ontologia é a composição de grupos (domínios) e a relação que esses estabelecem entre si. Na ciência da computação ontologias são utilizadas em inteligência artificial, web semântica, engenharia de software e arquitetura da informação. As ontologias são uma forma de criar critérios que são fundamentais na organização de um domínio que possuem características em comum e sempre terão valor verdade para o seu domínio, ou seja, as ontologias permanecerão sempre inalteradas (enquanto seu domínio não mudar) e por isso elas devem ser formais. As ontologias podem gerar uma base de conhecimentos (que é um subconjunto das ontologias) que fornece informações em “níveis” de especificação. Quanto mais ramificada vai ficando a ontologia, mais parte do conceito genérico para o caso singular. 1.1 Na Filosofia “O termo ontologia tem origem na filosofia, onde é o nome de um ramo da metafísica ocupado da existência. De acordo com Tom Gruber da Universidade de Stanford, no entanto, o significado de ontologia para a ciência da computação é "uma descrição de conceitos e relacionamentos que podem existir para um agente ou uma comunidade de agentes”. Ele especifica ainda que uma ontologia é geralmente escrita “como um conjunto de definições de um vocabulário formal” . 2. Vantagens de uso Como a ontologia requer um vocabulário formal, é possível processá-la em uma máquina, portanto ontologias não podem ter duas ou mais interpretações, sendo informações exatas sem ambigüidades, diferente da linguagem natural. Uma ontologia de determinado domínio, pode ser aplicada em vários outros indivíduos desde que esses indivíduos correspondam aos critérios estabelecidos pela ontologia. Ontologias podem ser utilizadas para se obter bases de conhecimentos diferentes e até outros tipos de ontologias. 3. Composição das ontologias I. Conceitos: podem representar uma tarefa, uma função, etc; II. Relações entre os conceitos; III. Funções: são as próprias relações obtidas entre as relações e elementos; IV. Axiomas: sentenças que são sempre verdadeiras; V. Instâncias: são conhecimentos prévios das ontologias. 4. Classificações de ontologias Um dos principais critérios utilizados hoje na classificação de ontologias segue um termo chamado “Conceitualização”, ou seja, estabelecer o nível de generalização necessário que uma ontologia precisa. Assim, surgem as: Ontologias de alto nível - Que descrevem os conceitos mais gerais, como espaço, tempo ou evento. São conceitos independentes e que podem ser compartilhadas com grandes comunidades de usuários. Ontologias de domínio- Descrevem o “modo de comunicação” de um domínio genérico, surgem da especificação dos domínios de alto nível. Ontologias de tarefa - Relacionam os “passos” que devem ser tomados na realização de uma tarefa, surgem da especificação dos conceitos das ontologias. Ontologias de Aplicação - São as ontologias mais especificas de todas. Tratam de características das ontologias de domínio e as de tarefa, definindo-as desse modo. 5. Principais áreas de Aplicação das ontologias 5.1 Web Semântica A classificação da informação utilizada nas buscas dos sites de busca é “Heurística”, ou seja, um algoritmo inexato que pode ou não se aproximar da aplicação ideal, tais como são organizadas as paginas pelo numero de “clicks” que recebem diariamente. A ontologia, assim como as Tecnologias XML (Extended Markup Language) E RDF (Resource Description Framework), buscam minimizar esses problemas utilizando suas próprias visões conceituais diferente sobre a questão. 5.2 Processamento de linguagem natural (Inteligência Artificial) O processamento da linguagem natural, assim como o seu próprio “aprendizado” podem ser áreas de grande aplicação para ontologias, uma vez que estas auxiliam na compreensão coerente do texto. Sua utilização nesse contexto é focada na elucidação de ambigüidades, por exemplo: a palavra Globo pode ter vários significados, um deles é o da forma geométrica e outro pode ser o da rede de transmissão brasileira de televisão. A ontologia nesse caso também é utilizada como um dicionário de conceitos em inteligência artificial. 5.3 Gestão de Conhecimento No contexto empresarial, onde a velocidade na busca de informações internas de bancos de dados é cada vez mais precisa e de maior velocidade, as ontologias são introduzidas nos "esqueletos" das bases de conhecimento, organizando assim o montante de dados e melhorando a velocidade das pesquisas de informação. 6. Construção de uma Ontologia A construção de uma ontologia depende fundamentalmente das circunstâncias particulares para as quais ela vai ser designada. Mesmo assim, existem três pilares fundamentais em que se estruturam as Ontologias. Os "tipos" de ontologias são caracterizados a partir do modo como esses pilares são divididos. São eles: Formalidade: É o nível de formalidade com o qual cada vocabulário é especificado. Pode ser altamente formal, estruturadamente formal ou semi-formal. A diferença entre cada um está no uso da linguagem natural. A altamente formal usa pouca linguagem natural, o que é o contrário da formalidade estruturada, e em meio termo em relação à semi-formal. Propósito: Qual será o uso/aplicação da ontologia. A comunicação, autochecagem do sistema, especificidade ou generalidade, são alguns exemplos de propósitos que devem ser assumidos por uma ontologia. Assunto: Define o assunto sobre o qual vai tratar a ontologia, a princípio pode ser caracterizado em diferentes áreas de atuação, tal como finanças, informática ou medicina. Logo depois deve conter a definição de qual será o problema abordado. Exemplo de uma estruturação de uma Ontologia empresarial: Nível de formalidade: estruturada informal. Propósito: Facilitar a comunicação entre membros de um projeto que trabalham em setores diferentes de uma empresa. Facilitando o seu relacionamento. Assunto: Empresas de criação de jogos de computador (fracamente genérico) Partindo desse principio básico, surgem as abordagens e metodologias, que buscam definir passos para esse processo de construção. 7. Abordagens 7.1 Inspirada O desenvolvedor começa com a premissa de porque a ontologia é necessária. A sua vantagem é que pode ser a melhor solução de um problema, porém pode ser de difícil compreensão para outras pessoas. 7.2 Indutiva A abordagem indutiva é criada através de analise e dados externos. Sua principal desvantagem reside no fato de que ao mesmo tempo em que cuida de todos ou quase todos os problemas de um domínio ela não funciona corretamente para outros. 7.3 Dedutiva Essa abordagem constrói ontologias especificas a partir de ontologias ou regras genéricas. Seu intuito básico é o de "filtrar para especificar". Sua desvantagem é que precisa partir de uma ontologia pré-existente. 7.4 Sintética Estabelece um conjunto inicial de ontologias que servem como padrões a serem utilizados em formulações mais complexas, e então unificados. Seu ponto negativo encontra-se no fato de que esse processo torna-se muitas vezes demorado pela dificuldade em estabelecer entre grandes ontologias. 8. Metodologias para Construção de Ontologias Na segunda metade do século 20 vários filósofos se dispuseram a pensar e debater sobre métodos de construção de ontologias, sem de fato construí-las, enquanto cientistas da computação estavam criando ontologias largas e robustas sem muita preocupação no método utilizado. Metodologias surgiram para criar uma forma eficiente e madura de se construir uma ontologia. A seguir são citadas duas das mais importantes metodologias usadas atualmente. 8.1 Metodologia de Mike Ushold e Martin King São necessários quatro passos para se construir uma ontologia segundo este método: 1. Identificar o propósito É importante ter noção do motivo pelo qual a ontologia está sendo criada, e quais serão os usos desta. 2. Construir a ontologia Esta etapa é dividida em três partes: 2.1. Captura da ontologia > Identificar os conceitos e relacionamentos no domínio de interesses > Produção de descrições precisas e sem ambiguidade de tais conceitos e relacionamentos. > Encontrar palavras que representarão esses conceitos e relacionamentos. Os autores usam uma aproximação chamada de middle-out, que consiste em partir do meio do nosso problema e trabalhá-lo de lá até o mais especifico e até o mais abrangente depois de ser feita uma estrutura no centro. 2.2 Código Esse sub-passo consiste em escrever o conhecimento adquirido no sub-passo anterior em uma linguagem formal. 2.3 Integração com ontologias existentes. Durante qualquer um ou ambos dos passos anteriores deve-se questionar como usar as ontologias existentes. 2.4 Ter coesão com todos acima. 3. Avaliação Os autores usam uma definição existente de avaliação que consiste no seguinte: “Fazer um julgamento técnico das ontologias, seu software envolvido e documentação respeitando um ponto de vista. Tal ponto de vista pode ser a especificação de requerimentos, questões de competência, ou o mundo real”. 4. Documentação É desejável ter uma linha coesa para guiar a documentação, tal linha possivelmente variando de acordo com o tipo e objetivo da ontologia. Os autores citam Skuce, dizendo que uma das principais barreiras de compartilhamento de conhecimento é a documentação inadequada de bancos de conhecimento e ontologias existentes. Ainda segundo este, todas as assunções importantes devem ser documentadas, assim como os principais conceitos da ontologia e os primitivos desta. 8.2 Methontology Esta metodologia é considerada muito eficiente e compreensível, com suporte a construção de ontologias do zero, continuação de ontologias já existentes ou para aplicar um método chamado de re-engineering. Nascida na Universidade Politécnica de Madrid, mais especificamente no Laboratório de AI desta. De acordo com Roberto García (e este por si citando outros nomes como Férnandes e Shultz) Methontology é uma metodologia para a construção de ontologias [5]. Nesta, para efeitos de aumento de aplicabilidade, foram adotadas algumas idéias da matéria mais antiga e desenvolvida, a Engenharia de Software. Mais especificamente, teremos o processo de construção de ontologias baseado nos padrões da IEEE para desenvolvimento de software. Seguem assim três atividades a serem executadas quando se está construindo uma ontologia. Atividades de administração da ontologia: Isso inclui planejamento, controle e checagem de qualidade. Planejamento se refere a identificar quais tarefas devem ser executadas, sua ordem e o tempo e recursos necessários. Tal tarefa é especialmente prezada para o uso em ontologias que farão uso de outras já existentes, ou que requerem um nível extra de abstração. Controle se refere a garantia de execução de tarefas como estas eram pretendidas. E a checagem de qualidade se refere a checagem de qualidade de cada saída da metodologia (A ontologia, o software e a documentação). Atividades de desenvolvimento da ontologia: Agrupada em pré, durante e pós desenvolvimento. Durante o prédesenvolvimento é feito um estudo sobre o ambiente de uso da ontologia e um estudo de praticabilidade. Durante o desenvolvimento a atividade de especificação declara por que a ontologia está sendo construída, seus usos desejados e os usuários finais desta. A conceitualização estrutura o domínio de conhecimento a modelos num nível acessível. A formalização transforma esse modelo conceitual a um nível formal ou semicomputável. Por fim na Implementação são construídos modelos de fato computáveis. Durante o pós-desenvolvimento é feita a manutenção que atualiza e corrige a ontologia. Atividades de suporte da ontologia: São atividades usadas simultaneamente no desenvolvimento. Elas abrangem a aquisição de conhecimento, adquirido de entendedores do assunto ou por um processo (semi) automático de aprendizado por ontologias. Avaliação, tarefa que avalia a ontologia feita. Integração, usada se a ontologia usar/partir de outra. Documentação, que documenta cada estágio e produto e por fim Administração de configuração, que arquiva as versões das ontologias, software e documentação. Referências Bibliográficas: [1] HORRIDGE, MATTHEW. A Practical Guide To Building OWL Ontologies Using The Protégé -OWL Plugin and CO-ODE Tools. Edition 1.0 . The University Of Manchester. 2004. Disponível em: <www.co-ode.org/resources/tutorials/ProtegeOWLTutorial.pdf> Acesso em: 13 mar. 2009. [2] ZAMITH, FRANCISCO JOSÉ. 4. Ontologia. PUC-RIO. Certificação Digital Nº 0024134/CA. Disponível em: <www2.dbd.puc-rio.br/pergamum/tesesabertas/0024134_02_cap_04.pdf> Acesso em: 10 abr. 2009. [3] USCHOLD, MIKE. Towards a Unified Methotodology. AIAI-TR-197. The University of Edinburg. 1998. Disponível em: <www.formatex.org/micte2005/161.pdf> Acesso em: 20 abr. 2009. [5] GARCIA, ROBERTO. Methontology. Disponível em: <http://rhizomik.net/~roberto/thesis/html/Methodology.html>. Acesso em: 20 abr. 2009 [6] FERNÁNDEZ LÓPEZ, Overview Of Methodologies For Building Ontologies Universidad Politécnica de Madrid. Disponível em: <http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-18/4fernandez.pdf>. Acesso em: 25 abr. 2009. [7] GRUBER, TOM. What is an Ontology. Universidade de Stanford. 1992. Disponível em: <http://www-ksl.stanford.edu/kst/what-is-an-ontology.html> Acesso em: 25 abr. 2009. [8] WIKIPEDIA.Ontologia (ciência da computação). Disponível em: <http://pt.wikipedia.org/wiki/Ontologia_(ci%C3%AAncia_da_computa %C3%A7%C3%A3o)>.2009 Acesso em: 9 abr. 2009.