1 / 58

Representação de Conhecimento Orientada a Objetos

Representação de Conhecimento Orientada a Objetos. Fabio Moura Jacques Robin CIn-UFPE. Roteiro. Linguagens orientadas a objetos Lembrete: conceitos da orientação a objetos Histórico Motivações para engenharia de software e representação do conhecimento Primeiros formalismos de RCOO

adriel
Download Presentation

Representação de Conhecimento Orientada a Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Representação de ConhecimentoOrientada a Objetos Fabio Moura Jacques Robin CIn-UFPE

  2. Roteiro • Linguagens orientadas a objetos • Lembrete: conceitos da orientação a objetos • Histórico • Motivações para engenharia de software e representação do conhecimento • Primeiros formalismos de RCOO • Redes semânticas • Frames • Comparação com a lógica dos predicados • UML • Diagramas de classes • Diagramas de atividades • Ontologias • Definição, histórico e motivações • Elementos de uma ontologia • Tipologias das ontologias • Problemática geral e questões sobre ontologias • OCL • Motivação e histórico • Expressões OCL • Tipos básicos OCL • Enumerações e coleções • OCL para representação de conhecimento • Transformar diagramas de classes UML em ontologias • Declarar conhecimento comportamental em diagramas de atividades UML

  3. Lembrete: conceitos de linguagens orientadas a objetos • Classes e Objetos • Classe: fábrica + depósito de objetos • Tipos • Objeto = Interface + Implementação (Dados + Procedimentos) • Interface • Especificação do conjunto de operações que o objeto pode realizar • Dados • Representação do estado do objeto • Procedimentos • Implementação de cada operação • Objetos complexos • Identidade de objetos • Um objeto possui existência independente de seus valores • Objetos idênticos X objetos iguais • Encapsulamento • A Interface é a única parte visível do objeto

  4. Lembrete: conceitos de linguagens orientadas a objetos • Herança • Permite uma descrição concisa e precisa do mundo  poderosa ferramenta de modelagem • Permite o compartilhamento de especificações e implementações em uma aplicação • Tipos de herança: substituição, inclusão, restrição e especialização • Substituição • Baseada em comportamento e não em valores • Um tipo t herda de um tipo t’ se podemos realizar mais operações em objetos do tipo t do que em objetos do tipo t’ • Qualquer objeto do tipo t’ pode ser substituído por um objeto do tipo t • Inclusão • Baseada em estrutura e não em operações • Corresponde à noção de classificação • t é subtipo de t’ se todo objeto do tipo té também um objeto do tipo t’ • Ex: square com os métodos get e set(size) e filled-square com os métodos get, set(size) e fill(color)

  5. Lembrete: conceitos de linguagens orientadas a objetos • Herança (cont.) • Restrição • Subcaso de herança por inclusão • Um tipo t é subtipo de t’ se ele consiste de todos os objetos do tipo t’ que satisfazem uma determinada condição • Ex: teenager é uma subclasse de person – não possui nenhum atributo adicional, mas sua idade está restrita entre 13 e 18 • Especialização • Um tipo t é subtipo de t’ se objetos do tipo t são objetos do tipo t’ que contém mais informações específicas • Ex.: objetos do tipo person e employee • Polimorfismo e ligação tardia (late binding) • Herança múltipla

  6. Histórico da orientação a objetos Engenharia de Software Programação Banco de Dados Representação do Conhecimento Sistemas Distribuídos 1965 hoje Simula Redes Semânticas Sketchpad Smalltalk Frames hoje C++ OQL eletivas de IA hoje UML1.0 Lógicas Descritivas SQL’99 Java OCL Lógicas de Frames eletivas de IA MOF última aula C# Linguagens deWeb Semântica UML2.0 hoje 2005

  7. Lembrete: motivações da orientação a objetos para engenharia de software • Maior produtividade, qualidade, legibilidade e manutenibilidade no desenvolvimento de software • Reuso de software e não reescrita • Mais natural • Combina com a maneira como as pessoas pensam • Fácil aprendizado • Notação única • Fácil locomoção entre fases do software • Linguagem unificada de modelagem (UML) • Design X programação • Foco no modelo

  8. Motivação inicial da orientação a objetos para representação do conhecimento • Raciocinar a nível de categorias • Herança como tarefa de raciocínio • Representar conhecimento estrutural de maneira mais concisa e intuitiva do que com lógica • Mas fácil de se adquirir, compreender, manter, etc. • Raciocínio de classificação e herança pode reutilizar provador de teorema da lógica, no entanto de uma maneira transparente para o usuário • Benefícios comuns da orientação a objetos para a engenharia de software e representação do conhecimento

  9. Categorias • A organização de objetos em categoriasé uma parte vital da representação de conhecimento • Uma grande parte do raciocínio tem lugar no nível de categorias • Servem para fazer prognósticos sobre objetos, uma vez que eles são classificados • Ex.: grande tamanho, casca verde e rajada e forma ovóide? • Servem para organizar e simplificar a base de conhecimento por herança • Ex.: todas as instâncias da categoria Alimento são comestíveis, Fruta é uma subclasse de Alimento, Maçãs é uma subclasse de Fruta, então toda maçã é comestível • Formam uma taxonomiaou hierarquia taxonômica

  10. Características das Categorias • Categorias disjuntas • Não tem elementos em comum • Ex.: Macho e Fêmea • Decomposição exaustiva • Um elemento que não é membro de um conjunto, deve ser de outro • Ex.: um animal que não é um macho tem de ser uma fêmea • Partição • Decomposição exaustiva de disjuntos • Contra-exemplo: nacionalidade (decomposição exaustiva de não disjuntos) • Composição física • Um objeto faz parte de outro • Ex.: Romênia faz parte da Europa, um Capítulo faz parte do Livro • Grupo • Conjunto de objetos de uma mesma categoria

  11. Características das Categorias • Medidas • Propriedades dos objetos • Ex.: altura, massa, custo, ... • Material • Categorias que não podem ser divididas em objetos distintos • Ex.: manteiga, leite, ... • Propriedades intrínsecas • São pertinentes à substância do objeto, e não ao objeto como um todo • Ex.: densidade, ponto de ebulição, sabor, cor, ... • Propriedades extrínsecas • Pertinentes ao objeto • Ex.: peso, comprimento, forma, função, ... • Não são retidas depois da subdivisão

  12. Redes Semânticas • Modelagem visual de conhecimento orientado a categorias • Cada categoria e objeto representado por um nó da rede • Cada relacionamento entre categorias representado por um link na rede • Relacionamentos hierárquicos especiais is-a (para herança) e parte-de • Algoritmos eficientes para derivação de propriedades de um objeto, de acordo com sua pertinência a uma categoria • Derivação por herança de valor de • Derivação por consulta sobre caminho de links

  13. Redes Semânticas – Exemplo Asserção lógica n-ária Voar - Fly Rede semântica com quatro objetos e quatro categorias

  14. Redes Semânticas – Limitações • Principais limitações • Computacionalmente incompletos para implementar a maioria dos sistemas inteligentes • 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 • Outras limitações • Busca em redes semânticas grandes pode ser muito ineficiente • Não há homogeneidade na definição de nós e links • Herança pode causar dificuldades no tratamento de exceções • Pode haver conflito entre características herdadas • É difícil representar conhecimento comportamental e procedimental – sequenciamento e tempo não estão definidos • Menos expressiva que a Lógica de Primeira Ordem – não há quantificadores

  15. <<enum>> CertaintyLevel Known Default Sintaxe abstrata das redes semânticasem UML  OOP/OOSE Classes & Objects  OOP/OOSE subclass & instance relationships  OOSE aggregation & composition associations • OOP/OOSE attributes & other associations Node Link * * IS-A PART-OF Attribute Specification Single Value Specification Multiple Value Specification

  16. 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) • Implementa raciocínio monotônico (ex, herança sem sobre-escrita) e não monotônico (ex, herança com sobre-escrita) • procedimentos podem ser anexados a um frame • Descrevem conhecimento ou algum procedimento relativo ao atributo

  17. Frames • Categorias (classes) e instâncias (objetos) representadas por Frames • Um frame é composto de slots • Um slot é composto de facetas • Facetas podem ser: • Especificação de valor (conhecida ou por default) • Restrição sobre valor (tipo, cardinalidade) • Procedimentos (gatilhos a disparar quando slot é acessado, modificado ou faltando para derivar algum fato durante o raciocínio) • Frames organizados em hierarquia com herança múltipla de slots • Semântica da herança é complexa (e na verdade sem definição formal) devida a variedade de facetas e suas interações • Raciocínio implementado por combinação de herança e de disparo de gatilhos • Frames usados tanto para: • Representação do conhecimento • Implementação da máquina de inferência • Implementação da interface de aquisição do conhecimento • Implementação da interface de explicação do raciocínio • Frames sempre extensão de alguma linguagem hóspede de programação de propósito geral (Lisp, C++, Prolog, etc.)

  18. <<enum>> Trigger Missing Read Write <<enum>> CertaintyLevel Known Default Sintaxe abstrata de Frames em UML  OOP/OOSE subclass & instance relationships  OOP/OOSE Classes & Objects • OOP/OOSE Attributes & Associations No corresponding concepts in OOP/OOSE  OOSEConstraints  OOP/OOSE Methods & Activities IS-A * Frame * Slot * Facet Host Language Procedure Value Specification Constraint Procedural Attachment Cardinality Constraint Single Value Specification Min: Int Max: Int Multiple Value Specification Type Constraint Return Value Input Parameter

  19. Frames: exemplo Frame: Course in KB University Slot: enrolls Type: Student Cardinality.Min: 2 Cardinality.Max: 30 Slot: taughtby Type: (UNION GradStudent Professor) Cardinality.Min: 1 Cardinality.Max: 1 Frame: BasCourse in KB University Is-a: Course Slot: taughtby Type: Professor Frame: Professor in KB University Slot: degree Default: PhD. Frame: Student in KB University Frame: AdvCourse in KB University Is-a: Course Slot: enrolls Type: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20 Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor Frame: Undergrad in KB University Is-a: Student

  20. Frames: limitações • 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

  21. MaryFemalePersons SisterOf (Mary, John) x x Persons  [yHasMother(x, y)   FemalePersons] x x Persons  Legs (x, 2) p, s HasSister (p, s)  SisterOf (s, p) Comparação com a lógica dos predicados: exemplos

  22. Fly (Shankar, NewYork, NewDelhi, Yesterday) Comparação com a lógica dos predicados: exemplos

  23. UML como linguagem de representação do conhecimento • Diagramas de classes: • Aperfeiçoamento de redes semânticas • Diagramas de atividades • Representação gráfica de procedimentos • Diagramas de classes + diagramas de atividades: • Representação gráfica de poder expressivo equivalente a frames • Vantagens: • Padrão universalmente divulgado com suportado por ferramentas CASE • Convergência entre engenharia de software e do conhecimento • Limitações: • Ainda não existe máquinas de inferência para raciocinar diretamente sobre diagramas UML nem compilador de UML para linguagem executável • Ainda não possui semântica formal bem definida • Consequentemente: • Útil apenas a nível do conhecimento • Precisa sem utilizado em conjunção com outras linguagens atuando aos níveis da formalização e da implementação

  24. Diagrama de Classes • É um diagrama que mostra um conjunto de classes, interfaces e relacionamentos. • Responsável por modelar a parte estática do sistema • Uma classe é uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica • Interface é uma coleção de operações que são usadas para especificar um serviço de uma classe • Um relacionamento é uma conexão entre classes • Pode conter notas, restrições e pacotes

  25. Diagrama de classe UML: exemplo

  26. Sintaxe de diagramas de classes UML representada em UML (metamodelagem) !

  27. Diagrama de Atividade • Captura ações e seus resultados • É similar a uma máquina de estados, mas com finalidade diferente – capturar ações e resultados em termos de mudanças no estado dos objetos • O próximo estágio pode mudar automaticamente após o término da ação, sem requerer nenhum evento como em máquinas de estados • Descreve o fluxo do sistema • Como as ações são executadas • O que elas fazem – mudança dos estados do objeto • Quando elas são realizadas – seqüência de ações • Onde elas são executadas – partições de atividades • A implementação de uma operação pode ser descrita como um conjunto de ações relacionadas, posteriormente traduzidas em linhas de código • Pode ter ponto inicial e final

  28. Diagrama de Atividade • Partições de Atividade • Agrupa ações, normalmente com respeito à responsabilidade • Mostra explicitamente onde as ações são executadas (em qual objeto) • Ou mostra qual parte do trabalho está sendo realizado • Objetos • Podem ser vistos em diagramas de atividades • Representam tanto uma entrada como uma saída de uma ação, ou simplesmente mostra que o objeto é afetado pela ação

  29. Diagrama de Atividade • Sinais • Podem ser enviados ou recebidos em diagramas de atividades

  30. Diagrama de Atividade • Pin (alfinete) • A semântica de inicialização da atividade pode ser formalizada através do uso de pins • Mostra valores que uma atividade aceita (pré-requisitos) e valores que ela produz

  31. Diagrama de atividade UML: exemplo

  32. Sintaxe de diagramas de atividades UML representada em UML (metamodelagem) !

  33. Rede semântica Diagrama de classe correspondente UML x Redes Semântica: Exemplo

  34. Rede semântica Diagrama de classe correspondente UML x Redes Semântica: Exemplo

  35. UML x Frames: Exemplo Frame: Course in KB University Slot: enrolls Type: Student Cardinality.Min: 2 Cardinality.Max: 30 Slot: taughtby Type: (UNION GradStudent Professor) Cardinality.Min: 1 Cardinality.Max: 1 Frame: Student in KB University Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor Frame: Undergrad in KB University Is-a: Student Frame: Professor in KB University Slot: degree Default: PhD. Frame: AdvCourse in KB University Is-a: Course Slot: enrolls Type: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20 Frame: BasCourse in KB University Is-a: Course Slot: taughtby Type: Professor

  36. UML – Unified Modeling Language • Vantagens da UML como linguagem para representação de conhecimento • Padrão – notação e ferramentas de edição • Links bem definidos – composição, agregação, herança, ... • Trabalha a nível de conhecimento • Gráfico – bom pra modelar

  37. 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 • 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

  38. 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 • atributos propriedades x atributos relações • preenchidos por valores atômicas (tipos primitivos) x por outros conceitos • Status epistemológico do valor • Exatamente conhecida, default, probabilista • relações • sem hierarquia x em hierarquia paralela a hierarquia de entidades • correspondem: • 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

  39. Elementos de uma ontologia • Restrições: • sobre valores possíveis dos atributos dos 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: • sobre atributos de (conjunto 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: • as regras dos sistemas especialistas e programação em lógica • aos métodos dos modelos OO • as visões em BD

  40. 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

  41. Serviços suportados por uma ontologia • Consultas e manipulação: • correspondem: • métodos de acesso a valor e de reflexão em linguagens OO • consultas de interrogação e manipulação em BD • ask, tell e retract das bases de conhecimento • sobre conceitos: • Quais são as entidades E relacionadas a entidade 0 via relações r1, r2? • Quais são as relações R mais gerais que r1? • Definição d de entidade E é consistente com o resto da ontologia? • sobre instâncias • um indivíduo I com propriedades P1, ..., Pn é instância de quais conceitos? • Raciocínio automático • geralmente dedutivo

  42. Sistemas Especialistas desde 80 Psicologia Cognitiva desde 60 Lingüística desde 60 Processamento de Linguagem Natural desde 80 Origem e motivação para ontologias Gerenciamento do Conhecimento em Organizações desde 90 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

  43. Tipologia das 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: 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

  44. 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

  45. 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?

  46. 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 • Methontology: • Sensus: http://www.isi.edu/natural-language/resources/sensus.html • No entanto, já existe tentativa de padronização: http://suo.ieee.org/ http://www.fipa.org/

  47. Object Constraint Language (OCL) • OCL 1.0: • Formalização de relacionamento e restrições complexas entre elementos de diagrama de classes • Diagrama de classes anotado com restrições OCL é uma ontologia • Integra lógica dos predicados com algorítmica em uma notação intuitiva derivada das linguagens de programação orientada a objetos • Linguagem declarativa de pura especificação de restrições, não de execução das mesmas • Especifica os invariantes, pré-condições e pós-condições de uma operação, i.e., o que ela deve fazer • Não executa nem especifica como executar tal operação • OCL 2.0: • Substitui linguagem natural para rotular elementos de todos os diagramas UML (não apenas o de classe) • Poder expressivo estendido • Permite fazer ligação explícita entre vários diagramas • Primeiro passo para usar UML ao nível da formalização

  48. Anotações OCL para diagrama de classes: exemplos

  49. Anotações OCL para diagrama de classes: exemplos • Expressões OCL podem referenciar: • Classificadores UML: Classes, Interfaces, Associações e Tipos • Atributos, Operações, Papéis • Sintaxe: classificador.propriedade • OCL permite a navegação através do diagrama de classes • Sintaxe: classe.papel.propriedade ou classe.tipo_de_objeto_associado.propriedade • Exemplos: • LoyaltyProgram.participants.name • Customer.programs.enroll(c) • LoyaltyProgram.participants.cards

More Related