engenharia de ontologia para web semântica

85
Engenharia de Ontologia para Web Semântica José Leomar Todesco Baseado no trabalho de Natalya F. Noy - A large part of this tutorial is based on “Ontology Development 101: A Guide to Creating Your First Ontology” by Natalya F. Noy and Deborah L. McGuinness http://protege.stanford.edu/publications/ontology_development/ ontology101.html

Upload: brendy

Post on 05-Jan-2016

34 views

Category:

Documents


3 download

DESCRIPTION

Engenharia de Ontologia para Web Semântica. José Leomar Todesco. Baseado no trabalho de Natalya F. Noy - A large part of this tutorial is based on “Ontology Development 101: A Guide to Creating Your First Ontology” by Natalya F. Noy and Deborah L. McGuinness - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Engenharia de Ontologia  para Web Semântica

Engenharia de Ontologia para Web Semântica

José Leomar Todesco

Baseado no trabalho de Natalya F. Noy - A large part of this tutorial is based on “Ontology Development 101: A Guide to Creating Your First

Ontology” by Natalya F. Noy and Deborah L. McGuinnesshttp://protege.stanford.edu/publications/ontology_development/ontology101.html

Page 2: Engenharia de Ontologia  para Web Semântica

VinhosFrancesese regiõesvinículas

Vinhos daCalifornia e regiões vinícolas

Qual vinho eu devo

servir com frutos do mar hoje? Uma Uma

ONTOLOGIAONTOLOGIAComum deComum de

Vinho e comidaVinho e comida

Uma Uma ONTOLOGIAONTOLOGIAComum deComum de

Vinho e comidaVinho e comida

Page 3: Engenharia de Ontologia  para Web Semântica

Tópicos

O que é uma ontologia? Tipos de ontologia Porquê desenvolver uma ontologia? Passo-a-Passo: Desenvolvendo uma ontologia Aprofundando: Problemas comuns e soluções Ontologias nas linguagens de Web Semântica Pesquisa atual e questões na engenharia da

ontologia

Page 4: Engenharia de Ontologia  para Web Semântica

O que é uma ontologia

Uma ontologia é uma descrição explícita de um domínio: conceitos propriedades e conceitos de atributos Restrições nas propriedades e atributos Individuos/instâncias (as vezes, mas nem sempre)

Uma ontologia define um vocabulário comum um entendimento compartilhado

Page 5: Engenharia de Ontologia  para Web Semântica

Fundamentos teóricos da ontologia

Ontologias são largamente usados na engenharia do

conhecimento, inteligência artificial e ciência da

computação em aplicações relacionadas a gestão do

conhecimento, processamento de linguagem natural, e-

commerce, integração de informação inteligente,

recuperação de informação, integração e projeto de banco

de dados, bio-informática, educação e mais recentemente

a um campo emergente chamado Web Semântica.

Page 6: Engenharia de Ontologia  para Web Semântica

Fundamentos teóricos da ontologia

Em 1991, o DARPA teve a visão de construir sistemas inteligentes. Eles

propuseram o seguinte: “Building knowledge-based systems today usually entails

constructing new knowledge bases from scratch. It could be instead done by

assembling reusable components. Systems developers would then only need to

worry about creating the specialized knowledge and reasoners new to the specific

task of their system. This new system would interoperate with existing systems,

using then to perform some of its reasoning. In this way, declarative knowledge,

problem-solving techniques and reasoning services would all be shared among

systems. This approach would facilitate building bigger and better systems and

chearply...”

Page 7: Engenharia de Ontologia  para Web Semântica

Fundamentos teóricos da ontologia

No mesmo período da apresentação da idéia do DARPA, vários projetos surgiram

com propostas de metodologias para desenvolver sistemas baseados em

conhecimento. Nem todos tratam ontologias, mas fundamentam as noções na

comunidade da Engenharia do Conhecimento. Este projetos incluem:

Estruturas de tarefas (Chandrasekaran et al., 1992); Métodos de role-limiting

(McDermott, 1988); CommonKADS (Schreiber et al., 1994); Protégé (Musen,

1993); MIKE (Angele et al., 1998); IDEAL (Gómez-Perez et al., 1997);

Componentes de Expertise (Steels, 1990); EXPECT (Swartout an Gil, 1995);

GDM (Terpstra et al., 1993); VITAL (Domingue et al., 1993)

Page 8: Engenharia de Ontologia  para Web Semântica

Definições de ontologia

Neches e colegas (1991): “An ontology defines the basic terms and relations

comprising the vocabulary of a topic area as well as the rules for combining

terms and relations to define extensions to the vocabulary.”

Alguns anos depois Gruber (1993): “An ontology is an explicit specification of a

conceptualization.”

Borst modificou a definição de Gruber em 1997: “Ontologies are defined as a

formal specification of a shared conceptualization”

Bernaras e colegas. (1996): “It [an ontology] provides the means for describing

explicitly the conceptualization behind the knowledge represented in a

knowledge base.”

Page 9: Engenharia de Ontologia  para Web Semântica

Definições de ontologia

Swartout et al. (1997): “An ontology is a hierarchically structured set of terms

for describing a domain that can be used as a skeletal foundation for a

knowledge base.”

Guarino (1998): “A set of logical axioms designed to account for the intended

meaning of a vocabulary.”

Uschold e Jasper (1999): “An ontology may take a variety of forms, but it will

necessarily include a vobabulary of terms and some specification of their

meaning. This includes definitions and an indication of how concepts are inter-

related which collectivelly impose a structure on the domain and constrain the

possible interpretations of terms.”

Page 10: Engenharia de Ontologia  para Web Semântica

Principais componentes de uma ontologia Ontologias heavyweight e lightweight podem ser modeladas com diferentes técnicas de

modelagem e implementadas em várias linguagens.

Altamente informal: expressada em linguagem natural

Semi-informal: expressada em linguagem natural estruturada e restrita

Semi-formal: expressada em uma linguagem artificial e definida formalmente (Ontolingua, OWL)

Rigorosamente formal: provem termos definidos meticulosamente com semântica formal,

teoremas e provas de propriedades tais como inspirados na terminologia clássica da lógica de

primeira ordem (soundness).

No início da década de 90, ontologias foram feitas usando principalmente técnicas de

modelagem de IA baseadas em frames e lógica de 1ª ordem.

Nos últimos anos, técnicas de representação de conhecimento baseadas description

logics (DL) tem sido usada para construir ontologias e novas linguagens DL como OIL,

DAML+OIL e OWL tem aparecido no contexto da Web Semântica.

Page 11: Engenharia de Ontologia  para Web Semântica

Principais componentes de uma ontologia Modelando ontologias heavyweight

Gruber (1993) propôs modelar ontologias usando frames e lógica de 1ª ordem, identificando 5 tipos

de componentes: classes, relações, funções, axiomas formais e instâncias.

Classes: representam conceitos, que são definidos de senso comum.

Relações: representam um tipo de associação entre conceitos de um domínio.

Funções: são um caso especial de relações em que o n-ésimo elemento da relação é único para o

n-1-ésimo elemento precedente. (Ex. Pagar, que obtém o preço após aplicar desconto)

Axiomas formais: serve para modelar sentenças que são sempre verdadeiras.

Instâncias: são usadas para representar elementos ou indivíduos em uma ontologia.

Modelando ontologias heavyweight com DL Description Logics é um formalismo lógico cuja teoria é dividida em duas partes: TBox e ABox

TBox: contém conhecimento intensional (teminologias). Contém definições de conceitos e

papéis/funções (roles).

ABox: provem conhecimento extensional (assertivo) que é específico para o indivíduo. Indivíduos

representam instâncias.

Page 12: Engenharia de Ontologia  para Web Semântica

Principais componentes de uma ontologia Modelando ontologias lightweight

Com técnicas de engenharia de software: A UML de Rumbaugh et al.

(1998) pode ser usada como uma técnica para modelar ontologias. Uma

das razões é o fácil entendimento e uso que a UML proporciona para as

pessoas de fora da comunidade de IA.

Empregam diagramas de classes para representar conceitos (e seus atributos)

e OCL (Object Constraint Language) para representar reláções entre conceitos

e aximas.

Com banco de dados: Utiliza-se dos diagrams Entidade/Relacionamento

para com uma extensão comum de generalização de relacionamentos

entre entidades.

Page 13: Engenharia de Ontologia  para Web Semântica

Exemplos de ontologia

Taxonomias na Web Yahoo! categorias

Catalogos para vendas on-line Amazon.com (produtos catálogos)

Terminologia padrão de domínio-específico Unified Medical Language System (UMLS) UNSPSC – terminologia para produtos e serviços

Page 14: Engenharia de Ontologia  para Web Semântica

O que é “Ontology Engineering”?

Ontology Engineering: Define termos no domínio e relationamentos entre eles Definir conceitos no domínio (classes) Arranjando os conceitos na hierarquia (hierarquia de

subclasse-superclasse) Definir quais atributos e propriedades (slots) que as

classes podem ter e restrições em seus valores Definir individuos/instâncias e preencher os valores

do slot

Page 15: Engenharia de Ontologia  para Web Semântica

Tópicos

O que é uma ontologia? Tipos de ontologia Porquê desenvolver uma ontologia? Passo-a-Passo: Desenvolvendo uma ontologia Aprofundando: Problemas comuns e soluções Ontologias nas linguagens de Web Semântica Pesquisa atual e questões na engenharia da

ontologia

Page 16: Engenharia de Ontologia  para Web Semântica

Tipos de ontologia

Nível de Representação: Vocabulário: consiste de uma lista de termos e respectivas definições.

Corresponde a uma definição em XML Schema, por exemplo; Taxonomia: definição de hierarquias sobre os termos do vocabulário.

Cada termo em uma taxonomia pode estar relacionado a uma ou mais relações do tipo “pai-filho”;

Sistema Relacional: prevê relacionamentos arbitrários além dos hierárquicos entre os termos do vocabulário.

Teoria Axiomática: além dos relacionamentos, suporta a definição de regras de inferência e de restrições através de axiomas (DACONTA, 2003 p. 206). Um axioma é uma afirmação lógica que não pode ser comprovada a partir de outras afirmações, mas que pode servir para a construção de sistemas e para a formulação de teorias (como a teoria de conjuntos).

Page 17: Engenharia de Ontologia  para Web Semântica

Tipos de ontologias (Mizoguchi e colegas)

Page 18: Engenharia de Ontologia  para Web Semântica

Tipos de ontologias (Van Heijst e colegas)

Page 19: Engenharia de Ontologia  para Web Semântica

Tipos de Ontologias (Guarino)

Page 20: Engenharia de Ontologia  para Web Semântica

Tipos de Ontologias (Lassila e McGuinnes)

Page 21: Engenharia de Ontologia  para Web Semântica

Tipos de Ontologias (Goméz-Pérez)

Ontologias de Representação do Conhecimento (KR): captura as primitivas de representação usadas para formalizar conhecimento sobre um dado paradigma de KR. (Frame ontology e OKBC ontology).

Ontologias geral ou comum: são usadas para representar conhecimento de senso comum reutilizáveis através do domínio. (Metereology ontology).

Ontologias top-level ou upper-level: descrevem conceitos bem gerais e provêm noções gerais sobre quais termos da raiz na ontologia existente deve ser linkado. (IEEE Standard Upper Ontology – SUO).

Ontologias de domínio: são reusadas em um dado domínio específico. (Médica, farmaceutica, engenharia, leis, empresas, automóveis, etc).

Proporcionam vocabulários sobre conceitos dentro do domínio.

Page 22: Engenharia de Ontologia  para Web Semântica

Tipos de Ontologias (Goméz-Pérez)

Ontologias de tarefa: descrevem o vocabulário relacionado a uma tarefa genérica ou atividade pela especialização de termos nas ontologias top-level. (diagnóstico, scheduling, etc).

Ontologias de tarefa de domínio (domínio específico): são tarefas de domínio reutilizáveis em um dado domínio, mas não em outros domínios, são aplicações independentes.

Ontologias de métodos: dão definições de conceitos relevantes e relações aplicadas para especificar um processo de raciocíneo assim como realizar uma tarefa particular. (Scheduling pela decomposição em tarefas).

Ontologias de aplicação: são aplicações dependentes que contém todas as definições necessárias para modelar o conhecimento requerido para uma aplicação particular. (Metereology ontology).

Page 23: Engenharia de Ontologia  para Web Semântica

Usabilidade X Reusabilidade

Page 24: Engenharia de Ontologia  para Web Semântica

Tópicos

O que é uma ontologia? Tipos de ontologia Porquê desenvolver uma ontologia? Passo-a-Passo: Desenvolvendo uma ontologia Aprofundando: Problemas comuns e soluções Ontologias nas linguagens de Web Semântica Pesquisa atual e questões na engenharia da

ontologia

Page 25: Engenharia de Ontologia  para Web Semântica

Porquê desenvolver uma ontologia? Para compartilhar entendimento comum

da estrutura da informação entre pessoas entre agentes de software

Para possibilitar reuso do conhecimento do domínio evitar “re-inventar a roda” Introduzir padrões para interoperabilidade

Page 26: Engenharia de Ontologia  para Web Semântica

Mais Razões

Para fazer suposições explícitas do domínio facilitar mudanças das hipóteses do domínio

(considerar uma base de conhecimento genética) facilitar entendimento e atualização de dados legados

Para separar o conhecimento do domínio do conhecimento operacional reusar o conhecimento do domínio e operacional

separadamente (e.g., configuração baseada nas restrições)

Page 27: Engenharia de Ontologia  para Web Semântica

Uma ontologia as vezes é só o começo

OntologiasOntologias

Agentes de

Software

Agentes de

Software

Métodos de resolução

de problemas

Métodos de resolução

de problemas

Aplicaçõesindependentes

de domínio

Aplicaçõesindependentes

de domínio

DatabasesDatabasesDeclara aestrutura

Bases de conhecimento

Bases de conhecimento

ProporcionaDescrição do domínio

Page 28: Engenharia de Ontologia  para Web Semântica

Tópicos

O que é uma ontologia? Tipos de ontologia Porquê desenvolver uma ontologia? Passo-a-Passo: Desenvolvendo uma ontologia Aprofundando: Problemas comuns e soluções Ontologias nas linguagens de Web Semântica Pesquisa atual e questões na engenharia da

ontologia

Page 29: Engenharia de Ontologia  para Web Semântica

Vinhos e Vinícolas

Page 30: Engenharia de Ontologia  para Web Semântica

Processo de devenvolvimento de ontologia

Neste exemplo:

determinarescopo

considerarreuso

enumerartermos

definirclasses

definirpropriedades

definirrestrições

criarinstâncias

Na realidade – um processo iterativo:

determinarescopo

considerarreuso

enumerartermos

definirclasses

considerarreuso

enumerartermos

definirclasses

definirpropriedades

criarinstâncias

definirclasses

definirpropriedades

definirrestrições

criarinstâncias

definirclasses

considerarreuso

definirpropriedades

definirrestrições

criarinstâncias

Page 31: Engenharia de Ontologia  para Web Semântica

Ontology Engineering versus Object-Oriented Modeling

Uma ontologia reflete a estrutura do

mundo é as vezes sobre a

estrutura dos conceitos a representação física

atual não é o caso

Uma estrutura de classe OO

reflete a estrutura do dado e do código

geralmente sobre o comportamento (métodos)

descreve a representação física do dado (long int, char, etc.)

Page 32: Engenharia de Ontologia  para Web Semântica

Ferramentas

Todas as telas a seguir do exemplo de vinhos são do: Protégé-2000, que é: uma ferramenta gráfica de desenvolvimento de ontolgogias suporta um modelo de conhecimento rico é open-source e disponível para uso livremente

(http://protege.stanford.edu) Algumas outras ferramentas disponíveis:

Ontolingua e Chimaera OntoEdit OilEd

Page 33: Engenharia de Ontologia  para Web Semântica

Determinar Domínio e Escopo

Qual é o domínio que a ontologia irá cobrir? Para que nós estaremos usando a ontologia? Quais tipos de questões a informação na

ontologia deve prover respostas (questões de competência)?Respostas para estas questões podem mudar

durante o ciclo de vida

determinarescopo

considerarreuso

enumerartermos

definirclasses

definirpropriedades

definirrestrições

criarinstâncias

Page 34: Engenharia de Ontologia  para Web Semântica

Questões de Competência

Quais características de vinho eu devo considerar quando escolher um vinho?

Bordeaux é um vinho tinto ou branco? Cabernet Sauvignon vai bem com frutos do mar? Qual a melhor escolha de vinho para carne grelhada? Quais as características de um vinho que afetam sua

relação com um prato (comida)? O sabor ou corpo de um específico vinho muda com o

ano da safra? Qual foi a melhor safra do Napa Zinfandel?

Page 35: Engenharia de Ontologia  para Web Semântica

Considerar Reuso

Porquê reusar outras ontologias? economizar esforço interagir com as ferramentas que usam

outras ontologias usar ontologias que tenham sido validadas

através do uso em aplicações

determinarescopo

considerarreuso

enumerartermos

definirclasses

definirpropriedades

definirrestrições

criarinstâncias

Page 36: Engenharia de Ontologia  para Web Semântica

O que Reusar?

Bibliotecas de Ontologias DAML ontology library (www.daml.org/ontologies) Ontolingua ontology library

(www.ksl.stanford.edu/software/ontolingua/) Protégé ontology library

(protege.stanford.edu/plugins.html)

Ontologias Upper IEEE Standard Upper Ontology (suo.ieee.org) Cyc (www.cyc.com)

Page 37: Engenharia de Ontologia  para Web Semântica

O que Reusar?(II)

Ontologia Geral DMOZ (www.dmoz.org)

WordNet (www.cogsci.princeton.edu/~wn/) Ontologias de domínio-específico

UMLS Semantic Net GO (Gene Ontology) (www.geneontology.org)

Page 38: Engenharia de Ontologia  para Web Semântica

Enumerar termos importantes

Quais são os termos que são falados? Quais são as propriedades destes termos? O que nós queremos dizer sobre os termos?

considerarreuso

determinarescopo

enumerartermos

definirclasses

definirpropriedades

definirrestrições

criarinstâncias

Page 39: Engenharia de Ontologia  para Web Semântica

Enumerando Termos – A ontologia de vinho

vinho, uva, vinícola, localização,

cor do vinho, corpo do vinho, sabor do vinho, quantidade de açucar

vinho branco, vinho tinto, vinho Bordeaux

comida, frutos do mar, peixe, carne, vegetais, queijo

Page 40: Engenharia de Ontologia  para Web Semântica

Definir Classes e hierarquia de Classes

Uma classe é um conceito no domínio uma classe de vinhos uma classe de vinícolas uma classe de vinhos tinto

Uma classe é uma coleção de elementos com propriedades similares

Instâncias de classes uma garrafa de vinho da California para um almoço

considerarreuso

determinarescopo

definirclasses

definirpropriedades

definirrestrições

criarinstâncias

enumerartermos

Page 41: Engenharia de Ontologia  para Web Semântica

Herança de Classes

Classes geralmente constituem uma taxonomia hierárquica (uma hierarquia de subclasse-superclasse)

Uma hierarquia de classe é geralmente uma hierarquia IS-A:

uma instância de uma subclasse é uma instância de uma superclasse

Se você pensa uma classe como um conjunto de elementos, uma subclasse é um subconjunto

Page 42: Engenharia de Ontologia  para Web Semântica

Herança de Classe - Exemplo

Maçã é uma subclasse de FrutasToda maçã é uma fruta

Vinho tinto é uma subclasse de VinhoToda vinho tinto é um vinho

Vinho Chianti é uma subclasse de vinho tintoTodo vinho Chianti é um vinho tinto

Page 43: Engenharia de Ontologia  para Web Semântica

Níveis na Hierarquia

Middlelevel

Toplevel

Bottomlevel

Page 44: Engenharia de Ontologia  para Web Semântica

Modos de Desenvolvimento

top-down – define os conceitos mais gerias primeiro e então especializa-os

bottom-up – define os conceitos mais específicos e então organiza-os em classes mais gerais

combinação – define os conceitos mais salientes primeiro e então generaliza e especializa-os

Page 45: Engenharia de Ontologia  para Web Semântica

Documentação

Classes (e propriedades) geralmente tem documentação Descrever as classes em linguagem natural Listar suposições relevantes do domínio para as

definições de classe Listar sinônimos

Documentar classes e propriedades é tão importante quanto documentar código em programas!

Page 46: Engenharia de Ontologia  para Web Semântica

Definir Propriedades de Classes – Slots

Propriedades (slot) em uma definição de classe descreve atributos de instâncias da classe e relações a outras instânciasCada vinho terá cor, quantidade de açucar,

produtores, etc.

considerarreuso

determinarescopo

definirrestriçõess

criarinstâncias

enumerartermos

definirclasses

definirpropriedades

Page 47: Engenharia de Ontologia  para Web Semântica

Propriedades (Slots)

Tipos de propriedades propriedade “intrínsica” : sabor e cor do vinho Propriedade “extrínsica” : nome e preço do vinho partes: ingredientes em um prato relações com outros objetos: produtores de vinho

(vinícola) Propriedades simples e complexas

propriedade simples (atributos): contém valores primitivos (strings, numbers)

propriedade complexas: contém (ou aponta para) outros objetos (e.g., uma instância de vinícola)

Page 48: Engenharia de Ontologia  para Web Semântica

Propriedades para a Classe Vinho

(no Protégé-2000)

Page 49: Engenharia de Ontologia  para Web Semântica

Propriedade e herança de Classe

Uma subclasse herda todos as propriedades da superclasseSe um vinho tem o mesmo nome e gosto, um vinho

tinto também tem o mesmo nome e gosto Se uma classe tem múltiplas

superclasses, ela herda propriedades de todasPort é tanto um vinho suave quanto um vinho tinto. Ele

herda “conteúdo de açucar: high” do primeiro e “cor: tinto” do último

Page 50: Engenharia de Ontologia  para Web Semântica

Restrições de Propriedade

Restrições de propriedade (facets) descrevem ou limitam o conjunto de valores possíveis para um slotO nome de um vinho é uma string

O produtor de vinho é uma instância de vinícola

Uma vinícola tem uma localização explícita

considerarreuso

determinarescopo

criarinstâncias

enumerartermos

definireclasses

definirrestrições

definirepropriedades

Page 51: Engenharia de Ontologia  para Web Semântica

Restrições para propriedades na Classe vinho

Page 52: Engenharia de Ontologia  para Web Semântica

Restrições comuns

Cardinalidade da propriedade – o número de valores que uma propriedade tem

Tipo de valor da propriedade – o tipo de valor que uma propriedade tem

Valores mínimo e máximo – um range de valores para uma propriedade numérica

Valor default – valor que uma propriedade tem caso não explicitamente especificado

Page 53: Engenharia de Ontologia  para Web Semântica

Restrições comuns: Cardinalidade da propriedade

Cardinalidade Cardinalidade N significa que a propriedade deve ter N valores

Cardinalidade mínima Cardinalidade mínima 1 significa que a propriedade deve ter um

valor (requerido) Cardinalidade mínima 0 significa que o valor da propriedade é

opcional Cardinalidade máxima

Cardinalidade máxima 1 significa que a propriedade deve ter ao menos um valor (slot de valor simples)

Cardinalidade máxima maior do que 1 significa que a propriedade tem mais do que um valor (slot de valor múltiplo)

Page 54: Engenharia de Ontologia  para Web Semântica

Restrições comuns: Tipo de valor

String: uma string de caracteres (“Château Lafite”) Número: um integer ou um float (15, 4.5) Boolean: uma flag true/false Tipo enumerated: uma lista de valores (high, medium,

low) Tipo complex: uma instância de outra classe

Especifica a classe para qual as instâncias pertencem

A classe vinho é o tipo de valor para a propriedade “produtores” da classe vinícola

Page 55: Engenharia de Ontologia  para Web Semântica

Domínio e Range da propriedade

Domínio de uma propriedade – uma classe (ou classes) que tem a propriedade Mais precisamente: instâncias de classe (ou

classes) da qual uma propriedade pode ter

Range de uma propriedade – uma classe (ou classes) para qual valores podem pertencer a uma propriedade

Page 56: Engenharia de Ontologia  para Web Semântica

Restrições e heranças de Classe

Uma subclasse herda todos as propriedades da superclasse

Uma subclasse pode sobrescrever as restrições para “aproximar” a lista de valores permitidos Tornar o range da cardinalidade menor Substituir uma classe no range com uma subclasse

Vinho

VinhoFrancês

Vinícola

VinícolaFrancesa

is-a is-a

produtor

produtor

Page 57: Engenharia de Ontologia  para Web Semântica

Criar Instâncias

Criar uma instância de uma classe A classe torna-se um tipo direto de instância Qualquer superclasse do tipo direto é um tipo de

instância Atribuir valores da propriedade para a instância

Valores das propriedades devem obedecer as restrições da mesma

Ferramentas de aquisição de conhecimento as vezes fazem isto

considerarreuso

determinarescopo

criarinstâncias

enumerartermos

definirclasses

definirpropriedades

definirrestrições

Page 58: Engenharia de Ontologia  para Web Semântica

Criar uma Instância: Exemplo

Page 59: Engenharia de Ontologia  para Web Semântica

Sumário

O que é uma ontologia? Tipos de ontologia Porquê desenvolver uma ontologia? Passo-a-Passo: Desenvolvendo uma ontologia Aprofundando: Problemas comuns e soluções Ontologias nas linguagens de Web Semântica Pesquisa atual e questões na engenharia da

ontologia

Page 60: Engenharia de Ontologia  para Web Semântica

Aprofundando

Cobertura da primeiro largura

determinarescopo

considerarreuso

enumerartermos

definirclasses

definirpropriedades

definirrestrições

criarinstâncias

determinarescopo

considerarreuso

enumerartermos d

efinir

classes

defin

irp

rop

riedad

es

defin

irrestriçõ

es

criarinstâncias

Cobertura da primeiro largura

Page 61: Engenharia de Ontologia  para Web Semântica

Definir Classes e uma hierarquia de Classe

Coisas para lembrar: Não existe uma única hierarquia de classe

Mas existem alguns guidelines

A questão a ser perguntada:

“Uma instância da subclasse é uma instância

de sua superclasse?”

Page 62: Engenharia de Ontologia  para Web Semântica

Herança múltipla

Uma classe pode ter mais do que uma superclasse

Uma subclasse herda slots e restrições facet de todos os pais

Sistemas diferentes resolvem conflitos diferentemente

Page 63: Engenharia de Ontologia  para Web Semântica

Classes disjuntas

Classes são disjuntas se elas não podem ter instâncias comuns

Classes disjuntas não pode ter qualquer outras subclasses comuns

Vinho tinto, Vinho branco,Vinho rose são disjuntos

Vinho suave e vinho tinto não são disjuntos

Vinho

Vinho tinto

Vinhorose

Vinhobranco

Vinhosuave

Port

Page 64: Engenharia de Ontologia  para Web Semântica

Evitando Classes Cíclicas

O perigo de herança múltipla: ciclos na hierarquia de classe

Classes A, B, e C tem conjuntos equivalentes de instâncias Para muitas definições, A, B, e

C são portanto equivalentes

Page 65: Engenharia de Ontologia  para Web Semântica

Irmãos na hierarquia de Classe

Todos os irmãos na hierarquia de classe deve estar no mesmo nível de generalidade

Compare as seções e subseções em um livro

Page 66: Engenharia de Ontologia  para Web Semântica

O tamanho da família perfeita

Se uma classe tem sómente um filho, pode ser um problema modelar

Se o único tinto Burgundy que nós temos é Côtes d’Or, porque introduzir na subhierarquia?

Compare os botões na lista

Page 67: Engenharia de Ontologia  para Web Semântica

O tamanho da família perfeita (II)

Se uma classe tem mais do que uma dúzia de filhos, subcategorias adicionais pode ser necessários

Contudo, se não existe classificação, a lista longa pode ser mais natural

Page 68: Engenharia de Ontologia  para Web Semântica

Nome de Classe Simples ou Plural

Um “vinho” não é um tipo “vinhos”

Um vinho é uma instância da classe de Vinhos

Nomes de Classe de ser um dos dois tudo singular tudo plural

Class

Instance

instance-of

Page 69: Engenharia de Ontologia  para Web Semântica

Classes e seus Nomes

Classes representam conceitos no domínio, não seus

nomes

O nome da classe pode mudar, mas ainda se referirá ao

mesmo conceito

Nomes sinônimos para o mesmo conceito não são

classes diferentes Muitos sistemas permitem listas de sinônimos como parte da

definição da classe

Page 70: Engenharia de Ontologia  para Web Semântica

Uma hierarquia completa de Vinhos

Page 71: Engenharia de Ontologia  para Web Semântica

De volta as propriedades: Domínio e Range

Quando definindo um domínio ou range para uma propriedade (slot), procure a classe (ou classes) mais geral

Considere a propriedade sabor Domínio: Vinho tinto, vinho branco, vinho rose Domínio: Vinho

Considere a propriedade produtores para uma Vinícola: Range: Vinho tinto, vinho branco, vinho rose Range: Vinho

Page 72: Engenharia de Ontologia  para Web Semântica

Quando definindo um domínio ou range para uma propriedade, ache as classes ou classe mais geral

Considere a propriedade sabor Domínio: Vinho tinto, vinho branco, vinho rose Domínio: Vinho

Considere a propriedade produtor para uma vinícola: Range: Vinho tinto, vinho branco, vinho rose Range: Vinho

propriedadeclasse valores permitidos

DOMÍNIO RANGE

De volta as propriedades: Domínio e Range

Page 73: Engenharia de Ontologia  para Web Semântica

Definindo Domínio e Range Uma classe e uma

superclasse – substitua com a superclasse

Todas as subclasses de uma classe – substitua com a superclasse

Muitas subclasses de uma classe – considere substituir pela superclasse

Page 74: Engenharia de Ontologia  para Web Semântica

Valores Default

Valor default - um valor para a propriedade quando uma instância é criada

O valor default pode ser mudado O valor default é um valor comum para a

propriedade, mas não é um valor requerido Por exemplo, o valor default para corpo do vinho

pode ser FULL

Page 75: Engenharia de Ontologia  para Web Semântica

Limitando o Escopo

Uma ontology não deve conter todas as informações possíveis sobre o domínio Não necessitam especializar ou generalizar

mais do que a aplicação requer Não necessitam incluir todas as propriedades

possíveis da classe Sómente as propriedades mais salientes Sómente as propriedades que a aplicação requer

Page 76: Engenharia de Ontologia  para Web Semântica

Limitando o Escopo (II) Ontologia de vinho, comida, e seus pares

provavelmente não incluem Tamanho da garrafa Côr do rótulo da garrafa Comida e vinho preferido

Uma ontologia de experimentos biológicos conterão Organismos biológicos Experimentos

A classe Experimento é uma subclasse de Organismo Biológico?

Page 77: Engenharia de Ontologia  para Web Semântica

Tópicos

O que é uma Ontologia? Tipos de ontologia Porquê desenvolver uma Ontologia? Passo-a-Passo: Desenvolvendo uma ontologia Aprofundando: Problemas comuns e soluções Ontologias nas linguagens de Web Semântica Pesquisa atual e questões na engenharia da

ontologia

Page 78: Engenharia de Ontologia  para Web Semântica

Ontologias e as linguagens WS

Muitas linguagens de Web Semântica são designadas explicitamente para representar ontologias RDF Schema DAML+OIL SHOE XOL XML Schema

Page 79: Engenharia de Ontologia  para Web Semântica

Linguagens da WS

As linguagens diferem em sua syntaxe

Não é importante aqui – Uma ontologia é uma representação conceitual

terminologia Classe-conceito Instância-objeto Slot-propriedade

expressividade O que nós podemos expressar em muitas linguagens, não se pode

expressar em outras semântica

A mesma declaração pode significar coisas diferentes em linguafens diferentes.

Page 80: Engenharia de Ontologia  para Web Semântica

Tópicos

O que é uma Ontologia? Tipos de ontologia Porquê desenvolver uma Ontologia? Passo-a-Passo: Desenvolvendo uma ontologia Aprofundando: Problemas comuns e soluções Ontologias nas linguagens de Web Semântica Pesquisa atual e questões na engenharia da

ontologia

Page 81: Engenharia de Ontologia  para Web Semântica

Questões de pesquisa na Enginharia da Ontologia

Geração de conteúdo Analise e avaliação Manutenção Linguagens de ontologia Ferramentas de desenvolvimento

Page 82: Engenharia de Ontologia  para Web Semântica

Conteúdo: Ontologias Top-Level

O que significa “top-level” ? Objetos: tangíveis, intangíveis Processos, eventos, atores, papéis Agentes, organizações Espaços, fronteiras, localizações Tempo

Esforço da IEEE Standard Upper Ontology Objetivo: Projetar uma ontologia simples upper-level Processo: Unir ontologias upper-level existentes

Page 83: Engenharia de Ontologia  para Web Semântica

Conteúdo: Aquisição de conhecimento

Aquisição de conhecimento é o gargalo Compartilhar e reusar amenizam o problema Mas é necessários automatizar as técnicas de aquisição

de conhecimento Técnicas lingüística: aquisição de ontologia de textos Machine-learning: gerar ontologias de documentos estruturados

(e.g., documentos XML) Explorar a estrutura WEB: gerar ontologias por sites web

estruturados por crawling Modelos de aquisição de conhecimento: especificar

especialistas somente em parte do conhecimento requerido

Page 84: Engenharia de Ontologia  para Web Semântica

Análises

Analises: consistência semântica Violação de restrições de propriedades Ciclos na hierarquia de classes Termos que são usados mas não definidos Restrições de intervalo que produzem intervalos vazios (min >

max) Analise: estilo

Classes com uma simples subclasse Classes e propriedades sem definições Propriedades sem restrições (tipo do valor, cardinalidade)

Ferramentas para análise automática Chimaera (Stanford KSL) DAML validator

Page 85: Engenharia de Ontologia  para Web Semântica

Onde procurar mais?

Tutoriais Natalya F. Noy and Deborah L. McGuinness (2001) “Ontology

Development 101: A Guide to Creating Your First Ontology” http://protege.stanford.edu/publications/ontology_development/ontology101.html

Farquhar, A. (1997). Ontolingua tutorial. http://ksl-web.stanford.edu/people/axf/tutorial.pdf

Metodologia Gómez-Pérez, A. (1998). Knowledge sharing and reuse.

Handbook of Applied Expert Systems. Liebowitz, editor, CRC Press.

Uschold, M. and Gruninger, M. (1996). Ontologies: Principles, Methods and Applications. Knowledge Engineering Review 11(2)