ClausePartitioner
The concrete ClausePartition/DirectiveSelector implementation, lazily partitioning source's clauses on first access to any of ClausePartition's properties (and caching the result thereafter). Plain Rules/Facts are routed to dynamicClauses or staticClauses depending on whether their signature was declared dynamic/1 or static/1 by a directive, falling back to staticByDefault when neither was declared.
See also
Properties
Clauses bound for the dynamic knowledge base (see it.unibo.tuprolog.solve.ExecutionContextAware.dynamicKb).
Goals to be solved once, at load time, declared via :- initialization(Goal)/:- solve(Goal) directives.
Operators declared via :- op(Priority, Specifier, Name) directives.
Clauses bound for the static knowledge base (see it.unibo.tuprolog.solve.ExecutionContextAware.staticKb).
The Unificator used to match a directive's body against patterns.
Functions
Tries to unify directive's body against each of patterns, in order; on the first match, delegates to listenDirectiveMatchingPattern, otherwise falls back to ClauseListener.onDirective.
Invoked by listenDirective on a match; by default just forwards to onDirectiveMatchingPattern.
Invoked on an op(priority, specifier, name) directive.
Merges this partition with other, concatenating/summing each corresponding component.
Null-safe ClausePartition.plus: merges two possibly-null partitions, returning null only if both are.