aula 10 - projeto de ontologias
TRANSCRIPT
Especificação e Processamento de Ontologias para a Semantic Web
Giovani Rubert Librelotto, PhD UFSM – Universidade Federal de Santa Maria
SBSI 2009. Brasília, DF. 22 de Maio de 2009.
1
Sumário Geral
2
} Primeira parte: } Semantic Web } RDF } OWL } Topic Maps
} Segunda parte: } Projeto e Construção de Ontologias } Conclusão
Parte 9 – Projeto e Construção de Ontologias
Construindo Ontologias
4
} Vocabulários
} Dicionários
} Thesauri
} Taxonomias
} Redes Semânticas
} 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
Dicionários
6
• Uma lista alfabética de termos, limitados a uma área de conhecimento especial, acompanhados das respectivas definições.
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.
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.
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.
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.
Projeto
Projeto e Construção de Ontologias
Roteiro
12
• Engenharia de Ontologias • Projeto de Ontologias • Domínio e Escopo • Reutilização • Termos • Classes • Propriedades • Restrições • Instâncias
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
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.
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
Dimensões de Ontologias
16
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
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.).
O Triângulo do Significado
19
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
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
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/
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
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
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
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.
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.
Níveis na Hierarquia de Classes
28
Nível Intermediário
Nível Superior
Nível Inferior
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.
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.
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
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.
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.
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
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.
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)
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
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.
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
4 – Prática de Projeto
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
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
Definir Domínio e Escopo
43
} Domínio e Escopo? } Algumas Sugestões:
} Veículos } Refeições } Vinhos } Música } Filmes } Casa } Esportes
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/
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
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.
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.
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.
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).
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.
5 – Protégé
51
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.
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.
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.
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.
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
6 – Construção
57
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.
7 – Feedback
59
Feedback
60
} O relato do aprendizado, dificuldades, idéias e possíveis projetos futuros podem ser abordados através do e-mail: } [email protected]
Parte 6 – Conclusão
61
Conclusões } Grandes esforços na concepção de tecnologias:
} padrões, } linguagens, } ferramentas
} Ontologia é a base para a Semantic Web
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
Obrigado... Perguntas?
Giovani Rubert Librelotto, PhD UFSM – Universidade Federal de Santa Maria