44
Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Embed Size (px)

Citation preview

Page 1: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Ontologias e Restrições OCL

Fábio MouraFranklin Ramalho

Jacques RobinCIn-UFPE

Page 2: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Roteiro

Ontologias O que é uma ontologia? Elementos de uma ontologia Origem e motivação das ontologias Tipologias das ontologias Exemplo de ontologia conceitual especialista Exemplo de ontologia conceitual geral Exemplo de ontologia lingüística geral Problemática geral e questões sobre ontologias

OCL MDA e o uso de OCL OCL 1.4 OCL 2 Usando OCL para MDA

Page 3: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Ontologias

Page 4: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

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 5: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

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 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 6: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

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

as regras dos sistemas especialistas e programação em lógica aos métodos dos modelos OO as visões em BD

Page 7: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

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

Page 8: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

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

Page 9: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Origem e motivação para ontologiasGerenciamento

do 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

OntologiasFilosofiadesde 350 A.C.

Engenhariade Software:

requisitos e reusodesde 90

Page 10: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Tipologia 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 11: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Exemplo de ontologia especialista: fragmentos de uma ontologia acadêmica

em UML

Page 12: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Personaddress : Stringeditor : Publicationemail : Stringfax : StringfirstName : StringlastName : StringmemberOfPC : EventmiddleInitial : Stringname : StringorganizerOrChairOf : Eventphone : Stringphoto : Stringpublication : Publication

Employeeaffiliation : OrganizationheadOf : ProjectheadOfGroup : ResearchGroupworksAtProject : Project

StudentstudiesAt : University

PhDStudentsupervisor : AcademicStaff

ResearchercooperatesWith : ResearchermemberOf : ResearchGroupresearchInterest : ResearchTopic

AcademicStaffsupervises : PhDStudent

Lecturer

AdministrativeStaff

TechnicalStaffSecretarysecretaryOf : ResearchGroup

Page 13: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

ConferencePaperconference : ConferencefirstPage : NumberlastPage : NumberproceedingsTitle : String

ArticleInBookbook : BookfirstPage : NumberlastPage : Number

JournalArticlefirstPage : Numberjournal : JournallastPage : Number

TechnicalReportnumber : Numberorganization : Organizationseries : String

WorkshopPaperfirstPage : NumberlastPage : NumberproceedingsTitle : Stringworkshop : Workshop

Article

BookcontainsArticle : ArticleInBookeditor : Personpublisher : Organization

OnlinePublicationonlineVersionOf : Publicationtype : String

JournalcontainsArticle : JournalArticleeditor : Personnumber : Numberpublisher : Organizationvolume : Number

Publicationabstract : Stringauthor : PersondescribeProject : ProjectonlineVersion : OnlinePublicationtitle : Stringyear : Number

SpecialIssue

Page 14: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Conf erencePaperinv example1: self .lastPage > self .f irstPage

Publicationinv example2: self .y ear > 1980

Conf erence

number : Numberseries : String

Conf erencePaper

conf erence : Conf erencef irstPage : NumberlastPage : NumberproceedingsTitle : String

1 n1 n

has accepted

Article

Publication

abstract : Stringauthor : PersondescribeProject : ProjectonlineVersion : OnlinePublicationtitle : Stringy ear : Number

Person

address : Stringeditor : Publicationemail : Stringf ax : Stringf irstName : StringlastName : StringmemberOf PC : Ev entmiddleInitial : Stringname : StringorganizerOrChairOf : Ev entphone : Stringphoto : Stringpublication : Publication

0..n0..n 0..n0..n

<<is author>>

Ev ent

atEv ent : Ev entdate : Stringev entTitle : StringhasParts : Ev entlocation : StringorgCommittee : PersonprogramCommittee : Personpublication : Publication

n

0..n

n

0..n

is member of PC

Page 15: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Exemplo de ontologia conceitual geral: fragmentos da ontologia de senso

comum de Russell e Norvig em UML

Page 16: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Anything

AbstractObjectsEvents

Sets Numbers RepresentationalObjects

Categories

Sentences Measurements

Intervals PlacesPhysicalObjects Processes

MomentsThings Stuff

Animals Agents

Humans

Solid Liquid Gas

Page 17: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

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

Page 18: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Ontologias Genéricas: Categorias Também chamadas de classes, relações, tipos ...

conjuntos de objetos com propriedades comuns organiza e simplifica a base de conhecimento.

Exemplos de simplificação: comprar(Maçã123) x comprar(Maçã) - classe-instância Todo mamífero bebe leite - herança

Taxonomia: tipo particular de ontologia:

relações hierárquicas entre classe e sub-classes em forma de árvores

propriedades discriminantes ex. biologia sistemática

Relações Disjunção Decomposição exaustiva Partição: decomposição exaustiva disjunta

Page 19: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Ontologias Genéricas: também podem representar

Medidas Valores atribuídos às propriedades dos objetos do mundo

real: peso, comprimento, altura, etc... Objetos compostos

formados por partes que também são objetos: relação “parte-de”.

Mudanças com eventos Cálculo de eventos: um fato é verdade em um intervalo

de tempo.

Page 20: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Medidas Valores atribuídos aos objetos do mundo real:

servem para descrever objetos ex. peso, comprimento, altura, diâmetro, ...

Medidas quantitativas são fáceis de representar ex. Tamanho(L1) = Polegadas(1,5) = Centímetros (3,81)

Medidas qualitativas são mais complicadas ex. beleza de um poema, dificuldade de um exercício O importante é ordenar

e1, e2 e1 Exercícios e2 Exercícios Elabora(João,e1) Elabora(Pedro,e2) Dificuldade(e1) < Dificuldade(e2)

Page 21: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Objetos Compostos Objetos formados por partes que também são

objetos São caracterizados pela estrutura dos objetos que os

compõem ex. massa de um carro é a soma das massas de suas

partes(carroceria, motor, pneu, ...) Para representá-los, usamos a relação ParteDe

e.g., ParteDe(motor, Carro), ParteDe(pneu, Carro) Exemplo:

a Bipede(a) l1, l2, b Perna(l1) Perna(l2) Corpo(b) ParteDe(l1,a) ParteDe(l2,a)ParteDe(b,a)

Ligado(l1,b) Ligado(l2,b) l1 l2 l3 Perna(l3) ParteDe(l3,a) (l3 = l1 l3 = l2)

Page 22: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Objetos Compostos

ParteDe também serve para descrever estrutura de eventos: Script ou Schema ex. comer no restaurante

Quando se está interessado apenas nas características do conjunto: BunchOf ex. peso do saco de Maçãs BunchOf(Maçãs) define um objeto composto formado

pelas Maçãs do saco.

Page 23: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Representando Mudanças com Eventos

Cálculo de situações: adequado quando temos um único agente realizando

ações discretas e instantâneas (uma ação por situação). inadequado quando:

existem vários agentes no mundo. o mundo pode mudar espontaneamente. mudanças ocorrem continuamente.

Cálculo de eventos: versão contínua do calculo de situações No cálculo de situações, um fato é verdade em uma

situação No cálculo de eventos, uma coisa é verdade num

intervalo de tempo ex. SubEvento(BatalhaDaNormandia,SegundaGuerraMundial)

SubEvento(SegundaGuerraMundial, SéculoXX)

Page 24: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Exemplo de ontologia lingüística geral: fragmentos de WordNet em UML

Page 25: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Wordnet

• Princeton WordNet: • redes semântica de 125.784 significados • de 203.145 palavras (141.690 substantivos) do inglês• organizados em 4 categorias sintática: substantivos,

verbos, adjetivos e advérbios,• são agrupados em conjuntos de sinônimos• disponível online:

http://www.cogsci.princeton.edu/~wn/• resulta de 15 anos de desenvolvimento manual por time de

psico-lingüistas

• EuroWordNet: http://www.hum.uva.nl/~ewn/• Resultado de um grande projeto da comunidade européia• Versão multi-língua adicionando e inter-ligando WordNets

do Espanhol, Francês, Italiano, Alemão, Holandês, Tcheco e Estoniano ao do Inglês

Page 26: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Wordnet

antonímiameronímia(parte-de)

family, household, menage

Person, individual, someone, human

sister, sis arm

relative, relation

unit, social unit

Brother, blood brother

body,organic structure

leg

hipernímia(generalização)

Legenda:sinonímia

Page 27: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

WordNet Online

Page 28: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE
Page 29: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Aplicações com o WordNet

Extração e recuperação de informação Classificação de texto Ensino de linguagens Construção de redes semânticas em outras

linguagens (EuroWordnet) Chatterbots (Geração e interpretação de texto)

Page 30: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Web Semântica

Extensão da Web atual Visa adicionar informações sobre o conteúdo das

páginas HTML, que sejam computacionalmente manipuláveis, de forma a proporcionar automação, compartilhamento, integração e reuso de informação em vários níveis e a várias aplicações

Desenvolvimento do RDF (Resource Description Framework) Um modelo de metadados para representação de

informações na web Tem como o seu principal veículo de transporte o XML,

combinação esta conhecida como RDF/XML Tem como origem as idéias da Semantic Net, fazendo uso

de relacionamentos como classes e instâncias com significados já bem conhecidos

Page 31: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Web Semântica – Arquitetura

Dados

Web Semântica

Engenho de Busca

Ontologia Ontologia Ontologia

Camada deEstrutura

Camada deEsquema

Regras de InferênciaCamadaLógica

… E-commerce

Page 32: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Web Semântica – Arquitetura

Camada de Estrutura Responsável por estruturar os dados e definir seu

significado Camada de Esquema

Responsável por definir relações entre os dados Uso de ontologias em páginas web torna mais simples a

resolução de indefinição ou conflito de terminologia Camada Lógica

Responsável por definir mecanismos para fazer inferência sobre os dados

Composta por um conjunto de regras de inferência Regras de inferência fornecem aos agentes

computacionais o poder de raciocinar sobre as estruturas de dados

Page 33: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

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?

Page 34: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

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:

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 35: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

OCLObject Constraint Language

Page 36: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

MDA (Model Driven Architecture)

Desenvolvida pelo OMG (Object Management Group) Princípios

Aplicações podem ser criadas de maneira independente das infra-estruturas que elas usam

Desenvolvido para ajudar organizações a rapidamente adotarem novas tecnologias e conceitos sem a necessidade de reescreverem completamente os seus sistemas

Tem por base em um conjunto de padrões (UML2, OCL2, QVT, MOF, ...) impõe disciplina no processo de desenvolvimento

Seu coração: UML usa diagramas – “modelos” – para projetar e descrever software

Model Driven Development (MDD) – o uso de modelos é uma parte essencial do processo de desenvolvimento

Model-to-model transformation – habilidade de gerar uma aplicação inteira sem escrever uma única linha de código

Page 37: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

MDA

Desafios Maturidade dos padrões

Adotados: UML2 e OCL2 Não finalizados: JMI (Java Metadata Inteface) e QVT (Query,

Views, Transformations) Complexidade de UML

Necessidade de um especialista em modelagem Pode afetar o time-to-market Aumento do rigor e treinamento

MDA não pode fazer tudo Geração de 100% do código para todos os problemas

computacionais “MDA is touted as the biggest shift in software

development since the move from assembler machine code to the first high-level languages”

Borland

Page 38: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

MDA

PIM (Platform Independent Model), PSM (Platform Specific Model) e Código

PIM

PSM PSM

Código Código

primeira transformação

primeira transformação

segundatransformação

segundatransformação

Page 39: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

MDA e o Uso de OCL

Credito Debito

ParceiroProgramaquantidadeDeClientes : Integer

Transacaopontos : Integerdata : Data

program a() : ProgramFidel idade

Clientenome : StringpronomeTratamento : Stringmasculino : BooleandataAniversario : Data

idade()

Contapontos : Integer

creditar(pts : Integer)debitar(pts : Integer)estaVazia() : Boolean

0..*trans acoes 0..*

Cartaovalido : BooleanvalidoDesde : Datavencim ento : Datacor : enum{prata, ouro}nomeTratamentoCliente : Stri ng

0..*

transacoes

0..*

cartao

0..* cartoes0..*

proprietario

Servicocondicao : BooleanpontosADebitar : IntegerpontosACreditar : Integerdescricao : Str ing

0..*

transacoes

0..*

0..* servicosOferecidos0..*

ProgramaFidelidade

cadastrar(c : Cliente)0..*0..* 0..*

programa

0..*1..*

1..*

1..*

parceiros1..*

Soc io

0..10..1

cartaoNivelServico

nome : String

0..*

servicosDisponiveis

0..*

1..*1..*

{ordered}0..*0..*

nivelDoServico

8: fecha

Joao:Passageiro

Maria:Passageiro

a3:BotaoDeAndar

a5:BotaoDeAndar

cont:Controlador

elevador:Elevador

porta:Porta

1: aperta

2: atualiza

3: ilumina

7: desilumina

9: aperta

10: atualiza

11: desilumina

4: mova

5: chegou

6: abre

Page 40: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

MDA e o Uso de OCL

Page 41: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

MDA e o Uso de OCL

Para aplicar o processo MDA: Modelos no nível de maturidade 4 são necessários

Melhor escolha: UML Mas, apenas UML não é suficiente

context Flightinv: passengers->size() <= plane.numberOfSeats

Page 42: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Restrições

Constraint – útil para adicionar novos significados aos diagramas

Uma restrição aplicada ao modelo OO restringe um ou mais valores do modelo [Warmer and Kleppe].

Restrição declarativa – apenas declara o que deve ser verdadeiro no modelo;

Restrição Operacional – quando violada, dispara um gatilho para uma operação que deve ser executada

Page 43: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

OCL

UML OCL

Credito Debito

ParceiroProgramaquantidadeDeClientes : Integer

Transacaopontos : Integerdata : Data

programa() : ProgramFidelidade

Clientenome : StringpronomeTratamento : Stringmasculino : BooleandataAniversario : Data

idade()

Contapontos : Integer

creditar(pts : Integer)debitar(pts : Integer)estaVazia() : Boolean

0..*transacoes 0..*

Cartaovalido : BooleanvalidoDesde : Datavencimento : Datacor : enum{prata, ouro}nomeTratamentoCliente : String

0..*

transacoes

0..*

cartao

0..* cartoes0..*

proprietario

Servicocondicao : Booleanpontos ADebitar : Integerpontos ACreditar : Integerdescricao : String

0..*

transacoes

0..*

0..* servicosOferecidos0..*

ProgramaFidelidade

cadastrar(c : Cliente)0..*0..* 0..*

programa

0..*1.. *

1..*

1.. *

parceiros1..*

Socio

0..10..1

cartaoNivelServico

nome : String

0..*

servicosDisponiveis

0..*

1..*1..*

{ordered}0..*0..*

nivelDoServico

8: fecha

Joao:Passageiro

Maria:Passageiro

a3:BotaoDeAndar

a5:BotaoDeAndar

cont:Controlador

elevador:Elevador

porta:Porta

1: aperta

2: atualiza

3: ilumina

7: des ilum ina

9: aperta

10: atualiza

11: des ilumina

4: mova

5: chegou

6: abre

esperando funcionandoatualiza / mova, ilumine

chegou / desilumine

atualiza / mova, iluminecontJoao Maria a3 a5 elevador

aperta atualize

mova

ilumina

aperta

chegou

abra

mova

atualize

ilumina

Page 44: Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE

Continua ...