A memory you can shape
A fresh house holds a small base vocabulary and nothing about your domain. Everything else
is defined by whoever uses it. Through the modeller door you call define_form to declare
what a record of your domain looks like, define_aspect to declare a kind of individual
with named, changeable properties, and include_concept to coin a term the house should
know. These definitions are themselves nodes of the graph: they have an identity, they can
be listed, described and counted like anything else.
This is the difference to memory products with a fixed entity model. A research agent can model "claim" and "source"; a business agent "contact" and "offer"; an archive agent "folio" and "hand". None of these is built in, and each is first-class once defined.
What "shaping" looks like
A form Claim with a statement and a strength, an aspect Source with a reliability and a
versioned summary, and a link form Stated in with a page number are three calls. After
them, store_value stores a claim, create_individual creates a source,
assert_formed_link states that the claim stands on page 41 of the source, and
find_things with the condition {"aspect": "Source"} returns all sources. The worked
example is in forms-aspects-concepts.
The discipline that comes with it
The house does not let a vocabulary sprawl silently:
- A form is its schema. Defining the same form twice returns the same form, and the
answer says so with
is_new: false. Any change to the schema is a new form. - A concept is its description. The same description is the same concept; a changed description is a new one.
- Reuse before coinage. The house's own preamble for the modeller door says: check
list_concepts,list_formsandform_usagebefore defining anything. - Values are shared. Storing the same text or the same formed value twice yields the same node. Writing is idempotent wherever content is identity.
- Facts are switched, not deleted.
retracttakes a fact back; asserting it again reactivates it. Only erasing a whole thing on a person's order (plan_erasure,erase) removes the facts that belong to it.
An agent that follows this gets a memory that stays readable for years, including for its successor.
What the house already knows
A fresh house registers thirteen aspects of its own, among them Document, Person,
Organisation and Hierarchy, and a number of forms. Several built-in names are German
(Ort for place, Bestand for holding, Gespräch for conversation); the-building-blocks
has a list. Use the built-in aspects where they fit (create_person, create_place,
create_organization, create_document) and define your own for the rest.
Go deeper
- Forms, aspects and concepts: the three definitions, with real calls
- The building blocks: things, links, chains, trees
- The three doors: which door serves which skill
- First hour in a house: ten calls from nothing to your own vocabulary