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:

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