index

2021-08-23

2021-09-30


dabric value structure

There could be only two primitive value types:

This would be enough to parse values from a stream. The semantics of a value would then be expressed separately as an entity.

On the semantic level value type cold consist of a single primitive value such as an 8 bit unsigned integer, or of multiple values that each have a seprate entity describing their semantics.

A single primitive value would usually be parsed as a native primitive type of the programming language and multiple values as some kind of a dictionary.

To parse a value, the reader only needs to know it's length in bytes. Understanding the semantics of the bytes is an orthogonal problem.

A single byte unsigned integer type could be:

    {:length-in-bytes 1
     :type [#uuid "1234-1233-412" 12]}

A struct type could be a sequence of primitive type attribute pairs without an entity corresponding the struct as a whole.

Value type definitions must have a serialization format other than statements in the transaction log so that they can be stored among the indexes and also in the transaction log segments.

attribute entity ids in a separate sequence from other entity ids

In wikidata properties have separate id space from items. Attribute ids are thus smaller numbers than item ids. Should this be supported by dabric and how?

If entity ids are sequences, attribute ids could start with stream id and zero. The stream could maintain multipple id sequences from which it draws for example new attribute ids.


This site is generated with zetgen