|
JTP API Documentation | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object
|
+--java.beans.beancontext.BeanContextChildSupport
|
+--jtp.util.PropertyImporter
|
+--jtp.modelim.AskingQueryProcessor
Converts a complex query into a pair of query definition and query answer literal.
The model elimination theorem prover normally takes literals as queries. This reasoner deals with the rest of the queries. Suppose the query S is a general-form first-order logic sentence, and variables ?x1, ?x2, ... ?xN are all the free variables in S. Then if we add the sentence
(<= ($Answer ?x1 ?x2 ?x3 ... ?xN) S) (*)
to the knowledge base, where $Answer is a relation symbol not occuring anywhere else in the KB,
the literal ($Answer ?x1 ?x2 ?x3 ... ?xN) will have the same set of models as S.
Such literal is called the answer literal for S.
This reasoner creates the sentence of the form (*) for a complex query S, and then
reformulates S into the terms of its answer literal. The answer literal definition (*) is
asserted into a reasoner that can be set by the setTellingReasoner(jtp.Reasoner) function. For example,
it can be just the general-purpose reasoner of the system.
Note: this implementation does not clean up the query definition from the KB. Therefore, if
the general-purpose reasoner is used to hold the answer literal definitions, its size will grow as
more queries are being translated.
| Nested Class Summary | |
static class |
AskingQueryProcessor.ReformulationProofStep
|
| Field Summary |
| Fields inherited from class java.beans.beancontext.BeanContextChildSupport |
beanContext, beanContextChildPeer, pcSupport, rejectedSetBCOnce, vcSupport |
| Constructor Summary | |
AskingQueryProcessor()
Constructs a new AskingQueryProcessor. |
|
| Method Summary | |
boolean |
acceptable(Object o)
decides if the goal is suitable for being processed by this reasoner. |
Reasoner |
getTellingReasoner()
|
FirstOrderLogicTranslator |
getTranslator()
|
ReasoningStepIterator |
process(Object o)
This method attempts to find proof for the goal. |
void |
setTellingReasoner(Reasoner v)
sets the reasoner that receives the assertions defining the answer literals. |
void |
setTranslator(FirstOrderLogicTranslator translator)
|
Object |
translate(Object o)
|
CNFSentence |
translate(String text)
Translates a sentence into CNF. |
| Methods inherited from class jtp.util.PropertyImporter |
getImportedProperties, initializeBeanContextResources, setImportedProperties |
| Methods inherited from class java.beans.beancontext.BeanContextChildSupport |
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireVetoableChange, getBeanContext, getBeanContextChildPeer, isDelegated, releaseBeanContextResources, removePropertyChangeListener, removeVetoableChangeListener, serviceAvailable, serviceRevoked, setBeanContext, validatePendingSetBeanContext |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public AskingQueryProcessor()
| Method Detail |
public FirstOrderLogicTranslator getTranslator()
public void setTranslator(FirstOrderLogicTranslator translator)
public Reasoner getTellingReasoner()
public void setTellingReasoner(Reasoner v)
v - the reasoner that receives the assertions defining the answer literals.public Object translate(Object o)
translate in interface Translatorpublic CNFSentence translate(String text)
FirstOrderLogicTranslator
translate in interface FirstOrderLogicTranslatortext - the string representation of a sentence.
public ReasoningStepIterator process(Object o)
throws ReasoningException
ReasonerExample. A reasoner that performs unification of the goal with facts in a
knowledge base can return the following enumeration for the goal (parent joe ?x):
(parent joe fred) with variable assignment
?x=fred,(parent joe mary) with variable assignment
?x=mary.
process in interface Reasonero - the goal: either a query or an assertion
ReasoningExceptionpublic boolean acceptable(Object o)
ReasonerExample. Many reasoners only process literals with certain predicates and arity. These reasoners will use those criteria to determine acceptability, for example a reasoner dealing with equality could accept goals that are:
acceptable in interface Reasoner
|
JTP API Documentation | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||