850 likes | 949 Views
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
E N D
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
Qual vinho eu devo servir com frutos do mar hoje? Vinhos Francesese regiõesvinículas Vinhos da California e regiões vinícolas Uma ONTOLOGIA Comum de Vinho e comida
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
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
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.
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...”
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)
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.”
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.”
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.
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.
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.
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
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
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
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).
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.
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).
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
Porquê desenvolver uma ontologia? • Para compartilhar entendimentocomum 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
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)
Uma ontologia as vezes é só o começo Databases Declara a estrutura Ontologias Bases deconhecimento Proporciona Descrição do domínio Aplicações independentes de domínio Agentes de Software Métodos de resolução de problemas
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
determinarescopo determinarescopo considerarreuso considerarreuso considerarreuso considerarreuso enumerar termos enumerar termos enumerar termos definirclasses definirclasses definirclasses definirclasses definirclasses definirpropriedades definirpropriedades definirpropriedades definirpropriedades definirrestrições definirrestrições definirrestrições criarinstâncias criarinstâncias criarinstâncias criarinstâncias Processo de devenvolvimento de ontologia Neste exemplo: Na realidade – um processo iterativo:
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.) Ontology Engineering versus Object-Oriented Modeling
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
Determinar Domínio e Escopo determinarescopo considerarreuso enumerar termos definirclasses definirpropriedades definirrestrições criarinstâncias • 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 decompetência)? Respostas para estas questões podem mudar durante o ciclo de vida
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?
Considerar Reuso considerarreuso determinarescopo enumerar termos definirclasses definirpropriedades definirrestrições criarinstâncias • 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
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)
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)
Enumerar termos importantes enumerar termos considerarreuso determinarescopo definirclasses definirpropriedades definirrestrições criarinstâncias • 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?
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
Definir Classes e hierarquia de Classes definirclasses considerarreuso enumerar termos determinarescopo definirpropriedades definirrestrições criarinstâncias • 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
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
Maçã é uma subclasse de Frutas Toda maçã é uma fruta Vinho tinto é uma subclasse de Vinho Toda vinho tinto é um vinho Vinho Chianti é uma subclasse de vinho tinto Todo vinho Chianti é um vinho tinto Herança de Classe - Exemplo
Top level Middle level Bottom level Níveis na Hierarquia
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
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!
Definir Propriedades de Classes – Slots definirpropriedades determinarescopo considerarreuso enumerar termos definirclasses definirrestriçõess criarinstâncias • Propriedades (slot) em uma definição de classe descreve atributos de instâncias da classe e relações a outras instâncias Cada vinho terá cor, quantidade de açucar, produtores, etc.
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)
Propriedades para a Classe Vinho (no Protégé-2000)
Propriedade e herança de Classe • Uma subclasse herda todos as propriedades da superclasse Se 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 todas Port é tanto um vinho suave quanto um vinho tinto. Ele herda “conteúdo de açucar: high” do primeiro e “cor: tinto” do último
Restrições de Propriedade definirrestrições determinarescopo considerarreuso enumerar termos criarinstâncias definireclasses definirepropriedades • Restrições de propriedade (facets) descrevem ou limitam o conjunto de valores possíveis para um slot O 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