JessTab: Using Jess together with Protégé. Henrik Eriksson



Similar documents
Application Development with Protégé

The CLIPS environment. The CLIPS programming language. CLIPS production rules language - facts. Notes

CLIPS-OWL: A Framework for Providing Object-Oriented Extensional Ontology Queries in A Production Rule Engine

Supporting Rule System Interoperability on the Semantic Web with SWRL

Reference Manual Volume I Basic Programming Guide

Ontology-based Classification of

ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS A REVIEW

The Semantic Web Rule Language. Martin O Connor Stanford Center for Biomedical Informatics Research, Stanford University

FIPA agent based network distributed control system

Building Applications with Protégé: An Overview. Protégé Conference July 23, 2006

The Common Lisp Object System: An Overview

Java Crash Course Part I

A methodology for graphical modeling of business rules

Artificial Intelligence. Class: 3 rd

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT,

The Protégé OWL Plugin: An Open Development Environment for Semantic Web Applications

Integration of Application Business Logic and Business Rules with DSL and AOP

Java Agent DEvelopment Framework (JADE)

Aspect-Oriented Programming

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach

Programming and Software Development CTAG Alignments

CLIPS User s Guide. by Joseph C. Giarratano, Ph.D. Version 6.30

25.1 Translational Frameworks (MDA with transformations)


Fundamentals of Java Programming

MiniDraw Introducing a framework... and a few patterns

A Proposed Decision Support System/Expert System for Guiding. Fresh Students in Selecting a Faculty in Gomal University, Pakistan

Integration of Application Business Logic and Business Rules with DSL and AOP

Model-Driven Development - From Frontend to Code

UML FOR OBJECTIVE-C. Excel Software

Java Programming (10155)

Rapid Prototyping of CBR Applications with the Open Source Tool mycbr

5. Advanced Object-Oriented Programming Language-Oriented Programming

LAB4 Making Classes and Objects

The Smalltalk Programming Language. Beatrice Åkerblom

Open-Source, Cross-Platform Java Tools Working Together on a Dialogue System

Jambalaya: Interactive visualization to enhance ontology authoring and knowledge acquisition in Protégé

ATM Case Study OBJECTIVES Pearson Education, Inc. All rights reserved Pearson Education, Inc. All rights reserved.

K-SITE RULES: Integrating Business Rules in the mainstream software engineering practice

Automated transformations from ECA rules to Jess

A GENERALIZED APPROACH TO CONTENT CREATION USING KNOWLEDGE BASE SYSTEMS

Reference Manual Volume III Interfaces Guide

McGraw-Hill The McGraw-Hill Companies, Inc.,

Building Java Programs

Semantic Stored Procedures Programming Environment and performance analysis

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

creating a text-based editor for eclipse

Schema Classes. Polyhedra Ltd

Mapping Domains to Methods in Support of Reuse

Technical Notes P/N Rev 01

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

AN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS

Programming with the Dev C++ IDE

MDA Approach for Maintenance of Business Applications

Rules and Business Rules

Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems

Ontology and automatic code generation on modeling and simulation

1. Overview of the Java Language

Clinician-Led Development of Electronic Health Records Systems

Constructing Enterprise Information Network Security Risk Management Mechanism by Ontology

Introduction to programming

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

Java the UML Way: Integrating Object-Oriented Design and Programming

VALENS: A Knowledge Based Tool to Validate and Verify an Aion Knowledge Base

Mapping between Levels in the Metamodel Architecture

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

Part 1 Foundations of object orientation

Glossary of Object Oriented Terms

Artificial Intelligence

Problems and Measures Regarding Waste 1 Management and 3R Era of public health improvement Situation subsequent to the Meiji Restoration

Avoiding Confusion in Metacircularity: The Meta-Helix

Grails 1.1. Web Application. Development. Reclaiming Productivity for Faster. Java Web Development. Jon Dickinson PUBLISHING J MUMBAI BIRMINGHAM

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT,

Towards Rule-based System for the Assembly of 3D Bricks

CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology

Enterprise Architecture Modeling PowerDesigner 16.1

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

Object Oriented Programming and the Objective-C Programming Language 1.0. (Retired Document)

Ontologies for Supply Chain Management

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt

Tutorial 5: Developing Java applications

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

16 Collection Classes

Transcription:

JessTab: Using Jess together with Protégé Henrik Eriksson

Background Problems: Difficult to directly integrate problem solving and ontology development in Protégé Languages/shells need direct access to Protégé Difficult manage large/complex ontologies Ontology editors should be programmable

Background: What is Jess? Java Expert System Shell; based on CLIPS Forward chaining; production rules Fact-base and pattern matching Lisp-like syntax No support for object orientation The Cool subsystem of CLIPS not implemented Developed by Sandia Laboratories http://herzberg.ca.sandia.gov/jess/

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

Integration Two possibilities Loose 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

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

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") (OBJECT <External-Address:SimpleInstance>) (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é Jess rule editor in Protégé

Editing Jess definitions in Protégé (cont.) Rule-editor subtab in JessTab

Support for Protégé metalevel objects JessTab support for metaclasses, metaslots, and metafacets Functions for instances work for classes too and for slots and facets Defining classes by instantiating metaclasses: (make-instance Person of :STANDARD-CLASS (:DIRECT-SUPERCLASSES :THING))

Printing abstract classes in Protégé (mapclass :THING) Map every class to Jess (defrule print-all-abstract-classes?c <- (object ) Match every object (test (class-abstractp?c)) => Print matches (printout t "The class " (instance-name?c) " is abstract." crlf)) Test for abstract classes

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

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

Examples of applications Ontology engineering and reengineering Jess as macro/scripting for ontologies Importing ontologies Jess as input filter Semantic Web Problem-solving methods Agent frameworks JadeJessProtege

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

Ideas for future work Support for managing Protégé forms Improved GUI Multiple Jess engines Multiple knowledge bases Aspect-oriented functionality (e.g., pointcut for message-handlers)???

Trying JessTab Obtain Protégé 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