Como fazer ?

45

description

Como fazer ?. Escrever termos , Usar termos em frases, Fazer afirmações usando os termos, Montar classificações dos termos, Criar regras de geração de novas afirmações, provar a veracidade de novas afirmações, Saber quem afirmou, classificou,fez regras e provou - PowerPoint PPT Presentation

Transcript of Como fazer ?

Page 1: Como fazer ?
Page 2: Como fazer ?

Como fazer ? Escrever termos, Usar termos em frases, Fazer afirmações usando os termos, Montar classificações dos termos, Criar regras de geração de novas

afirmações, provar a veracidade de novas afirmações, Saber quem afirmou, classificou,fez regras

e provou ter confiança nas afirmações.

Page 3: Como fazer ?

Escrever Termos

Frases

Afirmações

Classificações

Regras

Provar

Confiança

Qu

em

Escrever termos, usar termos em frases,Fazer afirmações usando os termos,Montar classificações dos termos,Criar regras de geração de novas afirmações, provar a veracidade de novas afirmações,Saber quem afirmou, classificou,fez regras e provou

ter confiança nas afirmações

Page 4: Como fazer ?

OWL baseado em Description Logic; existem coisas que DL não pode expresar

Exemplo: Regras de Horn: (P1 ∧ P2 ∧ …) → C

Page 5: Como fazer ?

Muitos sistemas baseados em regras prescisam intercambiar regras

Existe portanto um novo tipo de dado na web para ser trocado (regras)

Page 6: Como fazer ?

Camada Lógica Esta camada permite, através de regras

consultar paginas, fazer filtragem de conteúdos, concluir sobre fatos.

Quais os professores que trabalham no mesmo departamento do Prof. Gauthier?

Seria necessário acessar páginas de professores onde o local de trabalho seja igual ao do prof. Gauthier.

Quais os colegas de turma de graduação do reitor da ufsc?

Seria necessário criar regras que definam “colega de turma” acessar uma ontologia sobre universidades, localizar o significado de reitor, localizar a instÂncia.....

Page 7: Como fazer ?

Algumas linguagens

RuleML F-Logic SWRL

Page 8: Como fazer ?

RuleML

''The discount for a customer buying a product is 5 percent

if the customer is premium and the product is regular.''

Page 9: Como fazer ?

Implies

Atom Atom

Atomhead body

And

discount

premium customer regular product

customer product 5.0

Var Var IndRel

Rel RelVar Var

Page 10: Como fazer ?

<Implies> <head> <Atom> <Rel>discount</Rel> <Var>customer</Var> <Var>product</Var> <Ind>5.0</Ind> </Atom> </head> <body> <And> <Atom> <Rel>premium</Rel> <Var>customer</Var> </Atom> <Atom> <Rel>regular</Rel> <Var>product</Var> </Atom> </And> </body></Implies>

Page 11: Como fazer ?

SWRL: A Semantic Web Rule Language Combining

OWL and RuleML

http://www.w3.org/Submission/SWRL/

Page 12: Como fazer ?

Regras Uma regra contem:

Antecedente = corpo Conseqüente = cabeça

Antecedente Conseqüente

Page 13: Como fazer ?

Exemplo de regra

Meteorologia prevê chuva;o céu esta nublado;

Levo guarda-chuva euso galocha

Page 14: Como fazer ?

tanto corpo como cabeça conjunções positivas de átomos (?) não aceita de negação ou disjunção

informalmente se todos os átomos no corpo(antecedente) são verdadeiros então todos os átomos na cabeça (conseqüente) devem ser verdadeiros

Page 15: Como fazer ?

Regras SWRL são escritas em termos de átomos

Átomos podem ser: C(x), P(x,y), sameAs(x,y) ou

differentFrom(x,y), builtIn(r,x,...)

C -classe OWL, P - propriedades OWL x e y - instâncias OWL ou

valores de dados em OWL

Page 16: Como fazer ?

builtIn(r,x,...) r - relação entre os argumentos built-in é uma relação (predicado) r que

toma vários argumentos (variáveis) e tem o valor verdadeiro se os argumentos satisfazem a relação r

swrlb:equal (x,y) é verdadeiro se e somente se o primeiro argumento e o segundo são os mesmos. .

Page 17: Como fazer ?

Exemplo

Uma regra SWRL dizendo que uma “pessoa” com um “gêmeo” do sexo “masculino” tem um “irmão” requer os conceitos em OWL de:

pessoa, gêmeo masculino, irmão

Page 18: Como fazer ?

Em OWL (intuitivamente) Pessoa -> Classe Masculino -> subclasse Homem de Pessoa, Gêmeo -> propriedade tem_gêmeo de Pessoa Irmão -> propriedade tem_irmão PessoaPessoa(?p) ^ tem_gêmeo(?p,?s) ^ Homem(?s) ->

tem_irmão (?p,?s) Executar a regra tem o efeito de colocar a

propriedade tem_irmão para todas as intancias de pessoas OWL com um ou mais gêmeos homens referindo-se a eles

Page 19: Como fazer ?

Regra que diz que uma Pessoa(classe) que tem seu próprio carro (propriedade) deve se classificada como Motorista(classe)

Pessoa(?p) ^ tem_carro(?p, true) -> Motorista (?p)  

Page 20: Como fazer ?

 

Todas as instâncias de Pessoa que tenham carro serão classificadas também como instancia de Motorista

Page 21: Como fazer ?

Instancias nomeadas em uma ontologia podem também ser referenciadas diretamente em regras SWRL

Para uma instância de pessoa chamada Carlos:

Pessoa(Carlos) ^ tem_carro(Carlos, true) -> Motorista (Carlos)

Page 22: Como fazer ?

Regras com vários átomos conseqüentes

podem ser transformadas em múltiplas regras cada uma com um único átomo conseqüente

Page 23: Como fazer ?

R1: Meteorologia prevê chuva e o céu esta nublado -> Levo guarda-chuva e uso galocha

R1.1: Meteorologia prevê chuva e o céu esta nublado -> Levo guarda-chuva

R1.2: Meteorologia prevê chuva e o céu esta nublado -> uso galocha

Page 24: Como fazer ?

Representação informal

As representações anteriores são informais para permitir uma representação que possa ser lida pelos seres humanos

Existe uma sintaxe abstrata (abstract syntax) especificada por meio de uma versão de Extended BNF

Page 25: Como fazer ?

rule ::= 'Implies(' [ URIreference ] { annotation } antecedent consequent ')‘

antecedent ::= 'Antecedent(' { atom } ')‘

consequent ::= 'Consequent(' { atom } ')'

Page 26: Como fazer ?

atom ::= description '(' i-object ')' | dataRange '(' d-object ')' | individualvaluedPropertyID '(' i-

object i-object ')' | datavaluedPropertyID '(' i-object d-

object ')' | sameAs '(' i-object i-object ')' | differentFrom '(' i-object i-object ')' | builtIn '(' builtinID { d-object } ')'

builtinID ::= URIreference

Page 27: Como fazer ?

i-object ::= i-variable | individualID

d-object ::= d-variable | dataLiteral

i-variable ::= 'I-variable(' URIreference ')' d-variable ::= 'D-variable(' URIreference ')'

Page 28: Como fazer ?

Example 4.1-1 (w3c...)

A simple use of these rules would be to assert that the combination of the hasParent and hasBrother properties implies the hasUncle property.

Informally, this rule could be written as:

hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3)

Page 29: Como fazer ?

abstract syntax :

Implies(Antecedent(

hasParent(I-variable(x1) I-variable(x2)) hasBrother(I-variable(x2) I-variable(x3))

) Consequent( hasUncle(I-variable(x1) I- variable(x3))

))

Page 30: Como fazer ?

Sintaxe concreta em XML

Combinação de OWL Web Ontology Language XML Presentation Syntax [OWL XML] com RuleML XML syntax [RuleML].

Page 31: Como fazer ?
Page 32: Como fazer ?

Exemplos

Iniciar projeto novo no Protégé Selecionar Project->Configure-

>SWRL Criar ontologia de Familia Classes: Pessoa, Homem,Mulher,

Pai, Tio, Irmão, Irmã, Tia, Neto

Page 33: Como fazer ?

Criar ObjectProperty de Pessoa: tem_filhos, tem_irmão, tem_irmã, tem_tio, tem_tia tem_Neto

Page 34: Como fazer ?

Criar a seguinte Família

Instâncias de Mulher Ana

Instâncias de Homem Carlos, Pedro, João, João Raimundo

Colocar valores na propriedade tem_filhos Carlos - tem_filhos(Ana, Pedro, João) João - tem_filhos(João Raimundo)

Page 35: Como fazer ?

Especificar allDiferent

Em OWL instâncias com nomes ( propeiedade “name”) diferentes podem representar o mesmo objeto homem_14 (tem_nome Carlos) homem_15 (tem_nome Carlos)

No Protégé: OWL->Edit owl:AllDiferent

Page 36: Como fazer ?
Page 37: Como fazer ?

Criar regras para Irmã

Pessoa(?x) ∧ tem_filhos(?x, ?y) ∧ tem_filhos(?x, ?z) ∧ Mulher(?z) ∧ → tem_irma(?y, ?z) (ERRADA!!)

Na unificação variáveis diferentes (?y e ?z) podem pegar o mesmo objeto

tem_irma(?y, ?z) pode ser tem_irma(Ana, Ana)

Page 38: Como fazer ?

Regra Certa

Pessoa(?x) ∧ tem_filhos(?x, ?y) ∧ tem_filhos(?x, ?z) ∧ Mulher(?z) ∧ differentFrom(?y, ?z)

→ tem_irma(?y, ?z)

Page 39: Como fazer ?
Page 40: Como fazer ?

Usar as regras em SWRL

Baixar o Jess de: http://herzberg.ca.sandia.gov/jess/ Descompactar e colocar o arquivo

jess.jar no diretorio do Protégé: .....Protege_3.2.1\plugins\

edu.stanford.smi.protegex.owl

Page 41: Como fazer ?

Usando o Reasoner

Page 42: Como fazer ?
Page 43: Como fazer ?

Reasoner Pellet

Reaoner em Java Trabalha com OWL DL Baseado no método do Tableaux Ura principalmente as restrições NÃO TRABALHA COM REGRAS

Page 44: Como fazer ?

Instalação do Pellet

Fazer download de http://pellet.owldl.com/

Descompactar Rodar o pellet-dig junto com Protégé No protégé OWL->Preferences alterar

o reasoner U|Rl para http://localhost:8081

Page 45: Como fazer ?