Loom is a frame-based language in the tradition of KL-ONE.[1] 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.[2]
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.
^Brachman, Ron (1978). "A Structural Paradigm for Representing Knowledge". Bolt, Beranek, and Neumann Technical Report (3605).
^MacGregor, Robert (June 1991). "Using a description classifier to enhance knowledge representation". IEEE Expert. 6 (3): 41–46. doi:10.1109/64.87683. S2CID29575443.
^MacGregor, Robert (August 13, 1999). "Retrospective on Loom". isi.edu. Information Sciences Institute. Archived from the original on 25 October 2013. Retrieved 10 December 2013.