Ontologias: Definições e Tipos Ricardo de Almeida Falbo Ontologias para Engenharia de Software Departamento de Informática Universidade Federal do Espírito Santo
Agenda O que é uma ontologia Tipos de Ontologias Ontologias e Engenharia de Software
Ontologia Origem: Filosofia Ont- + logia = estudo da existência Estudo dos tipos de coisas que existem Ontologia Formal: estruturas ontológicas formais (de forma) Teorias de partes e todos, tipos e instanciação, identidade, dependência, etc. O desdobramento de Ontologia Formal como uma disciplina da Filosofia tem por objetivo desenvolver um sistema geral de categorias, que pode ser usado no desenvolvimento de teorias científicas e teorias da realidade específicas de domínio, de senso comum.
Ontologia Ontologia Aplicada: Teorias ontológicas formais desenvolvidas e aplicadas na solução de problemas nos campos da Ciência da Computação, Ciência da Informação e, em especial, Modelagem Conceitual. ontologias em Ciência da Computação: Inteligência Artificial, Engenharia de Software, Bancos de Dados, Web Semântica Um artefato, constituído de conceitos e relações, suas definições e um conjunto de axiomas formalizados, usados para criar novas relações e para restringir as suas interpretações.
O que é uma ontologia? Uma ontologia é uma descrição parcial e explícita de uma conceituação compartilhada. Uma conceituação, por sua vez, corresponde ao conjunto de conceitos e relações usados para interligar abstrações de entidades de um dado universo de discurso. Uma ontologia é uma especificação conceitual que descreve o conhecimento sobre um universo de discurso. Ela define um vocabulário específico usado para descrever uma certa realidade e um conjunto de decisões explícitas para estabelecer precisamente o significado pretendido desse vocabulário.
O que é uma ontologia? Gruber (1993): especificação explícita de uma conceituação ( explicit specification of a conceptualization ). Borst (1997): especificação formal de uma conceituação compartilhada ( formal specification of a shared conceptualization ). Studer et al. (1998): especificação explícita e formal de uma conceituação compartilhada ( a formal, explicit specification of a shared conceptualization ).
O que é uma ontologia? Conceituação Especificação formal e explícita Compartilhada
O que é uma ontologia? Conceituação: os objetos, conceitos e outras entidades que assume-se existir em alguma área de interesse e as relações que existem entre eles. Uma conceituação é uma visão do mundo abstrata e simplificada, que desejamos representar para algum propósito (Genesereth and Nilsson). Especificação formal e explícita Compartilhada
O que é uma ontologia? Conceituação Especificação formal e explícita Necessidade de uma linguagem para se referir aos elementos de uma conceituação Compartilhada
O que é uma ontologia? Conceituação Especificação formal e explícita Compartilhada: uma ontologia somente será útil se houver uma comunidade que se compromete (que compartilha) com a conceituação a ela subjacente.
Tipos de Ontologias Quanto ao grau de generalidade Ontologia de Fundamentação Ontologia Formal Conceitos muito gerais que se aplicam às diversas áreas de conhecimento (objeto, evento, ação, tempo etc.) Ontologia de Domínio Ontologia de Aplicação Ontologia de Tarefa
Exemplo: Ontologia de Fundamentação Unificada Unified Foundational Ontology (UFO) (Guizzardi, 2005) (Guizzardi et al., 2008) Desenvolvida baseada em um número de teorias das áreas de Ontologia Formal, Lógica Filosófica, Filosofia da Linguagem, Linguística e Psicologia Cognitiva.
Unified Foundational Ontology (UFO) UFO-C (Aspectos Sociais) (Agentes, estados intencionais, objetivos, ações, normas, compromissos e reivindicações sociais, relações de dependência social etc.) UFO-A (Aspectos Estruturais) (Objetos, seus tipos, partes e todos, papéis que desempenham, suas propriedades intrínsecas e relacionais espaços de valores de propriedades etc.) UFO-B (Aspectos Dinâmicos) (Eventos e suas partes, relações entre eventos, participação de objetos em eventos, propriedades temporais de entidades, tempo, etc.)
Tipos de Ontologias Quanto ao grau de generalidade Ontologia de Fundamentação Ontologia de Domínio Ontologia de Tarefa Conceitos, relações e restrições relativos a um domínio de conhecimento específico, p.ex., leis, medicina etc. Ontologia de Aplicação
Ontologia de Teste de Software
Tipos de Ontologias Quanto ao grau de generalidade Ontologia de Fundamentação Ontologia de Domínio Ontologia de Tarefa Ontologia de Aplicação Conceitos, relações, restrições e ações relacionados a uma tarefa específica, p.ex., venda, locação, designação etc.
Ontologia da Tarefa de Gerência de Configuração
Ontologia da Tarefa de Gerência de Configuração
Tipos de Ontologias Quanto ao grau de generalidade Ontologia de Fundamentação Ontologia de Domínio Ontologia de Tarefa Ontologia de Aplicação Modelo Conceitual de uma Aplicação Contém as definições necessárias para modelar o conhecimento requerido por uma aplicação particular.
Ontologia de Aplicação Uma ontologia para uma aplicação de gerência de configuração de casos de teste poderia ser construída baseada na ontologia de domínio de teste de software e na ontologia de tarefa de gerência de configuração.
Tipos de Ontologias: quanto ao grau de generalidade UFO DOLCE Ontologia de Teste de Software mais geral mais específica Ontologias de Fundamentação Ontologias de Domínio Ontologias de Aplicação
UFO-A
UFO-C
Tipos de Ontologias: quanto ao grau de generalidade UFO-A/B DOLCE UFO-C Ontologia de Teste de Software mais geral mais específica Ontologias de Fundamentação Ontologias de Domínio Ontologias de Aplicação Como classificar uma Ontologia de Processo de Software?
Tipos de Ontologias: quanto ao grau de generalidade UFO-A/B DOLCE UFO-C Ontologia de Processo de Software Ontologia de Teste de Software mais geral mais específica Ontologias de Fundamentação Ontologias de Domínio Ontologias de Aplicação
Ontologia de Medição
Tipos de Ontologias: quanto ao grau de generalidade UFO-A/B DOLCE UFO-C Ontologia de Processo de Software Ontologia de Teste de Software mais geral mais específica Ontologias de Fundamentação Core Ontologies Ontologias de Domínio Ontologias de Aplicação
Visão de Engenharia de Software Modelagem Conceitual Implementação 1 Implementação 2 Implementação 3
Visão de Engenharia de Software Modelagem Conceitual DESIGN Implementação 1 Implementação 2 Implementação 3
Visão de Engenharia de Software tansportada para a Engenharia de Ontologias Ontology Conceptual Modeling Reference Ontology Ontology Design DL-like Design Frame-based Design Ontology Implementation Operational Ontology 1 (coded in OWL-DL) Operational Ontology 2 (coded in Alloy) Operational Ontology 3 (coded in F-Logic)
Tipos de Ontologias Ontologia de Referência: visa prover uma descrição clara e precisa dos elementos de um domínio para os propósitos de comunicação, aprendizado e resolução de problemas. É usada para apoiar humanos em tarefas de negociação de significado e estabelecimento de consenso. Ontologia Operacional: versão implementada de uma ontologia de referência em uma linguagem passível de processamento por máquinas. Ontologias operacionais não enfocam a adequação da representação. Elas são projetadas para garantir propriedades computacionais desejáveis.
Tipos de Ontologias Ontologias Pesadas (heavyweight ontologies): ontologias fortemente axiomatizadas, procurando definir precisamente o significado das entidades. Ontologias Leves (lightweight ontologies): ontologias não axiomatizadas e, portanto, sem definição precisa do significado das entidades.
Aplicações de Ontologias em ES São muitas as aplicações de ontologias em Engenharia de Software: Interoperabilidade Semântica Integração Semântica de Sistemas Dados Ligados (Linked Data) Harmonização / Integração de Padrões de Engenharia de Software etc. Ontologias no Desenvolvimento de Software Engenharia de Requisitos Model-Driven Engineering Semantic Web Services etc.
Aplicações de Ontologias em ES Semântica em Aplicações de Software Web Semântica Gestão do Conhecimento / Documentação Semântica Ferramentas CASE e Ambientes de Desenvolvimento de Software etc.