500 likes | 603 Views
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
E N D
Representação de ConhecimentoObject-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 taxonomiaou 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 • tem pele • pode se mover • come • respira Animal • tem asas • pode voar • tem penas • tem barbatanas • pode nadar • tem brânquias Ave Peixe Canário Avestruz Tubarão . . . • pode cantar • é amarelo • tem pernas longas • e finas • é alta • não pode voar • pode morder • é perigoso
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 • 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 procedimentosanexadosaos 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: 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: AdvCourse in KB University SuperClasses: Course MemberSlot: enrolls ValueClass: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20 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
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 Classes, interfaces e relacionamentos • Parte estrutural • Diagrama de classes • Diagrama de objetos • Diagrama de Componentes • Diagrama de Desenvolvimento Objetos e relacionamentos Componentes e dependências Nodos e configurações
Introdução Diagramas de Interação: Objetos, relacionamentos e mensagens • Parte comportamental • Diagrama de Colaboração • Diagrama de Seqüência • Diagrama de Casos de Uso • Diagrama de estados • Diagrama de atividades 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 <<decisionInput>> • 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: <http://www.cin.ufpe.br/~in1006/2003/OntologiesOOKR.ppt> • Ramalho, F. UML-OCL. Disponível em: <http://www.cin. ufpe.br/~in1006/2003/UMLOCL.ppt> • Kifer, M. Lausen, G. Wu, J. Logical Foundations of Object and Frame-Based Languages. Journal of ACM, May 1995. Disponível em: <ftp://ftp.cs.sunysb.edu/ pub/TechReports/kifer/flogic.pdf> • Eriksson, H. Penker, M. Lyons, B. Fado, D. UML 2 Toolkit. Wiley, 2004.