wildwood.bialowieza

The second iteration of the core inference engine for Wildwood

decide

(decide proposition & agents)

Decide the truth value of this proposition by convening a game between these advocate agents. Iterate the game until all agents PASS; then finally offer each agent’s record method the proposition together with the decided truth value (true or false), before returning that value.

The proposition is a proposition as defined in the wildwood.schema; that is to say, the predicate wildwood.schema/predicate? returns true of it. If the proposition isn’t a predicate, throw an exception.

Each of agents should be an object implementing the wildwood.advocate/Advocate protocol. If an agent isn’t an Advocate, throw an exception.

Do not throw an exception under any other circumstances.

If an agent throws an exception, catch it and treat it as a PASS.