UMBC CMSC 771 Theory and Practice of Knowledge Representation
offerings: 97 99 00 01 02 03 04| notes | resources | software | papers | hw | help | mail

Software

Here are brief descriptions with limks to some of the software we'll use in the course, either for hoeworks or your project.

Reasoning engines

XSB

XSB is a an open source Logic Programming and Deductive Database system for Unix and Windows. It is being developed at The Computer Science Department, SUNY Stony Brook, in collaboration with Katholieke Universiteit Leuven, Universidade Nova de Lisboa, and Uppsala Universitet. XSB is very similar to Prolog and uses the same syntax. It has several interesting features which go beyond Prolog, including:

  • Tabled Resolution: Tabled resolution is useful for recursive query computation, allowing programs to terminate correctly in many cases where Prolog does not. Users interested in Parsing, Program Analysis, Model-checking, Data Mining and Diagnosis may benefit from XSB.
  • Indexing of Dynamic Code: XSB contains a variety of features to support in-memory data-oriented applications. Using these features, knowledge bases of up to one million clauses can be quickly loaded and efficiently indexed.
  • HiLog Compilation: HiLog supports a type of higher-order programming in which predicate symbols can be variable or structured. This allows unification to be performed on the predicate symbols themselves in addition to the arguments of the predicates.

JFP

JTP is an object-oriented modular reasoning system developed by Gleb Frank in Knowledge Systems Laboratory of Computer Science Department in Stanford University. JTP is based on a very simple and general reasoning architecture. The modular character of the architecture makes it easy to extend the system by adding new reasoning modules (reasoners), or by customizing or rearranging existing ones. The system is implemented in Java. The reason for this choice is that Java is ideally suited for easy integration of object-oriented systems, which facilitates both extending JTP's functionality and embedding JTP in other systems. The abundance of supplementary software available in Java also helps.

Jess

Jess is a rule engine and scripting environment written entirely in Java by Ernest Friedman-Hill at Sandia National Laboratories. Jess was originally inspired by the CLIPS expert system shell, but has grown into a complete, distinct, dynamic environment of its own. Using Jess, you can build Java applets and applications that have the capacity to "reason" using knowledge you supply in the form of declarative rules.

JIProlog

Java Internet Prolog is a cross-platform pure Java 100% prolog interpreter that supplies Java world with the power of prolog language and provides prolog language with a technology to implement new predicates in Java. As result JIProlog allows to call prolog predicates from Java without dealing with JNI link to native code and allows to invoke Java methods from prolog as you call predicates. JIProlog provides also a set of prolog predicates to manage XML document using a DOM-like approach.

KB editing environments

Protege

Protégé-2000 Protégé-2000 is an integrated ontology and knowledge-base editing environment. It provides an open-source, extensible architecture for the creation of customized knowledge-based tools in Java. It is being developed at Stanford.

Ontolingua

The Ontolingua ontology development environment provides a suite of ontology authoring tools and a library of modular, reusable ontologies. The environment is available as a World Wide Web service and has a substantial user community. The tools in Ontolingua are oriented toward the authoring of ontologies by assembling and extending ontologies obtained from thea library. Try our private UMBC Ontolingua server.

Description logic systems

NeoClassic

Classic is a knowledge representation(KR) system designed for applications where only limited expressive power is necessary, but rapid responses to questions are essential. Classic is based on a description logic(DL), which gives it an object-centered flavor, and thus most of the features available in semantic networks are also available in Classic. Classic has a framework that allows users to represent descriptions, concepts, roles, individuals and rules. Classic allows for both primitive concepts, similar to the classes and frames of other knowledge representation systems and object-oriented programming languages, and defined concepts, i.e., concepts that have both necessary and sufficient conditions for membership. Concepts are automatically organized into a generalization taxonomy and objects are automatically made instances of all concepts for which they pass the membership test. The other type of reasoning that Classic does is to detect inconsistencies in information that it is told. In the presence of defined concepts these operations are non-trivial and useful. Classic is one of a number of implemented description logics. Some other implemented systems are mentioned on this site, or for more complete information about description logics, see the official description logic home page.

Semantic web

The Jena semantic web toolkit

Jena is a java API for manipulating RDF models. Its features include: statement centric methods for manipulating an RDF model as a set of RDF triples; resource centric methods for manipulating an RDF model as a set of resources with properties; cascading method calls for more convenient programming; built in support for RDF containers - bag, alt and seq; enhanced resources - the application can extend the behaviour of resources; and anintegrated parser (ARP).

Older stuff

Loom

Loom is a language and environment for constructing intelligent applications. The heart of Loom is a knowledge representation system that is used to provide deductive support for the declarative portion of the Loom language. Declarative knowledge in Loom consists of definitions, rules, facts, and default rules. A deductive engine called a classifier utilizes forward-chaining, semantic unification and object-oriented truth maintainance technologies in order to compile the declarative knowledge into a network designed to efficiently support on-line deductive query processing.

PowerLoom

PowerLoom provides a language and environment for constructing intelligent applications. It is the successor to the Loom knowledge representation system. PowerLoom uses a fully expressive, logic-based representation language (a variant of KIF). It uses a Prolog-technology backward chainer as its deductive component. The backward chainer is (not yet) a complete theorem prover, but it can handle Horn rules, negation, and simple equality reasoning. Contrary to Prolog, it also handles recursive rules without the risk of infinite recursion. Once the classifier is completed, it will be able to classify descriptions expressed in full first order predicate calculus

OKBC

Open Knowledge Base Connectivity (OKBC) is an application programming interface for accessing KRSs, and was developed to enable the costruction of reusable KB tools. OKBC improves upon its predecessor, the Generic Frame Protocol (GFP), in several significant ways. OKBC can be used with a much larger range of systems because its knowledge model includes general assertions and has a better way of controlling inference. OKBC can be used on practically any platform because it supports network transparency and has implementations for multiple programming languages.