1 / 22

Protégé-OWL e JessTab

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!

hanh
Download Presentation

Protégé-OWL e JessTab

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adriano Melo Monitoria Sistemas Inteligentes Prof. Fred Freitas Protégé-OWL eJessTab

  2. Agenda • Introdução • Instalação • JessTab • Importar Ontologia OWL • Manipular Elementos da Ontologia

  3. Introdução Ontologias são legais, mas..... … sozinhas elas não podem fazer nada! (Henrik Eriksson, Karl-Heinz Krempels) - [0]

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

  5. 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é

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

  7. Instalação • Protégé-OWL 3.4 + Jess • http://adrianomelo.com/proteje-owl-jess.zip

  8. HabilitandoJessTab Menu Project >> Configure...

  9. 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 Funções do jess com Protégé - [1] 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 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

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

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

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

  13. função make-instance – exemplo 1 (make-instance sorvete_1 of http://www.co-ode.org/ontologies/pizza/2005/10/18/pizza.owl#IceCream)

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

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

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

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

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

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

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

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

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

More Related