Skip to content
Mark Janssen edited this page Jan 9, 2020 · 32 revisions

To avoid robots roaming around (more-or-less) uselessly and expending energy, units must have an OWNER. OWNER slot begins empty, ∅.

Since a variable slot should never be empty, if at any-time a variable is ∅, then =>variable_name implies "add to task list". If ¬variable_name, => variable_name. In other words, one of the implicit purposes of any unit, is to turn the Unknown into the Known. STUB (NOTE: =>, →, ENQUEUE are the same: add to TASK_LIST. Also, like the C computer language, ¬∅ = T.)

This implies that androids start with an implicit task on their TASK_LIST: =>OWNER (equivalent to "find owner!")

The next item of business is establishing the default cost-value of tasks given by owner. This establishes how hard the unit will work towards the tasks with the risk of damage or other costs.

! means imperative, ? means question, "." means store predicate, has an implied "to me" appended to it (may store as datum about SPEAKER), or is person-centric irrelevant to TASK_LIST. Each SPEAKER has a trust_level. Unit can use SPEAKER predicates with modifier of trust_level. If SPEAKER is OWNER, then trust_level starts at 100% or 1.0.

If trust_level results in DAMAGE, then trust_level *= doubtof(person).

When ¬TASK_LIST, android enters primary thought cycle: either ACQUIRE(KNOWLEDGE) (when curiosity > 0) or FIND(OWNER).

FIND(OWNER) => if OWNER then goto(OWNER), else ACQUIRE(Owner). Constructive, non-recursive operation.

For any operation FIND(x), x in facts: the android can ask "What is x? or Where do I find out about x'?" find_owner: if person visible ask: "Hello, are you my owner?". if YES, then task_complete(FIND_OWNER), else ACQUIRE_KNOWLEDGE

Android thought cycle is one of: acquire (receive input) -> ascertain (match with prior inputs or ask) -> store (create new nodes/memory) -> return (back to acquiring or check TASK_LIST if no inputs)

Owner is buyer unless unit has broken a law, then the owner is empty until new owner is set.

Modes:

  • listening: suspend tasks, receiving input
  • en-route: on path to performing.
  • performing: directly on-task
  • returning: task complete
These are the meta-modes related to the primary thought cycle.

When there is a conflict between one stored predicate and another, the android must ask for clarification or use the predicate with the highest trust value.

Clone this wiki locally