sabio: systematic approach for building ontologiesfalbo/files/eo/slides/3-metodo_sabio.pdf ·...

Post on 08-Feb-2020

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Do

cum

en

tation

Co

nfigu

ration

Man

agemen

t

Evaluatio

n

Reu

se

Purpose Identification and Requirements

Elicitation

Reference Ontology

Design

Implementation

Operational Ontology

Testing

Processo de Desenvolvimento Processos de Apoio

Kn

ow

ledge

Acq

uisitio

n

Ontology Capture and Formalization

Espinha

dorsal do

método

Fortemente

relacionados ao

processo de

desenvolvimento

Processo de Engenharia de Ontologias

Do

cum

en

tation

Co

nfigu

ration

Man

agemen

t

Evaluatio

n

Reu

se

Purpose Identification and Requirements

Elicitation

Reference Ontology

Design

Implementation

Operational Ontology

Testing

Processo de Desenvolvimento Processos de Apoio

Kn

ow

ledge

Acq

uisitio

n

Ontology Capture and Formalization

Processo de Engenharia de Ontologias

Do

cum

en

tation

Co

nfigu

ration

Man

agemen

t

Evaluatio

n

Reu

se

Purpose Identification and Requirements

Elicitation

Reference Ontology

Design

Implementation

Operational Ontology

Testing

Processo de Desenvolvimento Processos de Apoio

Kn

ow

ledge

Acq

uisitio

n

Ontology Capture and Formalization

Processo de Engenharia de Ontologias

Do

cum

en

tation

Co

nfigu

ration

Man

agemen

t

Evaluatio

n

Reu

se

Purpose Identification and Requirements

Elicitation

Reference Ontology

Design

Implementation

Operational Ontology

Testing

Processo de Desenvolvimento Processos de Apoio

Kn

ow

ledge

Acq

uisitio

n

Ontology Capture and Formalization

Diferentes modelos de ciclo de vida podem ser usados.

Sugestão: Modelos iterativos e incrementais

Processo de Desenvolvimento

Purpose Identification and Requirements

Elicitation

Ontology User

Ontology Engineer

Domain Expert

Purpose, Requirements, Competency Questions, Sub-ontologies

Purpose and Intended Uses Identification

Requirements Elicitation

Competency Questions

Identification

Ontology Modularization

Processo de Aquisição de Conhecimento

Essas quatro atividades devem ser realizadas de modo iterativo

Processo de Reúso

Propósito e Requisitos

Purpose Identification and Requirements

Elicitation

Ontology User

Ontology Engineer

Domain Expert

Purpose, Requirements, Competency Questions, Sub-ontologies

Purpose and Intended Uses Identification

Requirements Elicitation

Competency Questions

Identification

Ontology Modularization

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

Purpose Identification and Requirements

Elicitation

Ontology User

Ontology Engineer

Domain Expert

Purpose, Requirements, Competency Questions, Sub-ontologies

Purpose and Intended Uses Identification

Requirements Elicitation

Competency Questions

Identification

Ontology Modularization

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 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 pretendidos (ex., a terminologia usada na ontologia deve ser tomada de padrões (standards)).

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

Purpose Identification and Requirements

Elicitation

Ontology User

Ontology Engineer

Domain Expert

Purpose, Requirements, Competency Questions, Sub-ontologies

Purpose and Intended Uses Identification

Requirements Elicitation

Competency Questions

Identification

Ontology Modularization

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

Ontology Capture and Formalization

Reference Ontology

Conceptual Modeling

Dictionary of Terms

Definition

Informal Axioms

Definition

Formal Axioms Definition

Purpose, Requirements, Competency Questions, Sub-ontologies

Domain Expert

Ontology Engineer

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

Ontology Capture and Formalization

Reference Ontology

Conceptual Modeling

Dictionary of Terms

Definition

Informal Axioms

Definition

Formal Axioms Definition

Purpose, Requirements, Competency Questions, Sub-ontologies

Domain Expert

Ontology Engineer

Uso de linguagem gráfica

Conceitos e relações devem ser analisados à luz de uma ontologia de fundamentação.

Termos usados para nomear os conceitos devem ser definidos em um Dicionário de Termos.

Captura e Formalização da Ontologia

Ontology Capture and Formalization

Reference Ontology

Conceptual Modeling

Dictionary of Terms

Definition

Informal Axioms

Definition

Formal Axioms Definition

Purpose, Requirements, Competency Questions, Sub-ontologies

Domain Expert

Ontology Engineer

Processo de Aquisição de Conhecimento

Processo de Reutilização

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

Ontology Capture and Formalization

Reference Ontology

Conceptual Modeling

Dictionary of Terms

Definition

Informal Axioms

Definition

Formal Axioms Definition

Purpose, Requirements, Competency Questions, Sub-ontologies

Domain Expert

Ontology Engineer

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.

– Ontologias existentes, padrões ontológicos, core ontologies, ontologias de fundamentação.

Recursos Ontológicos

Recursos Não 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

Technical Non-Functional Requirements Elicitation

Implementation Environment Definition

Architectural Design

Detailed Design

Reference Ontology

Ontology Design Specification

Design

Ontology Engineer

Ontology Designer

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

Technical Non-Functional Requirements Elicitation

Implementation Environment Definition

Architectural Design

Detailed Design

Reference Ontology

Ontology Design Specification

Design

Ontology Engineer

Ontology Designer

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

Technical Non-Functional Requirements Elicitation

Implementation Environment Definition

Architectural Design

Detailed Design

Reference Ontology

Ontology Design Specification

Design

Ontology Engineer

Ontology Designer

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

Technical Non-Functional Requirements Elicitation

Implementation Environment Definition

Architectural Design

Detailed Design

Reference Ontology

Ontology Design Specification

Design

Ontology Engineer

Ontology Designer

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

Operational Ontology

Reference Ontology

Ontology Programmer

Ontology Design Specification

Implementation

Ontology Designer

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

Ontology Testing

Test Cases, Test Results

Sub-ontology Testing

Integration Testing

Ontology Testing

Operational Ontology

Reference Ontology Ontology Design Specification

Ontology User

Ontology Tester

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

Ontology Testing

Test Cases, Test Results

Sub-ontology Testing

Integration Testing

Ontology Testing

Operational Ontology

Reference Ontology Ontology Design Specification

Ontology User

Ontology Tester

• 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

Ontology Testing

Test Cases, Test Results

Sub-ontology Testing

Integration Testing

Ontology Testing

Operational Ontology

Reference Ontology Ontology Design Specification

Ontology User

Ontology Tester

• 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

Ontology Testing

Test Cases, Test Results

Sub-ontology Testing

Integration Testing

Ontology Testing

Operational Ontology

Reference Ontology Ontology Design Specification

Ontology User

Ontology Tester

• 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

Do

cum

en

tation

Co

nfigu

ration

Man

agemen

t

Evaluatio

n

Reu

se

Purpose Identification and Requirements

Elicitation

Reference Ontology

Design

Implementation

Operational Ontology

Testing

Processo de Desenvolvimento Processo de Apoio

Kn

ow

ledge

Acq

uisitio

n

Ontology Capture and Formalization

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.

top related