wildwood.schema

The knowledge representation. This probably ends up looking a bit like a Toulmin schema, where claims are represented as propositions. There also need to be rules or predicates, things which can test whether a given proposition has a given value. There may be other stuff in here.

Internal representation of most of this will be as Clojure maps.

argument-keys

Every argument is a proposition, which additionally has these keys.

argument?

(argument? o)

True if o qualifies as an argument structure.

An argument structure is a (potentially rich) proposition which, in addition, should have values for :confidence and :authority. A value for :data may, and probably will, also be present but is not required. The value of :confidence must be a number in the range -1 to 1.

consensual-keys

Every proposition which has these keys, in a given decision process, must have the same semantics and types for their values. The exact representations used for the values of these keys does not matter, it is consensual between all participating advocates in a decision process.

minimise

(minimise o)

Expecting that o is a (potentially rich) proposition, return a map identical to o save that for each value v of key k in o, if v is a map and k is not a member of argument-keys, then the returned map shall substitute the value of (:id v).

see also wildwood.knowledge-access/maximise.

preserved-keys

Keys whose values should not be minimised during proposition minimisation

proposition?

(proposition? o)(proposition? o minimised)

True if o qualifies as a proposition. A proposition is probably a map with some privileged keys, and may look something like a minimised the-great-game.gossip.news-items item.

If minimised is passed and is true, then the proposition must be minimised - that is to say, the values of keys in a proposition map may not themselves be keys. Where the value of a key represents an object in the world, that value must be simply the id of the object, not a richer representation.

required-keys

Every proposition is expected to have values for these keys.

rule?

(rule? o)

True if o qualifies as a rule. A rule is a structure which comprises * an id and * a function of two arguments, a proposition and a knowledge accessor, and which should (if this can simply be checked) return an argument structure.

truth

(truth p)

If p is a proposition, return whether the value asserted by that proposition is true. If the :truth key is missing, true is assumed.