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
Processo de Engenharia de Ontologias Espinha dorsal do método Processo de Desenvolvimento Purpose Identification and Requirements Elicitation Ontology Capture and Formalization Reference Ontology Design Implementation Knowledge Acquisition Processos de Apoio Documentation Configuration Management Evaluation Fortemente relacionados ao processo de desenvolvimento Reuse Operational Ontology Testing
Processo de Engenharia de Ontologias Processo de Desenvolvimento Purpose Identification and Requirements Elicitation Processos de Apoio Ontology Capture and Formalization Reference Ontology Design Implementation Knowledge Acquisition Documentation Configuration Management Evaluation Reuse Operational Ontology Testing
Processo de Engenharia de Ontologias Processo de Desenvolvimento Purpose Identification and Requirements Elicitation Processos de Apoio Ontology Capture and Formalization Reference Ontology Design Implementation Knowledge Acquisition Documentation Configuration Management Evaluation Reuse Operational Ontology Testing
Processo de Engenharia de Ontologias Processo de Desenvolvimento Processos de Apoio Diferentes modelos de ciclo de vida podem ser usados. Sugestão: Modelos iterativos e incrementais Purpose Identification and Requirements Elicitation Ontology Capture and Formalization Reference Ontology Design Implementation Knowledge Acquisition Documentation Configuration Management Evaluation Reuse Operational Ontology Testing
Processo de Desenvolvimento Processo de Aquisição de Conhecimento Processo de Reúso Ontology User Ontology Engineer Domain Expert Purpose Identification and Requirements Elicitation Purpose, Requirements, Competency Questions, Sub-ontologies Ontology Modularization Purpose and Intended Uses Identification Competency Questions Identification Requirements Elicitation Essas quatro atividades devem ser realizadas de modo iterativo
Propósito e Requisitos Ontology User Ontology Engineer Purpose Identification and Requirements Elicitation Ontology Modularization Purpose and Intended Uses Identification Requirements Elicitation Domain Expert Purpose, Requirements, Competency Questions, Sub-ontologies Competency Questions Identification Primeiro, uma descrição inicial do propósito da ontologia e de seus usos pretendidos deve ser esboçada.
Identificação de Propósito e Usos Pretendidos Identificação do Propósito: Qual o propósito principal da ontologia? Qual a cobertura pretendida? Usos Pretendidos: Quem são os potenciais usuários da ontologia? Quais os usos pretendidos para a ontologia? Descreva brevemente os cenários de utilização da ontologia.
Exemplo: Ontologia de Teste de Software Propósito: prover um modelo conceitual consensual sobre teste de software, com ênfase no processo de teste, de modo a apoiar a comunicação entre profissionais envolvidos neste processo. (Cobertura) A ontologia deve tratar os principais conceitos, relações e restrições relativos às atividades do processo de teste, artefatos produzidos e requeridos por essas atividades, técnicas de teste que podem ser aplicadas, e ambiente de teste, incluindo recursos humanos, de hardware e de software. O foco deve ser a execução de processos de teste.
Exemplo: Ontologia de Teste de Software Potenciais usuários da ontologia: Profissionais de desenvolvimento de software atuando em teste de software, em especial na definição de processos de teste. Profissionais atuando na definição do ambiente de teste, incluindo responsáveis pela integração de ferramentas ao processo de teste.
Exemplo: Ontologia de Teste de Software Potenciais usos: Apoio ao aprendizado por humanos sobre o processo de teste de software. Profissionais, muitas vezes, desconhecem conceitos básicos de teste. Neste sentido, a ontologia pode ser usada para apoiar o aprendizado por humanos dos conceitos chave relacionados ao processo de teste de software. Base para a estruturação e representação de conhecimento relacionado a teste de software. O processo de teste é rico em conhecimento. Neste contexto, é muito útil aplicar técnicas de gestão do conhecimento em teste de software. A ontologia de teste deve poder ser usada como base para a representação do conhecimento relativo a teste de software (estruturação de repositórios de conhecimento), bem como para apoiar a busca nestes repositórios.
Exemplo: Ontologia de Teste de Software Potenciais usos: Modelo de referência para integração de aplicações de apoio ao processo de teste. Por ser um processo complexo, o processo de teste requer o uso de ferramentas de apoio. Diferentes ferramentas podem ser usadas: ferramentas de apoio ao projeto de casos de teste, ferramentas de execução de testes, ferramentas de registro de erros e questões, dentre outras. A ontologia proposta deve poder ser usada para apoiar a integração de tais ferramentas.
Requisitos Requisitos Funcionais: referem-se ao conteúdo a ser representado pela ontologia. São definidos por meio de questões de competência. Requisitos Não Funcionais: incluem atributos Ontology User de qualidade (ex., desempenho no raciocínio, capacidade de extensão etc.); requisitos de projeto (ex., aderência a modelos de documento, stakeholders que devem estar de acordo com a ontologia); requisitos relacionados aos usos Domain pretendidos Expert (ex., a terminologia usada na ontologia deve ser tomada de padrões (standards)). Ontology Engineer Purpose Identification and Requirements Elicitation Purpose, Requirements, Competency Questions, Sub-ontologies Ontology Modularization Purpose and Intended Uses Identification Competency Questions Identification Requirements Elicitation
Levantamento de Requisitos Etapa fortemente apoiada pelos Processos de Aquisição de Conhecimento e Reutilização. Técnicas colaborativas de Levantamento de Requisitos / Aquisição de Conhecimento devem ser aplicadas. Requisitos funcionais e não funcionais podem ser reutilizados.
Exemplo: Ontologia de Teste de Software Processo de Aquisição de Conhecimento: Identificação das Fontes de Conhecimento Identificação de Especialistas de Domínio Aplicação de Técnicas de Levantamento de Requisitos Processo de Reutilização: Processo de teste é um subtipo de processo de software. Oportunidade de Reutilização: core ontology de Processo de Software, organizada na forma de uma linguagem de padrões ontológicos (SP-OPL). Reúso e especialização de QCs, conceitos, relações e axiomas.
Questões de Competência São um meio de especificar requisitos funcionais da ontologia, na medida em que referem-se ao conhecimento a ser representado na ontologia. Questões que a ontologia deve ser capaz de responder Como requisitos funcionais de uma ontologia, devem possuir um identificador único.
Exemplo: Ontologia de Teste de Software Requisitos não funcionais: RNF01 - A ontologia deve levar em consideração os principais livros da área, bem como normas e padrões internacionais relacionados ao tema, tais como SWEBOK e ISO/IEC/IEEE 29119. RNF02 - A ontologia de teste de software deve estar integrada à ontologia de processo de software.
Exemplo: Ontologia de Teste de Software Questões de Competência: QC01. Em que projeto, um dado processo de teste e suas atividades ocorreram? QC02. Quais as atividades e sub-atividades de um processo de teste? QC03. Quando um processo de teste iniciou e quando foi concluído? QC04. Quando uma atividade de teste iniciou e quando foi concluída? QC05. De quais atividades uma atividade de teste depende para poder ser executada? QC06. Quais os artefatos produzidos em uma atividade de teste? QC07. Quais os artefatos usados em uma atividade de teste?
Modularização da Ontologia Ontology User Ontology Engineer Purpose Identification and Requirements Elicitation Ontology Modularization Purpose and Intended Uses Identification Requirements Elicitation Domain Expert Purpose, Requirements, Competency Questions, Sub-ontologies Competency Questions Identification Se o domínio de interesse é complexo, é necessário modularizar a ontologia, i.e., identificar módulos ou sub-ontologias.
Modularização da Ontologia Artefato a ser produzido: diagrama de pacotes UML. Alocar as questões de competência para os módulos da ontologia (sub-ontologias). As dependências entre os módulos, bem como a alocação das QCs aos módulos, vão sendo refinadas na medida em que o projeto avança para outras atividades, em especial da fase de Captura e Formalização da Ontologia.
Exemplo: Ontologia de Teste de Software
Planejamento do Projeto Na medida em que são levantadas as informações iniciais acerca do propósito, cobertura, usos pretendidos e requisitos da ontologia, atividades do planejamento de projeto devem ser realizadas, dentre elas: definição do modelo de ciclo de vida a ser seguido, definição do processo do projeto específico, alocação de recursos, elaboração de cronograma, análise de riscos, etc.
Exemplo: Ontologia de Teste de Software Planejamento do Projeto Modelo de Ciclo de Vida Adotado: Modelo Incremental. Cada sub-ontologia deve ser desenvolvida como um incremento, respeitando as dependências existentes entre os módulos.
Captura e Formalização da Ontologia Purpose, Requirements, Competency Questions, Sub-ontologies Conceptual Modeling Ontology Engineer Ontology Capture and Formalization Formal Axioms Definition Dictionary of Terms Definition Domain Expert Reference Ontology Informal Axioms Definition O principal objetivo desta fase é capturar a conceituação do domínio, tomando por base as questões de competência.
Captura e Formalização da Ontologia Uso de linguagem gráfica Conceitos e relações devem ser analisados à luz de uma ontologia de fundamentação. Purpose, Requirements, Competency Questions, Sub-ontologies Conceptual Modeling Ontology Engineer Ontology Capture and Formalization Formal Axioms Definition Dictionary of Terms Definition Domain Expert Reference Ontology Informal Axioms Definition Termos usados para nomear os conceitos devem ser definidos em um Dicionário de Termos.
Captura e Formalização da Ontologia Processo de Aquisição de Conhecimento Processo de Reutilização Purpose, Requirements, Competency Questions, Sub-ontologies Conceptual Modeling Ontology Engineer Ontology Capture and Formalization Formal Axioms Definition Dictionary of Terms Definition Domain Expert Reference Ontology Informal Axioms Definition
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
Exemplo: Ontologia de Teste de Software Testing Process and Activities sub-ontology
Captura e Formalização da Ontologia Purpose, Requirements, Competency Questions, Sub-ontologies Conceptual Modeling Ontology Engineer Ontology Capture and Formalization Formal Axioms Definition Dictionary of Terms Definition Domain Expert Reference Ontology Informal Axioms Definition Restrições e regras devem ser especificadas na forma de axiomas.
Captura e Formalização da Ontologia Definição de Axiomas (informais e formais) Axiomas de derivação (regras) Axiomas de consolidação (restrições) Axiomas formais: lógica de primeira ordem
Exemplo: Ontologia de Teste de Software Axiomas: Se um processo geral gpo ocorre em um projeto p e um processo específico spo é parte de gpo, então spo ocorre nesse mesmo projeto p. Se um processo específico spo ocorre em um projeto p e uma ocorrência de atividade ao é parte de spo, então ao ocorre nesse mesmo projeto p
Captura e Formalização da Ontologia Etapa fortemente apoiada pelos Processos de Aquisição de Conhecimento e Reutilização. Técnicas colaborativas de Levantamento de Requisitos / Aquisição de Conhecimento devem ser aplicadas. Fontes para aquisição de conhecimento/reutilização: Especialistas de domínio Material bibliográfico consolidado: livros, normas etc. Modelos de referência, modelos de sistemas etc. Recursos Não Ontológicos Ontologias existentes, padrões ontológicos, core ontologies, ontologias de fundamentação. Recursos Ontológicos
Captura e Formalização da Ontologia Reutilização de Recursos Ontológicos Ontologias de domínio existentes: aplicar técnicas de mapeamento e merge de ontologias Ontologias de fundamentação: estruturação Core ontologies: especialização Patterns: aplicação Foundational patterns Domain-related patterns Reutilização de Recursos Não Ontológicos Requer a realização de uma análise ontológica do NOR à luz da ontologia de fundamentação utilizada.
Design da Ontologia Reference Ontology Technical Non-Functional Requirements Elicitation Ontology Engineer Ontology Designer Design Ontology Design Specification Implementation Environment Definition Architectural Design Detailed Design Faz uma ponte entre os modelos conceituais de ontologias de referência e a sua codificação em uma linguagem de ontologias operacionais (ex., OWL).
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
Design da Ontologia Reference Ontology Technical Non-Functional Requirements Elicitation Ontology Engineer Ontology Designer Design Ontology Design Specification Implementation Environment Definition Architectural Design Detailed Design RNFs técnicos são refinados e usados como base para a definição do ambiente no qual a ontologia será implementada. Por outro lado, o ambiente de implementação pode impor novos RNFs técnicos.
Exemplo: Ontologia de Teste de Software Visando o uso para anotação semântica de itens de conhecimento em um repositório, decidiu-se implementar ROoST em OWL. Para a implementação, decidiu-se utilizar a ferramenta OLED e sua transformação para OWL.
Design da Ontologia Reference Ontology Technical Non-Functional Requirements Elicitation Ontology Engineer Ontology Designer Design Ontology Design Specification Implementation Environment Definition Architectural Design Detailed Design O projetista deve revistar a modularização da ontologia, levando em consideração RNFs técnicos e características do ambiente de implementação, para definir a arquitetura final da ontologia.
Design da Ontologia Reference Ontology Technical Non-Functional Requirements Elicitation Ontology Engineer Ontology Designer Design Ontology Design Specification Implementation Environment Definition Architectural Design Detailed Design O designer deve tratar problemas relacionados com a menor expressividade da linguagens operacionais quando comparadas a modelos e axiomas da ontologia de referência.
Implementação da Ontolgia Ontology Designer Ontology Design Specification Reference Ontology Implementation Ontology Programmer Operational Ontology A fase de Implementação diz respeito à implementação da ontologia na linguagem operacional escolhida.
Implementação da Ontologia Codificação na linguagem operacional escolhida (p.ex., OWL) Em alguns aspectos, 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 / idiomas pode se dar no contexto da implementação.
Testes da Ontologia Reference Ontology Operational Ontology Ontology Design Specification Sub-ontology Testing Ontology Tester Ontology Testing Integration Testing Ontology User Test Cases, Test Results Ontology Testing Refere-se à verificação dinâmica do comportamento da ontologia operacional tomando por base um conjunto finito de casos de teste.
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)
Testes da Ontologia Reference Ontology Operational Ontology Ontology Design Specification Sub-ontology Testing Ontology Tester Ontology Testing Integration Testing Ontology User Test Cases, Test Results Ontology Testing Teste de sub-ontologia: casos de teste são executados considerando apenas o escopo de sua sub-ontologia. O teste de cada QC pode ser visto como um teste de unidade.
Testes da Ontologia Reference Ontology Operational Ontology Ontology Design Specification Sub-ontology Testing Ontology Tester Ontology Testing Integration Testing Ontology User Test Cases, Test Results Ontology Testing Na medida em que sub-ontologias vão sendo integradas, o teste de integração é realizado. Os mesmos casos de teste da fase anterior vão sendo reaplicados (teste de regressão), mas agora considerando as sub-ontologias integradas até então.
Testes da Ontologia Reference Ontology Operational Ontology Ontology Design Specification Sub-ontology Testing Ontology Tester Ontology Testing Integration Testing Ontology User Test Cases, Test Results Ontology Testing No teste da ontologia, casos de testes são rodados novamente, agora no considerando a ontologia como um todo.
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.
Processo de Engenharia de Ontologias Processo de Desenvolvimento Purpose Identification and Requirements Elicitation Processo de Apoio Ontology Capture and Formalization Reference Ontology Design Implementation Knowledge Acquisition Documentation Configuration Management Evaluation Reuse Operational Ontology Testing
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 providos para garantir uniformidade nos projetos de desenvolvimento de ontologias.
Documento de Especificação de Ontologia de Referência 1. Introdução 2. Descrição do Propósito e Usos Pretendidos 3. Escopo (Cobertura) da Ontologia 4. Descrição do Domínio 5. 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... 6. Dicionário de Termos
Processos de Apoio: Gerência de Configuração Os principais documentos propostos pelo método (p.ex., Documentos de Especificação da Ontologia de Referência e a Ontologia Operacional (código)), uma vez aprovados, devem ser submetidos à gerência de configuração. 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 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 são atividades dinâmicas de V&V. Contudo, é necessário aplicar outras técnicas estáticas para a V&V de ontologias. Isso é fundamental para garantir a qualidade das ontologias resultantes, em especial quando o objetivo é desenvolver somente uma ontologia de referência.
Processos de Apoio: Avaliação Verificação Manual de Ontologias de Referência: analisar quais conceitos, relações e axiomas são necessários (e suficientes) para responder cada uma das QCs. Validação por meio de Instanciação: instanciar a ontologia de referência usando dados do mundo real e avaliar se a ontologia é capaz de representar adequadamente tais situações.
Exemplo: Ontologia de Teste de Software Testing Process and Activities sub-ontology CQ01. What is the project in which a given testing process and its activities occurred?
Exemplo: Ontologia de Teste de Software Testing Process and Activities sub-ontology
Exemplo: Ontologia de Teste de Software Testing Process and Activities sub-ontology CQ01. What is the project in which a given testing process and its activities occurred?
Exemplo: Ontologia de Teste de Software Dados extraídos de um projeto real realizado no INPE.
Conclusões A versão atual de SABiO (2.0) procura incorporar aspectos considerados relevantes, tanto pelos métodos mais modernos de Engenharia de Ontologias, como práticas consagradas de Engenharia de Software.