This is a description of a very simple ad hoc DBMS for open
money and open measures tool sets.
This takes a minimalist approach, intended to support modelling, simulation
and experimentation rather than a "live" system, and to serve as executable
documentation to illustrate open money/measures principles.
Nevertheless, it may also serve to provide support for a real-world solution
in the shorter term.
Recursively nested namespaces each contain any number of
named entities of the following types:
namespace - enclosing any entity type;
primary identities - a user identity registered
uniquely within a namespaces (its registry);
secondary identity - an alias of a primary
identities registered (with authorization) within another
currency - a definition of a variable type associated with
a set of accounts;
account - an instance of a currency owned
by a primary identity or secondary
functions and operations on currency
steward - a user exercising an authorization and
supervisory role over
a currency and its users;
a namespace and the entities registered within
it; and (by extension)
the entities (of whatever type) within the
namespaces nested below it (the
children/descendants) along with their
Currencies fall into two main sets:
simple currencies (characteristic of open money types),
falling into two main sets:
money/monies - scalar values the instances (accounts)
of which are operated upon in pairs (simultaneous addition to one and
subtraction from the other by the same amount - a payment).
compound currencies (characteristic of open measures
types), falling into several subsets:
vectors (all elements are of the same type);
triggers - defining conditions for the invocation of
n-tuples (elements may be of any type and not necessarily of
the same type);
time-series (pointers to bulk storage of time series ensembles); and
triggers (criteria for the initiation of actions).
Functions extend the basic operations associated with simple scalar
currencies to work with vector and compound currencies.
This is a work in progress. For more detail see:
for more information.