A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Representação de Conhecimento Orientada a Objetos

Apresentações semelhantes


Apresentação em tema: "Representação de Conhecimento Orientada a Objetos"— Transcrição da apresentação:

1 Representação de Conhecimento Orientada a Objetos
Fabio Moura Jacques Robin CIn-UFPE

2 Roteiro Linguagens orientadas a objetos Primeiros formalismos de RCOO
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 de Web 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 taxonomia ou 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 Sintaxe abstrata das redes semânticas em UML
 OOP/OOSE Classes & Objects  OOP/OOSE subclass & instance relationships  OOSE aggregation & composition associations OOP/OOSE attributes & other associations Node Link * * <<enum>> Certainty Level Known Default 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 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  OOSE Constraints  OOP/OOSE Methods & Activities IS-A * Frame * Slot * Facet Host Language Procedure <<enum>> Certainty Level Known Default Value Specification Constraint Procedural Attachment Missing Read Write <<enum>> Trigger 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 Comparação com a lógica dos predicados: exemplos
Mary FemalePersons SisterOf (Mary, John) x x Persons  [y HasMother (x, y)   FemalePersons] x x Persons  Legs (x, 2) p, s HasSister (p, s)  SisterOf (s, p)

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

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 Objetos
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 UML x Redes Semântica: Exemplo
Rede semântica Diagrama de classe correspondente

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

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

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

45 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

46 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?

47 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: No entanto, já existe tentativa de padronização:

48 Object Constraint Language (OCL)
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

49 Anotações OCL para diagrama de classes: exemplos

50 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

51 Anotações OCL para diagrama de classes: exemplos
Invariantes: A expressão deve ser verdadeira para todas as instâncias no contexto Exemplos: context Customer inv ofAge: age >= 18 context LoyaltyProgram inv minServices: partiners.deliveredServices->size() >= 1

52 Anotações OCL para diagrama de classes: exemplos
Pré-condição: Deve ser verdadeira quando a operação inicia a sua execução Pós-condição: Deve ser verdadeira quando a operação termina a sua execução context LoyaltyProgram::enroll(c:Customer) pre: not (participants->includes(c)) post: participants =

53 Anotações OCL para diagrama de classes: exemplos
Regra de derivação: Expressão cujo contexto é um atributo ou papel context LoyaltyAccount::totalPointsEarned : Integer derive: transactions-> select(oclIsTypeOf(Earning)) .points->sum() Valores iniciais: Para atributos ou papéis context LoyaltyAccount::points init: 0

54 Anotações OCL para diagrama de atividades: exemplo

55 Sintaxe abstrata de OCL em UML (com restrições OCL – metamodelagem !)

56

57

58 Conclusão: Quadro Comparativo
Redes Semânticas Frames UML + OCL Lógica de Predicados Origem IA ES Máquina de Inferência para raciocínio automático Sim Não Semântica formal bem definida, completa e declarativa Representa Conhecimento Estrutural Estrut. Declar. Comport. Procedu-ralmente Sintaxe visual intuitiva


Carregar ppt "Representação de Conhecimento Orientada a Objetos"

Apresentações semelhantes


Anúncios Google