representação de conhecimento orientada a objetos

58
Ontologi es Reasonin g Component s Agents Simulatio ns Representação de Conhecimento Representação de Conhecimento Orientada a Objetos Orientada a Objetos Fabio Moura Jacques Robin CIn-UFPE

Upload: adriel

Post on 11-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Representação de Conhecimento Orientada a Objetos

OntologiesReasoningComponentsAgentsSimulations

Representação de ConhecimentoRepresentação de ConhecimentoOrientada a ObjetosOrientada a Objetos

Fabio MouraJacques Robin

CIn-UFPE

Page 2: Representação de Conhecimento Orientada a Objetos

RoteiroRoteiro

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

Page 3: Representação de Conhecimento Orientada a Objetos

Lembrete: conceitos de linguagens Lembrete: conceitos de linguagens orientadas a objetosorientadas 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

Page 4: Representação de Conhecimento Orientada a Objetos

Lembrete: conceitos de linguagens Lembrete: conceitos de linguagens orientadas a objetosorientadas 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)

Page 5: Representação de Conhecimento Orientada a Objetos

Lembrete: conceitos de linguagens Lembrete: conceitos de linguagens orientadas a objetosorientadas 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

Page 6: Representação de Conhecimento Orientada a Objetos

SistemasDistribuídos

Histórico da orientação a objetosHistórico da orientação a objetosProgramação Representação

do ConhecimentoBanco

de Dados

Simula

Engenhariade Software

Sketchpad

Smalltalk

C++

Java

C#

UML1.0

OCL

UML2.0

RedesSemânticas

Frames

Lógicas Descritivas

Lógicas de Frames

Linguagens deWeb Semântica

MOF

OQL

SQL’99

1965

2005

hoje

hoje

última aula

hoje

hoje

eletivas

de IA

eletivas

de IA

Page 7: Representação de Conhecimento Orientada a Objetos

Lembrete: motivações da orientação a Lembrete: motivações da orientação a objetos para engenharia de softwareobjetos 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

Page 8: Representação de Conhecimento Orientada a Objetos

Motivação inicial da orientação a objetos Motivação inicial da orientação a objetos para representação do conhecimentopara 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

Page 9: Representação de Conhecimento Orientada a Objetos

CategoriasCategorias

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 10: Representação de Conhecimento Orientada a Objetos

Características das CategoriasCaracterí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

Page 11: Representação de Conhecimento Orientada a Objetos

Características das CategoriasCaracterí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

Page 12: Representação de Conhecimento Orientada a Objetos

Redes SemânticasRedes 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

Page 13: Representação de Conhecimento Orientada a Objetos

Redes Semânticas – ExemploRedes Semânticas – Exemplo

Rede semântica com quatro objetos e quatro categorias

Asserção lógica n-ária Voar - Fly

Page 14: Representação de Conhecimento Orientada a Objetos

Redes Semânticas – LimitaçõesRedes 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 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

Page 15: Representação de Conhecimento Orientada a Objetos

Sintaxe abstrata das redes semânticasSintaxe abstrata das redes semânticasem UMLem UML

Node Link

SingleValue

Specification

MultipleValue

Specification

AttributeSpecification

*

<<enum>>Certainty

Level

KnownDefault

OOP/OOSE

Classes& Objects

OOP/OOSEattributes& other

associations

*

IS-A PART-OF

OOSEaggregation & composition associations

OOP/OOSEsubclass & instance

relationships

Page 16: Representação de Conhecimento Orientada a Objetos

FramesFrames

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

Page 17: Representação de Conhecimento Orientada a Objetos

FramesFrames

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

Page 18: Representação de Conhecimento Orientada a Objetos

Sintaxe abstrata de Frames em UMLSintaxe abstrata de Frames em UML

Frame Slot Facet

SingleValue

Specification

TypeConstraint

MultipleValue

Specification

CardinalityConstraint

ProceduralAttachment

InputParameter

ReturnValue

HostLanguageProcedure

* *

ConstraintValue

Specification

*

<<enum>>Certainty

Level

KnownDefault

Min: IntMax: Int

MissingReadWrite

<<enum>>Trigger

OOP/OOSE

Classes& Objects

OOP/OOSEAttributes

& Associations

No corresponding

concepts in OOP/OOSE

OOP/OOSEMethods

& Activities

OOSEConstrain

ts

IS-A

OOP/OOSEsubclass & instance

relationships

Page 19: Representação de Conhecimento Orientada a Objetos

Frames: exemploFrames: 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: 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: AdvCourse in KB University Is-a: Course Slot: enrolls Type: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20

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

Frame: BasCourse in KB University Is-a: Course Slot: taughtby Type: Professor

Frame: Professor in KB University Slot: degree Default: PhD.

Frame: Professor in KB University Slot: degree Default: PhD.

Frame: Student in KB UniversityFrame: Student in KB University

Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor

Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor

Frame: Undergrad in KB University Is-a: Student

Frame: Undergrad in KB University Is-a: Student

Page 20: Representação de Conhecimento Orientada a Objetos

Frames: limitaçõesFrames: 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 21: Representação de Conhecimento Orientada a Objetos

Comparação com a lógica dos Comparação com a lógica dos predicados: exemplospredicados: 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)

Page 22: Representação de Conhecimento Orientada a Objetos

Comparação com a lógica dos Comparação com a lógica dos predicados: exemplospredicados: exemplos

Fly (Shankar, NewYork, NewDelhi, Yesterday)

Page 23: Representação de Conhecimento Orientada a Objetos

UML como linguagem de UML como linguagem de representação do conhecimentorepresentaçã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

Page 24: Representação de Conhecimento Orientada a Objetos

Diagrama de ClassesDiagrama 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 25: Representação de Conhecimento Orientada a Objetos

DiagramDiagrama de a de

classe classe UML: UML:

exemploexemplo

Page 26: Representação de Conhecimento Orientada a Objetos

Sintaxe de diagramas de classes UML Sintaxe de diagramas de classes UML representada em UML (metamodelagem) representada em UML (metamodelagem)

!!

Page 27: Representação de Conhecimento Orientada a Objetos

Diagrama de AtividadeDiagrama 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

Page 28: Representação de Conhecimento Orientada a Objetos

Diagrama de AtividadeDiagrama 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

Page 29: Representação de Conhecimento Orientada a Objetos

Diagrama de AtividadeDiagrama de Atividade

Sinais Podem ser enviados

ou recebidos em diagramas de atividades

Page 30: Representação de Conhecimento Orientada a Objetos

Diagrama de AtividadeDiagrama 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 31: Representação de Conhecimento Orientada a Objetos

Diagrama de Diagrama de atividade UML: atividade UML:

exemploexemplo

Page 32: Representação de Conhecimento Orientada a Objetos

Sintaxe de diagramas de atividades UML Sintaxe de diagramas de atividades UML representada em UML (metamodelagem) representada em UML (metamodelagem)

!!

Page 33: Representação de Conhecimento Orientada a Objetos

UML x Redes Semântica: ExemploUML x Redes Semântica: Exemplo

Rede semântica Diagrama de classe correspondente

Page 34: Representação de Conhecimento Orientada a Objetos

UML x Redes Semântica: ExemploUML x Redes Semântica: Exemplo

Rede semântica Diagrama de classe correspondente

Page 35: Representação de Conhecimento Orientada a Objetos

UML x Frames: ExemploUML 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: 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: AdvCourse in KB University Is-a: Course Slot: enrolls Type: (INTERSECTION GradStudent (NOT Undergrad)) Cardinality.Max: 20

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

Frame: BasCourse in KB University Is-a: Course Slot: taughtby Type: Professor

Frame: Professor in KB University Slot: degree Default: PhD.

Frame: Professor in KB University Slot: degree Default: PhD.

Frame: Student in KB UniversityFrame: Student in KB University

Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor

Frame: GradStudent in KB University Is-a: Student Slot: degree Default: Bachelor

Frame: Undergrad in KB University Is-a: Student

Frame: Undergrad in KB University Is-a: Student

Page 36: Representação de Conhecimento Orientada a Objetos

UML – Unified Modeling LanguageUML – 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 37: Representação de Conhecimento Orientada a Objetos

O que é uma ontologia?O que é uma ontologia?

Definição: especificação (semi-)formal explícita formal explícita de uma concepção compartilhadaconcepção compartilhada Concepção: Concepção: modelo das entidades, relações, axiomas e regras de

algum domínio Formal:Formal:

processável por máquina permitindo raciocínio automático com semântica lógica formal

Compartilhada:Compartilhada: por uma comunidade, permitindo entendimento

Conceitos de computação relacionados: Base de conhecimento reutilizável Esquema de banco de dados

Page 38: Representação de Conhecimento Orientada a Objetos

Elementos de uma ontologiaElementos 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

Page 39: Representação de Conhecimento Orientada a Objetos

Elementos de uma ontologiaElementos 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

Page 40: Representação de Conhecimento Orientada a Objetos

Elementos de uma ontologiaElementos 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

Page 41: Representação de Conhecimento Orientada a Objetos

Serviços suportados por uma ontologiaServiç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

Page 42: Representação de Conhecimento Orientada a Objetos

Origem e motivação para ontologiasOrigem e motivação para ontologias

Gerenciamentodo Conhecimentoem Organizações

desde 90

Integraçãode Dadosdesde 95

SistemasMulti-agentes

desde 95

Recuperaçãode Informação

na Webdesde 00

PsicologiaCognitivadesde 60

Lingüísticadesde 60

SistemasEspecialistas

desde 80

Processamentode Linguagem

Naturaldesde 80

OntologiasFilosofia

desde 350 A.C.

Engenhariade Software:

requisitos e reusodesde 90

Page 43: Representação de Conhecimento Orientada a Objetos

Tipologia das ontologiasTipologia das ontologias

Especialista:Especialista: modela um domínio particular restrito Geral: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:Conceitual: fundamentada na capacidade de raciocinar Lingüística:Lingüística: fundamenta no vocabulário de uma(s) língua(s) De meta-dados:De meta-dados: “especializada” na descrição de recursos on-

line, no entanto sobre qualquer domínio De tarefas e métodos:De tarefas e métodos: modela procedimentos e

comportamentos abstratos no lugar de entidades ou relações

Page 44: Representação de Conhecimento Orientada a Objetos

Anything

AbstractObjectsEvents

Sets Numbers RepresentationalObjects

Categories

Sentences Measurements

Intervals PlacesPhysicalObjects Processes

MomentsThings Stuff

Animals Agents

Humans

Solid Liquid Gas

Page 45: Representação de Conhecimento Orientada a Objetos

Sub-problemas de modelagem de uma Sub-problemas de modelagem de uma ontologia geralontologia 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

Page 46: Representação de Conhecimento Orientada a Objetos

Problemática geral e questões Problemática geral e questões sobre ontologiassobre 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?

Page 47: Representação de Conhecimento Orientada a Objetos

Problemática geral e questões Problemática geral e questões sobre ontologiassobre 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/

Page 48: Representação de Conhecimento Orientada a Objetos

Object Constraint Language (OCL)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 queo que ela deve fazer Não executa nem especifica comocomo 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

Page 49: Representação de Conhecimento Orientada a Objetos

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

Page 50: Representação de Conhecimento Orientada a Objetos

Anotações OCL Anotações OCL para diagrama de classes: exemplospara 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 ouclasse.tipo_de_objeto_associado.propriedade

Exemplos: LoyaltyProgram.participants.name Customer.programs.enroll(c) LoyaltyProgram.participants.cards

+participants

CustomerCardvalid : BooleanvalidFrom : DategoodThru : Datecolor : Color/ printedName : String

Customername : Stringtitle : StringisMale : BooleandateOfBirth : Date/ age : Integer

age() : Integer

LoyaltyProgramname : String

enroll(c : Customer)getServices() : Set(Services)

+cards 0..*

+owner

0..*

0..*

+programs

0..* 0..*0..*

Page 51: Representação de Conhecimento Orientada a Objetos

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

Invariantes: A expressão deve ser verdadeira para

todas as instâncias no contexto Exemplos:

context Customerinv ofAge: age >= 18

context LoyaltyPrograminv minServices:

partiners.deliveredServices->size() >= 1

LoyaltyProgramname : String

enroll(c : Customer)getServices() : Set(Services)

1..*

1..*

ProgramPartnernumberOfCustomers : Integer = 0name : String

Servicecondition : BooleanpointsEarned : IntegerpointsBurned : Integerdescription : StringserviceNr : Integer

0..*+deliveredServices

+partner

0..*

11

+partners

+programs1..*

1..*

Page 52: Representação de Conhecimento Orientada a Objetos

Anotações OCL Anotações OCL para diagrama de classes: exemplospara 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 = participants@pre->including(c)

LoyaltyProgramname : String

enroll(c : Customer)getServices() : Set(Services)

Customername : Stringtitle : StringisMale : BooleandateOfBirth : Date/ age : Integer

age() : Integer

0..*

+participants

0..*0..*0..*

+programs

Page 53: Representação de Conhecimento Orientada a Objetos

Anotações OCL Anotações OCL para diagrama de classes: exemplospara 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()

0..*

1

+transactions

+account 1

0..*

Transactionpoints : Integerdate : Dateamount : Real

program() : LoyaltyProgram

EarningBurning

LoyaltyAccountpoints : Integernumber : Integer/ totalPointsEarned : Integer

earn(in i : Integer)burn(in i : Integer)isEmpty() : Boolean

Valores iniciais: Para atributos ou papéis

context LoyaltyAccount::points

init: 0

Page 54: Representação de Conhecimento Orientada a Objetos

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

Page 55: Representação de Conhecimento Orientada a Objetos

Sintaxe abstrata de OCL em UML Sintaxe abstrata de OCL em UML (com restrições OCL – (com restrições OCL –

metamodelagem !)metamodelagem !)

Page 56: Representação de Conhecimento Orientada a Objetos
Page 57: Representação de Conhecimento Orientada a Objetos
Page 58: Representação de Conhecimento Orientada a Objetos

Conclusão:Conclusão:Quadro ComparativoQuadro Comparativo

RedesSemânticas

Frames UML + OCL Lógica de Predicados

Origem IA IA ES IA

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

Sim Sim Não Sim

Semântica formal bem definida, completa e declarativa

Não Não Não Sim

Representa Conhecimento Estrutural

Estrut. Declar.Comport. Procedu-ralmente

Estrut. Declar.Comport.

Procedu-ralmenteEstrut. Declar.

Sintaxe visual intuitiva Sim Não Sim Não