SABiO: Systematic Approach for Building Ontologies Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo
Agenda Preocupações Principais do Método Processo de Engenharia de Ontologias Proposto Processo de Desenvolvimento Processos de Apoio
SABiO: Preocupações Principais Foco de SABiO: Desenvolvimento de ontologias de domínio Processos de Apoio e de Gerência considerados estão fortemente atrelados ao Processo de Desenvolvimento proposto. Distinção entre Ontologias de Referência e Ontologias Operacionais SABiO pode ser usado apenas parcialmente para o desenvolvimento de ontologias de referência de domínio ou Integralmente visando ao desenvolvimento de ontologias operacionais de domínio. Desenvolvimento com reúso Desenvolvimento colaborativo
SABiO: O Processo Proposto Processo de Desenvolvimento Processos de Apoio Identificação de Propósito e Definição de Requisitos Captura e Formalização da Ontologia Ontologia de Referência Design Implementação Aquisição de Conhecimento Documentação Gerência de Configuração Avaliação Reutilização Ontologia Operacional Testes
SABiO: O Processo Proposto Ainda que o processo de desenvolvimento proposto sugira uma sequência na realização de suas atividades, SABiO não prescreve um modelo de ciclo de vida específico. Ao contrário, quaisquer modelos de ciclo de vida podem ser usados. Contudo, sugere-se fortemente o uso de modelos de ciclo de vida incrementais e iterativos.
SABiO: Processo de Desenvolvimento Usuário da Ontologia Engenheiro de Ontologias Identificação de Propósito e Definição de Requisitos Identificação de Propósito e Usos Pretendidos Especialista de Domínio Propósito, Questões de Competência da Ontologia, Sub-ontologias Identificação de Sub-ontologias Identificação de Questões de Competência
Identificação de Propósito e Definição de Requisitos Identificação do Propósito Usos Pretendidos: usuários da ontologia Requisitos: questões de competência Questões que a ontologia deve ser capaz de responder Se domínio for complexo: modularizar ontologia Sub-ontologias: diagrama de pacotes UML Etapa fortemente apoiada pelo Processo de Aquisição de Conhecimento Técnicas colaborativas de Levantamento de Requisitos / Aquisição de Conhecimento devem ser aplicadas
SABiO: Processo de Desenvolvimento Propósito, Questões de Competência da Ontologia, Sub-ontologias Modelagem Conceitual Engenheiro de Ontologias Captura e Formalização da Ontologia Definição de Axiomas Formais Definição do Dicionário de Termos Especialista de Domínio Ontologia de Referência Definição de Axiomas Informais
Captura e Formalização da Ontologia Base: Competência da Ontologia Modelagem Conceitual: OntoUML Patterns de OntoUML devem ser aplicados Atenção à escolha dos termos Definição dos elementos da ontologia no Dicionário de Termos Definição de Axiomas (informais e formais) Axiomas de derivação Axiomas de consolidação Axiomas formais: lógica de primeira ordem
Captura e Formalização da Ontologia Etapa fortemente apoiada pelo Processo de Aquisição de Conhecimento Técnicas colaborativas de Levantamento de Requisitos / Aquisição de Conhecimento devem ser aplicadas Fontes para aquisição de conhecimento: Especialistas de domínio Material bibliográfico consolidado: livros, normas etc. Modelos de referência, modelos de sistemas etc. Ontologias existentes, padrões ontológicos, ontologias de fundamentação.
Captura e Formalização da Ontologia Reutilização Ontologias de domínio existentes: aplicar técnicas de ontology merge / mapping para integrar Ontologias de fundamentação: estruturação Core ontologies: especialização Patterns: aplicação Foundational patterns Domain-related patterns
SABiO: Processo de Desenvolvimento Ontologia de Referência Levantamento de Requisitos Não Funcionais Engenheiro de Ontologias Definição da Plataforma de Implementação Design Projeto Arquitetônico Projetista de Ontologias Especificação de Projeto da Ontologia Projeto Detalhado
Design da Ontologia Levantamento de Requisitos Não Funcionais: garantir propriedades computacionais. Ex.: desempenho no raciocínio Definição da Plataforma de Implementação: questão importante: expressividade da linguagem Projeto Arquitetônico: refinamento da modularização, agora levando em conta os requisitos não funcionais e a plataforma de implementação da ontologia operacional Projeto Detalhado: resolver problemas de diferenças de expressividade das linguagens (OntoUML e linguagem operacional) heavyweight x lightweight ontologies Aplicação de Ontology Design Patterns e Ontology Idioms
SABiO: Processo de Desenvolvimento Ontologia de Referência Projetista de Ontologias Especificação de Projeto da Ontologia Implementação Programador de Ontologias Ontologia Operacional
Implementação da Ontologia Codificação na linguagem operacional escolhida (p.ex., OWL) A fronteira entre o projeto detalhado e a implementação não é clara. Assim, a solução de problemas e a aplicação de ontology design patterns / idioms pode se dar no contexto da implementação.
SABiO: Processo de Desenvolvimento Ontologia de Referência Ontologia Operacional Especificação de Projeto da Ontologia Testes de Sub-ontologia Testador de Ontologias Testes Testes de Integração Usuário da Ontologia Casos de Teste e Resultados de Teste Testes da Ontologia
Testes da Ontologia SABiO propõe uma abordagem de testes dirigida a questões de competência Caso de teste: questão de competência implementada como query na linguagem da ontologia operacional + dados da instanciação do fragmento da ontologia (entrada) + resultado esperado (a partir da instanciação considerada) Teste de sub-ontologia: casos de teste são executados considerando apenas o escopo de sua sub-ontologia. Teste de Integração: casos de teste da fase anterior vão sendo reaplicados (teste de regressão) na medida em que sub-ontologias vão sendo integradas. Teste da Ontologia: casos de teste são reaplicados no escopo da ontologia completa, bem como outros testes.
Testes da Ontologia Outros tipos de teste: Testes de Desempenho Testes de Validação: aplicação da ontologia nos cenários de uso pretendidos pela ontologia (usuários da ontologia) Testes de Stress (ontologias disponíveis na Web) etc.
Processos de Apoio: Aquisição de Conhecimento Aplica-se principalmente nas fases iniciais do processo de desenvolvimento de ontologias Métodos e técnicas convencionais e, principalmente, de aquisição colaborativa de conhecimento devem ser empregadas. Fontes de conhecimento: Especialistas de domínio Material bibliográfico consolidado: livros, normais internacionais Modelos de referência, modelos de sistemas Ontologias e padrões ontológicos existentes
Processos de Apoio: Reutilização Reúso de ontologias de domínio existentes: necessário aplicar técnicas de ontology merge / mapping para integração das conceituações Reúso de ontologias de fundamentação: estruturação Reúso de core ontologies: especialização Ontology patterns: Ontology Conceptual Patterns (Foundational / Domainrelated patterns): captura da ontologia Ontology Architectural Patterns: projeto arquitetônico Ontology Design Patterns: projeto detalhado Ontology Idioms: projeto detalhado / implementação Reúso de casos de teste: teste
Processos de Apoio: Documentação Todas as fases do processo de desenvolvimento, bem como alguns dos processos de apoio e gerência (p.ex., avaliação) precisam ser documentados. Templates devem ser usados para garantir uniformidade nos projetos de desenvolvimento de ontologias. Documento de Especificação de Ontologia de Referência: documento contendo todas as informações importantes para a documentação de uma ontologia de referência. Especificação de Projeto da Ontologia Operacional: documento contendo informações relativas à plataforma de implementação, requisitos não funcionais, arquitetura da ontologia, principais decisões de projeto. Padrões para codificação e documentação de testes de ontologias operacionais.
Documento de Especificação de Ontologia de Referência 1. Introdução 2. Descrição do Propósito 3. Descrição do Domínio 4. Ontologia de Referência 4.1 - Modularização da Ontologia 4.2 - Sub-ontologia 1 Questões de Competência Modelo OntoUML Axiomas (Informais e Formais) Tabela de Verificação de Questões de Competência Tabela de Instanciação 4.3 - Sub-ontologia 2... 5. Dicionário de Termos
Processos de Apoio: Documentação Devido ao caráter eminentemente colaborativo do desenvolvimento de ontologias, sugere-se o uso de Wikis para a documentação, sobretudo, de ontologias de referência.
Processos de Apoio: Gerência de Configuração Os principais documentos propostos pelo método, uma vez aprovados, devem ser submetidos à gerência de configuração. Os documentos de Especificação da Ontologia de Referência e Especificação de Projeto da Ontologia Operacional, bem como a Ontologia Operacional (código) têm de ter a configuração gerenciada obrigatoriamente. A gerência de configuração trata, dentre outros, de: Controle de alteração Controle de versão Controle de liberação e entrega
Processos de Apoio: Avaliação Envolve duas perspectivas principais: Verificação: está-se construindo corretamente a ontologia? Validação: está-se construindo a ontologia correta? Verificação: A ontologia responde as questões de competência apropriadamente? Critérios de qualidade de ontologias: clareza, coerência e consistência, comprometimento ontológico mínimo etc. Aderência a padrões e processos estabelecidos. Validação: A ontologia é capaz de representar situações de mundo real? A ontologia atende aos usos pretendidos para ela?
Processos de Apoio: Avaliação As atividades de teste, ainda que mostradas no contexto do processo de desenvolvimento, são tipicamente atividades do processo de avaliação. Testes: atividades dinâmicas de V&V Revisões: atividades estáticas de V&V