Ontologias e Representação do Conhecimento Orientada a Objetos

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

Análise e Projeto Orientado a Objetos
Representação de Conhecimento com Formalismos Orientado a Objetos
Engenharia de Software
SISTEMAS ESPECIALISTAS
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Evolução dos SGBD’s (2ª Parte).
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
O Modelo E-R Definição: Características
Aplicação de XML Web Semântica Tópicos Avançados em Bancos de Dados II
Técnicas de Representação de Conhecimento
Metodologias Orientadas a Agentes
Professora: Aline Vasconcelos
Bancos de Dados com Objetos
Introdução a diagrama de classes e UML
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Classes e objetos Modelagem
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Inteligência Artificial
TÉCNICAS DE PROGRAMAÇÃO II
Sistemas Inteligentes Ontologia e Protegé
Arquitetura Orientado a Serviços
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Raciocínio em Lógica de Descrições
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Redes Semânticas e Sistemas Frames
Engenharia do Conhecimento
Engenharia do Conhecimento Ernesto Trajano Jacques Robin CIn-UFPE.
Introdução às Ontologias
Classes, Objetos, Atributos e Métodos JAVA
Sistemas Especialistas
Sistemas Inteligentes
Técnicas de Representação de Conhecimento Diversas.
Orientação a Objetos Parte I
Ontologias Profa. Lillian Alvares
SISTEMAS DISTRIBUIDOS Aula 4
A abordagem de banco de dados para gerenciamento de dados
© Ricardo Pereira e Silva
Representação de Conhecimento Orientada a Objetos
Banco de Dados Aplicado ao Desenvolvimento de Software
Interfaces e classes abstratas. Conceitos de Orientação a Objeto.
CIn- UFPE 1 Construindo Bases de Conhecimento Lógica de Primeira Ordem eficiente para representar conhecimento e para raciocinar porém, nada diz sobre.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Representação de Conhecimento Object-Oriented Knowledge Representation Fabio Moura Jacques Robin CIn-UFPE.
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
Sistemas Especialistas
Requisitos de Software
Generalização e herança Agregação e composição
Desenvolvimento de Software Dirigido a Modelos
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Lógicas Descritivas & CARIN Jacques Robin & Thiago Santos.
Redes Semânticas e Sistemas Frames
Franklin de Souza Ramalho
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
METHONTOLOGY Sandro Rautenberg
Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE.
Tesauro, Taxonomia e Ontologia: uma evolução?
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Análise e Design de Software Site:
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

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