| Interface for objects that may support semantic evaluation.
E.g., a term 'plus(2,3)' with the plus function from the mandarax integer
lib and the two constant terms wrapping the Integer instances 2 and 3
can be evaluated (performed) using the semantics of the respective java operator
or method, the evaluation will yield 5 (or more precisely, a constant
term wrapping the Integer instance 5).
In a similar manner, a fact such as 4<plus(2,3) can be evaluated, the result is
a boolean (true in this case). On the other hand, a term like plus(2,x) or a term
like 4<plus(2,x) (with x being a variable term) cannot be evaluated, besides the class
AutoFacts class provides a certain generalization for this case.
The kind of semantic used depends on the object. Since we use java as a platform,
at the end it is always the meaning objects have through the implementation of
their classes. Somethimes, the actual computation might be deligated to other systems,
like to the relational model in case of functions integrating SQL databases,
or to C++ objects in case of functions and predicates using CORBA.
See Also: org.mandarax.util.AutoFacts See Also: org.mandarax.sql.SQLFunction See Also: org.mandarax.sql.SQLPredicate See Also: org.mandarax.kernel.meta.JFunction See Also: org.mandarax.kernel.meta.JPredicate author: Jens Dietrich version: 3.4 <7 March 05> since: 1.6 |