aula 10 - projeto de ontologias

64
Especificação e Processamento de Ontologias para a Semantic Web Giovani Rubert Librelotto, PhD UFSM – Universidade Federal de Santa Maria [email protected] SBSI 2009. Brasília, DF. 22 de Maio de 2009. 1

Upload: konrad-cristiano

Post on 12-Jul-2016

26 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Aula 10 - Projeto de Ontologias

Especificação e Processamento de Ontologias para a Semantic Web

Giovani Rubert Librelotto, PhD UFSM – Universidade Federal de Santa Maria

[email protected]

SBSI 2009. Brasília, DF. 22 de Maio de 2009.

1

Page 2: Aula 10 - Projeto de Ontologias

Sumário Geral

2

}  Primeira parte: }  Semantic Web }  RDF }  OWL }  Topic Maps

}  Segunda parte: }  Projeto e Construção de Ontologias }  Conclusão

Page 3: Aula 10 - Projeto de Ontologias

Parte 9 – Projeto e Construção de Ontologias

Page 4: Aula 10 - Projeto de Ontologias

Construindo Ontologias

4

}  Vocabulários

}  Dicionários

}  Thesauri

}  Taxonomias

}  Redes Semânticas

}  Ontologias

Page 5: Aula 10 - Projeto de Ontologias

Vocabulários

5

•  São conjuntos de termos que descrevem as entidades do e as relações entre elas.

•  Há vocabulários estabelecidos para diferentes classes de domínios:

–  Dublin Core: http://dublincore.org/

–  Vocabulários e ontologias: http://www-usr.inf.ufsm.br/~rrocha/proj/cva-on/metadados.html

Page 6: Aula 10 - Projeto de Ontologias

Dicionários

6

•  Uma lista alfabética de termos, limitados a uma área de conhecimento especial, acompanhados das respectivas definições.

Page 7: Aula 10 - Projeto de Ontologias

Thesauri

7

•  Uma compilação de termos, com os respectivos sinônimos e/ou antônimos e termos relacionados empregada na indexação de bases de dados.

•  Forma um vocabulário controlado para descrever os registros na base de dados.

Page 8: Aula 10 - Projeto de Ontologias

Taxonomias

8

•  Teoria e prática de descrever, nomear e classificar plantas e animais.

•  Vocabulário controlado, usado principalmente para a criação de estruturas de navegação para um website.

•  Freqüentemente baseada em um tesauro, mas pode apresentar hierarquias mais superficiais, ou ausências de alguma estrutura.

Page 9: Aula 10 - Projeto de Ontologias

Redes Semânticas

9

•  Um grafo direcionado e rotulado, com nodos representando objetos físicos ou conceituais e arcos representando relações entre os objetos.

•  Permite o uso de regras genéricas, herança e programação orientada a objetos.

Page 10: Aula 10 - Projeto de Ontologias

Ontologias

10

•  É a especificação compartilhada de uma conceituação de um domínio do conhecimento.

•  É um vocabulário controlado que descreve os objetos do domínio e as relações entre eles.

•  Possui uma gramática para usar os termos do vocabulário na expressão de algo significativo sobre o domínio de interesse.

•  O vocabulário é empregado na construção de consultas e declarações.

•  Ontologias podem incluir glossários, taxonomias e tesauros, mas normalmente apresentam maior expressividade e capacidade de inferência.

Page 11: Aula 10 - Projeto de Ontologias

Projeto

Projeto e Construção de Ontologias

Page 12: Aula 10 - Projeto de Ontologias

Roteiro

12

•  Engenharia de Ontologias •  Projeto de Ontologias •  Domínio e Escopo •  Reutilização •  Termos •  Classes •  Propriedades •  Restrições •  Instâncias

Page 13: Aula 10 - Projeto de Ontologias

Engenharia de Ontologias

13

}  Definir os termos do domínio e o relacionamento entre eles: }  Definir os conceitos do domínio (classes)

}  Organizar os conceitos em uma hierarquia (sub-classes e superclasses).

}  Definir os atributos e propriedades (slots) que as classes podem apresentar e as restrições sobre seus valores.

}  Definir indivíduos e os valores de seus slots

Page 14: Aula 10 - Projeto de Ontologias

Projeto de Ontologias

14

•  Determinar o domínio e o escopo,

•  Considerar reutilização,

•  Enumerar Termos,

•  Definir Classes,

•  Definir Propriedades,

•  Definir Restrições,

•  Criar Instâncias.

Page 15: Aula 10 - Projeto de Ontologias

A ontologia é só o começo:

15

Ontologias

Agentes de Software

Solução de Problemas

Aplicações independentes

Bases de dados

Declarar estrutura

Bases de Conhecimento

Descrição do domínio

Page 16: Aula 10 - Projeto de Ontologias

Dimensões de Ontologias

16

Page 17: Aula 10 - Projeto de Ontologias

Processo de desenvolvimento de Ontologias

17

}  Em teoria:

}  Na realidade, um processo interativo:

determine scope

consider reuse

enumerate terms

define classes

define properties

define constraints

create instances

determine scope

consider reuse

enumerate terms

define classes

consider reuse

enumerate terms

define classes

define properties

create instances

define classes

define properties

define constraints

create instances

define classes

consider reuse

define properties

define constraints

create instances

Page 18: Aula 10 - Projeto de Ontologias

Engenharia de Ontologias x Modelagem Orientada a Objetos

18

}  Uma Ontologia:

•  Reflete a estrutura do mundo.

•  Apresenta-se frequentemente como uma estruturação de conceitos.

•  A representação física não é uma questão.

q Uma classe da OO:

•  Reflete a estrutura dos dados e código.

•  É usualmente sobre comportamento (métodos).

•  Descreve a representação física dos dados: (long int, char, etc.).

Page 19: Aula 10 - Projeto de Ontologias

O Triângulo do Significado

19

Page 20: Aula 10 - Projeto de Ontologias

Passo1: Determinar o Domínio e o Escopo

20

}  Qual o domínio a ser coberto pela ontologia? }  Para quê será usada esta ontologia? }  Para que tipo de questões a informação na ontologia deve

oferecer respostas? }  Respostas a estas questões podem mudar ao longo do ciclo

de vida da ontologia? Caso afirmativo, como ela será atualizada?

determine scope

consider reuse

enumerate terms

define classes

define properties

define constraints

create instances

Page 21: Aula 10 - Projeto de Ontologias

Passo 2: Considerar a Reutilização

21

•  Por que reutilizar outras ontologias?

–  Para poupar esforços.

–  Para interagir com as ferramentas que usam outras ontologias.

–  Para empregar ontologias que foram validadas através do uso em outras aplicações.

determine scope

consider reuse

enumerate terms

define classes

define properties

define constraints

create instances

Page 22: Aula 10 - Projeto de Ontologias

O que reutilizar (I):

22

•  Bibliotecas de Ontologias –  Protégé Ontology Library

http://protege.stanford.edu/download/ontologies.html

–  DAML ontology library http://www.daml.org/ontologies/

–  Ontolingua Ontology Library http://www.ksl.stanford.edu/software/ontolingua/

•  Ontologias de Senso Comum –  IEEE Standard Upper Ontology http://suo.ieee.org/

–  Cyc http://www.cyc.com/

Page 23: Aula 10 - Projeto de Ontologias

O que reutilizar (II):

23

•  Ontologias Gerais –  DMOZ http://www.dmoz.org

–  WordNet http://www.cogsci.princeton.edu/~wn/

•  Ontologias de Domínio –  UMLS Semantic Net

–  GO (Gene Ontology) http://www.geneontology.org/

–  GLIF

–  HL7

Page 24: Aula 10 - Projeto de Ontologias

Passo 3: Enumerar os Termos Importantes

24

•  Quais os termos sobre os quais vamos falar?

•  Quais as propriedades desses termos?

•  O que queremos dizer sobre esses termos?

consider reuse

determine scope

enumerate terms

define classes

define properties

define constraints

create instances

Page 25: Aula 10 - Projeto de Ontologias

Passo 4: Definir Classes e Hierarquias de Classes

25

•  Uma classe é um conceito do domínio.

•  Representa uma coleção de elementos com propriedades similares.

•  Classes podem ser estruturadas em hierarquias, incluindo os conceitos de superclasses e subclasses.

•  Os objetos do domínio são instâncias de classes.

consider reuse

determine scope

define classes

define properties

define constraints

create instances

enumerate terms

Page 26: Aula 10 - Projeto de Ontologias

Herança entre Classes

26

}  As classes normalmente constituem uma hierarquia taxonômica.

}  Uma hierarquia de classes é uma hierarquia É_UM.

}  Uma instância de uma subclasse é uma instância de uma superclasse.

}  Se a classe for pensada como um conjunto de elementos, uma subclasse é um subconjunto.

Page 27: Aula 10 - Projeto de Ontologias

Exemplos de Herança entre Classes

27

}  Maçã é uma subclasse de Fruta: }  Toda maçã é uma fruta.

}  Vinho Tinto é uma subclasse de Vinho: }  Todo vinho tinto é um vinho.

}  Cabernet Sauvignon é uma subclasse de Vinho Tinto: }  Todo Cabernet Sauvignon é um vinho tinto.

Page 28: Aula 10 - Projeto de Ontologias

Níveis na Hierarquia de Classes

28

Nível Intermediário

Nível Superior

Nível Inferior

Page 29: Aula 10 - Projeto de Ontologias

Formas de Desenvolvimento

29

}  Top-down }  define os conceitos mais gerais e depois os especializa.

}  Bottom-up }  define os conceitos mais específicos e então os organiza em classes

mais gerais.

}  Middle-out }  define os conceitos mais importantes primeiro e depois os generaliza

ou especializa, conforme o caso.

Page 30: Aula 10 - Projeto de Ontologias

Documentação

30

}  Classes (e slots) usualmente possuem documentação: }  Descrevendo a classe em linguagem natural }  Listando hipóteses do domínio relevantes para a definição da classe }  Listando sinônimos

}  Documentar classes e seus slots é tão importante quanto documentar o código de programas.

Page 31: Aula 10 - Projeto de Ontologias

Passo 5: Definir as Propriedades das Classes – Slots

31

}  Os slots, na definição de uma classe descrevem atributos de instâncias da classe e sua relação com outras instâncias }  Cada vinho possui uma cor, quantidade de açucar, produtor,

distribuidor, ano de safra, etc.

consider reuse

determine scope

define constraints

create instances

enumerate terms

define classes

define properties

Page 32: Aula 10 - Projeto de Ontologias

Propriedades (Slots)

32

}  Tipos de Propriedades: }  Propriedades intrínsecas: sabor e cor de um vinho. }  Propriedades extrínsecas: nome e preço de um vinho. }  Partes: ingredientes em um prato. }  Relações com outros objetos: produtor do vinho (adega).

}  Propriedades Simples e Complexas: }  Propriedades simples (atributos): contém valores primitivos (strings,

números, ...). }  Propriedades complexas: contém (ou apontam para) outros objetos.

Page 33: Aula 10 - Projeto de Ontologias

Slots e Herança de Classes

33

}  Uma subclasse herda todos os slots da superclasse. }  Se um vinho tem um nome e um sabor, um vinho tinto também tem

um nome e um sabor.

}  Se uma classe tem múltiplas superclasses ela herda os slots de todas elas. }  Vinho do porto é tanto um vinho de sobremesa quanto um vinho tinto. }  Ele herda “conteúdo de açucar: alto” da primeira superclasse e

“cor:vermelha” da segunda.

Page 34: Aula 10 - Projeto de Ontologias

Passo 6: Definir Restrições

34

}  Restrições sobre Propriedades (facetas) descrevem ou limitam o conjunto de valores possíveis para um slot. }  O nome de um vinho é um string }  O produtor do vinho é uma instância de adega }  A adega possui exatamente uma localização

consider reuse

determine scope

create instances

enumerate terms

define classes

define constraints

define properties

Page 35: Aula 10 - Projeto de Ontologias

Facetas Comuns

35

}  Cardinalidade do Slot }  o número de valores que um slot possui.

}  Tipo de Valor do Slot }  o tipo de valor que o slot pode apresentar.

}  Valores Mínimo e Máximo }  um intervalo de valores para um slot numérico.

}  Valor Default }  o valor que um slot apresenta, a menos que explicitamente

especificado de outra forma.

Page 36: Aula 10 - Projeto de Ontologias

Cardinalidade do Slot

36

}  Cardinalidade }  Cardinalidade N significa que o slot deve ter N valores.

}  Cardinalidade Mínima }  Cardinalidade mínima 1 significa que o slot deve apresentar pelo

menos um valor (requerido) }  Cardinalidade mínima 0 significa que o valor do slot é opcional.

}  Cardinalidade Máxima }  Cardinalidade máxima 1 significa que o slot pode ter no máximo um

valor (slot monovalorado) }  Cardinalidade máxima maior do que 1 significa que o slot pode ter

mais do que um valor (slot multivalorado)

Page 37: Aula 10 - Projeto de Ontologias

Tipos de Valores

37

}  String }  um string de caracteres (“Château Lafite”)

}  Número }  inteiro ou em ponto flutuante (15, 4.5)

}  Booleano }  um valor lógico verdadeiro/falso

}  Tipo enumerado }  uma lista de valores permitidos (alto, médio, baixo)

}  Tipo complexo }  uma instância de uma outra classe. }  especificar a classe a que a instância pertence

Page 38: Aula 10 - Projeto de Ontologias

Facetas e Herança entre Classes

38

}  Uma subclasse herda todos os slots da superclasse.

}  Uma subclasse pode reescrever as facetas para restringir a lista de valores permitidos. }  Diminuir o escopo da cardinalidade }  Substituir uma classe em um determinado escopo por uma subclasse.

Page 39: Aula 10 - Projeto de Ontologias

Passo 7: Criação de Instâncias

39

}  Criar uma instância de uma classe: }  A classe se torna um tipo direto da instância. }  Qualquer superclasse do tipo direto é um tipo da instância.

}  Atribuir os valores dos slots para a instância: }  Devem estar de acordo com as restrições nas facetas }  Ferramentas de aquisição de conhecimento podem ser empregadas

para esta verificação.

consider reuse

determine scope

create instances

enumerate terms

define classes

define properties

define constraints

Page 40: Aula 10 - Projeto de Ontologias

4 – Prática de Projeto

Page 41: Aula 10 - Projeto de Ontologias

Projetar uma ontologia

41

}  Organização das Equipes }  Definir Domínio e Escopo }  Tentar Reutilização }  Seleção dos Termos }  Definição das Classes }  Definição das Propriedades }  Definição das Restrições }  Definição das Instâncias

Page 42: Aula 10 - Projeto de Ontologias

Organizar equipes

42

}  O desenvolvimento de ontologias é uma atividade que idealmente deve ser executada em equipes.

}  Perfil das equipes neste curso: 2 a 4 participantes cobrindo as seguintes habilidades: }  Uso de computador e Internet }  Perspectiva das Ciências Humanas: Educação, Filosofia, Sociologia, ... }  Liderança, organização e iniciativa

Page 43: Aula 10 - Projeto de Ontologias

Definir Domínio e Escopo

43

}  Domínio e Escopo? }  Algumas Sugestões:

}  Veículos }  Refeições }  Vinhos }  Música }  Filmes }  Casa }  Esportes

Page 44: Aula 10 - Projeto de Ontologias

Tentar Reutilização

44

}  Bibliotecas de Ontologias }  Protégé Ontology Library http://protege.stanford.edu/ontologies.html }  DAML ontology library http://www.daml.org/ontologies/ }  Ontolingua Ontology Library

http://www.ksl.stanford.edu/software/ontolingua/

}  Ontologias de Senso Comum }  IEEE Standard Upper Ontology http://suo.ieee.org/ }  Cyc http://www.cyc.com/

Page 45: Aula 10 - Projeto de Ontologias

Seleção dos Termos

45

}  Usar um Vocabulário Controlado:

}  O vocabulário vai nomear os conceitos, identificar suas propriedades e as relações desejadas.

}  Resource Library http://sky.fit.qut.edu.au/~middletm/cont_voc.html

}  Outra Biblioteca: http://www.lub.lu.se/metadata/subject-help.html

Page 46: Aula 10 - Projeto de Ontologias

Definição das Classes

46

}  Classes são os conceitos do domínio, nomeados pelo alfabeto controlado.

}  As classes são organizadas em hierarquias, definindo relacionamentos de generalização (subclasses à superclasse) e especialização (superclasse à subclasse).

}  As classes apresentam propriedades (atributos e relacionamentos) em slots.

Page 47: Aula 10 - Projeto de Ontologias

Definição das Propriedades

47

}  Cada classe é caracterizada por um conjunto de atributos e relacionamentos, cada um ocupando um slot.

}  As propriedades de uma classe são herdadas por suas subclasses.

}  Portanto as propriedades somente precisam ser definidas em um dos níveis da hierarquia.

Page 48: Aula 10 - Projeto de Ontologias

Definição das Restrições

48

}  Cada propriedade é modelada por um conjunto de restrições que definem os valores que podem ser assumidos.

}  As restrições (facetas) mais comuns são a cardinalidade do valor da propriedade, seus limites, strings, números, elemento de um conjunto, etc.

Page 49: Aula 10 - Projeto de Ontologias

Definição das Instâncias

49

}  Instâncias são entidades do domínio que atendem às especificações de uma classe.

}  A atividade de instanciação corresponde a criar os registros de uma base de dados a partir do seu esquema (descrição das classes).

Page 50: Aula 10 - Projeto de Ontologias

Produto Final do Projeto

50

}  Descrição semi-formal da ontologia

}  Termos, classes, hierarquias, propriedades, restrições, instâncias.

}  Todos esses os elementos irão permitir o uso de uma ferramenta de software para a especificação da ontologia em alguma linguagem formal.

Page 51: Aula 10 - Projeto de Ontologias

5 – Protégé

51

Page 52: Aula 10 - Projeto de Ontologias

O que é Protégé?

52

}  Protégé é um ambiente extensível e independente de plataforma para a criação e edição de ontologias e bases de conhecimento.

}  Escrito em Java, utiliza uma máquina virtual para a execução em quase qualquer plataforma.

}  Permite representar classes como instâncias e valores de slots, em concordância com o protocolo da Open Knowledge Base Connectivity (OKBC) .

}  Importa e exporta ontologias em diversos formatos, facilitando a reutilização e intercâmbio de ontologias.

Page 53: Aula 10 - Projeto de Ontologias

Download e Instalação

53

}  A última versão do Protégé pode ser obtida em: http://protege.stanford.edu/

}  Um excelente FAQ pode ser encontrado em http://protege.stanford.edu/doc/faq.html

}  Para o download da versão para o Windows, recomenda-se usar o instalador automático oferecido pelo site.

}  A versão para Windows, incluindo a máquina virtual Java tem mais de 50MB. É um software ainda algo “pesado” e emprega diversos plugins para obter funcionalidade.

Page 54: Aula 10 - Projeto de Ontologias

Getting Started

54

}  Após baixar e instalar o Protégé, coloque-o em execução a partir do menu Iniciar> Programas> Protégé>

}  Na janela “Welcome” que vai se abrir, use o botão “Getting Started” para obter rápido auxílio nas funcionalidades do Protégé.

}  Mantenha o “Getting Started” aberto para acompanhar o desenvolvimento da sua ontologia.

}  Use a FAQ e o “User Guide” sempre que necessário.

Page 55: Aula 10 - Projeto de Ontologias

Ontologias importadas pelo Protégé

55

}  Não deixe de consultar: http://protege.stanford.edu/download/ontologies.html.

}  Qualquer uma dessas ontologias pode ser lida e editada com o Protégé.

}  Outras fontes: }  DAML ontology library

http://www.daml.org/ontologies/ }  Ontolingua Ontology Library

http://www.ksl.stanford.edu/software/ontolingua

}  O Protégé tem suporte nativo para .rdfs e .owl }  Outros formatos à através de plugins.

Page 56: Aula 10 - Projeto de Ontologias

Plugins do Protégé

56

}  O Protégé tem muitos plugins: http://protege.stanford.edu/download/plugins.html.

}  Qualquer um desses plugins pode ser adicionado como uma nova funcionalidade ao Protégé.

}  Entre eles recursos de compatibilidade com XML, XML Schema, DAML+OIL, visualização gráfica e muitos outros.

}  O Protégé tem suporte nativo para .rdfs e .owl

Page 57: Aula 10 - Projeto de Ontologias

6 – Construção

57

Page 58: Aula 10 - Projeto de Ontologias

Implementação

58

}  Use esta apresentação, os links, a documentação disponível, o projeto de ontologia e o Protégé para implementar sua primeira ontologia.

Page 59: Aula 10 - Projeto de Ontologias

7 – Feedback

59

Page 60: Aula 10 - Projeto de Ontologias

Feedback

60

}  O relato do aprendizado, dificuldades, idéias e possíveis projetos futuros podem ser abordados através do e-mail: }  [email protected]

Page 61: Aula 10 - Projeto de Ontologias

Parte 6 – Conclusão

61

Page 62: Aula 10 - Projeto de Ontologias

Conclusões }  Grandes esforços na concepção de tecnologias:

}  padrões, }  linguagens, }  ferramentas

}  Ontologia é a base para a Semantic Web

Page 63: Aula 10 - Projeto de Ontologias

Questões em andamento }  Evolução de ontologias }  Uso de múltiplas ontologias }  Ontologias e multimídia

}  Absorção de dimensões culturais: acesso ao conhecimento a níveis local, regional, nacional e internacional

Page 64: Aula 10 - Projeto de Ontologias

Obrigado... Perguntas?

Giovani Rubert Librelotto, PhD UFSM – Universidade Federal de Santa Maria

[email protected]