This Article IsCreated at 2023-12-19Last Modified at 2023-12-29Referenced as ia.www.f14

Triadic Things Are Special (to Triple Store)

I finally understand why triple store need triple things. You must have triple things to store relational information.

In database: key, value, table id. Triple store is, in some sense, freer.

memory with 3-way association and fuzzy lookup

each record be like (A, B, C) where ABC are all SDRs each field of (A, B, C) can be looked up by SDR “closeness” given any two fields, the third can be retrieved by fuzzily (like normal RDF database)

fuzzy (SDR) triple memory store.

Relation logic control (Prolog.) may be related to this. (Up, In, Out)

Triples in Obsidian

You can do @[[B]][[C]] or [[A]]:@:[[C]], where @ represents the current page. Both syntaxes are machine readable.

IndraDB Algorithm Distillation

this one is a bit restrictive. the tuple elements have edge/vertex specialization.

IndraDB stores data in RocksDB (key-value database).

type definitions and K->V maps:

Id = [256]const u8; // actual size not matter much. (a) need fixed size.
Identifier = []const u8;
PropertyName = []const u8;

Unit = struct{};

Vertex = struct {
    id: Id,
    t: Identifier,
};

Edge = struct {
    in: Id,
    t: Identifier, // type of edge (e.g. "like", "follow")
    out: Id,
};

Properties = whatever, maybe JSON, although should be indexable;

// essential K -> V
Vertex.id -> Vertex.t
(Edge.in, Edge.t, Edge.out) -> Unit  // (a) required here
(Edge.out, Edge.t, Edge.in) -> Unit

// properties
Vertex.id -> Properties
(Edge.in, Edge.t, Edge.out) -> Properties

// Bonus point!
(Vertex.id, PropertyName) -> Properties
(Edge.in, Edge.t, Edge.out, PropertyName) -> Properties

Its Application-facing API design:

Datastore Transaction

Redland librdf

Unlike IndraDB, Redland stores homogeneous triples. (A: Node, B: Node, C: Node) instead of (Vertex, Edge, Vertex).

API

it doesn’t seem to have a way to retrive all tuples with only one node specified. you need two.

each node can be blank (an internal ID), resource (URL), literal (has an XML string, language, XML space)

the three maps to UUID, index text, free-form text (not indexed)

data storacge: TBD