Local Information Storage Model#

Purpose

This convention defines Local Information Storage Model. It is a schemaless model for storing information the structure of which is not fully known in advance and should be expected to change or be redefined over time.

Methods#

Storing information#

  1. A data library contains data catalogs.

  2. A data catalog contains attributes. Within a data catalog, a record signature identifies no more than one record.

  3. An attribute contains attribute entries. An attribute entry has two components, a record signature and an entry value, separated by the component separator. Within an attribute, a record signature appears in no more than one attribute entry.

  4. An attribute is named by an attribute code registered in an attribute catalog.

  5. A connection between records is itself a record, stored in a reference catalog. The entry values of its reference attributes are record signatures from the connected data catalogs.

Constructing a record#

  1. Take the record signature and the data catalog that contains the record.

  2. In each attribute of the data catalog, find the attribute entry with that record signature.

  3. Resolve the attribute code of each attribute to its attribute name by attribute code resolution.

  4. Map each attribute name to the entry value found in that attribute. The result is the full record.

Resolving an attribute code#

  1. Start at the data catalog that contains the attribute.

  2. If the data catalog meta data at the current level name an attribute catalog that registers the attribute code, take the attribute name from it and stop.

  3. Otherwise, move to the containing data library and repeat step 2.

  4. If no containing data library remains, the attribute code is not registered.

Definitions#

Attribute (conv. 696)#

~ is a file in a data catalog that contains attribute entries. ~ is named by an attribute code. Within an ~, a record signature appears in no more than one attribute entry.

Reasoning

The perspective leaves open whether a record signature may appear more than once in an ~. This convention restricts it: an ~ holds one entry value per record, so a full record maps each attribute name to exactly one entry value. Several values for one record, such as several dealers for one car model, are expressed through a reference catalog.

Attribute catalog (conv. 696)#

~ is a data catalog that registers attribute codes together with their attribute names. ~ is only special because it is self-defining: the attribute codes and attribute names of its own attributes are registered in the ~ itself. Which ~ applies to a data catalog is stated in data catalog meta data.

Attribute code (conv. 696)#

~ is a code constructed from the characters of the effective attribute code vocabulary. ~s must be stable.

Attribute code resolution (conv. 696)#

~ is the procedure that determines the attribute name for a given attribute code. ~ follows data catalog meta data outward from the data catalog that contains the attribute through its containing data libraries. The first attribute catalog named in data catalog meta data that registers the attribute code provides the attribute name.

Reasoning

Data catalog meta data make ~ explicit: it never depends on which attribute catalogs happen to be present. Resolving each attribute code separately lets an attribute catalog named closer to the data register only the attribute codes whose meaning differs, such as the name of a dealer versus the name of a car model.

Attribute code vocabulary (conv. 696)#

~ is a collection of characters that may constitute an attribute code.

Reasoning

Attribute codes become file names. The ~ must therefore contain only characters that are valid in file names on every file system and that do not depend on letter case.

Attribute entry (conv. 696)#

~ is a line in an attribute that consists of two attribute entry components: the record signature and the entry value, separated by the component separator. ~ must contain both attribute entry components.

Attribute entry component (conv. 696)#

~ is one of the two parts of an attribute entry: the record signature or the entry value.

Attribute name (conv. 696)#

~ is the readable name of an attribute, registered in an attribute catalog together with its attribute code.

Component separator (conv. 696)#

~ is one or more consecutive characters that separate the record signature from the entry value in an attribute entry. All attribute entries of a data catalog must use the effective ~.

Important

An attribute entry that uses a ~ other than the effective ~ is not valid.

Data catalog (conv. 696)#

~ is a directory in the file system that contains attributes. Within a ~, a record signature identifies no more than one record. No naming conventions are defined for ~s. The configuration of a ~ is provided in its data catalog meta data.

Data catalog meta data (conv. 696)#

~ is the set of settings of a data catalog or a data library: the component separator, the signature vocabulary, the signature length, the attribute code vocabulary, and the attribute catalog. A setting that is not provided takes its default value, except for the attribute catalog, which follows attribute code resolution.

Data library (conv. 696)#

~ is a directory that contains data catalogs. ~ may contain data catalog meta data. ~s may be nested.

Reasoning

The data catalog meta data of a nested ~ may name an attribute catalog whose attribute names differ from those of the containing ~. Through attribute code resolution, that attribute catalog needs to register only the attribute codes that differ.

Default attribute code vocabulary (conv. 696)#

~ is the attribute code vocabulary that applies if the data catalog meta data do not provide one. Its contents are provided by the bound protocol.

Default component separator (conv. 696)#

~ is the component separator that applies if the data catalog meta data do not provide one. ~ is a single <space> character.

Reasoning

The perspective states that a single space suffices as the separator: it is the simplest separator, visible in any text editor, and basic tools split a line on it without configuration.

Default signature length (conv. 696)#

~ is the signature length that applies if the data catalog meta data do not provide one. Its value is provided by the bound protocol and must satisfy the reasoning given for the signature length.

Default signature vocabulary (conv. 696)#

~ is the signature vocabulary that applies if the data catalog meta data do not provide one. Its contents are provided by the bound protocol.

Effective value (conv. 696)#

~ of a setting is the value that applies to a data catalog: the value provided in its data catalog meta data if present, otherwise the default value.

Entry value (conv. 696)#

~ is the attribute entry component to the right of the component separator. ~ may include the characters that make up the component separator.

Important

~ that consists of whitespace characters only is not valid.

Full record (conv. 696)#

~ is the mapping of attribute names to entry values for one record signature in a data catalog: each attribute that contains an attribute entry with the record signature contributes its attribute name and the entry value of that attribute entry.

Null value (conv. 696)#

~ is a special symbol or token to represent the absence of a value in an attribute entry. This model is based on the concept “nothing is nothing. Only nothing may represent nothing.”

In other words, ~s are not supported. A missing value is a missing attribute entry.

Record signature (conv. 696)#

~ is the attribute entry component to the left of the component separator. ~ identifies a record within a data catalog. All characters in the ~ must belong to the effective signature vocabulary. The ~ must contain at least as many characters as the effective signature length.

Important

  1. If the ~ contains characters outside of the effective signature vocabulary, the attribute entry is not valid.

  2. If the ~ is shorter than the effective signature length, the attribute entry is not valid.

Reference attribute (conv. 696)#

~ is an attribute of a reference catalog whose entry values are record signatures from one connected data catalog.

Important

A protocol must make ~s distinguishable from the other attributes of a reference catalog.

Reasoning

Reconstructing a connection requires knowing which entry values are record signatures and which data catalog they come from.

Reference catalog (conv. 696)#

~ is a data catalog whose records are connections between records of other data catalogs. ~ contains one reference attribute per connected data catalog and may contain attributes of its own.

Reasoning

The perspective keeps a connection apart from both sides: neither side has to be chosen in advance as its owner, and the connection can carry findings of its own, such as the price a dealer asks for a car model.

Signature length (conv. 696)#

~ is the minimum number of characters from the signature vocabulary that a record signature must contain. A protocol may require an exact length.

Reasoning

A record signature is stable only if it is unique, and a record signature is chosen without looking at the existing data. The ~ must therefore make an accidental collision negligible for the expected number of records, given the size of the signature vocabulary.

Signature vocabulary (conv. 696)#

~ is a set of unique non-whitespace characters that constitute a record signature.

Important

~ must not include any character of the effective component separator.

Stable attribute code (conv. 696)#

~ is a property of an attribute code: the attribute code must not be associated with any meaningful information, so that there is never a reason to update the attribute code to catch up with attribute updates.

The only property permitted for a ~ is uniqueness: within an attribute catalog, no attribute code may be associated with more than one attribute name.

Keep it mind that sequential numbers are not recognized as stable because they feature the ordered property in addition to unique, which negatively affects the stability due to the complicated logic for assigning next identifiers.

Stable record signature (conv. 696)#

~ is a property of a record signature: the record signature must not be associated with any meaningful information, so that there is never a reason to update the record signature to catch up with data updates.

The only property permitted for a ~ is uniqueness: within a data catalog, a record signature identifies no more than one record.

Keep it mind that sequential numbers are not recognized as stable because they feature the ordered property in addition to unique, which negatively affects the stability due to the complicated logic for assigning next identifiers.

Reasoning

The perspective leaves uniqueness to whoever builds on the design. This convention requires it: a reference catalog pairs the attribute entries of its reference attributes by record signature, and pairing is only possible if a record signature identifies one record. Requiring uniqueness in every data catalog keeps reference catalogs structurally identical to all other data catalogs.

+ References#

Proposition

Version

Storage for Exploration Data

v1.0

+ Page Info#

Version

0.1

Revision

2026-09-20

Written.by

Borys Belinsky (borys.belinsky@protonmail.com)

Assisted.by

Anthropic Claude, Opus 5