It takes as input a set of declarations in a frame language about a domain such as medical research or molecular biology.
Implementing an assertion quantified for an infinite set by definition results in an undecidable non-terminating program.
As Levesque demonstrated, the closer a knowledge representation mechanism comes to first-order logic, the more likely it is to result in expressions that require infinite or unacceptably large resources to compute.
[2] As a result of this trade-off, a great deal of early work on knowledge representation for artificial intelligence involved experimenting with various compromises that provide a subset of first-order logic with acceptable computation speeds.
One of the first and most successful compromises was to develop languages based predominately on modus ponens, i.e. IF-THEN rules.
[3] However, after the early success of rule-based systems there arose more pervasive use of frame languages instead of or more often combined with rules.
LOOM provided true object-oriented capabilities leveraging the Common Lisp Object System, along with a frame language.
[7] In the Semantic Web the Protege tool from Stanford provides classifiers (also known as reasoners) as part of the default environment.