UMBC CMSC 771 Theory and Practice of Knowledge Representation
offerings: 97 99 00
01 02
03 04|
notes | resources
| software |
papers | hw | help
| mail
SoftwareHere are brief descriptions with limks to some of the software we'll use in the course, either for hoeworks or your project. Reasoning enginesXSBXSB 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:
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 environmentsProtegeProté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.OntolinguaThe 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 systemsNeoClassicClassic 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 webThe Jena semantic web toolkitJena 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 stuffLoomLoom 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.PowerLoomPowerLoom 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 OKBCOpen 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.
|