Engenharia de Dados Mini-Curso Introdução à Web Semântica Luiz A M Palazzo André D Jardim...

Post on 17-Apr-2015

105 views 1 download

Transcript of Engenharia de Dados Mini-Curso Introdução à Web Semântica Luiz A M Palazzo André D Jardim...

Engenharia de Dados

Mini-CursoIntrodução à Web Semântica

Luiz A M PalazzoAndré D JardimUniversidade Católica de PelotasCentro Politécnico

Abril de 2009

Projeto e Desenvolvimento de Ontologias

Roteiro

1. Motivação

2. Conceitos

3. Projeto

4. Prática de Projeto

5. Protégé

6. Construção de Ontologias

7. Feedback

Projeto e Desenvolvimento de Ontologias 2

Motivação

Noção Informal de Ontologia

• Ramo da filosofia que lida com a natureza e organização da realidade.

• Ciência do ser (Aristóteles).

• Tenta responder as questões:

• O que é ser ?

• Quais as características comuns a todos os seres?

• Em computação: Uma especificação formal compartilhada de uma conceitualização (Gruber, 1993).

Projeto e Desenvolvimento de Ontologias 4

Mas, ontologias para quê?

• Para compartilhar conhecimento comum sobre a estrutura da informação:

• Entre pessoas

• Entre agentes de software (programas)

• Para permitir a reutilização do conhecimento sobre um domínio:

• Para evitar a “reinvenção da roda”

• Para introduzir padrões que permitam a interoperabilidade entre aplicações

Projeto e Desenvolvimento de Ontologias 5

Onde Aplicar Ontologias?

• Recuperação de informações,

• Bibliotecas digitais,

• Gestão de conhecimento

• Web semânticaWeb semântica,

• Computação pervasivaComputação pervasiva,

• Processamento da linguagem natural,

• Comércio eletrônico,

• Sistemas multiagentes...

Projeto e Desenvolvimento de Ontologias 6

Conceitos

Conceitos

• Noção precisa de Ontologia

• Elementos de uma Ontologia

• Exemplos de Ontologia

• Vocabulários

• Glossários

• Thesauri

• Taxonomias

• Redes Semânticas

• Ontologias

Projeto e Desenvolvimento de Ontologias 8

Noção (mais) Precisa de Ontologia

• Especificação formal explícita formal explícita de uma conceituação conceituação compartilhada (compartilhada (Gruber, 1993).).

• Conceituação: Conceituação: modelo das entidades, relações, axiomas e regras de algum domínio.

• Formal:Formal: • Processável por máquina

• Permitindo raciocínio automático

• Com semântica lógica formal

• Compartilhada:Compartilhada: por uma comunidade, permitindo entendimento.

• ConceitosConceitos de computação relacionados:• Base de conhecimento reutilizável

• Esquema de banco de dados

Projeto e Desenvolvimento de Ontologias 9

Elementos em uma Ontologia

• Hierarquias de conceitos

• Entidades

• Relações

• Atributos

• Restrições

• Regras Dedutivas

• Instâncias de Conceitos

Projeto e Desenvolvimento de Ontologias 10

Tipologia das Ontologias

• Especialista:Especialista: modela um domínio particular restrito

• Geral:

• modela o conhecimento de senso comum compartilhado por todos os seres humanos.

• parte de mais alto nível, reutilizável em vários domínios.

• Conceitual:Conceitual: fundamentada na capacidade de raciocinar.

• Lingüística:Lingüística: fundamentada no vocabulário de alguma(s) língua(s).

• De Meta-dados:De Meta-dados: “especializada” na descrição de recursos on-line sobre qualquer domínio

• De Tarefas e Métodos:De Tarefas e Métodos: modela procedimentos e comportamentos abstratos no lugar de entidades ou relações

Projeto e Desenvolvimento de Ontologias 11

Problemas de Modelagem

• Categorias e conjuntos

• Medidas

• Objetos compostos

• Tempo

• Espaço

• Mudanças

• Eventos e processos

• Objetos físicos

• Substâncias

• Objetos mentais e crenças

Projeto e Desenvolvimento de Ontologias 12

Wordnet

• Princeton WordNet:

• redes semânticas de 155.287 significados • de 206.941 palavras (146.312 substantivos) do inglês• organizados em 4 categorias sintática: substantivos,

verbos, adjetivos e advérbios,• são agrupados em conjuntos de sinônimos• disponível online: http://www.cogsci.princeton.edu/~wn/• resulta de mais de 15 anos de desenvolvimento manual

por time de psico-lingüistas

• EuroWordNet: http://www.hum.uva.nl/~ewn/

• Resultado de um grande projeto da comunidade européia• Versão multi-língua adicionando e inter-ligando WordNets

do Espanhol, Francês, Italiano, Alemão, Holandês, Tcheco e Estoniano ao do Inglês

Projeto e Desenvolvimento de Ontologias 13

Aplicações com o WordNet

• Extração e recuperação de informação

• Classificação de texto

• Ensino de linguagens

• Construção de redes semânticas em outras linguagens (EuroWordnet)

• Robôs de Chat (Geração e interpretação de texto)

Projeto e Desenvolvimento de Ontologias 14

Construindo Ontologias

• Vocabulários

• Glossários

• Thesauri

• Taxonomias

• Redes Semânticas

• Ontologias

Projeto e Desenvolvimento de Ontologias 15

Projeto e Desenvolvimento de Ontologias 16

Vocabulários

• São conjuntos de termos que descrevem as entidades do domínio 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

– FOAF (Friend Of A Friend)

Projeto e Desenvolvimento de Ontologias 17

Glossários

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

• http://www.google.com (define:glossary).

Projeto e Desenvolvimento de Ontologias 18

Thesaurus

• 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.

• http://www.google.com/ (define:thesaurus).

Projeto e Desenvolvimento de Ontologias 19

Taxonomias

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

• http://www.google.com/ (define:taxonomy).

• Vocabulário controlado, usado principalmente para a criação de estruturas de navegação para um sítio na Web.

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

Projeto e Desenvolvimento de Ontologias 20

Redes Semânticas

• Grafos direcionados e rotulados, com nodos representando objetos físicos ou conceituais e arcos representando relações entre os objetos.

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

• http://www.google.com/ (define:”semantic network”).

Projeto e Desenvolvimento de Ontologias 21

Ontologias

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

• Possuem 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.

• http://www.google.com/ (define:ontology).

Projeto

Projeto e Desenvolvimento de Ontologias 23

Roteiro

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

Engenharia de Ontologias

• 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

Projeto e Desenvolvimento de Ontologias 24

Projeto e Desenvolvimento de Ontologias 25

Projeto de Ontologias

Metodologia 101 (Noy & McGuiness):

• Determinar o domínio e o escopo,

• Considerar reutilização,

• Enumerar Termos,

• Definir Classes,

• Definir Propriedades,

• Definir Restrições,

• Criar Instâncias.

A ontologia é só o começo:

Projeto e Desenvolvimento de Ontologias 26

OntologiasOntologias

Agentes de

Software

Agentes de

Software Solução de

Problemas

Solução de

Problemas

Aplicações

Independentes

Aplicações

Independentes

Bases de

Dados

Bases de

DadosDeclarar

estrutura

Bases de

Conhecimento

Bases de

ConhecimentoDescrição do

domínio

Metodologia 101

• Em teoria:

Projeto e Desenvolvimento de Ontologias 27

determinescope

considerreuse

enumerateterms

defineclasses

defineproperties

defineconstraints

createinstances

• Na realidade, um processo interativo:

determinescope

considerreuse

enumerateterms

defineclasses

considerreuse

enumerateterms

defineclasses

defineproperties

createinstances

defineclasses

defineproperties

defineconstraints

createinstances

defineclasses

considerreuse

defineproperties

defineconstraints

createinstances

Passo1: Determinar o Domínio e o Escopo

• 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.

Projeto e Desenvolvimento de Ontologias 28

determinescope

considerreuse

enumerateterms

defineclasses

defineproperties

defineconstraints

createinstances

Projeto e Desenvolvimento de Ontologias 29

Passo 2: Considerar a Reutilização

• Por que reutilizar 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.

determinescope

considerreuse

enumerateterms

defineclasses

defineproperties

defineconstraints

createinstances

Projeto e Desenvolvimento de Ontologias 30

O que reutilizar?

• 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/

• Swoogle: http://swoogle.umbc.edu

Projeto e Desenvolvimento de Ontologias 31

Passo 3: Enumerar os Termos Importantes

• Quais os termos sobre os quais se vai falar?

• Quais as propriedades desses termos?

• O que se quer dizer sobre esses termos?

considerreuse

determinescope

enumerateterms

defineclasses

defineproperties

defineconstraints

createinstances

Projeto e Desenvolvimento de Ontologias 32

Passo 4: Definir Classes e Hierarquias de Classes

• 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.

considerreuse

determinescope

defineclasses

defineproperties

defineconstraints

createinstances

enumerateterms

Herança entre Classes

• 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.

Projeto e Desenvolvimento de Ontologias 33

Exemplos

• Maçã é uma subclasse de Fruta:

• Toda maçã é uma fruta.

• Vinho Tinto é uma subclasse de Vinho:

• Todo vinho tinto é um vinho.

• Chianti é uma subclasse de Vinho Tinto:

• Todo Chianti é um vinho tinto.

Projeto e Desenvolvimento de Ontologias 34

Níveis na Hierarquia de Classes

Projeto e Desenvolvimento de Ontologias 35

Nível Interme-

diário

NívelSuperior

Nível Inferior

Formas de Desenvolvimento

• 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.

Projeto e Desenvolvimento de Ontologias 36

Documentação

• 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.

Projeto e Desenvolvimento de Ontologias 37

Passo 5: Definir as Propriedades das Classes – Slots

• 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.

Projeto e Desenvolvimento de Ontologias 38

considerreuse

determinescope

defineconstraints

createinstances

enumerateterms

defineclasses

defineproperties

Propriedades (Slots)

• 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.

Projeto e Desenvolvimento de Ontologias 39

Slots e Herança de Classes

• 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.

Projeto e Desenvolvimento de Ontologias 40

Passo 6: Definir Restrições

• 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

Projeto e Desenvolvimento de Ontologias 41

considerreuse

determinescope

createinstances

enumerateterms

defineclasses

defineconstraints

defineproperties

Facetas Comuns

• 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.

Projeto e Desenvolvimento de Ontologias 42

Cardinalidade do Slot

• 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)

Projeto e Desenvolvimento de Ontologias 43

Tipos de Valores

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

• Numero: 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

Projeto e Desenvolvimento de Ontologias 44

Facetas e Herança entre Classes

• 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.

Projeto e Desenvolvimento de Ontologias 45

Passo 7: Criação de Instâncias

• 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.

Projeto e Desenvolvimento de Ontologias 46

considerreuse

determinescope

createinstances

enumerateterms

defineclasses

defineproperties

defineconstraints

Revisão: Os Sete Passos

• Determinar o domínio e o escopo,

• Considerar reutilização,

• Enumerar Termos,

• Definir Classes,

• Definir Propriedades,

• Definir Restrições,

• Criar Instâncias.

Projeto e Desenvolvimento de Ontologias 47