LOOM (ontology)
Loom is a knowledge representation language developed by researchers in the artificial intelligence research group at the University of Southern California's Information Sciences Institute. The leader of the Loom project and primary architect for Loom was Robert MacGregor. The research was primarily sponsored by the Defense Advanced Research Projects Agency (DARPA). Loom is a frame-based language in the tradition of KL-ONE. As with KL-ONE, Loom has a formal semantics that maps declarations in Loom to statements in set theory and First Order Logic. This formal semantics enables a type of theorem prover engine called  a classifier. The classifier can analyze Loom models (known as ontologies) and deduce various things about the model. For example, the classifier can discover new classes or change the subclass/superclass relations in the model. The classifier can also detect inconsistencies in the model declaration. This is a very powerful and fairly unusual capability in that it is capable of doing analysis at the ontology level, the level of declarations rather than at the implementation level as most inference engines do. The Loom project's goal is the development and fielding of advanced tools for knowledge representation and reasoning in  artificial intelligence. Specifically to enable code to be generated from provably valid domain models. Loom is a language and environment for constructing intelligent applications. At its heart is a knowledge representation and reasoning system that combines a Frame-based language with an automatic classifier engine. 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 maintenance technologies in order to compile the declarative knowledge into a network designed to efficiently support on-line deductive query processing. The Loom system implements a logic-based  pattern matcher that drives a production rule facility and a pattern-directed method dispatching facility that supports the definition of object-oriented methods. The high degree of integration between Loom's declarative and procedural components permits programmers to utilize logic programming, production rule, and object-oriented programming paradigms in a single application. Loom can also be used as a deductive layer that overlays an ordinary CLOS (Common Lisp Object System) network. In this mode, users can obtain many of the benefits of using Loom without impacting the function or performance of their CLOS-based applications. Loom has recently been succeeded  by PowerLoom.