Ontologias e Representação do Conhecimento Orientada a Objetos Amanda Pimentel Jacques Robin CIn-UFPE
Roteiro Limitações da lógica como formalismo de representação do conhecimento Formalismos de representação do conhecimento orientado a objetos Redes semânticas UML: redes semânticas utilizadas no nível certo Frames: a volta dos procedimentos Linguagens de programação orientadas a objetos como FRC Lógicas descritivas: a volta vingativa da lógica Ontologias Definição e origens Tipologia das ontologias e suas aplicações Ontologias e reuso de conhecimento Ontologias já estudadas na disciplina Áreas da engenharia ontológica Linguagens de representação de ontologias Web semântica: o renascimento das ontologias e dos FRCOO Arquitetura de software dirigido por modelos: ontologias entram no mainstream Catálogo das ontologias disponíveis
Formalismo de Representação do Conhecimento Orientados a Objetos (FRCOO)
Limitações da lógica como formalismos de representação do conhecimento Complexa Representação - Entendimento Surgimento cognitivo - Sem usar lógica “non-logical” FRC foram desenvolvidos motivados pela crença que lógica (clássica) é inadequada para representação do conhecimento em aplicações IA.
Redes semântica: construtores Uma rede semântica é uma representação na qual existem nós que representam entidades e links (predicados) que representam relacionamentos entre essas entidades; cada link conecta um nó origem até um nó destino; normalmente, os nós e links denotam entidades de domínio específico. Forma mais flexível e intuitiva de representar conhecimento.
Redes semânticas: serviços de inferência Base de conhecimento nós e links da rede. Máquina de inferência busca e casamento de padrões a busca se dá para frente e para trás através dos links. A busca pode ser usada de várias maneiras para se extrair informações como uma ferramenta explicativa; para explorar exaustivamente um tópico; para encontrar o relacionamento entre dois objetos.
Redes semânticas: exemplo
Redes semânticas: limitações Duas limitações principais das redes semânticas: 1. Computacionalmente incompletos para implementar a maioria dos sistemas inteligentes 2. Sem semântica declarativa formal bem-definida (atalho entre nível do conhecimento e nível da implementação sem lógica) Frames são sucessores das redes semânticas visando a superar a 1a limitação Lógicas descritivas são sucessores das redes semânticas visando a superar a 2a limitação Busca em redes semânticas grandes pode ser muito ineficiente. Não há homogeneidade na definição de nós e links. Hereditariedade pode causar dificuldades no tratamento de exceções. Pode haver conflito entre características herdadas. É difícil representar conhecimento procedimental seqüenciamento e tempo não estão explícitos. Menos expressiva que a Lógica de Primeira Ordem não há quantificadores
Redes semânticas no 3o milênio: diagramas de classes e de objetos UML
Vantagens de UML sobre redes semânticas Padrão - rede semântica nunca padronizou nem notação nem ferramenta de edição Links bens definidos - composição, agregação, ... Trabalha a nível do conhecimento Gráfico - bom para modelar
Frames Um frame é identificado por um nome e descreve um objeto complexo através de um conjunto de atributos Um Sistema de Frames é um conjunto de frames organizados hierarquicamente. São uma evolução das Redes Semânticas: nós são substituídos por frames arcos são substituídos por atributos (slots) procedimentos podem ser anexados a um frame
Frames: construtores F - Conjunto de definições do Frame Definição do Frame– Frame: F in KB F E F – Nome do frame E – Expressão do frame S – Nome do slot representa propriedades da situação descrita no frame H – Slots constraints (INTERSECTION, UNION, NOT) F - Conjunto de definições do Frame
Frames - Facetas Descrevem conhecimento ou algum procedimento relativo ao atributo. Propriedades Valor: especifica o único valor possível. Valor default: especifica o valor assumido pelo atributo caso não haja nenhuma informação a esse respeito. Tipo: indica o tipo de dado do valor. Domínio: descreve os valores possíveis para o atributo.
Frames - Gatilhos Definição Procedimentos Demons: São procedimentos anexados aos frames, disparados por consultas ou atualizações. Podem inferir valores para atributos a partir de valores de outros atributos especificados anteriormente em qualquer frame do sistema. Procedimentos Demons: when-requested quando o valor é pedido mas não existe ainda when-read quando valor é lido when-written quando valor é modificado
Frames: exemplo
Limitações dos Frames Conhecimento comportamental não declarativo impede codificação direita por especialista do domínio que não é programador Sem semântica formal Implementação ad-hoc de dedução e adbução, geralmente ineficientes Não existe máquina de inferência indutivas para aprendizagem Não inclui noções de encapsulamento e componentes das linguagens de programação OO modernas
LPOO como FRC: construtores Objetos (estado + comportamento) Classes Instância Subclasse Encapsulamento (ocultamento de implementação e modularidade) Encapsulamento é o processo de empacotamento dos dados de um objeto juntamente com seus métodos. A grande vantagem do encapsulamento é o ocultamento de detalhes de implementação para os demais objetos. Isto significa que a porção interna de um objeto apresenta mais visibilidade do que a porção externa. Encapsulamento fornece duas vantagens para os programadores: ocultamento de implementação e modularidade. A primeira se refere à proteção da implementação interna de um objeto. A segunda significa que um objeto pode ser mantido (modificado, atualizado) de maneira independente dos outros objetos. Um objeto
LPOO como FRC: serviços de inferência Rico em termos de estrutura, pobre em termos de inferência Inferência – Herança (você não programa herança) Ex: Implementar maquina de inferência em Java Trabalhoso, lento, limitado Jeops: um sistema de produção embutido em Java
LPOO como FRC: exemplo public class Course { final static short MAX_ENROLLED = 30; final static short MIN_ENROLLED = 2; private Student[] enrolls; private Lecturer taughtby; public void setEnrolls(Student[] enrolls) { if(enrolls.length >= MIN_ENROLLED && enrolls.length >= MAX_ENROLLED) { this.enrolls = enrolls; } else{ throw new IllegalArgumentException("Enrolls must be between "+ MIN_ENROLLED+" and "+MAX_ENROLLED); } ...
LPOO como FRC: exemplo public class BasCourse extends Course { public BasCourse() { } public void setTaughtby(Lecturer taughtby) { if(taughtby instanceof Professor){ this.setTaughtby(taughtby); } else { throw new IllegalArgumentException("Lecurer must be an Professor to teach an BasCourse");
Lógicas descritivas: princípios Usar lógica para definir formalmente semântica de formalismos de representação de conhecimento OO. Estudar computabilidade e complexidade das linguagens e serviços de inferência antes de implementá-los. Limitar expressividade para garantir que esses serviços sejam computacionalmente tratáveis.
Lógicas descritivas: conceitos chaves Utilizar lógica para dar semântica a hierarquia OO Formalismos lógicos para representação das informações sobre classes de indivíduos e suas descrições. Subconjunto da lógica de primeira ordem, trata de: Relações unárias (conceitos) Ex, Student = {x | Student(x)} Relações binárias (papéis); Ex, SUPERVISED = {(x,y) | SUPERVISED(x,y) } Possui também: Construtores sobre os conceitos (,, outros) Ex, PdhStudent = Student SUPERVISED.AcademicStaff = { x | Student(x) y.SUPERVISED(x,y) AcademicStaff(y) } Indivíduos, e instâncias dos conceitos franklin, jacques, thiago; Student(thiago), PhdStudent(franklin), Researcher(jacques)
Lógicas descritivas: construtores
Lógicas descritivas: bases de conhecimento KB = Tbox + Abox Tbox (Terminological part) - intensional knowledge Descrições Exemplo: Woman = Person Female Abox (Assertional part) - extensional knowledge Instâncias Exemplos: Female Person (Anna) hasChild (Anna, Jacopo)
Lógicas descritivas: serviços de inferência Dada uma base de conhecimento = <Tbox,Abox>, dois conceitos C e D, e um indivíduo a, chamamos: Satisfiability: |= C Verificar se há um modelo I de tal que CI Exemplo: Student Person ? Subsumption: |= C D Verificar se C é subsumed por D. CI DI em todo modelo I de Exemplo: Employee Person Student ? Consistência: |= Verificar se a própria base tem um modelo. Exemplo: Student = Person ? Classificação de instância: |= C(a) Verificar se uma dada asserção é válida. Exemplo: Person(joao) Subsumption C D - Checa se o conceito denotado por D (subsumer) é considerado mais geral o denotado por C (subsumee) Satisfiability Checa se a expressão de um conceito não necessariamente denota o conceito vazio. Caso especial de subsumption, com o subsumer sendo o conceito vazio, significando que o conceito é não satisfeito. Dada uma base de conhecimento = <Tbox,Abox>, dois conceitos C e D, e um indivíduo a, chamamos:
Lógicas descritivas: exemplos Course enrolls.Student 2 enrolls 30 enrolls taughtby.(Professor GradStudent) =1taughtby AdvCourse Course enrolls. GradStudent 20 enrolls BasCourse Course taughtby.Professor GradStudent Student degree.String = 1 degree Undergrad Student GradStudent(João) Taughtby(Jacques,UFPE)
Lógicas descritivas: aplicações práticas Modelagem de Aplicações - entendimento retirando inconsistências Engenharia de Software - Uma das primeiras aplicações : usar DL para um sistema de software Configuração - Incluem aplicações que suportam o design de sistemas complexos criados pela combinação de componentes Medicina - Construção de ontologias de conhecimento médico A critical element in the development of applications based on Description Logics is the usability of the knowledge representation system. Here we focus on the efectiveness of Description Logics as a modeling language. A modeling language should have intuitive semantics and the syntax must help convey the intended meaning. we identify several application domains in Section 1.5.2; these include Software Engineering, Configuration, Medicine, and Digital Libraries and Web-based Information Systems. As already mentioned, there are at least two major alternatives for increasing the usability of Description Logics as a modeling language: (i) providing a syntax that resembles more closely natural language; (ii) implementing interfaces where the user can specify the representation struc- tures through graphical operations.
Lógicas descritivas: limitações DL não trata bem de conceitos quantitativos tais como ordem, quantidade, tempo e taxas. Limitar expressividade para garantir que esses serviços sejam computacionalmente tratáveis. Definição cíclica Ex: Pessoa – filho (pessoa) Infelizmente esses tipo de raciocínio é essencial ara certos aspectos computacionais
Ontologias
O que é uma ontologia ? Definição: especificação (semi-)formal explícita de uma concepção compartilhada Concepção: modelo das entidades, relações, axiomas e regras de algum domínio Formal: processável por máquina 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
Origem e motivação para ontologias Gerenciamento do Conhecimento em Organizações desde 90 Sistemas Especialistas desde 80 Processamento de Linguagem Natural Psicologia Cognitiva desde 60 Lingüística Integração de Dados desde 95 Ontologias Engenharia de Software: requisitos e reuso desde 90 Filosofia desde 350 A.C. Sistemas Multi-agentes desde 95 Recuperação de Informação na Web desde 00
Tipologias das ontologias Especialista: modela um domínio particular restrito Geral: inclue vocabulário relacionado a coisas eventos, tempo, espaço, etc 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: fundamenta no vocabulário de uma(s) língua(s) De meta-dados: “especializada” na descrição de recursos on-line, no entanto sobre qualquer domínio De tarefas e métodos: modela procedimentos e comportamentos abstratos no lugar de entidades ou relações
Elementos de uma ontologia Hierarquia de conceitos: entidades cada entidade definida por conjunto de pares atributo-valor correspondem: as classes dos modelos orientado a objetos as entidades do modelo relacional aos termos do modelo lógico relações sem hierarquia x em hierarquia paralela a hierarquia de entidades associações, agregações e atributos dos modelos OO cujos valores são objetos as relações do modelo relacional aos predicados do modelo lógico
Elementos de uma ontologia Restrições: sobre valores possíveis dos atributos do conceitos correspondem: as assinaturas de classes em modelos OO as axiomas universalmente quantificados em modelos lógicos as restrições de integridade nos esquema de BD Regras dedutivas: permitem inferência automática da existência de instâncias de conceitos a partir da existência de outras instâncias as regras dos sistemas especialistas e programação em lógica aos métodos dos modelos OO as visões em BD
Elementos de uma ontologia Instâncias de conceitos: definição de entidade e relações específicos (indivíduos) correspondem: aos fatos de sistemas especialistas e programação em lógica aos objetos dos modelos OO aos dados dos BD
Ontologias e reuso de conhecimento AP1 G D1 AP2 Domínio 1 G D2 AP1 G D2 AP2 Domínio 2 Aplicação 1 Aplicação 2
Sub-problemas de modelagem de uma ontologia geral Categorias e conjuntos Medidas Objetos compostos Tempo Espaço Mudanças Eventos e processos Objetos físicos Substâncias Objetos mentais e crenças
Engenharia ontológica: 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: através de herança todo mamífero bebe leite Taxonomia: tipo particular de ontologia: relações hierárquicas entre classe e sub-classes em forma de árvores
Engenharia ontológica: categorias Disjunção - não há interseção entre as categorias ex. Disjunção({Animais, Vegetais}) Decomposição exaustiva ex. DecomposiçãoExaustiva({Americano, Canadense, Mexicano}, Norte-Americano) Partição - decomposição exaustiva disjunta ex.. Partição(({macho, fêmea}), animal)
Engenharia ontológica: 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)
Engenharia ontológica: 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, usamos a relação ParteDe e.g., ParteDe(motor, Carro), ParteDe(pneu, Carro) Exemplo: "a Bipede(a) Þ $ l1, l2, b Perna(l1) Ù Perna(l2) Ù Corpo(b) Ù ParteDe(l1,a) Ù ParteDe(l2,a)ÙParteDe(b,a) Ù Ligado(l1,b) Ù Ligado(l2,b) Ù l1 ¹ l2 Ù " l3 Perna(l3) Ù ParteDe(l3,a) Þ (l3 = l1 Ú l3 = l2)
Linguagens de representação de ontologias Lógicas descritivas: LOOM, Classic, FaCT, ... Linguagens de interoperabilidade entre agentes: KIF Programação em Lógica OO: Flora, Lopix, Sirli Linguagens específicas para ontologias antes da iniciativa Web Semântica da W3C: Ontolingua Linguagens de Web semântica: XMLS (esquema para documentos XML) RDFS (essencialmente redes semânticas distribuidas na web) DAML-OIL e OWL (essencialmente lógicas descritivas distribuidas na web) RuleML (essencialmente regras Prolog e regras de produção distribuídas na web) UML
Web semântica Torna pesquisa de ontologia atual Uma das aplicações de ontologia Extensão da Web atual Tentar contornar a falta de precisão dos engenhos de busca Informação estruturada e com semântica bem definida Agentes computacionais capazes de processar e entender os dados
Web semântica Arquitetura Engenho de Busca … E-commerce Web Semântica Regras de Inferência Camada Lógica Ontologia Ontologia Ontologia Camada de Esquema Camada de Estrutura Dados
Web semântica Arquitetura 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 - Ontologia: “Entendimento comum e compartilhado de um domínio” - 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
Arquitetura de software dirigida por modelos Model-driven architecture, an OMG standard http://www.omg.org/
Catálogo de ontologias disponíveis www.daml.org
Problemática geral e questões sobre ontologias Divisão: como delimito as classes e os atributos? quais são as distinções que trazem valor agregado? Escopo: qual conhecimento incluir? qual a fronteira do meu domínio? Granularidade: até que nível de detalhe modelar os domínio? problema da ramificação? Validação: como avalio a qualidade do modelo? como escolho entre várias modelagem alternativas (as vezes propostas por pessoas diferentes)?] como identificar aspectos importantes que estão faltando?
Problemática geral e questões sobre ontologias Muito difícil responder a essas perguntas porque: Almejados reuso e relativa independência de aplicação impedem ser guiado completamente pelos requisitos de uma aplicação restrita Para ontologias gerais de senso comum pior devido a imensidão em largura e profundidade do conhecimento a modelar Metodologias ainda incipientes No entanto, já existe tentativa de padronização: http://suo.ieee.org/
Referências e links The Description Logic Handbook : Theory, Implementation and Applications Franz Baader, Diego Calvanese, Deborah McGuinness, Daniele Nardi, Peter Patel-Schneider Ontological Engeneering: a state of the arte Asunción Goméz Peréz Artificial Intelligence a Modern Approach (2nd Edition), S. Russell & P. Norvig, 2002, Prentice-Hall. Ontologies, the Silver Bullet for Knowledge Management and Electronic Commerce, D. Fensel. 2001, Springer-Verlag. www.daml.org http://www.omg.org/ http://www.cin.ufpe.br/~in1006/2003