representação de conhecimento object-oriented knowledge representation

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

Upload: liuz

Post on 14-Jan-2016

27 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Representação de Conhecimento Object-Oriented Knowledge Representation

Representação de ConhecimentoObject-Oriented Knowledge

Representation

Fabio MouraJacques Robin

CIn-UFPE

Page 2: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 3: Representação de Conhecimento Object-Oriented Knowledge Representation

Categorias

Page 4: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 5: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 6: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 7: Representação de Conhecimento Object-Oriented Knowledge Representation

Famílias de Linguagens OOKR

Page 8: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 9: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 10: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 11: Representação de Conhecimento Object-Oriented Knowledge Representation

Redes Semânticas – Exemplo

AnimalAnimal

AveAve PeixePeixe

CanárioCanário AvestruzAvestruz TubarãoTubarã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

Page 12: Representação de Conhecimento Object-Oriented Knowledge Representation

Redes Semânticas – Limitações

Principais limitações1) Computacionalmente incompletos para implementar a maioria

dos sistemas inteligentes2) 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

Page 13: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 14: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 15: Representação de Conhecimento Object-Oriented Knowledge Representation

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 UniversityFrame: Professor in KB University

Frame: Student in KB UniversityFrame: 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

Page 16: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 17: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 18: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 19: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 20: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 21: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 22: Representação de Conhecimento Object-Oriented Knowledge Representation

UML

Page 23: Representação de Conhecimento Object-Oriented Knowledge Representation

Famílias de Linguagens OOKRQuadro Comparativo

RedesSemântic

as

Frames OOPL Lógicas Descritiv

as

Lógicas de

Frames

UML

Origem IA IA ES IA IA ES

Máquina de Inferência para raciocínio automático

Sim Sim Não Sim Sim Não

Semântica formal bem definida, completa e declarativa

Não Não Não Sim Sim Não

Linguagem de Programação Turing-complete executável

Não Sim Sim Não Sim Não

Representa Conhecimento

Estrutural

Estrut. Declar.Compor

t. Procedu

-ralment

e

Estrut. Declar.

Comport. Procedu-ralmente

Estrutural

Estrut. e Comport.Declarati-vamente

Estrut. Declar.

Comport. Procedu-ralmente

Sintaxe visual intuitiva

Sim Não Não Não Não Sim

Page 24: Representação de Conhecimento Object-Oriented Knowledge Representation

UMLUnified Modeling Language

Page 25: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 26: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 27: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 28: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 29: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 30: Representação de Conhecimento Object-Oriented Knowledge Representation

Diagrama de Classes

Rectangle Circle Polygon

display()

Square

Shape

origin

display()move()resize()

ShapeInterface

display()move()resize()

Tipo especial de Rectangle que possui os lados de mesmo tamanho

ShapePackage

Page 31: Representação de Conhecimento Object-Oriented Knowledge Representation

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)

Page 32: Representação de Conhecimento Object-Oriented Knowledge Representation

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)

FilmClip

name

playOn(c : Channel)

Channel

Shape

Rectangle Circle Polygon

Square

Page 33: Representação de Conhecimento Object-Oriented Knowledge Representation

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

CompanyPerson

Company

1

*

Department

*

1 1

1..*1..*

1

Company

Department

Page 34: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Person

+employer

0..* 1..*

+employee

1..*0..* CompanyWorks for

Person Company1..*0..*Works for

+employee+employer

1..*0..*

Job

descriptiondateHiredsalary

Page 35: Representação de Conhecimento Object-Oriented Knowledge Representation

Diagrama de Classes

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

Rectangle Circle {leaf} Polygon

display()

Square

Shape

origin : Point = (0,0)id : Integer {addOnly}

display()move()resize()

ShapeInterface

display()move()resize()

Tipo especial de Rectangle que possui os lados de mesmo tamanho

Page 36: Representação de Conhecimento Object-Oriented Knowledge Representation

Diagrama de Classes

Classe abstrata

Rectangle Circle {leaf} Polygon

display()

Square

Shape

origin : Point = (0,0)id : Integer {addOnly}

display()move()resize()

ShapeInterface

display()move()resize()

Tipo especial de Rectangle que possui os lados de mesmo tamanho

Page 37: Representação de Conhecimento Object-Oriented Knowledge Representation

Burning Earning

Transactionpoints : Integerdate : Date

program()

LoyaltyAccountpoints : Integer

earn()burn()isEmpty()

0..n+transactions 0..n

CustomerCardvalid : BooleanvalidFrom : DategoodThru : Datecolor : enum{silver, gold}printedName : String

0..n

+transactions

0..n

+cardService

condition : BooleanpointsEarned : IntegerpointsBurned : Integerdescription : String

0..n

+transactions

0..n

Membership

0..10..1 +card

Customername : Stringtitle : Stringismale : BooleandateOfBirth : Date

age()

0..n+cards 0..n

+owner

ProgramPartnernumberOfCustomers : Integer

0..n +deliveredServices0..n

LoyaltyProgram

enroll()0..n0..n 0..n

+program

0..n1..n

1..n

1..n

+partners 1..n

ServiceLevelname : String

0..n

+availableServices

0..n

0..n0..n

+actualLevel

1..n1..n

Page 38: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 39: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 40: Representação de Conhecimento Object-Oriented Knowledge Representation

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)

Page 41: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 42: Representação de Conhecimento Object-Oriented Knowledge Representation

Diagrama de Atividade

Ações podem ainda serem executadas de forma concorrente

O diagrama deve conter pontos de ramificação e de unificação

Page 43: Representação de Conhecimento Object-Oriented Knowledge Representation

Diagrama de Atividade

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

Page 44: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 45: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 46: Representação de Conhecimento Object-Oriented Knowledge Representation

Diagrama de Atividade

Sinais Podem ser

enviados ou recebidos em diagramas de atividades

Page 47: Representação de Conhecimento Object-Oriented Knowledge Representation

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

Page 48: Representação de Conhecimento Object-Oriented Knowledge Representation
Page 49: Representação de Conhecimento Object-Oriented Knowledge Representation

Referências

Page 50: Representação de Conhecimento Object-Oriented Knowledge Representation

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.