Representação de Conhecimento Object-Oriented Knowledge Representation Fabio Moura Jacques Robin CIn-UFPE.

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
UML Modelando um sistema.
UML Visões – Parte 2.
(Unified Modeling Language)
Engenharia de Software
Rational Unified Process(RUP)
UML Material retirado da apostila do Professor Cesar Augusto Tacla
Projeto de Sistemas de Software
Linguagens de Modelagem para SMA
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da visão estática da UML. Os elemento desta visão são conceitos.
Metodologias Orientadas a Agentes
Introdução a diagrama de classes e UML
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Análise e Projeto de Sistemas
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.
Orientação a Objetos.
TÉCNICAS DE PROGRAMAÇÃO II
DIAGRAMA DE COMPONENTES
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
Diagramas de Colaboração e Componentes
Projeto de Sistemas de Software
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
DIAGRAMA DE CLASSE Modelagem de Software
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Diagramas de Atividade
Sistemas Especialistas
Programação Orientada à Objetos
© Ricardo Pereira e Silva
Representação de Conhecimento Orientada a Objetos
Programação Orientada à Objetos
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Laboratório de Programação
RUP - Cap. 3 – Processo Dirigido por Caso de Uso
Processos de Software.
Diagrama de Colaboração. Diagramas de Interação Expressam informações bastante similares porém de maneira diferente Diagrama de seqüência: – Interação.
Generalização e herança Agregação e composição
A Linguagem Formal de Especificação VDM-SL
Orientação a Objetos com UML
UML e a Ferramenta Astah
Linguagem de Modelagem Unificada
Redes Semânticas e Sistemas Frames
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha.
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
Análise e Projeto de Sistemas
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Orientação a Objetos com UML. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões|
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Engenharia de Software Orientada 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.
Interações entre objetos
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Diagrama de Classes Herança Dependências.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Análise e Design de Software Site:
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

Representação de Conhecimento Object-Oriented Knowledge Representation Fabio Moura Jacques Robin CIn-UFPE

Agenda  Categorias  Famílias de Linguagens OOKR  Redes semânticas  Frames  Linguagens de programação orientadas a objetos  Lógicas descritivas  Lógicas de frames  UML  UML  Introdução  Diagramas  Diagrama de classes  Diagrama de atividades

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

Características das Categorias (1)  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

Características das Categorias (2)  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

Famílias de Linguagens OOKR

 Categorias são os principais blocos de construção de qualquer esquema de representação de conhecimento em grande escala  Limitações da lógica como formalismo para representação do conhecimento  Representação complexa  Inadequada para representação do conhecimento em aplicações IA  Sistemas especialmente projetados para organizar e raciocinar com categorias  Da IA: redes semânticas, frames, lógicas descritivas e lógicas de frames  Da ES: OOPL e UML  Cada família reusou conceitos introduzidos em famílias precedentes buscando superar suas limitações  Removendo ou modificando problemas existentes, usando maior rigor e acrescentando novos conceitos

Redes Semânticas  Oferecem auxílios gráficos para visualização de uma base de conhecimento e  Algoritmos eficientes para dedução de propriedades de um objeto, de acordo com sua pertinência a uma categoria  Forma mais flexível e intuitiva de representar conhecimento  É 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

Redes Semânticas  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 Animal Ave Peixe Canário Avestruz Tubarão... -tem pele -pode se mover -come -respira -tem asas -pode voar -tem penas -tem barbatanas -pode nadar -tem brânquias -pode cantar -é amarelo -tem pernas longas e finas -é alta -não pode voar -pode morder -é perigoso

Redes Semânticas – Limitações  Principais limitações 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 1 a limitação  Lógicas descritivas são sucessores das redes semânticas visando a superar a 2 a 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  Hereditariedade pode causar dificuldades no tratamento de exceções  Pode haver conflito entre características herdadas  É difícil representar conhecimento procedimental – sequenciamento e tempo não estão definidos  Menos expressiva que a Lógica de Primeira Ordem – não há quantificadores

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  Descrevem conhecimento ou algum procedimento relativo ao atributo

Frames  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  Gatilhos  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

Frames – Exemplo Frame: Course in KB University MemberSlot: enrolls ValueClass: Student Cardinality.Min: 2 Cardinality.Max: 30 MemberSlot: taughtby ValueClass: (UNION GradStudent Professor) Cardinality.Min: 1 Cardinality.Max: 1 Frame: Course in KB University MemberSlot: enrolls ValueClass: Student Cardinality.Min: 2 Cardinality.Max: 30 MemberSlot: taughtby ValueClass: (UNION GradStudent Professor) Cardinality.Min: 1 Cardinality.Max: 1 Frame: AdvCourse in KB University SuperClasses: Course MemberSlot: enrolls ValueClass: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20 Frame: AdvCourse in KB University SuperClasses: Course MemberSlot: enrolls ValueClass: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20 Frame: BasCourse in KB University SuperClasses: Course MemberSlot: taughtby ValueClass: Professor Frame: BasCourse in KB University SuperClasses: Course MemberSlot: taughtby ValueClass: Professor Frame: Professor in KB University Frame: Student in KB University Frame: GradStudent in KB University SuperClasses: Student MemberSlot: degree ValueClass: String Cardinality.Min: 1 Cardinality.Max: 1 Frame: GradStudent in KB University SuperClasses: Student MemberSlot: degree ValueClass: String Cardinality.Min: 1 Cardinality.Max: 1 Frame: Undergrad in KB University SuperClasses: Student Frame: Undergrad in KB University SuperClasses: Student

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

Linguagens de Programação Orientadas a Objetos  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

Lógicas Descritivas  Fornecem uma linguagem formal para construção e combinação de definições de categorias e  Algoritmos eficientes para definir relacionamentos de subconjuntos e superconjuntos entre categorias  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  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  Limitações  DL não trata bem de conceitos quantitativos tais como ordem, quantidade, tempo e taxas  Limita expressividade para garantir que esses serviços sejam computacionalmente tratáveis

Lógicas de Frames (F-logic)  Fundação lógica para prover linguagens baseadas em orientação a objetos e em frames  Problemas que tenta solucionar  A falta de lógica semântica da abordagem OO – papel importante nas linguagens de programação de BD  BDs dedutivos não dão suporte a abstração de dados  Várias abordagens tentaram combinar as duas abordagens sem sucesso Restringem a estrutura dos objetos e as consultas Sacrificam a declaratividade adicionando características extra-lógicas Omitem importantes aspectos dos sistemas OOs, como tipagem e herança  Mais  Pode ser utilizada para definir, consultar e manipular esquemas de BDs  Está relacionada à orientação a objetos da mesma forma que o cálculo de predicados clássico está relacionado à programação relacional

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

UML

Famílias de Linguagens OOKR Quadro Comparativo Redes Semânticas FramesOOPLLógicas Descritivas Lógicas de Frames UML Origem IA ESIA ES Máquina de Inferência para raciocínio automático Sim NãoSim Não Semântica formal bem definida, completa e declarativa Não Sim Não Linguagem de Programação Turing- complete executável NãoSim NãoSimNão Representa Conhecimento Estrutural Estrut. Declar. Comport. Procedu- ralmente Estrut. Declar. Comport. Procedu- ralmente Estrutural Estrut. e Comport. Declarati- vamente Estrut. Declar. Comport. Procedu- ralmente Sintaxe visual intuitiva SimNão Sim

UML Unified Modeling Language

Introdução  Empresa de Software de sucesso ↔ desenvolve software de qualidade e atende aos usuários  Modelagem é uma tarefa fundamental nas atividades iniciais do desenvolvimento do software  Comunicar a estrutura e comportamento desejados para o sistema  Visualizar e controlar a arquitetura do software  Melhor entendimento do sistema  Gerenciar os riscos ...  É preciso utilizar uma linguagem expressiva, simples e padrão

Introdução  UML é uma linguagem para especificação, visualização, construção e documentação de artefatos de sistemas de software  Linguagem padrão adotada e recomendada pela OMG  Extensível  Apenas uma linguagem  Independente de processo  Amplamente utilizada pelo mercado e pela academia  Inter-disciplinar  Não possui semântica formal bem definida  Abrange modelagem estrutural e comportamental  Sub-dividida em diagramas

Introdução  Parte estrutural  Diagrama de classes  Diagrama de objetos  Diagrama de Componentes  Diagrama de Desenvolvimento Classes, interfaces e relacionamentos Objetos e relacionamentos Componentes e dependências Nodos e configurações

Introdução  Parte comportamental  Diagrama de Colaboração  Diagrama de Seqüência  Diagrama de Casos de Uso  Diagrama de estados  Diagrama de atividades Diagramas de Interação: Objetos, relacionamentos e mensagens Casos de uso, atores e relacionamentos Máquina de estados: Estados, transições, eventos e atividades

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

Diagrama de Classes

 Adornos aplicados às classes, atributos e operações:  Visibilidade – especifica se ela pode ser usada por outros classificadores Public (+) Protected (#) Private (-)  Escopo – especifica se a propriedade aparece em cada instância do classificador ou se existe apenas uma instância da característica para todas as instâncias do classificador Instance (default) Classifier (propriedade sublinhada)

Diagrama de Classes  Um relacionamento é uma conexão entre classes  Dependência – indica que a mudança na especificação de uma classe deve afetar uma outra classe  Generalização – relacionamento entre uma classe geral (super-classe) e uma mais específica (sub-classe)

Diagrama de Classes  Associação é um relacionamento estrutural, que especifica que objetos de uma classe são conectados com objetos de uma outra classe  Associação entre todo-parte é conhecida como agregação  Composição é um tipo especial de agregação que ocorre quando o tempo de vida do todo e da parte são iguais

Diagrama de Classes  Vários adornos aplicados às associações  Nome, Papéis, Multiplicidade, etc.  Uma associação entre duas classes pode possuir propriedades: classes-associação

Diagrama de Classes  Realização é um relacionamento entre classificadores onde um especifica um contrato e outro garante cumpri-lo

Diagrama de Classes  Classe abstrata

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

Diagrama de Atividade  A implementação de uma operação pode ser descrita como um conjunto de ações relacionadas, posteriormente traduzidas em linhas de código  Mostra as ações e seus relacionamentos e pode ter ponto inicial e final

Diagrama de Atividade  Setas de atividades podem conter condições de guarda, uma cláusula de envio ou uma expressão de ação, ou nada (a próxima ação é executada assim q a ação anterior termina)

Diagrama de Atividade  Um símbolo na forma de um diamante é usado para mostrar um nó de decisão  A condição de decisão é mostrada através de uma nota com o estereótipo >  O nó de decisão pode ter uma ou mais linhas de entrada e duas ou mais linhas de saída

Diagrama de Atividade  Ações podem ainda serem executadas de forma concorrente  O diagrama deve conter pontos de ramificação e de unificação

Diagrama de Atividade  Conectores podem ser utilizados quando o conjunto de setas torna o diagrama muito complicado

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

Diagrama de Atividade  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

Diagrama de Atividade  Sinais  Podem ser enviados ou recebidos em diagramas de atividades

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

Referências

 Pimentel, A. Robin, J. Ontologias e Representação do Conhecimento Orientada a Objetos. Disponível em:  Ramalho, F. UML-OCL. Disponível em:  Kifer, M. Lausen, G. Wu, J. Logical Foundations of Object and Frame-Based Languages. Journal of ACM, May Disponível em:  Eriksson, H. Penker, M. Lyons, B. Fado, D. UML 2 Toolkit. Wiley, 2004.