Development environments for ontology definition and knowledge modeling
|
|
- Rodger Hubbard
- 6 years ago
- Views:
Transcription
1 Using JessTab to Integrate Protégé and Jess Henrik Eriksson, Linköping University Development environments for ontology definition and knowledge modeling require integration with other types of software for example, to communicate Integration with external systems, such as problem solvers, is becoming increasingly important for ontology development and knowledge-modeling tools. The author s JessTab extension lets you write Jess programs that manage Protégé ontologies and knowledge bases. with and control external programs. External programs must sometimes control a development environment. For example, it is often useful to create programs that perform operations on ontologies or modify a knowledge base in certain ways. We might want to define rules that trigger actions after matching knowledge base patterns, or run a problem-solving method and record the results in a knowledge base. Integrating development environments with other software is a critical factor for using these systems in a range of organizations and a key to widespread acceptance of such environments. Protégé 1 is a popular, modular ontology development and knowledge acquisition tool. It produces output (that is, ontologies and knowledge bases) that other programs can read. Protégé assumes that the system s performance engine runs as a separate program, perhaps on a different platform. This separation is often advantageous because the development and runtime environments are different. Nevertheless, tight integration with the performance engine is sometimes essential. Currently, we can access Protégé knowledge bases using Java and an application-programming interface, but doing so is time consuming. I built a plug-in called JessTab ( ~her/jesstab), which integrates Protégé with Jess, a light, fast rule engine and scripting environment. (See the Background sidebar on page 46 for more detailed information on Jess, Protégé, and the Protégé Axiom Language.) By creating a declarative mapping between these tools knowledge representation schemes, JessTab lets us build knowledge bases in Protégé that work with Jess programs and rule bases. JessTab can also propagate modifications automatically to mapped Protégé instances on Jess. JessTab integration model A Jess engine running inside the Protégé framework is the basis for the JessTab integration model (see Figure 1a). Because Protégé and Jess are implemented in Java, we can run them together in a single Java virtual machine. This approach lets us use Jess as an interactive tool for manipulating Protégé ontologies and knowledge bases. Furthermore, we can propagate changes in Protégé to Jess (for example, by monitoring Protégé events). There are several alternative approaches to integrating systems such as Protégé and Jess. The main considerations are as follows: Information transfer. We can transfer information between systems in different ways. Loosely coupled systems use files to communicate asynchronously. Other systems communicate directly through network connections (such as TCP/IP streams, Corba, and remote method invocation). Tightly coupled systems try to integrate the software (for example, by merging source code). MARCH/APRIL /03/$ IEEE 43 Published by the IEEE Computer Society
2 Protégé (a) Jess (b) Protégé knowledge base Jess fact base JessTab functions Jess engine (c) Protégé knowledge base API Figure 1. Aspects of the JessTab integration model. (a) The Jess engine runs as a Protégé plug-in. (b) JessTab maps instances of the Protégé knowledge base to Jess facts. (c) JessTab provides functions for managing Protégé knowledge bases. Figure 2. A Jess console window as a Protégé tab. Integration modeling. There are different ways to reconcile the knowledge representation models that systems use. Changing or extending them might be necessary. The models employed by frame- and rulebased systems are fundamentally different and are sometimes difficult to bring together. Design considerations. There are several possible design philosophies for integrating systems. For example, a minimalist design tries to make as few changes and extensions as possible, whereas an ambitious approach might try to add functionality beyond the original system features. JessTab integrates the knowledge representation models by mapping Protégé instances to Jess facts (see Figure 1b). This representation of instances as facts in Jess lets us effectively write Jess rules that match instance patterns. In the Protégé frame model, classes, slots, and facets are themselves instances. So, it is sufficient to map Protégé instances to facts. This mapping approach fits well with both the Protégé and Jess models. It also provides limited backward compatibility with Clips, which is a predecessor of Jess implemented in C, because Jess rules can match resulting facts in the same manner Clips rules match objects (see the sidebar for more information). The design philosophy behind JessTab is to make the use of Protégé and Jess seamless that is, the systems should appear tightly integrated to users. However, our goal is not to integrate their source code, because that is impractical: the Protégé and Jess implementers are actively developing their systems and releasing major and minor revisions. The JessTab distribution is a plug-in (Java archive, jar, file) to both Protégé and Jess, which works with a range of Protégé and Jess versions. JessTab does not modify Protégé or Jess. In addition to the mapping between the representation models, JessTab provides a set of additional Jess functions for managing ontologies and knowledge bases (see Figure 1c). JessTab also adds graphical tools to make rapid editing of Jess programs in Protégé easy. JessTab implementation JessTab provides a Jess console window in the Protégé environment (see Figure 2). We can easily switch between the Jess readevaluate-print dialogue and the normal graphical interaction with Protégé. To make Jess development in the Protégé environment easier, JessTab implements graphical inspectors for Jess facts and definitions (rules, functions, defglobals, deftemplates, and deffacts). These inspectors facilitate Jess code navigation and definition editing. In addition to the graphical tools, JessTab extends Jess and Protégé functionality in five areas: It Provides the two functions mapclass and mapinstance that map Protégé knowledge bases consisting of instances to facts in the Jess fact list Adds several functions to Jess that let Jess programs query and manipulate Protégé knowledge bases Implements message handlers and methods for the Protégé frame system, with functionality similar to corresponding Clips features Adds functions that examine and modify the Protégé ontology Mirrors Jess definitions in Protégé knowledge bases; instances represent Jess definitions, such as rules and functions 44 computer.org/intelligent IEEE INTELLIGENT SYSTEMS
3 Mapping Protégé knowledge bases to Jess facts A core component of Protégé Jess integration is the mapping mechanism. This approach makes it possible to mark classes in the ontology for mapping to Jess facts. By using the expression (mapclass <class-name>),we can map all instances of the specified class to Jess facts. The mapclass expression applies to direct and indirect instances for example, instances of subclasses. An alternative to the class-mapping mechanism is to map a specific instance to a fact through the expression (mapinstance <instance>). An important design goal for the JessTab mapping mechanism is letting Jess rules patternmatch on mapped instances. We can then write rules that fire when the appropriate conditions in the Protégé knowledge base are met. For example, mapping the class Person, which has a single instance representing John, age 20, results in a Jess fact with the format (object (is-a Person) (name John ) (age 20)). This fact represents the instance with its slot values for name and age. (I simplified the fact in this example for clarity; the actual fact holds additional information about the instance.) JessTab asserts facts based on a certain pattern (template). The pattern starts with object and always contains the class name and a direct reference to the Protégé object. As the example shows, the instance s slot value pairs are also part of the fact. The mapping mechanism asserts a fact for every instance (of a mapped class). Creating a new instance of the class Person, for example, will result in the assertion of a new fact matching the instance. The motivation for designing this type of mapping to facts is that it lets us define Jess rules that pattern-match on mapped instances in many ways. For example, we can write rules that match instances regardless of their class by using a wild card for the is-a property. The pattern (object (is-a?) (name John )) matches every (mapped) instance that has a slot name with the value John. (The character? represents a wild card in patterns.) In addition to wild-card matching, it is often useful to define rules that match instances of several alternative classes. The mapping ensures that the is-a fact slot contains the unique class name for the instance (as a Jess atom). Fortunately, Jess provides a rich language for rule patterns, which lets us express classes that match in several ways. One approach is to match several alternative classes by enumerating them explicitly. For example, the pattern (object (is-a Person Customer Employee)) matches instances of the Person, Customer, and Employee classes. This type of pattern is especially useful if we want to identify classes in different parts of the ontology. An alternative approach to multiclass matching is to use an expression to define the matching classes. We can use the function superclassp to test if a class is indeed another class s superclass. We can then use rule patterns that match direct and indirect instances of a class for example, (object (is-a Person?c&:(superclassp Person?c)) (name John )). In this case, Jess binds?c to the class name and calls the superclassp function. The motivation for designing this type of mapping to facts is that it lets us define Jess rules that pattern-match on mapped instances in many ways. Mapping from instances to facts is unidirectional because changes to the Jess fact list, such as fact assertions, are not propagated back to the Protégé knowledge base. However, we can make changes to the knowledge base from Jess by calling functions that operate on knowledge base constructs. Knowledge base operations from Jess JessTab provides several functions for retrieving information from Protégé knowledge bases and for modifying them. Functions exist for getting slot values from instances, defining new classes, and instantiating classes. Whenever possible, these functions are compatible with their corresponding Clips counterparts (if any). How can we use JessTab to create Protégé classes and instances from Jess? Just as in Clips, we can use the defclass construct to create a new class and attach slots to it. (Jess also implements an alternative format for defclass. 2 Advanced developers can use this format to specify communication with native Java classes.) The make-instance function lets us create an instance of a specified class in the knowledge base and, optionally, provide initial slot values for it. Using defclass and make-instance, we can experiment with creating instances and then map them to facts. The following example illustrates how we create a Person class and a person instance named John: 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 The mapclass expression marks the Person class as mapped, and it will assert facts of the instances (direct and indirect) of Person. After the mapclass operation, we can check the resulting Jess fact: 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. This fact represents the instance of the class Person we created. In addition to the class name and the slot value pairs, the fact contains a reference to the actual Protégé instance (the Java object representing it). This reference is useful when defining rules that perform operations on the object in the action part. The isa-name value is a string version of the class name, which is useful in some rule patterns. Because the class Person is marked as mapped, changing a Protégé slot value results in a change of the corresponding fact. We use the slot-set function to change the age to 21: 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. When we change a fact property, Jess actually retracts the old fact and asserts a new version of it that is, the fact number changes. This behavior is normal Jess semantics. MARCH/APRIL 2003 computer.org/intelligent 45
4 Background Some background information on the current Protégé implementation ( the complementary Protégé Axiom Language extension, and the Jess language ( and its implementation should help users understand and use the JessTab implementation. Protégé The Protégé tool supports knowledge acquisition and knowledge base development. 1 It is a powerful development and knowledge-modeling tool with an open architecture. Protégé includes an ontology editor and a system for generating and custom-tailoring forms for data entry by domain specialists. The user interface consists of several tabs that provide different views of the knowledge base. For example, tabs exist for ontology editing, form layout, knowledge entry, and knowledge base search. Protégé is implemented as an open-source Java application. An important feature of Protégé is the possibility to extend its functionality through plug-in modules. By defining slotwidget plug-ins, we can extend the functionality of data entry widgets (for example, by implementing new interaction modes). The mechanism for tab-widget plug-ins lets us add new tabs to the Protégé user interface. Developers often use this plug-in application programming interface to implement projectspecific tabs that provide unique views of the knowledge base. The Protégé Java API lets us control the ontology s internal representation. For example, we can create new classes and instances programmatically. Although we can use this API to manage all aspects of the Protégé internal representation, doing so is complicated because of the API s flexible but lowlevel nature. The tool has no performance engine, so we must use procedural Java code to access the API. Protégé Axiom Language PAL is a language for expressing constraints in Protégé knowledge bases. It is based on first-order predicate logic. PAL lets us define constraints that the PAL interpreter can check. Once the knowledge base under development is in a reasonably coherent state, we can invoke the PAL engine to check consistency with respect to the constraints. PAL then reports any constraint violations. PAL is implemented as a tab-widget plug-in to Protégé. The main difference between JessTab and PAL is that JessTab lets us use Jess as a programming language and inference engine. PAL, however, is not a programming language because we cannot use it to define inferences and behaviors. We invoke PAL explicitly to perform constraint checking. The result of this process is a report (rather than a behavior). Unlike Jess, PAL is custom tailored for expressing constraints when checking knowledge bases. Jess and PAL are complementary languages; we can use PAL to test a knowledge base s integrity, whereas we can use Jess to implement operations on the knowledge base. Because Jess is Turing complete, we can use it to implement custom-tailored constraint checkers and programs that modify the knowledge base. Jess Jess 2 is a reimplementation of a subset of Clips 3 in Java. Jess implements some additional functionality not provided by Clips. Like Clips, reasoning in Jess is based on a list of known facts and a set of rules that try to match on these facts in its fact base. Facts are basically a list of known values, such as (temperature outdoor 25), which represents the value 25 for the temperature at the outdoor location. The rules preconditions are patterns with wild cards and conditional expressions, which match such facts. For example, the pattern (temperature??t&:(>?t 20)) matches temperatures greater than 20, while ignoring the location. Rules can assert new facts when they fire, which in turn could result in other rules firing. Jess uses the Rete algorithm to ensure efficient pattern matching and rule activation. Jess supports mainly forward chaining and, to some extent, backward chaining. Integrating Jess with other Java programs is easy because it has a well-defined API for controlling the reasoning engine from Java. For example, Java programs can send expressions to the Jess engine for evaluation. In addition, we can define new Jess functions in Java. The JessTab implementation takes advantage of the Jess API to map information in the Protégé knowledge base to Jess facts and to extend Jess with additional functions for communication with Protégé. References 1. J.H. Gennari et al., The Evolution of Protege: An Environment for Knowledge-Based Systems Development, Int l J. Human Computer Studies, vol. 58, no. 1, 2003, pp E.J. Friedman-Hill, Jess in Action: Java Rule-Based Systems, Manning, CLIPS Reference Manual, Software Technology Branch, Lyndon B. Johnson Space Center, NASA, Creating a second instance adds a new fact to the Jess list of facts: 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. Because the mapping of the class Person is reactive, JessTab asserts a new fact automatically when we create a new instance. We can now write a Jess rule that patternmatches on the facts. The following rule prints the name for every person age 21 or older: 46 computer.org/intelligent IEEE INTELLIGENT SYSTEMS
5 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> This rule format lets us write rules that perform object matching in several different ways. For example, we can write rules with constraints or wildcards for the class name. The action part of the rules can perform reasoning tasks, such as asserting new facts and making changes to slot values. Note that the rules format is similar to the Clips rule format for pattern matching on objects. To actively modify the knowledge base, we need functions for accessing and modifying values in Protégé. The functions slot-get and slot-set let us retrieve and change slot values, respectively. For example, the expression (slot-get sue age) will return the age slot value for the instance sue. The expression (slot-set sue age 23) will set the slot value for age to 23. Continuing this example, we can define a generalized rule that changes the age from 22 to 23 for every person: Jess> (defrule changeage?o <- (object (is-a Person) (age 22)) => (slot-set?o age 23)) TRUE There are also functions for getting and setting facet values (or slot properties). We can use the expressions (facet-get <class-name> <slot-name> <facet-name>) and (facet-set <classname> <slot-name> <facet-name> <new-value>) to access the facets. Message handlers and methods Object-oriented programming is sometimes an alternative or supplement to the rule-based paradigm. JessTab adds support for message passing, message handlers, and generic methods to Jess. You can use the defmessage-handler and defmethod constructs to create object-oriented programs based on Protégé ontologies. Message handlers and methods in JessTab follow the same inheritance model and dispatch model as Clips. For example, the message handler (defmessage-handler Person incrementage (?i) (slot-set?self age (+ (slot-get?self age)?i))) lets us send messages to instances of the Protégé class Person. The expression (send john incrementage 1) sends the incrementage message to the john instance. In this case, the message handler then adds 1 to the value of the slot age of the instance john. Methods are similar to message handlers in that they let us define behavior for instances. However, the method dispatcher can consider several parameters, and the methods can overload existing functions. For example, the method (defmethod >= ((?p Person) (?q Person)) (>= (slot-get?p age) (slot-get?q age))) Although the Clips legacy facilitates the Protégé and Jess integration, it results in somewhat inconsistent functionality and syntax. overloads the built-in Jess function >= and lets us compare Person instances on the basis of their age. You can use expressions such as (>= john sue) to compare people s ages. Hence, the message handlers and methods complement the mapping of instances to facts by providing elements for object-oriented programming. Clips heritage An important consideration for JessTab design is the Clips heritage. JessTab tries to be compatible with Clips whenever possible. In some cases, compatibility is not possible because of differences between Clips and Jess and differences between the Clips and Protégé object models. Although the Clips legacy facilitates the Protégé and Jess integration, it results in somewhat inconsistent functionality and syntax. For example, the naming of certain functions, such as get-defclass-list and classsubclasses, is inconsistent. Complete source code compatibility was never JessTab s goal. The JessTab additions to Jess aim at close resemblance to make it easy for Clips developers to start using Protégé and JessTab and to facilitate porting Clips code. Ontology integration JessTab lets Jess programs integrate with Protégé ontologies. There are several ways in which Jess programs can examine and manipulate ontologies. Let us consider four aspects briefly: Ontology reflection. Jess programs can reflect on the makeup of Protégé ontologies. Built-in functions, such as class-subclasses, can discover an ontology s structure. These functions let us develop Jess programs that analyze ontologies. Metalevel objects. Protégé provides advanced support for metalevel objects. 3 For example, classes are instances of metaclasses. Slots and facets are instances as well. JessTab supports these metalevel objects by letting programs create new classes by instantiating a metaclass (for example, with the make-instance function). Mapping metaclasses. Because classes behave as instances (of a metaclass) in most aspects, we can map them to facts just as regular instances. Thus, by mapping classes to facts, we can apply Jess rules to Protégé classes. For example, we can write rules that pattern-match certain classes in a large ontology and modify them. Definition mirroring. JessTab mirrors Jess definitions in the Protégé ontology. For example, Jess defrules are mirrored as an instance of the system class :JESS-RULE in Protégé. These mirror instances contain a textual representation of the Jess definition (that is, the source code). Thus, Jess programs can examine their own structure by inspecting the mirror instances (for example, by mapping them to facts and applying rules). Furthermore, we can save these mirror instances together with the rest of the knowledge base and reinsert them during reload from files. Metalevel objects in Protégé fit well with Jess. (Note that Clips does not support metaclasses or other metalevel objects at all.) JessTab lets Jess programs inspect and modify ontologies just like instances, which result in a superior expressive power for rules operating on the ontology. Ontology reflection Jess programs can reflect the structure of MARCH/APRIL 2003 computer.org/intelligent 47
6 Protégé ontologies. Functions such as classsubclasses and class-slots return information about the ontology s structure. Programs that analyze ontologies can then use this information to discover ontology properties and to draw conclusions from the ontologies. Examples of such analysis tasks are searching for certain patterns, detecting inconsistencies, and generating reports. These basic reflection functions are similar to the ones Clips provides. In JessTab, however, programmers get direct access to the ontology as it evolves in the editor. In addition to the basic reflection functions, JessTab provides a means for advanced reflection. Metalevel objects Protégé provides advanced support for metalevel objects. 3 Every class has a metaclass, and every slot has a metaslot. Protégé users can create custom metaclasses by extending the standard metaclass (:STANDARD-CLASS). Custom metaclasses can contain additional slots, which result in new class properties and new fields on the class-editor form. The metalevel objects in Protégé are not only useful for extending the ontology editor, they are also the basis for ontology reflection and modification. Examining and manipulating such metalevel objects is a powerful tool for ontology management. We can handle classes as regular instances in Jess and apply functions for manipulating instances to classes. For example, instantiating a metaclass is equivalent to creating a regular class. The expression (make-instance A of :STANDARD-CLASS (:DIRECT-SUPERCLASSES :THING)) creates a new Protégé class A, which is a subclass of :THING. By setting the value of the :DIRECT-TEMPLATE-SLOT slot of the class, we can attach slots to the class. The expression (slot-set A :DIRECT-TEMPLATE-SLOTS (create$ (instance-address :NAME))) sets the slots for the class A. The slot list now consists of the (predefined) slot :NAME. Thus, we can view the defclass function as syntactical sugar for the standard metaclass instantiation. Jess can essentially perform all the ontology operations available from the Protégé GUI by manipulating metalevel objects. This functionality lets us use Jess as a scripting language for supporting ontology development. For example, such Jess scripts can create, modify, and move sets of classes in large ontologies. The major advantages of using Jess over Java are that we can develop and test programs quickly (through the interactive Jess console) and that we can use the Jess rule engine to write declarative programs for managing ontologies. As I mentioned previously, another way of using JessTab is to use it as the basis for a problem solver, which could then operate directly on metalevel objects. Mapping metaclasses The Protégé metaobject model and the Jess- Tab support for handling classes as instances apply to the JessTab mapping functions. Jess- The metalevel objects in Protégé are not only useful for extending the ontology editor, they are also the basis for ontology reflection and modification. Tab can map instances of Protégé metaclasses to facts just as it maps regular instances to facts. This functionality lets us map class definitions that is, instances of metaclasses to facts. The expression (mapclass :STANDARD-CLASS) maps all classes to facts. Now we can write Jess rules that patternmatch metaobject values. For example, the following Jess code prints out all abstract classes in the ontology: Jess> (mapclass :STANDARD-CLASS) :STANDARD-CLASS Jess> (defrule print-abstract (object (:NAME?n) (:ROLE Abstract)) => (printout t?n is abstract. crlf)) TRUE Jess> (run) The left-hand side of this rule matches classes (metaclass instances) where the value of the :ROLE slot is Abstract. In the same way, we can pattern-match other system classes, such as slots and facets, using the same approach. For example, we can print out all slots with a certain value type. Another application is to modify the ontology (or the instances) in rule conclusions. For example, the following rule changes the role to abstract for classes that have subclasses but do not have any instances: Jess> (defrule make-abstract?c <- (object (:NAME?n) (:ROLE Concrete) (:DIRECT-INSTANCES)) (not (object (:NAME?n) (:DIRECT-SUBCLASSES))) => (slot-set?c :ROLE Abstract)) The left-hand side of this rule matches classes where the value of the :ROLE slot is Concrete :DIRECT-INSTANCES slot is an empty list :DIRECT-SUBCLASSES slot is not an empty list Mapping system classes lets the Jess program examine the ontology declaratively through the list of facts rather than function calls such as class-abstractp, slot-get, and facet-get. Protégé s metaobject protocol is suitable for this task because we can view classes, slots, and facets as regular instances and firstclass citizens. Definition mirroring JessTab adds the mirroring of Jess definitions in Protégé ontologies and knowledge bases. This mirroring is a reflective mapping from Jess to Protégé. During initialization, JessTab adds Jess-related system classes to Protégé. Jess constructs such as defrule and deffunction have corresponding system classes (:JESS-RULE, :JESS-FUNCTION, and so on). Figure 3 shows the system classes added by JessTab. Instances of these classes represent actual definitions in Jess. For example, when we define a Jess rule, JessTab will automatically create a corresponding instance of the class :JESS-RULE. Several advantages exist for mirroring Jess definitions in Protégé. Because the instances representing Jess definitions are regular Protégé instances, we can edit them using forms. Figure 4 shows the form for an instance of a Jess rule in Protégé. Furthermore, we can map these instances to Jess facts in the same way we map other instances. Thus, this functionality lets us write Jess programs that examine themselves. 48 computer.org/intelligent IEEE INTELLIGENT SYSTEMS
7 Regular instances can refer to Jess definition instances. For example, a form for knowledge entry in Protégé can refer to a Jess rule or a list of Jess rules. By following the link to the rule instance, the user can edit the rule in the rule-definition field (see Figure 4). Clicking on the Parse! button in the rule editor results in redefinition of the construct in the Jess engine. Another advantage of mirroring definitions is that this approach lets Protégé save the Jess definition instances together with other instances in the knowledge base. Reloading the project will result in reloading these instances into Protégé. Once the Jess definition instances reload, defining them in the Jess engine is possible. Discussion During the course of development, both the user and developer communities broadened Protégé s scope from an environment that mainly supported knowledge acquisition from domain experts (by generating knowledge acquisition tools) to a general tool for ontology and knowledge base development with an open architecture. 1 The advantage of today s Protégé is the combined power of the plug-in components and the ability to tailor the environment by developing custom components. A practical goal is for JessTab to be a useful tool for projects originating from both the Protégé and Jess communities. For the Protégé user, the JessTab extension adds a performance engine to Protégé and support for a declarative mapping between Protégé and Jess. For the Jess developer, JessTab makes it possible to take advantage of Protégé as a graphical development environment and use third-party plug-ins (tabs) added to Protégé. A development tool and a performance system working together is a powerful combination, and one we can use in several ways. Combining graphical environments and reasoners is not a new approach. In the mid-1980s, hybrid tools such as KEE featured graphical development environments. These tools, however, did not have the richness and flexibility of current knowledge-modeling tools, and they lacked the suppleness of the Java-based Jess engine. JessTab lets us use the performance system for ontology and knowledge base development (for example, using Jess to query and modify ontologies). There are also recent tools that have performance counterparts, such as OntoEdit (which uses Ontobroker 4 ), Web- ODE, 5 WebOnto, 6 and Ontosaurus 7 (which uses Loom). Figure 3. Jess system classes in Protégé. Figure 4. A Jess rule as a Protégé instance. This instance represents the rule print-abstract. The instance form serves as a rule editor. Defining the requirements for JessTab is not an obvious task. A major technical challenge for designing, developing, and maintaining JessTab is that it combines two systems, both of which are under active and sometimes experimental development. They MARCH/APRIL 2003 computer.org/intelligent 49
8 are two separate moving targets. In addition to this dynamic software environment, there are emerging user communities. The Jess and Protégé user communities consist mainly of researchers and developers who are designing their own systems. Our goal is to make future JessTab requirement specification and development a community process as much as possible. We welcome requests for additional functionality, and we invite others to extend the system by encouraging source code development. Generalizing the JessTab approach beyond Jess is an interesting prospect. Currently, JessTab serves as an example of how you can integrate programming languages, expertsystem shells, and other performance engines with Protégé. Although the mapping from Protégé instances to facts is Jess-specific, we can mirror structures in Protégé to other systems. From a communication perspective, integrating systems implemented in Java, the same programming language that Protégé uses, is relatively straightforward. (Examples of such integrated Protégé plug-ins are JessTab, PrologTab, and the Algernon reasoner.) However, we can achieve integration with systems running in other environments through Corba or native interfaces. (Examples of Protégé tabs that take advantage of this approach are the OntoViz, OIL, and Flora tabs.) Although appealing, a generalized tab for any programming language beyond a simple console window is difficult to achieve because of the differences in communication and representation formats. One major advantage of the Protégé Jess combination is that we can use other Protégé plug-ins and other Jess extensions and interfaces. For example, Jess and JessTab let us use Protégé for development of software agents. The Java Agent Development Framework 8 (JADE) can communicate with Jess, which in turn communicates with Protégé using JessTab. Using this approach, you can get Protégé ontology support for JADE agents by using Jess rules. Jess rules can create Protégé instances based on messages from agents. Furthermore, Jess rules can create and send agent messages based on the content of Protégé knowledge bases. Another possibility is using Protégé and Jess to develop Semantic Web applications. 9 Protégé supports encoding ontologies in the resource description framework (RDF) format. Thus, Jess can operate on such ontologies through JessTab. Used in this fashion, the Protégé Jess combination is a building block for the Semantic Web. The current users of JessTab range from ontology maintainers to agent-based systems developers. For example, developers use JessTab for Web data mining, medical advisory systems, and implementation of problemsolving methods. Currently, there are several hundred JessTab users, most of whom are researchers and developers working on advanced projects with specific goals. They use Protégé and Jess as building blocks in their systems, and they often extend Protégé and Jess for instance, by developing custom-tailored plug-ins. Some developers use Protégé and Jess as rapid-prototyping tools; they prefer reimplementing their production systems in a different environment (for example, for interoperability and performance reasons). The JessTab project contributes to the understanding of how ontology editors and performance systems can work together. This understanding includes the mapping from the Protégé knowledge representation to the Jess representation and the use of Jess definitions as system classes in Protégé ontologies. In practice, JessTab contributes to the Protégé community by enabling the use of Jess under Protégé. JessTab also supports the Jess community by allowing the use of Protégé as an object-oriented extension to Jess and by providing a tool for using Protégé as a graphical front end to Jess. JessTab is a solid basis for further development of the Protégé Jess integration. Examples of such potential integration projects are the representation of Jess problem solvers in ontologies and detailed modeling of Jess definitions (such as rules) in knowledge bases. Furthermore, the JessTab approach is a road map for integrating Protégé and other performance systems. Acknowledgments The JessTab user community contributed to this article with testing, bug reports, and suggestions for further improvements. Ray Fergerson and Ernest Friedman-Hill provided Protégé and Jess support, respectively. Samson Tu provided valuable insights in the problem of transferring information from Protégé and Jess via Java. Vinnova supported this work in part under grant , project P A. T h e A u t h o r Henrik Eriksson is a professor of computer science at Linköping University. He has a PhD in computer science from Linköping University. His research interests include knowledge-based systems, knowledge acquisition, reusable problem-solving methods, the Semantic Web, medical informatics, and ubiquitous computing. Contact him at the Dept. of Computer and Information Science, Linköping Univ., S Linköping, Sweden; her@ida.liu.se. References 1. J.H. Gennari et al., The Evolution of Protege: An Environment for Knowledge-Based Systems Development, Int l J. Human Computer Studies, vol. 58, no. 1, 2003, pp E.J. Friedman-Hill, Jess in Action: Java Rule- Based Systems, Manning, H. Eriksson et al., Automatic Generation of Ontology Editors, Proc. 12th Workshop Knowledge Acquisition, Modeling, and Management, Univ. Calgary, 1999, pp S. Decker, Ontobroker: Ontology Based Access to Distributed and Semi-structured Information, Proc. DS-8: Semantic Issues in Multimedia Systems, Kluwer, 1999, pp J.C. Arpirez et al., WebODE: A Workbench for Ontological Engineering, Proc. 1st Int l Conf. Knowledge Capture (K-CAP 2001), ACM Press, 2001, pp E. Motta, S. Buckingham Shum, and J. Domingue, Ontology-Driven Document Enrichment: Principles, Tools and Applications, Int l J. Human Computer Studies, vol. 52, no. 6, 2000, pp W. Swartout et al., Toward Distributed Use of Large-Scale Ontologies, Proc. 10th Banff Knowledge Acquisition for Knowledge-Based Systems Workshop, Univ. Calgary, 1996, pp ; KAW96/swartout/Banff_96_final_2.html. 8. F. Bellifemine, A. Poggi, and G. Rimassa, Developing Multi-Agent Systems with a FIPA-Compliant Agent Framework, Software: Practice and Experience, vol. 31, no. 2, 2001, pp T. Berners-Lee, J. Hendler, and O. Lassila, The Semantic Web, Scientific American, vol. 284, no. 5, May 2001, pp For more information on this or any other computing topic, visit our Digital Library at computer.org/publications/dlib. 50 computer.org/intelligent IEEE INTELLIGENT SYSTEMS
JessTab Manual. Integration of Protégé and Jess. Henrik Eriksson. Linköping University.
February 10, 2003 JessTab Manual Integration of Protégé and Jess Henrik Eriksson Linköping University her@ida.liu.se Note: Read the installation instructions before attempting to install JessTab. Introduction
More informationAn Annotation Tool for Semantic Documents
An Annotation Tool for Semantic Documents (System Description) Henrik Eriksson Dept. of Computer and Information Science Linköping University SE-581 83 Linköping, Sweden her@ida.liu.se Abstract. Document
More informationProtégé Plug-in Library: A Task-Oriented Tour
Protégé Plug-in Library: A Task-Oriented Tour Tutorial at Seventh International Protégé Conference Bethesda MD, July 6 2004 Samson Tu and Jennifer Vendetti Stanford Medical Informatics Stanford University
More informationProtégé-2000: A Flexible and Extensible Ontology-Editing Environment
Protégé-2000: A Flexible and Extensible Ontology-Editing Environment Natalya F. Noy, Monica Crubézy, Ray W. Fergerson, Samson Tu, Mark A. Musen Stanford Medical Informatics Stanford University Stanford,
More informationStructured Knowledge Representation
Intelligent Systems: Reasoning and Recognition James L. Crowley ENSIMAG 2 / MoSIG M1 Second Semester 2015/2016 Lesson 17 15 April 2016 Structured Knowledge Representation Object Oriented Programming...2
More informationAUTOMATIC GRAPHIC USER INTERFACE GENERATION FOR VTK
AUTOMATIC GRAPHIC USER INTERFACE GENERATION FOR VTK Wilfrid Lefer LIUPPA - Université de Pau B.P. 1155, 64013 Pau, France e-mail: wilfrid.lefer@univ-pau.fr ABSTRACT VTK (The Visualization Toolkit) has
More informationDevelopment of an Ontology-Based Portal for Digital Archive Services
Development of an Ontology-Based Portal for Digital Archive Services Ching-Long Yeh Department of Computer Science and Engineering Tatung University 40 Chungshan N. Rd. 3rd Sec. Taipei, 104, Taiwan chingyeh@cse.ttu.edu.tw
More informationPerformance Evaluation of Semantic Registries: OWLJessKB and instancestore
Service Oriented Computing and Applications manuscript No. (will be inserted by the editor) Performance Evaluation of Semantic Registries: OWLJessKB and instancestore Simone A. Ludwig 1, Omer F. Rana 2
More informationThe onprom Toolchain for Extracting Business Process Logs using Ontology-based Data Access
The onprom Toolchain for Extracting Business Process Logs using Ontology-based Data Access Diego Calvanese, Tahir Emre Kalayci, Marco Montali, and Ario Santoso KRDB Research Centre for Knowledge and Data
More informationMethodologies, Tools and Languages. Where is the Meeting Point?
Methodologies, Tools and Languages. Where is the Meeting Point? Asunción Gómez-Pérez Mariano Fernández-López Oscar Corcho Artificial Intelligence Laboratory Technical University of Madrid (UPM) Spain Index
More informationNew Approach to Graph Databases
Paper PP05 New Approach to Graph Databases Anna Berg, Capish, Malmö, Sweden Henrik Drews, Capish, Malmö, Sweden Catharina Dahlbo, Capish, Malmö, Sweden ABSTRACT Graph databases have, during the past few
More informationIntelligent Systems: Reasoning and Recognition. Rule based programming - Introduction to CLIPS 6.0
Intelligent Systems: Reasoning and Recognition James L. Crowley ENSIMAG 2 / MoSIG M1 Second Semester 2010/2011 Lesson 5 16 February 2011 Rule based programming - Introduction to CLIPS 6.0 Production Systems...2
More informationThe Semantic Web & Ontologies
The Semantic Web & Ontologies Kwenton Bellette The semantic web is an extension of the current web that will allow users to find, share and combine information more easily (Berners-Lee, 2001, p.34) This
More informationCreating Ontology Chart Using Economy Domain Ontologies
Creating Ontology Chart Using Economy Domain Ontologies Waralak V. Siricharoen *1, Thitima Puttitanun *2 *1, Corresponding author School of Science, University of the Thai Chamber of Commerce, 126/1, Dindeang,
More informationContributions to the Study of Semantic Interoperability in Multi-Agent Environments - An Ontology Based Approach
Int. J. of Computers, Communications & Control, ISSN 1841-9836, E-ISSN 1841-9844 Vol. V (2010), No. 5, pp. 946-952 Contributions to the Study of Semantic Interoperability in Multi-Agent Environments -
More informationInteroperability of Protégé 2.0 beta and OilEd 3.5 in the Domain Knowledge of Osteoporosis
EXPERIMENT: Interoperability of Protégé 2.0 beta and OilEd 3.5 in the Domain Knowledge of Osteoporosis Franz Calvo, MD fcalvo@u.washington.edu and John H. Gennari, PhD gennari@u.washington.edu Department
More information3.4 Data-Centric workflow
3.4 Data-Centric workflow One of the most important activities in a S-DWH environment is represented by data integration of different and heterogeneous sources. The process of extract, transform, and load
More informationAn Evaluation of Geo-Ontology Representation Languages for Supporting Web Retrieval of Geographical Information
An Evaluation of Geo-Ontology Representation Languages for Supporting Web Retrieval of Geographical Information P. Smart, A.I. Abdelmoty and C.B. Jones School of Computer Science, Cardiff University, Cardiff,
More informationWHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG
WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES Christian de Sainte Marie ILOG Introduction We are interested in the topic of communicating policy decisions to other parties, and, more generally,
More informationTowards the Semantic Grid: Putting Knowledge to Work in Design Optimisation
Towards the Semantic Grid: Putting Knowledge to Work in Design Optimisation Feng Tao, Liming Chen, Nigel Shadbolt Department of Electronics and Computer Science, University of Southampton, UK {ft,lc,nrs}@ecs.soton.ac.uk
More informationKnowledge and Ontological Engineering: Directions for the Semantic Web
Knowledge and Ontological Engineering: Directions for the Semantic Web Dana Vaughn and David J. Russomanno Department of Electrical and Computer Engineering The University of Memphis Memphis, TN 38152
More informationManaging Learning Objects in Large Scale Courseware Authoring Studio 1
Managing Learning Objects in Large Scale Courseware Authoring Studio 1 Ivo Marinchev, Ivo Hristov Institute of Information Technologies Bulgarian Academy of Sciences, Acad. G. Bonchev Str. Block 29A, Sofia
More informationFedX: A Federation Layer for Distributed Query Processing on Linked Open Data
FedX: A Federation Layer for Distributed Query Processing on Linked Open Data Andreas Schwarte 1, Peter Haase 1,KatjaHose 2, Ralf Schenkel 2, and Michael Schmidt 1 1 fluid Operations AG, Walldorf, Germany
More informationCommon Lisp Object System Specification. 1. Programmer Interface Concepts
Common Lisp Object System Specification 1. Programmer Interface Concepts Authors: Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon. Draft Dated:
More informationSimile Tools Workshop Summary MacKenzie Smith, MIT Libraries
Simile Tools Workshop Summary MacKenzie Smith, MIT Libraries Intro On June 10 th and 11 th, 2010 a group of Simile Exhibit users, software developers and architects met in Washington D.C. to discuss the
More informationOntology Visualization
Ontology Visualization 10 th International Protégé Conference July 15, 2007, 11:00 12:30PM CEST Jennifer Vendetti, Stanford University 1 What is the graph widget? Allows visual editing of instances and
More informationLupin: from Web Services to Web-based Problem Solving Environments
Lupin: from Web Services to Web-based Problem Solving Environments K. Li, M. Sakai, Y. Morizane, M. Kono, and M.-T.Noda Dept. of Computer Science, Ehime University Abstract The research of powerful Problem
More informationISO Templates. Building a rich ontology on the basis of ISO Part 2
ISO 15926 Templates Building a rich ontology on the basis of ISO 15926 Part 2 Johan W. Klüwer ISO 15926 and Semantic Web technologies, Sogndal, September 12, 2008 Current practice and tools I: RDE Reference
More informationBLU AGE 2009 Edition Agile Model Transformation
BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation
More information2. Reasons for implementing clos-unit
A CLOS Implementation of the JUnit Testing Framework Architecture: A Case Study Sandro Pedrazzini Canoo Engineering AG sandro.pedrazzini@canoo.com Abstract There are different reasons why you would like
More informationNew Programming Paradigms
New Programming Paradigms Lecturer: Pánovics János (google the name for further details) Requirements: For signature: classroom work and a 15-minute presentation Exam: written exam (mainly concepts and
More informationMETADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE
UDC:681.324 Review paper METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE Alma Butkovi Tomac Nagravision Kudelski group, Cheseaux / Lausanne alma.butkovictomac@nagra.com Dražen Tomac Cambridge Technology
More informationSWRL RULE EDITOR: A WEB APPLICATION AS RICH AS DESKTOP BUSINESS RULE EDITORS
SWRL RULE EDITOR: A WEB APPLICATION AS RICH AS DESKTOP BUSINESS RULE EDITORS João Paulo Orlando 1, Adriano Rívolli 1, Saeed Hassanpour 2, Martin J. O'Connor 2, Amar Das 2, and Dilvan A. Moreira 1 1 Dept.
More informationDefining an Abstract Core Production Rule System
WORKING PAPER!! DRAFT, e.g., lacks most references!! Version of December 19, 2005 Defining an Abstract Core Production Rule System Benjamin Grosof Massachusetts Institute of Technology, Sloan School of
More informationAdaptable and Adaptive Web Information Systems. Lecture 1: Introduction
Adaptable and Adaptive Web Information Systems School of Computer Science and Information Systems Birkbeck College University of London Lecture 1: Introduction George Magoulas gmagoulas@dcs.bbk.ac.uk October
More informationA WEB-BASED TOOLKIT FOR LARGE-SCALE ONTOLOGIES
A WEB-BASED TOOLKIT FOR LARGE-SCALE ONTOLOGIES 1 Yuxin Mao 1 School of Computer and Information Engineering, Zhejiang Gongshang University, Hangzhou 310018, P.R. China E-mail: 1 maoyuxin@zjgsu.edu.cn ABSTRACT
More informationAn Ontology-Based Intelligent Information System for Urbanism and Civil Engineering Data
Ontologies for urban development: conceptual models for practitioners An Ontology-Based Intelligent Information System for Urbanism and Civil Engineering Data Stefan Trausan-Matu 1,2 and Anca Neacsu 1
More informationRule System Interoperability on the Semantic Web with SWRL
Rule System Interoperability on the Semantic Web with SWRL Martin O Connor 1, Holger Knublauch 1, Samson Tu 1, Benjamin Grosof 2, Mike Dean 3, William Grosso 4, Mark Musen 1 1 Stanford Medical Informatics,
More informationDeep Integration of Scripting Languages and Semantic Web Technologies
Deep Integration of Scripting Languages and Semantic Web Technologies Denny Vrandečić Institute AIFB, University of Karlsruhe, Germany denny@aifb.uni-karlsruhe.de Abstract. Python reached out to a wide
More informationFramework for Collaborative Structural Analysis Software Development. Jun Peng and Kincho H. Law Stanford University
The ASCE Structural Congress & Exposition, Philadelphia, PA, USA, May 5-7, 2000. Framework for Collaborative Structural Analysis Software Development Jun Peng and Kincho H. Law Stanford University Abstract
More informationSoftware Synthesis from Dataflow Models for G and LabVIEW
Software Synthesis from Dataflow Models for G and LabVIEW Hugo A. Andrade Scott Kovner Department of Electrical and Computer Engineering University of Texas at Austin Austin, TX 78712 andrade@mail.utexas.edu
More informationExam in TDDB84: Design Patterns,
Exam in TDDB84: Design Patterns, 2014-10-24 14-18 Information Observe the following, or risk subtraction of points: 1) Write only the answer to one task on one sheet. Use only the front side of the sheets
More informationCollaborative Ontology Construction using Template-based Wiki for Semantic Web Applications
2009 International Conference on Computer Engineering and Technology Collaborative Ontology Construction using Template-based Wiki for Semantic Web Applications Sung-Kooc Lim Information and Communications
More informationXML ALONE IS NOT SUFFICIENT FOR EFFECTIVE WEBEDI
Chapter 18 XML ALONE IS NOT SUFFICIENT FOR EFFECTIVE WEBEDI Fábio Ghignatti Beckenkamp and Wolfgang Pree Abstract: Key words: WebEDI relies on the Internet infrastructure for exchanging documents among
More informationOntology Development. Qing He
A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far Ontology Development Qing He 1 Why develop an ontology? In recent years the development of ontologies
More informationProtégé: Past, Present, and Future. Ray Fergerson Stanford
Protégé: Past, Present, and Future Ray Fergerson Stanford Past Ancient History (1985-1997) Mark Musen s Thesis Protégé-II, Protégé/Win Workshops 1-2 Modern Era (1997-2003) Protégé in Java Workshops 3-6
More informationCHAPTER 4: ARCHITECTURE AND SYSTEM DESIGN OF PROPOSED EXPERT SYSTEM: ESOA
CHAPTER 4: ARCHITECTURE AND SYSTEM DESIGN OF PROPOSED EXPERT SYSTEM: ESOA Pages: From 49 to 64 This chapter presents the Architecture, frameworf^and system design of the we6-6ased expert system. This chapter
More informationOntology-Specific API for a Curricula Management System
Ontology-Specific API for a Curricula Management System Adelina Tang Dept. of Computer Science & Networked Systems Sunway University Petaling Jaya, Malaysia adelina.tang@ieee.org Jason Hoh Dept. of Computer
More informationUsing ESML in a Semantic Web Approach for Improved Earth Science Data Usability
Using in a Semantic Web Approach for Improved Earth Science Data Usability Rahul Ramachandran, Helen Conover, Sunil Movva and Sara Graves Information Technology and Systems Center University of Alabama
More informationIntelligent Systems: Reasoning and Recognition. Rule based programming - Forward chaining
Intelligent Systems: Reasoning and Recognition James L. Crowley ENSIMAG 2 / MoSIG M1 Second Semester 2015/2016 Lesson 13 1 April 2016 Rule based programming - Forward chaining Production Systems...2 Production
More informationIntegrating Ontologies into Distributed Multi-Agent System
Integrating Ontologies into Distributed Multi-Agent System Khaoula ADDAKIRI Department of Mathematics and Computer Science Université Hassan 1 er, FSTS, LABO LITEN Settat, Morocco Mohamed BAHAJ Department
More informationR&D White Paper WHP 018. The DVB MHP Internet Access profile. Research & Development BRITISH BROADCASTING CORPORATION. January J.C.
R&D White Paper WHP 018 January 2002 The DVB MHP Internet Access profile J.C. Newell Research & Development BRITISH BROADCASTING CORPORATION BBC Research & Development White Paper WHP 018 Title J.C. Newell
More informationOntology Visualization
Ontology Visualization 9 th International Protégé Conference Jennifer Vendetti, Stanford University What is the graph widget? Allows visual editing of instances and relationships between instances Alternative
More informationAdaptive Personal Information Environment based on the Semantic Web
Adaptive Personal Information Environment based on the Semantic Web Thanyalak Maneewatthana, Gary Wills, Wendy Hall Intelligence, Agents, Multimedia Group School of Electronics and Computer Science University
More informationJava Learning Object Ontology
Java Learning Object Ontology Ming-Che Lee, Ding Yen Ye & Tzone I Wang Laboratory of Intelligent Network Applications Department of Engineering Science National Chung Kung University Taiwan limingche@hotmail.com,
More informationNews in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017
News in RSA-RTE 10.1 updated for sprint 2017.46 Mattias Mohlin, November 2017 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10
More informationUsing a waiting protocol to separate concerns in the mutual exclusion problem
Using a waiting protocol to separate concerns in the mutual exclusion problem Frode V. Fjeld frodef@cs.uit.no Department of Computer Science, University of Tromsø Technical Report 2003-46 November 21,
More informationPractical Experiences in Developing Ontology-Based Multi-Agent System
Practical Experiences in Developing Ontology-Based Multi- System Jarmo Korhonen Software Business and Engineering Institute, Helsinki University of Technology, Jarmo.Korhonen@hut.fi Pekka Isto Industrial
More informationApplying UML Modeling and MDA to Real-Time Software Development
Michael Benkel Aonix GmbH www.aonix.de michael.benkel@aonix.de Applying UML Modeling and MDA to Real-Time Software Development The growing complexity of embedded real-time applications requires presentation
More informationDesign Patterns for Description-Driven Systems
Design Patterns for Description-Driven Systems N. Baker 3, A. Bazan 1, G. Chevenier 2, Z. Kovacs 3, T Le Flour 1, J-M Le Goff 4, R. McClatchey 3 & S Murray 1 1 LAPP, IN2P3, Annecy-le-Vieux, France 2 HEP
More informationInsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse
InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse Arjan Seesing and Alessandro Orso College of Computing Georgia Institute of Technology a.c.seesing@ewi.tudelft.nl,
More informationmodel (ontology) and every DRS and CMS server has a well-known address (IP and port).
7 Implementation In this chapter we describe the Decentralized Reasoning Service (DRS), a prototype service implementation that performs the cooperative reasoning process presented before. We present also
More informationModels in Conflict Towards a Semantically Enhanced Version Control System for Models
Models in Conflict Towards a Semantically Enhanced ersion Control System for Models Kerstin Altmanninger Department of Telecooperation, Johannes Kepler University Linz, Austria kerstin.altmanninger@jku.at
More informationInheritance (Chapter 7)
Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance
More informationOntology-Based Configuration of Construction Processes Using Process Patterns
Ontology-Based Configuration of Construction Processes Using Process Patterns A. Benevolenskiy, P. Katranuschkov & R.J. Scherer Dresden University of Technology, Germany Alexander.Benevolenskiy@tu-dresden.de
More informationAutomating Instance Migration in Response to Ontology Evolution
Automating Instance Migration in Response to Ontology Evolution Mark Fischer 1, Juergen Dingel 1, Maged Elaasar 2, Steven Shaw 3 1 Queen s University, {fischer,dingel}@cs.queensu.ca 2 Carleton University,
More informationJess: A Production System Language Agent Based Virtual Worlds
Jess: A Production System Language 4.209 Agent Based Virtual Worlds Jess Knowledge Base A rule-based system maintains a collection of knowledge nuggets called facts. This collection is known as the knowledge
More informationA SEMANTIC MATCHMAKER SERVICE ON THE GRID
DERI DIGITAL ENTERPRISE RESEARCH INSTITUTE A SEMANTIC MATCHMAKER SERVICE ON THE GRID Andreas Harth Yu He Hongsuda Tangmunarunkit Stefan Decker Carl Kesselman DERI TECHNICAL REPORT 2004-05-18 MAY 2004 DERI
More informationCHAPTER 7 JAVA AGENT DEVELOPMENT ENVIRONMENT
CHAPTER 7 JAVA AGENT DEVELOPMENT ENVIRONMENT 159 Chapter 7 Java Agent Development Environment For more enhanced information resources it requires that the information system is distributed in a network
More informationA Mechanism for Runtime Evolution of Objects
A Mechanism for Runtime Evolution of Objects Yasuhiro Sugiyama Department of Computer Science Nihon University Koriyama, Japan sugiyama@ce.nihon-u.ac.jp 1. Runtime Version Management of Objects for Software
More informationASSOCIATIVE NETS AND FRAME SYSTEMS
ASSOCIATIVE NETS AND FRAME SYSTEMS Network Representations If L is a set of labeled links and N is a set of nodes, then a network is any subset of N L N, where the order of the triples is material. Lecture
More informationExtracting knowledge from Ontology using Jena for Semantic Web
Extracting knowledge from Ontology using Jena for Semantic Web Ayesha Ameen I.T Department Deccan College of Engineering and Technology Hyderabad A.P, India ameenayesha@gmail.com Khaleel Ur Rahman Khan
More informationIG-JADE-PKSlib. An Agent Based Framework for Advanced Web Service Composition and Provisioning. Erick Martínez & Yves Lespérance
IG-JADE-PKSlib An Agent Based Framework for Advanced Web Service Composition and Provisioning Erick Martínez & Yves Lespérance Department of Computer Science York University Toronto, Canada 1 Motivation
More informationManaging Agent Platforms with AgentSNMP
Managing Agent Platforms with AgentSNMP Brian D. Remick, Robert R. Kessler University of Utah, 50 S. Campus Drive, Salt Lake City, UT 84104 { remick, kessler } @cs.utah.edu Abstract. Management of agent
More informationCourse Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::
Module Title Duration : Intro to JAVA SE7 and Programming using JAVA SE7 : 9 days Course Description The Java SE 7 Fundamentals course was designed to enable students with little or no programming experience
More informationThe Model-Driven Semantic Web Emerging Standards & Technologies
The Model-Driven Semantic Web Emerging Standards & Technologies Elisa Kendall Sandpiper Software March 24, 2005 1 Model Driven Architecture (MDA ) Insulates business applications from technology evolution,
More informationA Java-based Computer Simulator and its Applications
A Java-based Computer Simulator and its Applications John K. Estell Bluffton College Session 2220 Abstract This paper describes a learning philosophy for computer science that is based on having students
More informationAn Introduction to Software Architecture. David Garlan & Mary Shaw 94
An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data
More informationAn Architecture for Semantic Enterprise Application Integration Standards
An Architecture for Semantic Enterprise Application Integration Standards Nenad Anicic 1, 2, Nenad Ivezic 1, Albert Jones 1 1 National Institute of Standards and Technology, 100 Bureau Drive Gaithersburg,
More information2AIT503 - EXPERT SYSTEMS. Lecture 4: Representing Facts and Writing Rules. Dr Dimitris C. Dracopoulos
2AIT503 - EXPERT SYSTEMS Lecture 4: Representing Facts and Writing Rules Dr Dimitris C. Dracopoulos email: d.dracopoulos@westminster.ac.uk Course web page: http://hscs.wmin.ac.uk/~dracopd/docum/courses/2ait503/ait503.html
More informationNews in RSA-RTE 10.1 updated for sprint Mattias Mohlin, July 2017
News in RSA-RTE 10.1 updated for sprint 2017.28 Mattias Mohlin, July 2017 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10 and
More informationA Constraint Programming Based Approach to Detect Ontology Inconsistencies
The International Arab Journal of Information Technology, Vol. 8, No. 1, January 2011 1 A Constraint Programming Based Approach to Detect Ontology Inconsistencies Moussa Benaissa and Yahia Lebbah Faculté
More informationObject-Oriented Design (OOD) and C++
Chapter 2 Object-Oriented Design (OOD) and C++ At a Glance Instructor s Manual Table of Contents Chapter Overview Chapter Objectives Instructor Notes Quick Quizzes Discussion Questions Projects to Assign
More informationMetaprogrammable Toolkit for Model-Integrated Computing
Metaprogrammable Toolkit for Model-Integrated Computing Akos Ledeczi, Miklos Maroti, Gabor Karsai and Greg Nordstrom Institute for Software Integrated Systems Vanderbilt University Abstract Model-Integrated
More informationNews in RSA-RTE 10.1 updated for sprint Mattias Mohlin, January 2018
News in RSA-RTE 10.1 updated for sprint 2018.03 Mattias Mohlin, January 2018 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10
More informationThe TDAQ Analytics Dashboard: a real-time web application for the ATLAS TDAQ control infrastructure
The TDAQ Analytics Dashboard: a real-time web application for the ATLAS TDAQ control infrastructure Giovanna Lehmann Miotto, Luca Magnoni, John Erik Sloper European Laboratory for Particle Physics (CERN),
More informationKNOWLEDGE MANAGEMENT AND ONTOLOGY
The USV Annals of Economics and Public Administration Volume 16, Special Issue, 2016 KNOWLEDGE MANAGEMENT AND ONTOLOGY Associate Professor PhD Tiberiu SOCACIU Ștefan cel Mare University of Suceava, Romania
More informationAutomation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1
Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:
More informationHOW AND WHEN TO FLATTEN JAVA CLASSES?
HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented
More informationIntroducing Oracle R Enterprise 1.4 -
Hello, and welcome to this online, self-paced lesson entitled Introducing Oracle R Enterprise. This session is part of an eight-lesson tutorial series on Oracle R Enterprise. My name is Brian Pottle. I
More informationSoftware Configuration Management Using Ontologies
Software Configuration Management Using Ontologies Hamid Haidarian Shahri *, James A. Hendler^, Adam A. Porter + * MINDSWAP Research Group + Department of Computer Science University of Maryland {hamid,
More informationUsing Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University
Using Aspect-Oriented Programming to extend Protégé Henrik Eriksson Linköping University Questions about MOP and Protégé Original goal: Extending the JessTab plug-in What is the class precedence in Protégé?
More informationJava SE7 Fundamentals
Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various
More informationTurning a Suite of Modeling and Processing Tools Into a Production Grade System
Turning a Suite of Modeling and Processing Tools Into a Production Grade System Pascal Rivière 1, Olivier Rosec 1 1 Caisse nationale d assurance vieillesse (Cnav) 110 112 avenue de Flandre, F-75019 Paris
More informationUnderstanding the workplace of the future. Artificial Intelligence series
Understanding the workplace of the future Artificial Intelligence series Konica Minolta Inc. 02 Cognitive Hub and the Semantic Platform Within today s digital workplace, there is a growing need for different
More informationAADL Graphical Editor Design
AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationExtensible Multipurpose Simulation Platform
Proceedings of the 6th WSEAS International Conference on Simulation, Modelling and Optimization, Lisbon, Portugal, September 22-24, 2006 738 Extensible Multipurpose Simulation Platform ENN TYUGU Institute
More informationTowards a Java Framework for Knowledge Representation and Inference
Towards a Java Framework for Knowledge Representation and Inference Adrian GIURCA University of Craiova, Faculty of Mathematics and Computer Science Email: giurca@inf.ucv.ro Abstract. The Knowledge Representation
More informationYlvi - Multimedia-izing the Semantic Wiki
Ylvi - Multimedia-izing the Semantic Wiki Niko Popitsch 1, Bernhard Schandl 2, rash miri 1, Stefan Leitich 2, and Wolfgang Jochum 2 1 Research Studio Digital Memory Engineering, Vienna, ustria {niko.popitsch,arash.amiri}@researchstudio.at
More information