Universidade Católica de Pelotas Centro Politécnico Laboratório de Modelagem Computacional Introdução à Modelagem Conceitual 4. Ontologias Luiz A M Palazzo Maio, 2011 Roteiro 1. 2. 3. 4. 5. 6. 7. 04 - Ontologias Motivação Conceitos Projeto Prática de Projeto Protégé Construção Feedback 2 Motivação Motivation! 04 - Ontologias 4 Motivação 04 - Ontologias Noção de ontologia Afinal, ontologias pra quê? Áreas de aplicação Exemplos de aplicações Desafios Perspectivas futuras 5 Noção 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 e compartilhada de uma conceitualização. (Gruber, 1993). 04 - Ontologias 6 Afinal, ontologias pra quê? Para compartilhar conhecimento comum sobre a estrutura da informação: Entre pessoas Entre agentes de software 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 04 - Ontologias 7 Algumas Áreas de Aplicação Modelos conceituais, Recuperação de informações, Bibliotecas digitais, Web semântica, Gestão de conhecimento, Processamento da linguagem natural, Inteligência artificial, Sistemas multiagentes... 04 - Ontologias 8 Exemplos de Aplicações (KA)2: Anotação de documentos Web CIA World Factbook OntoShare Semantic Web Research Community SWAP: Ontologias + P2P Gene: Bioinformática CVA-ON: Comunidades Virtuais 04 - Ontologias 9 Bibliotecas Virtuais Ontologias para a indexação de grandes repositórios de recursos digitais. The WWW Virtual Library http://vlib.org/ Wikipedia em português http://pt.wikipedia.org/wiki/ Outras bibliotecas virtuais brasileiras http://www.cg.org.br/gt/gtbv/alfabetica.htm Ontologias... http://www.cs.utexas.edu/users/mfkb/related.html 04 - Ontologias 10 Web Semântica Iniciativa do W3C com o objetivo de adicionar significado à Web. Baseada na tecnologia xml/rdf, fazendo evoluir o html da Web Sintática. WWW Consortium http://www.w3.org Linguagens para a Web Semântica: RDF – http://www.w3.org/RDF/ DAML+OIL - http://www.daml.org/ OWL - http://www.w3.org/TR/owl-features/ 04 - Ontologias 11 DAML+OIL / OWL Web Languages RDF/S XML 1. Estendem o vocabulário XML e RDF/S DAML-ONT 2. São linguagens ricas para a representação de ontologias 3. Orientadas a uma implementação eficiente DAML+OIL OWL Frame Systems OIL Formal Foundations Description Logics FACT, CLASSIC, DLP, … 04 - Ontologias 12 Camadas da Web Semântica Camada de Estrutura Responsável por estruturar os dados e definir seu significado Camada de Esquema Responsável por definir relações entre os dados Uso de ontologias em páginas web torna mais simples a resolução de indefinição ou conflito de terminologia Camada Lógica Responsável por definir mecanismos para fazer inferência sobre os dados Composta por um conjunto de regras de inferência Regras de inferência fornecem aos agentes computacionais o poder de raciocinar sobre as estruturas de dados 04 - Ontologias 13 Camadas da Web Semântica Aplicações Busca Semântica … E-commerce Web Semântica Camada Lógica Camada de Esquema Camada de Estrutura 04 - Ontologias Regras de Inferência Ontologia Ontologia Ontologia Dados 14 A Arquitetura de Tim Berners-Lee 04 - Ontologias 15 Gestão de Conhecimento The KM Research Center http://www.cio.com/research/knowledge/ Portal KMOL http://www.kmol.online.pt/ KM na Wikipédia http://pt.wikipedia.org/wiki/Gestão_do_Conhecimento#Links_Externos Gestão Estratégica do Conhecimento http://www.cni.org.br/links/links-at-gestaoconhecimento.htm Debate: GC... Onde? 04 - Ontologias 16 Desafios da Web Semânttica Carência de profissionais especializados, Evolução de culturas (html xml/rdf), Padrões digitais de mídia instáveis, Crescimento simultâneo e continuado da Web Sintática, Falta de investimento adequado, Falta de visibilidade da área. 04 - Ontologias 17 Perspectivas Base para a computação móvel e ubíqua, Grande disseminação prevista a médio prazo, Novo patamar para as interações homem-computador, Novos produtos e oportunidades de pesquisa, Aplicação em grande escala em educação e gestão de conhecimento. 04 - Ontologias 18 Conceitos Conceitos 04 - Ontologias Noção precisa de Ontologia Elementos de uma Ontologia Exemplos de Ontologia Vocabulários Glossários Thesauri Taxonomias Redes Semânticas Ontologias 20 Noção Precisa de Ontologia Especificação formal explícita de uma conceitualização compartilhada (Gruber, 1993). Conceitualização: modelo das entidades, relações, axiomas e regras de algum domínio. Formal: Processável por máquina Permitindo raciocínio automático Com semântica lógica formal Compartilhada: por uma comunidade, permitindo entendimento. Conceitos de computação relacionados: Base de conhecimento reutilizável Esquema de banco de dados 04 - Ontologias 21 Elementos de uma Ontologia Hierarquia de conceitos Entidades Relações Restrições Regras Dedutivas Instâncias de Conceitos 04 - Ontologias 22 Hierarquia de Conceitos Entidades Cada entidade é definida por um conjunto de pares atributo-valor Correspondem: às classes dos modelos orientado a objetos às entidades do modelo relacional aos termos do modelo lógico Relações sem hierarquia x em hierarquia paralela a hierarquia de entidades correspondem: às associações, agregações e atributos dos modelos OO cujos valores são objetos às relações do modelo relacional aos predicados do modelo lógico 04 - Ontologias 23 Restrições Sobre valores possíveis dos atributos dos conceitos Correspondem: às assinaturas de classes em modelos OO aos axiomas universalmente quantificados em modelos lógicos às restrições de integridade nos esquema de BD 04 - Ontologias 24 Regras Dedutivas Sobre atributos de (conjuntos de) conceitos Permitem inferência automática da existência de instâncias de conceitos a partir da existência de outras instâncias Correspondem: às regras dos sistemas especialistas e da programação em lógica aos métodos dos modelos OO às visões em BD 04 - Ontologias 25 Instâncias de Conceitos Definição de entidades e relações específicas (indivíduos) Correspondem: aos fatos de sistemas especialistas e programação em lógica aos objetos dos modelos OO aos dados das BD 04 - Ontologias 26 Tipos de Ontologias 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: fundamentada na capacidade de raciocinar. Lingüística: fundamentada no vocabulário de alguma(s) língua(s). De Metadados: “especializada” na descrição de recursos on-line sobre qualquer domínio De Tarefas e Métodos: modela procedimentos e comportamentos abstratos no lugar de entidades ou relações 04 - Ontologias 27 Exemplo de Ontologia Especialista: Fragmentos de uma Ontologia Acadêmica em UML 04 - Ontologias 28 Person Pessoas em uma Universidade address : String editor : Publication email : String fax : String firstName : String lastName : String memberOfPC : Event middleInitial : String name : String organizerOrChairOf : Event phone : String photo : String publication : Publication Employee Student studiesAt : University affiliation : Organization headOf : Project headOfGroup : ResearchGroup worksAtProject : Project PhDStudent supervisor : AcademicStaff AcademicStaff supervises : PhDStudent AdministrativeStaff Secretary secretaryOf : ResearchGroup 04 - Ontologias TechnicalStaff Lecturer Researcher cooperatesWith : Researcher memberOf : ResearchGroup researchInterest : ResearchTopic 29 Publication Publicações abstract : String author : Person describeProject : Project onlineVersion : OnlinePublication title : String year : Number Book OnlinePublication containsArticle : ArticleInBook editor : Person publisher : Organization onlineVersionOf : Publication type : String Article ConferencePaper conference : Conference firstPage : Number lastPage : Number proceedingsTitle : String 04 - Ontologias ArticleInBook book : Book firstPage : Number lastPage : Number Journal JournalArticle firstPage : Number journal : Journal lastPage : Number containsArticle : JournalArticle editor : Person number : Number publisher : Organization volume : Number TechnicalReport number : Number organization : Organization series : String SpecialIssue WorkshopPaper firstPage : Number lastPage : Number proceedingsTitle : String workshop : Workshop 30 Exemplo de Ontologia Conceitual Geral: Fragmentos da Ontologia de Senso Comum de Russell e Norvig em UML 04 - Ontologias 31 Anything Qualquer Coisa (Russel e Norvig) AbstractObjects Events Numbers Sets RepresentationalObjects Intervals Categories PhysicalObjects Places Stuff Things Sentences Measurements Moments Animals 04 - Ontologias Processes Agents Humans Solid Liquid Gas 32 Problemas de Modelagem em uma Ontologia Geral 04 - Ontologias Categorias e conjuntos Medidas Objetos compostos Tempo Espaço Mudanças Eventos e processos Objetos físicos Substâncias Objetos mentais e crenças 33 Ontologias Gerais: Categorias Também chamadas de classes, relações, tipos ... Conjuntos de objetos com propriedades comuns Organiza e simplifica a base de conhecimento. Exemplos de simplificação: Gato é um mamífero - instanciação/classificação Todo mamífero bebe leite - herança de atributos Taxonomia: Tipo particular de ontologia: relações hierárquicas entre classe e sub-classes em forma de árvores Propriedades discriminantes ex. biologia sistemática Relações Disjunção Decomposição exaustiva Partição: decomposição exaustiva disjunta 04 - Ontologias 34 Ontologias Gerais também podem representar: Medidas Valores atribuídos às propriedades dos objetos do mundo real: peso, comprimento, altura, etc... Objetos compostos formados por partes que também são objetos: relação “parte-de”. Mudanças com eventos Cálculo de eventos: um fato é verdade em um intervalo de tempo. 04 - Ontologias 35 Medidas Valores atribuídos aos objetos do mundo real: servem para descrever objetos ex. peso, comprimento, altura, diâmetro, ... Medidas quantitativas são fáceis de representar ex. Tamanho(L1) = Polegadas(1,5) = Centímetros (3,81) Medidas qualitativas são mais complicadas ex. beleza de um poema, dificuldade de um exercício O importante é ordenar: "e1, e2 : e1 Exercícios e2 Exercícios Elabora(João,e1) Elabora(Pedro,e2) Dificuldade(e1) < Dificuldade(e2) 04 - Ontologias 36 Objetos Compostos Objetos formados por partes que também são objetos: São caracterizados pela estrutura dos objetos que os compõem Ex. massa de um carro é a soma das massas de suas partes (carroceria, motor, pneu, ...) Para representá-los, emprega-se a relação ParteDe: Ex. ParteDe(motor, Carro), ParteDe(pneu, Carro) 04 - Ontologias 37 Objetos Compostos ParteDe também serve para descrever estrutura de eventos: Script ou Schema. ex. comer no restaurante Quando se está interessado apenas nas características do conjunto: BunchOf ex. peso do saco de maçãs BunchOf(maçãs) define um objeto composto formado pelas maçãs do saco. 04 - Ontologias 38 Representando Mudanças com Eventos Cálculo de situações: adequado quando temos um único agente realizando ações discretas e instantâneas (uma ação por situação). inadequado quando: existem vários agentes no mundo. o mundo pode mudar espontaneamente. mudanças ocorrem continuamente. Cálculo de eventos: versão contínua do calculo de situações No cálculo de situações, um fato é verdade em uma situação No cálculo de eventos, uma coisa é verdade num intervalo de tempo ex. SubEvento(BatalhaDaNormandia, SegundaGuerraMundial) SubEvento(SegundaGuerraMundial, SéculoXX) 04 - Ontologias 39 Exemplo de Ontologia Lingüística Geral: WordNet 04 - Ontologias 40 WordNet Princeton WordNet: • redes semânticas de 155.327 significados • de 207.016 palavras (145.104 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 15 anos de desenvolvimento manual por um time de psico linguistas Euro WordNet: http://www.hum.uva.nl/~ewn/ • Resultado de um grande projeto da comunidade européia • Versão multilíngua adicionando e interligando WordNets do Espanhol, Francês, Italiano, Alemão, Holandês, Tcheco e Estoniano ao do Inglês 04 - Ontologias 41 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) Chatterbots (Geração e interpretação de texto) 04 - Ontologias 42 Construindo Ontologias Vocabulários Glossários Thesauri Taxonomias Redes Semânticas Ontologias 04 - Ontologias 43 Vocabulários • 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 04 - Ontologias 44 Glossários • Listas alfabéticas de termos, limitados a uma área de conhecimento especial, acompanhados das respectivas definições. • http://www.google.com (define:glossary). 04 - Ontologias 45 Thesauri • 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). 04 - Ontologias 46 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 website. • Frequentemente baseada em um tesauro, mas pode apresentar hierarquias mais superficiais, ou ausências de alguma estrutura. 04 - Ontologias 47 Redes Semânticas 04 - Ontologias • 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. • http://www.google.com/ (define:”semantic network”). 48 Ontologias 04 - Ontologias • É a especificação 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. • http://www.google.com/ (define:ontology). 49 Projeto Roteiro • • • • • • • • • 04 - Ontologias Engenharia de Ontologias Projeto de Ontologias Domínio e Escopo Reutilização Termos Classes Propriedades Restrições Instâncias 51 Engenharia de Ontologias Definir os termos do domínio e o relacionamento entre eles: 04 - Ontologias 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 52 Projeto de Ontologias • Determinar o domínio e o escopo, • Considerar reutilização, • Enumerar Termos, • Definir Classes, • Definir Propriedades, • Definir Restrições, • Criar Instâncias. 04 - Ontologias 53 A ontologia é só o começo: Declarar estrutura Ontologias Bases de dados Bases de Conhecimento Descrição do domínio Agentes de Software 04 - Ontologias Solução de Problemas Aplicações independentes 54 Dimensões de Ontologias 04 - Ontologias 55 Engenharia de Ontologias x Modelagem Orientada a Objetos Uma Ontologia: Uma Classe da OO: Reflete a estrutura do mundo. • Reflete a estrutura dos dados e código. Apresenta-se como uma estrutur ação de conceitos. • É usualmente sobre comportamento (métodos). A representação física não é uma questão. • Descreve a representação física dos dados: (long int, char, etc.). 04 - Ontologias 56 O Triângulo do Significado 04 - Ontologias 57 O Processo de Desenvolvimento de Ontologias Em teoria: determine scope consider reuse enumerate terms define classes define properties define constraints create instances define classes enumerate terms define classes create instances define classes create instances • Na realidade, um processo interativo: determine scope consider reuse define properties define classes consider reuse define properties 04 - Ontologias enumerate terms define properties define constraints consider reuse define constraints create instances 58 Passo1: Determinar o Domínio e o Escopo determine scope consider reuse enumerate terms define classes define properties define constraints create instances 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. 04 - Ontologias 59 Passo 2: Considerar a Reutilização consider reuse determine scope enumerate terms define classes define properties define constraints create instances • 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. 04 - Ontologias 60 O que reutilizar (I): • 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/ 04 - Ontologias 61 O que reutilizar (II): • 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 04 - Ontologias 62 Passo 3: Enumerar os Termos Importantes determine scope consider reuse enumerate terms define classes define properties define constraints create instances • Quais os termos sobre os quais vamos falar? • Quais as propriedades desses termos? • O que queremos dizer sobre esses termos? 04 - Ontologias 63 Passo 4: Definir Classes e Hierarquias de Classes determine scope consider reuse 04 - Ontologias enumerate terms define classes define properties define constraints create instances • 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. 64 Herança entre Classes As classes normalmente constituem uma hierarquia t axonômica. Uma hierarquia de classes é uma hierarquia É_UM. Uma instância de uma subclasse é uma instância de u ma superclasse. Se a classe for pensada como um conjunto de elemen tos, uma subclasse é um subconjunto. 04 - Ontologias 65 Exemplos de Herança entre Classes 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. 04 - Ontologias 66 Níveis na Hierarquia de Classes Nível Superior Nível Intermediário Nível Inferior 04 - Ontologias 67 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. 04 - Ontologias 68 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. 04 - Ontologias 69 Passo 5: Definir as Propriedades das Classes – Slots determine scope consider reuse enumerate terms define classes define properties define constraints create instances 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. 04 - Ontologias 70 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: 04 - Ontologias Propriedades simples (atributos): contém valores primitivos (strings, números, ...). Propriedades complexas: contém (ou apontam para) outros objetos. 71 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. 04 - Ontologias 72 Passo 6: Definir Restrições determine scope consider reuse enumerate terms define classes define properties define constraints create instances 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 04 - Ontologias 73 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. 04 - Ontologias 74 Cardinalidade do Slot Cardinalidade 04 - Ontologias 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 mono valorado) Cardinalidade máxima maior do que 1 significa que o slot pode ter mais do que um valor (slot multivalorado) 75 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 04 - Ontologias 76 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. 04 - Ontologias 77 Passo 7: Criação de Instâncias determine scope consider reuse enumerate terms define classes define properties define constraints create instances 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: 04 - Ontologias Devem estar de acordo com as restrições nas facetas Ferramentas de aquisição de conhecimento podem ser empregadas para esta verificação. 78 Prática de Projeto Projetar uma ontologia 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 04 - Ontologias 80 Organizar equipes 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 04 - Ontologias 81 Definir Domínio e Escopo Domínio e Escopo? Algumas Sugestões: Veículos Refeições Vinhos Música Filmes Casa Esportes 04 - Ontologias 82 Tentar Reutilização 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/ 04 - Ontologias 83 Seleção dos Termos 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 04 - Ontologias 84 Definição das Classes 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. 04 - Ontologias 85 Definição das Propriedades 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. A técnica de overriding é empregada para alterar alguma propriedade na subclasse. 04 - Ontologias 86 Definição das Restrições Cada propriedade é modelada por um conjunto de restrições que definem os valores que pode m 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. 04 - Ontologias 87 Definição das Instâncias 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). 04 - Ontologias 88 Produto Final do Projeto 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. 04 - Ontologias 89 Protégé 04 - Ontologias 90 Roteiro O que é Protégé? Download e Instalação Getting Started Criando um Projeto Salvando e nomeando um projeto Criando classes Criando slots Criando instâncias Criando formulários Criando e salvando consultas 04 - Ontologias 91 O que é Protégé? 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. 04 - Ontologias 92 Download e Instalação 04 - Ontologias 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 cerca de 100MB. É um software ainda algo “pesado” e emprega diversos plugins para obter funcionalidade. 93 Getting Started 04 - Ontologias 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. 94 Criando o Projeto Selecione “Create New Project” da Janela “Welcome” ou clique no botão “New Project” se esta já estiver fechada. Abre-se a janela para a seleção do tipo de arquivo. Escolha “Protégé Files (pont e pins)” e clique em “Finish”. Aparecem os painéis “Class Browser” à esquerda e “Class Editor” à direita. No box “Class Hierarchy” aparecem THING e SYSTEM_CLASS 04 - Ontologias 95 Salvando e nomeando o Projeto Selecione o botão “Save Project”. Use o navegador para selecionar uma pasta e dar um nome ao Projeto (pprj). Os arquivos de classes (pont) e de instâncias (pins) são nomeados automaticamente. Tecle OK. O projeto foi salvo. Confira o nome na barra da janela. Voltam o browser e o editor. 04 - Ontologias 96 Criando Classes Na hierarquia de classes selecione SYSTEM_CLASS. Clique o botão “Create Class”. Uma nova classe é criada, como classe do sistema, e automaticamente nomeada. Passe para o painel “Class Editor”. Modifique ou acrescente a informação que quiser. Aproveite para criar os “Template Slots” Use o mesmo método para criar outras classes e subclasses. 04 - Ontologias 97 Criando Slots Clique na aba “Slots”. Como anteriormente, há um painel “Slot Browser” e outro “Slot Editor”. Na hierarquia de slots escolha o tipo de slot apropriado (p.ex: ANNOTATED_INSTANCE). Passe para a janela “Slot Editor”. Faça as modificações e as entradas desejadas. Use o mesmo método para criar slots de cada classe. 04 - Ontologias 98 Criando Instâncias Clique na aba “Instances”. Aparecem os painéis “Class Browser”, “Instance Browser” e “Instance Editor”. Escolha a classe na hierarquia de classes. Somente classes concretas podem ter instâncias. Clique em “Create Instance”. Edite a instância para refletir a informação desejada. Repetir para as demais instâncias. 04 - Ontologias 99 Criando Formulários Na aba “Forms” é possível construir formulários para a entrada de instâncias on-line. Selecione a classe e o slot desejados e use o editor para configurar e posicionar a correspondente região do formulário. 04 - Ontologias 100 Criando e Salvando Consultas Use a aba “Queries” para formular e salvar consultas à ontologia. Após a formulação e teste, a consulta pode ser salva em uma biblioteca de consultas através do botão “Add to Query Library”. 04 - Ontologias 101 Ontologias importadas pelo Protégé 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. 04 - Ontologias 102 Plugins do Protégé 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, xmls, daml+oil, visualização gráfica e muitos outros. O Protégé tem suporte nativo para .rdfs e .owl 04 - Ontologias 103 Construção 04 - Ontologias 104 Implementação Use esta apresentação, os links, a documentação disponível, o projeto de ontologia e o Protégé para implementar sua primeira ontologia. 04 - Ontologias 105 Feedback 04 - Ontologias 106 Feedback Nesta etapa os estudantes apresentam seus trabalhos para os colegas e fazem um breve relato do aprendizado, dificuldades, idéias e possíveis projetos futuros. 04 - Ontologias 107 04 - Ontologias 108