22
Protégé-OWL e JessTab Adriano Melo Monitoria Sistemas Inteligentes Prof. Fred Freitas

Protégé-OWL e JessTab

  • Upload
    hanh

  • View
    20

  • Download
    0

Embed Size (px)

DESCRIPTION

Adriano Melo Monitoria Sistemas Inteligentes Prof. Fred Freitas. Protégé-OWL e JessTab. Agenda. Introdução Instalação JessTab Importar Ontologia OWL Manipular Elementos da Ontologia. Introdução. Ontologias são legais, mas..... … sozinhas elas não podem fazer nada! - PowerPoint PPT Presentation

Citation preview

Page 1: Protégé-OWL e JessTab

Protégé-OWL eJessTab

Adriano Melo

Monitoria Sistemas InteligentesProf. Fred Freitas

Page 2: Protégé-OWL e JessTab

Agenda

Introdução Instalação JessTab Importar Ontologia OWL Manipular Elementos da Ontologia

Page 3: Protégé-OWL e JessTab

Introdução

Ontologias são legais, mas.....

… sozinhas elas não podem fazer nada!

(Henrik Eriksson, Karl-Heinz Krempels) - [0]

Page 4: Protégé-OWL e JessTab

Motivação

Problemas relacionados ao Protégé Dificuldade de integrar diretamente a resolução de

problemas com a modelagem da ontologia Linguagens/shells precisam de acesso direto ao protégé

Dificuldade de administrar ontologias muito grandes/complexas Editores de ontologia poderiam ser programáveis

Protégé permite atravéz de sua API que motores de resolução de problemas sejam integrados a ele

Page 5: Protégé-OWL e JessTab

Por que Jess e JessTab?

Jess Linguagem/shell popular Comunidade de usuários ativa Implementado em Java

JessTab Plug-in para rodar o Jess dentro do Protégé Integra os recursos do Jess e Protégé

Page 6: Protégé-OWL e JessTab

Usos práticos do JessTab

Linguagem Cria classes facilmente Facilita fazer grandes mudanças na ontologia

Motor de Inferença Recuperação de Informações Classificação Suporte a decisão Planejamento

Page 7: Protégé-OWL e JessTab

Instalação

Protégé-OWL 3.4 + Jess http://adrianomelo.com/proteje-owl-jess.zip

Page 8: Protégé-OWL e JessTab

Habilitando JessTab

Menu Project >>

Configure...

Page 9: Protégé-OWL e JessTab

Funções do jess com Protégé - [1]mapclass

mapinstance

unmapinstance

defclass

make-instance

initialize-instance

modify-instance

duplicate-instance

definstances

unmake-instance

slot-get

slot-set

slot-replace$

slot-insert$

slot-delete$

slot-facets

slot-types

slot-cardinality

slot-range

slot-allowed-values

slot-allowed-classes

slot-allowed-parents

slot-documentation

slot-sources

facet-get

facet-set

class

class-existp

class-abstractp

class-reactivep

superclassp

subclassp

class-superclasses

class-subclasses

get-defclass-list

class-slots

instancep

instance-existp

instance-name

instance-address

instance-addressp

instance-namep

slot-existp

slot-default-value

set-kb-save

get-kb-save

load-kb-definitions

load-project

include-project

save-project

jesstab-version-number

jesstab-version-string

get-knowledge-base

get-tabs

Page 10: Protégé-OWL e JessTab

função mapclass

(mapclass <class-name> [nonreactive | reactive])

Mapeia uma classe do Protégé para o Jess. Gera o deftemplate que representa a classe Cria fatos que corespondem às instâncias do protégé

[nonreactive] => desabilita o mapeamento recursivo dos filhos da classe <class-name>

Page 11: Protégé-OWL e JessTab

função mapclass - exemplo

(antes: abrir projeto pizza.owl.pprj) - [2]

(mapclass http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#DomainConcept)

(facts)

Page 12: Protégé-OWL e JessTab

função make-instance

(make-instance [<instance-name>] of <class-name> <slot-override>* [map])

Cria uma instância do Projégé a partir do Jess <instance-name> = nome da instância (opcional) <class-name> = classe a ser instanciada <slot-override> = pares (slot valor) a serem

atribuidos à instância

Page 13: Protégé-OWL e JessTab

função make-instance – exemplo 1

(make-instance sorvete_1 of http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#IceCream)

Page 14: Protégé-OWL e JessTab

função make-instance – exemplo 2

(bind ?m (make-instance massa-grossa of http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#DeepPanBase))

(bind ?c (make-instance cobertura-mozzarella of http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#MozzarellaTopping))

(make-instance pizza-queijo of http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#CheeseyPizza

(http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#hasBase

?m)

(http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#hasTopping

?c)

)

Page 15: Protégé-OWL e JessTab

função unmake-instance

(unmake-instance <instance-expression>+)

Deleta o indivíduo especificado <instance-expression> = um ou mais ponteiros

para instâncias ou nomes de indivíduos

Page 16: Protégé-OWL e JessTab

função unmake-instance - exemplo

(defrule nao-tem-massa

(object

(is-a http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#Pizza)

(http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#hasBase )

(OBJECT ?o))

=>

(printout t "a pizza " ?o " nao tem massa, será apagada" crlf)

(unmake-instance ?o))

Page 17: Protégé-OWL e JessTab

função defclass

(defclass <name> [<comment>] (is-a <superclass>+) [role] <slot>*)

Define uma nova classe do Protégé. <name> = especifica o nome da nova classe <superclass> = classes que a nova classe vai herdar

Page 18: Protégé-OWL e JessTab

função defclass - exemplo

(defclass Pessoa

(is-a http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#DomainConcept)

(slot nome (type string))

(slot idade (type integer)))

(defclass PizzaQueijo (is-a http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#Pizza))

Page 19: Protégé-OWL e JessTab

Exemplo – Pizza vs Tipo

(defrule tipo-de-massa

(object

(is-a http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#Pizza)

(http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#hasBase ?base)

(OBJECT ?o))

(object

(OBJECT ?base)

(is-a ?tipomassa))

=>

(printout t "a pizza " ?o " tem massa " ?base " e a massa é do tipo " ?tipomassa crlf))

Page 20: Protégé-OWL e JessTab

Exemplo – Pizza do Usuário

(defrule inserir-pizza

?in <- (inserir-massa-grossa)

=>

(printout t "digite um nome de pizza depois um de massa..")

(assert (inserir pizza (read) massa (read)))

(retract ?in)

)

(assert (inserir-massa-grossa))

Page 21: Protégé-OWL e JessTab

Exemplo – Pizza do Usuário (cont.)

(defrule criar-pizza

?in <- (inserir pizza ?pizza massa ?massa)

=>

(make-instance ?massa of http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#DeepPanBase)

(make-instance ?pizza of http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#Pizza (http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#hasBase ?massa))

(retract ?in)

)

Page 22: Protégé-OWL e JessTab

Referências

JessTab & JessAgentTab Tutorial - [0] http://www.ida.liu.se/~her/JessTab/tutorial07/JessTabTutorial.ppt

JessTab Documentation - [1] http://www.ida.liu.se/~her/JessTab/JessTab.pdf

Ontologia de Pizzas - [2] http://www.cin.ufpe.br/~astm/si/pizza