Ontology Patterns Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo
Agenda Reutilização na Engenharia de Ontologias Ontology Patterns Tipos de Ontology Patterns Descrição de Ontology Patterns Organizando Ontology Patterns extreme Design Processo de Reúso Baseado em Padrões em SABiO
Reutilização na Engenharia de Ontologias Cenários típicos (Gangemi; Presutti, 2009): Procurar por ontologias existentes (tipicamente na Web), avaliá-las, selecionar alguma(s) dela(s) e adaptá-la(s) considerando os requisitos do projeto em questão. Reutilizar core ontologies que supostamente podem ser reusadas e especializadas diretamente.
Reutilização na Engenharia de Ontologias Problema: Ontologias selecionadas para reúso são geralmente grandes e cobrem um espectro mais amplo do que aquele que o designer necessita. É difícil reusar apenas fragmentos úteis de uma ontologia. Custo do reúso pode ser maior do que construir uma nova ontologia a partir do zero. Algumas ontologias pequenas e simples (tal como FOAF) têm demonstrado o potencial de ontologias realmente reutilizáveis.
Ontology Patterns (OPs) Suposição: Há classes de problemas que podem ser resolvidos pela aplicação de soluções comuns. OPs são soluções de modelagem para problemas recorrentes no desenvolvimento de ontologias (Gangemi; Presutti, 2009). Um OP descreve um particular problema recorrente de modelagem que se apresenta em alguns contextos de desenvolvimento de ontologias e apresenta uma solução comprovada para o problema (Falbo et al. 2013).
Ontology Patterns (OPs) Idealmente, uma ontologia pode ser desenvolvida pela composição de OPs, usando as dependências apropriadas entre eles, mais a expansão necessária para satisfazer necessidades específicas. OPs tipicamente emergem de experiências em projetos de engenharia de ontologias, em diferentes domínios, para diferentes tarefas, e quando trabalhando com especialistas com backgrounds heterogêneos (Gangemi; Presutti, 2009).
Patterns em Engenharia de Software Analysis patterns Modelagem Conceitual Architectural patterns Projeto Arquitetônico Design Patterns Projeto Detalhado Idioms (Programming Patterns) Implementação
Tipos de Ontology Patterns Segundo (Falbo et al., 2013)
Processo de Desenvolvimento de Ontologias e Ontology Patterns
Descrição de Ontology Patterns Segundo (Gangemi; Presutti, 2009) Nome: Intenção: descreve o caso de uso genérico tratado pelo padrão. Questões de Competência: questões de competência que o padrão procura responder; Também conhecido como: outros nomes pelos quais o padrão é conhecido; Cenários: provê exemplos que podem ser modelados usando o padrão;
Descrição de Ontology Patterns Segundo (Gangemi; Presutti, 2009) Diagrama: diagrama de classes UML representando o padrão; Elementos: descreve os elementos (classes e relações) incluídos no padrão e seus papéis no padrão; Consequências: descrição dos potenciais benefícios e tradeoffs do uso do padrão; Usos conhecidos: dá exemplos de ontologias reais onde o padrão foi aplicado; Extraído de: provê a referência à ontologia/esquema conceitual (se houver algum), de onde o padrão foi extraído/reutilizado;
Descrição de Ontology Patterns Segundo (Gangemi; Presutti, 2009) Padrões relacionados: indica outros padrões que relacionados e que podem ser utilizados em conjunto com o padrão sendo descrito; Implementação: provê referências a implementações do padrão (p.ex., URI de um arquivo OWL contendo a implementação do padrão).
Exemplos de Ontology Patterns Information Realization CP (Presutti; Gangemi 2008) (Gangemi; Presutti, 2009). Intent: to represent relations between information objects and their physical realizations Competency questions: Which physical object realizes a certain information object? Which information object is realized by a certain physical object? Extracted from: the Dolce Ultra Lite ontology available at http://www.loa-cnr.it/ontologies/dul.owl Examples: that CD is the recording of The Dark Side of the Moon Diagram
Exemplos de Ontology Patterns Elements: InformationObject: a piece of information, such as a law, song, a text, a picture, independently from how it is concretely realized. InformationRealization: a concrete realization of an InformationObject, e.g. the written document containing the text of a law. isrealizedby (inverse: realizes): a relation between an Information Object and an Information Realization, e.g. a paper copy of the Italian Constitution realizes the text of the Constitution.
Exemplos de Ontology Patterns Time Indexed Person Role (Presutti; Gangemi, 2008) (Gangemi; Presutti, 2009). Intent: to represent time indexing for the relation between persons and roles they play. Competency questions: Who was playing a certain role during a given time interval? When did a certain person play a specific role? Extracted from: the Dolce Ultra Lite ontology available at http://www.loa-cnr.it/ontologies/dul.owl Examples: George W. Bush was the president of the United States in 2007 Consequences: the CP allows to assign a time interval to roles played by people. Diagram:
Exemplos de Ontology Patterns (Presutti; Gangemi, 2008)
Exemplos de Ontology Patterns Elements: Entity: anything real, possible, or imaginary, which some modeler wants to talk about for some purpose. Person: persons in commonsense intuition, i.e. either as physical agents (human) or social persons. Role: a Concept that classifies a Person. TimeInterval: any region in a dimensional space that aims at representing time. TimeIndexedPersonRole: a situation that expresses time indexing for the relation between persons and roles they play. hasrole (inverse: isroleof): a relation between a Role and an Entity isroleof: a relation between a Role and an Entity issettingfor (inverse: hassetting): a relation between time indexed role situations and related entities, e.g. I was the director between 2000 and 2005, i.e. the situation in which I was a director is the setting for a the role of director, me, and the time interval.
Usando Ontology Patterns O reúso de OPs apoia-se em um conjunto de operações, a saber: importação: consiste na inclusão de um OP na ontologia em desenvolvimento. especialização: consiste na criação de sub-tipos para algum conceito de um OP. Envolve a importação e posterior especialização de pelo menos um dos conceitos do OP. generalização: consiste na criação de super-tipos para conceitos de um OP. Envolve a importação e posterior generalização de pelo menos um dos conceitos do OP.
Usando Ontology Patterns composição: consiste em associar conceitos de dois OPs diferentes, o que pode levar a novos axiomas. expansão: consiste em adicionar novos conceitos, propriedades e axiomas à ontologia em desenvolvimento com o objetivo de atender requisitos que não foram tratados pelo reúso de OPs.
Usando Ontology Patterns Exemplo: Ontology for the Music Domain (Gangemi; Presutti, 2009) (Presutti; Gangemi 2008) Competency questions: Which recordings of a certain song do exist in our archive? Information Realization CP Who did play a certain musician role in a given band during a certain period? Time Indexed Person Role CP
Usando Ontology Patterns Modelo derivado a partir da descrição em (Presutti; Gangemi, 2008) (Gangemi; Presutti, 2009)
XD extreme Design Procura fazer uma analogia com o método ágil de Engenharia de Software XP extreme Programming. Princípios: Envolvimento do cliente e feedback contínuo. Requisitos baseados em histórias de clientes. Processo iterativo e incremental Colaboração e Integração Processo dirigido por testes Reutilização de OPs e design modular Design orientado a tarefa (escopo limitado) Design aos pares
Processo XD
Processo XD
Organizando Ontology Patterns Catálogo de Padrões ontologydesignpattern.org The Manchester s Ontology Design Patterns Catalog [21]: a public catalog of Content OPs focused on the biological knowledge domain Linguagem de Padrões Ontológicos (Ontology Pattern Language OPL): de Fundamentação (p.ex., OntoUML como uma OPL) de Domínio: Conjunto de patterns relacionados a um domínio de aplicação específico, inter-relacionados entre si, mais um processo que guia o reúso dos OPs. Esse processo aponta os problemas que podem ser tratados e a ordem em que eles devem ser tratados, sugerindo um ou mais patterns para resolver cada problema. Ex.: SP-OPL, ISP-OPL, E-OPL e S-OPL.
Ontology Pattern Languages (OPLs) OPs relacionados a um domínio (DROPs) são muito interrelacionados e é muito difícil aplicá-los isoladamente. Uma OPL deve indicar: Quais combinações de patterns são complementares ou conflitantes na resolução de um dado problema, juntamente com diretrizes para integrar patterns em um modelo conceitual de uma ontologia. Quais patterns tratam de aspectos obrigatórios e quais tratam de aspectos opcionais. Qual a ordem de aplicação dos patterns recomendada.
Ontology Pattern Languages (OPLs) Uma OPL é estruturada para apoiar e encorajar a aplicação de um pattern de cada vez, na ordem definida pelo processo da OPL e em função dos caminhos escolhidos pelo engenheiro de ontologias.
S-OPL
S-OPL
S-OPL
S-OPL
Exemplo: Ontologia de Serviço de Administração de Condomínio Propósito: representar o conhecimento sobre os serviços envolvidos na administração de condomínios, enfocando a oferta desses serviços e o acordo entre uma administradora de condomínios e um condomínio específico.
S-OPL
Usando S-OPL
S-OPL
Usando S-OPL
S-OPL
Usando S-OPL