From OpenCog
Jump to: navigation, search

The PredicateNode names the predicate of a relation. Predicates are functions that have arguments, and produce a truth value as output. These are commonly used with EvaluationLinks, which specify the arguments to the predicate.

Predicates in OpenCog roughly resemble the predicate of first-order logic. However, because all atoms in the AtomSpace carry a truth value, the concept of a predicate in OpenCog is more general than that of a predicate in first-order logic. It is more closely akin to an characteristic function in probability theory, which helps assign a floating-point truth value to a declaration, or to a classifying topos in mathematical logic, which is used to assign arbitrary "truth values" or "classifications" to expressions.


The following uses the PredicateNode "breathe" to define things that breathe air:

     PredicateNode "breathe"
       VariableNode "$X"
       ConceptNode "air"

This can be converted to the concept of "all things that breath air" by means of the SatisfyingSetLink.


Some usage notes:

PLN Semantics

In PLN, the TruthValue of a PredicateNode is defined as the average over all evaluations of that predicate. Roughly speaking, it is the probability of that predicate being true in the universe of all things. The AverageLink page provides an explicit example.

See Also