Provides tightly-integrated knowledge representation, reasoning and search capabilities, with vanilla XML and RDF/XML interfaces, built around a portable extension of CLOS.
|Version||3.0 - Monday, 02 July 2012|
|Source code repository|
The Common Lisp Reasoner project aims to create a practical technology that exploits the synergy between its three major components to make AI-related applications, such as scheduling and diagnosis, easier to develop. These components are:
Because CLOS permits, by means of the Metaobject Protocol, open-ended extension, it is both the implementation language and the kernel of the implemented system, within which a set of sound principles appropriate to the practice of knowledge representation rather than programming have been realized.
In reasoning applications, the values stored into the slots of an instance (the data to be reasoned with) are accumulated rather than replaced. Permitted values are specified in the class of the instance. They are either other instances, or enumerated ranges of (mutually exclusive) values that may subsequently be narrowed by reasoning activity.
Each stored value is encapsulated in an ATMS nodea record not only of the value, but also its justification (derivation) and the resultant belief states (or environments), determined by the ATMS, in which it holds. An environment is given by a set of primitive assumptions; an assumption constitutes an explicit, problem-specific decision to assume some datum or data. The ATMS enables environments to be explored systematically and efficiently.
The rule language permits the expression of arbitrarily complex logical sentences. The slot definitions of classes collectively constitute a vocabulary of attributes that can be referred to in rule definitions. When reasoning, classes and instances provide an efficient means of retrieving rules and the data upon which they operate.
Source code may be downloaded via the project page. Before downloading, consult the release notes to determine compatibility with your Common Lisp implementation of choice.
The design outlined above was conceived in relation to the development of legal reasoning applications, in order to meet some exacting requirements: to capture the explicit and implicit exceptions inherent in legal language, to accommodate conflicting rules which give rise to competing arguments, and to derive all inferences sanctioned by a logical sentence by restricting the values of attributes.
You must be logged to add a note
You must be logged to add a comment