The JessTab Approach to Protégé and Jess Integration

Slides:



Advertisements
Similar presentations
The CODS Protégé Server. 2 Preliminaries If you want to follow along later Download and install Protégé 3.4 beta (Optional) Download the Server Stats.
Advertisements

Protégé Ray Fergerson Who are we? What have we done? What are our plans? Why are we here? What are our problems? Demo (?)
Mitsunori Ogihara Center for Computational Science
Ontology Editors.
Chronos: A Tool for Handling Temporal Ontologies in Protégé
The CLIPS Programming Tool History of CLIPS –Influenced by OPS5 and ART –Implemented in C for efficiency and portability –Developed by NASA, distributed.
SELBO Agent Ivan Minov University of Plovdiv “Paisii Hilendarski“
Expert System Shells - Examples
1 01/12/2011Knowledge-Based Systems, Paula Matuszek Intro to CLIPS Paula Matuszek CSC 9010, Spring, 2011.
CLIPS C Language Integrated Production System Note: Some slides and/or pictures are adapted from Lecture slides / Books of Dr Zafar Alvi.
SPICE! An Ontology Based Web Application By Angela Maduko and Felicia Jones Final Presentation For CSCI8350: Enterprise Integration.
Chapter 11: Classes, Instances, and Message- Handlers Expert Systems: Principles and Programming, Fourth Edition.
Semantic Web Tools Vagan Terziyan Department of Mathematical Information Technology, University of Jyvaskyla ;
OntoSTUDIO as a Ontology Engineering Environment
© C. Kemke CLIPS 1 1 COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
By: Dr. Christel Kemke Department of Computer Science University of Manitoba.
JessTab Tutorial Henrik Eriksson. JessTab Tutorial Outline 1.Introduction 2.Background 3.Installation 4.Interaction with JessTab 5.Introduction.
PROMPT: Algorithm and Tool for Automated Ontology Merging and Alignment Natalya F. Noy and Mark A. Musen.
Protégé An Environment for Knowledge- Based Systems Development Haishan Liu.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
CS 561, Session 25 1 Introduction to CLIPS Overview of CLIPS Facts Rules Rule firing Control techniques Example.
Using Java in Linked Data Applications Fuming Shih Oct 12.
Intro to Jess The Java Expert System Shell By Jason Morris Morris Technical Solutions.
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
A First Program Using C#
Knowledge Management in Geodise Geodise Knowledge Management Team Liming Chen, Barry Tao, Colin Puleston, Paul Smart University of Southampton University.
BiodiversityWorld GRID Workshop NeSC, Edinburgh – 30 June and 1 July 2005 Metadata Agents and Semantic Mediation Mikhaila Burgess Cardiff University.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
Integration of Jess and Protege
Writing Widgets & Custom Script API for BOY Xihui Chen
Artificial Intelligence Lecture No. 17 Dr. Asad Ali Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
Košice, 10 February Experience Management based on Text Notes The EMBET System Michal Laclavik.
ILSA Home Ontology CHOP An Introduction to CHOP: the Common Home Ontology in Protege Steve Harp and John Phelps Honeywell Laboratories November, 2001.
Ontology-Driven Software Development with Protégé and OWL Holger Knublauch Stanford Medical Informatics Model-Driven Semantic Web.
SEMANTIC WEB FOR A HOSPITAL
Jess: A Rule-Based Programming Environment Reporter: Yu Lun Kuo Date: April 10, 2006 Expert System.
Java Expert System Shell JESS 報告者 : 江梓安. Why we need an expert systems? Conventional programming languages Conventional programming languages Complex.
CS62S: Expert Systems Requirements Specification and Design Based on Chap. 12: The Engineering of Knowledge-based Systems: Theory and Practice, A. J. Gonzalez.
Using RDF in Agent-Mediated Knowledge Architectures K. Hui, S. Chalmers, P.M.D. Gray & A.D. Preece University of Aberdeen U.K
EEL 5937 Ontologies EEL 5937 Multi Agent Systems Lecture 5, Jan 23 th, 2003 Lotzi Bölöni.
Ontology-Based Computing Kenneth Baclawski Northeastern University and Jarg.
SKOS. Ontologies Metadata –Resources marked-up with descriptions of their content. No good unless everyone speaks the same language; Terminologies –Provide.
© Geodise Project, University of Southampton, Knowledge Management in Geodise Geodise Knowledge Management Team Barry Tao, Colin Puleston, Liming.
ES component and structure Dr. Ahmed Elfaig The production system or rule-based system has three main component and subcomponents shown in Figure 1. 1.Knowledge.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Metadata Common Vocabulary a journey from a glossary to an ontology of statistical metadata, and back Sérgio Bacelar
EEL 5937 Ontologies EEL 5937 Multi Agent Systems Lecture 5, Jan 23 th, 2003 Lotzi Bölöni.
1 Knowledge Based Systems (CM0377) Lecture 10 (Last modified 19th March 2001)
OWL & Protege Introduction Dongfang Xu Ph.D student, School of Information, University of Arizona Sept 10, 2015.
JessTab Tutorial Henrik Eriksson. 2 JessTab Tutorial Outline 1.Introduction 2.Background 3.Installation 4.Interaction with JessTab 5.Introduction.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
1/(27) GATE Ontology Tools GATE Training Course October 2006 Kalina Bontcheva
Henrik Eriksson Department of Computer and Information Science Linkoping University SE Linkoping, Sweden Raymond W. Fergerson Yuval Shahar Stanford.
Mostly adopted from Jason Morris notes (Morris Technical Solutions)
OWL Web Ontology Language Summary IHan HSIAO (Sharon)
Protégé/2000 Advanced Tools for Building Intelligent Systems Mark A. Musen Stanford University Stanford, California USA.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Intelligent systems Lecture 11 Tools for development of Expert Systems.
16 April 2011 Alan, Edison, etc, Saturday.. Knowledge, Planning and Robotics 1.Knowledge 2.Types of knowledge 3.Representation of knowledge 4.Planning.
Intelligent Systems JESS constructs.
Knowledge Representation Part II Description Logic & Introduction to Protégé Jan Pettersen Nytun.
William Grosso Stanford Medical Informatics Stanford University
Stanford Medical Informatics
Chapter 7: Introduction to CLIPS
JessTab Tutorial Henrik Eriksson.
Chapter 11: Classes, Instances, and Message-Handlers
Semantic Markup for Semantic Web Tools:
Rule Engine Concepts and Drools Expert
Building Ontologies with Protégé-2000
Presentation transcript:

The JessTab Approach to Protégé and Jess Integration Henrik Eriksson

Background Difficult manage large/complex ontologies Ontology editors should be programmable Difficult to integrate problem solving and ontology development OO languages/shells need an graphical counterpart

Background – History Protégé-I OPS5 Art Cool CLIPS Protégé-II Java Protégé/Win Java Jess KIF/OKBC/Clos JessTab Protégé-2000 Descendants Influences

JessTab – Combining two popular systems Protégé Knowledge acquisition and ontology development tool Developed by SMI, Stanford University http://protege.stanford.edu/ Jess Java Expert System Shell; based on CLIPS Forward chaining; production rules Developed by Sandia Laboratories http://herzberg.ca.sandia.gov/jess/

Two possibilities Loose integration Tight integration No changes to each representation model Translators between formats Independent software Tight integration Changes to representation models when needed Integrated software (e.g., same Java VM) Unified user interface

Protégé: A modular system Support for plug-ins Widget plug-ins Tab plug-ins Storage plug-ins JessTab is a tab plug-in for running Jess inside Protégé

JessTab extensions to Jess and Protégé Jess console window in Protégé Mapping instances to facts Functions for knowledge-base operations Mirroring Jess definitions in Protégé knowledge bases Support for metalevel objects Support for methods and message handlers (under construction)

Jess console window in Protégé

Defining classes and instantiating them Jess> (defclass Person (is-a :THING) (slot name (type string)) (slot age (type integer))) TRUE Jess> (make-instance john of Person (name "John") (age 20)) <External-Address:SimpleInstance> Jess> (mapclass Person) Person Jess> (facts) f-0 (object (is-a Person) (is-a-name "Person") (OBJECT <External-Address:SimpleInstance>) (age 20) (name "John")) For a total of 1 facts.

Modifying slots Jess> (slot-set john age 21) Jess> (facts) f-1 (object (is-a Person) (is-a-name "Person") (OBJECT <External-Address:SimpleInstance>) (age 21) (name "John")) For a total of 1 facts.

Creating a second instance Jess> (make-instance sue of Person (name "Sue") (age 22)) <External-Address:SimpleInstance> Jess> (facts) f-1 (object (is-a Person) (is-a-name "Person") (OBJECT <External-Address:SimpleInstance>) (age 21) (name "John")) f-4 (object (is-a Person) (is-a-name "Person") (age 22) (name "Sue")) For a total of 2 facts.

Adding a Jess rule Jess> (defrule twentyone (object (is-a Person) (name ?n) (age ?a&:(>= ?a 21))) => (printout t "The person " ?n " is 21 or older" crlf)) TRUE Jess> (run) The person John is 21 or older The person Sue is 21 or older 2 Jess>

Functions for knowledge-base operations 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

Mirroring Jess definitions in Protégé knowledge bases Your Jess definitions as first-class citizen in Protégé

Editing Jess definitions in Protégé

Support for metalevel objects JessTab support for metaclasses, metaslots, and metafacets in Protégé Defining classes by instantiating metaclasses Functions for instances work for classes too and for slots and facets

Printing abstract classes in Protégé (mapclass :THING)   (defrule print-abstract-classes-1 "Print all abstract classes" ?c <- (object ) (test (class-abstractp ?c)) => (printout t "The class " (instance-name ?c) " is abstract." crlf))

Modifying ontologies Change the role to abstract for classes that have subclasses, but do not have any instances: (defrule make-classes-abstract "Turn classes abstract" ?c <- (object (:NAME ?n) (:ROLE Concrete) (:DIRECT-INSTANCES )) (not (object (:NAME ?n) (:DIRECT-SUBCLASSES))) => (slot-set ?c :ROLE Abstract))  

Support for methods and message handlers Under construction (defmethod add ((?a STRING) (?b STRING)) (str-cat ?a ?b)) (defmethod add ((?a MyClass) (?b MyClass)) …) (defmessage-handler MyClass get-foo () ?self:foo) (defmessage-handler rectangle find-area () (* ?self:side-a ?self:side-b))

Applications Ontology engineering and reengineering Semantic Web Jess as macro/scripting for ontologies Semantic Web RDF backend to Protégé Problem-solving methods Migration from CLIPS to Jess Agent frameworks JadeJessProtege

Tool Web/Library JessTab FuzzyJess PrologTab JadeJessProtege FloraTab More Protégé plug-ins More Jess extensions Jess Protégé Your system Your tab JADE

Ongoing and future work Support for methods and message handlers (cf. CLIPS) Integration with PAL Support for managing Protégé forms ???

Trying JessTab Obtain Protégé Obtain Jess Get JessTab Download from http://protege.stanford.edu/ Obtain Jess Download from http://herzberg.ca.sandia.gov/jess/ License required (commercial or free academic) Compilation required Get JessTab Download from http://www.ida.liu.se/~her/JessTab/

Summary JessTab: Protégé – Jess integration Manage Protégé ontologies and knowledge bases from Jess Rule-based reasoning in Protégé Protégé as graphical, object-oriented extension to Jess