Numeric segments Relational implementation: Segment: text type depth is_leaf is_var in_logical Fact: id_fact path-tail path-head -> Segment order SELECT F.id_fact (...) FROM Fact as F JOIN Segment as S ON S.id_segment = F.path_head WHERE F.path_tail = ? AND S.text = ?; NO! Node path: Path depth: int # number of ancestors Path head: Segment tail: hash Segment value: String production: Enum Tree -> indexes of nodes index for query keys: node-depth:node-path-tail:node-path-head-text: values: id-node,parents index for reconstruction keys: node-depth:parent: problems no sé a qué nivel guardar los string los tipos de production (Segment.name) son un desastre, deberían salir mejor del parser. Investigar marcar los nodos con su profunddad, y re-usarlos -- no: las preguntas recuperarían hijos ajenos restaurar nodos no lógicos? segmentos de distintos tipos - correspondiendo a nombres reservados de producciones io get data from files actions -functions in rust- triggered by certain patterns of facts action tell - send facts to other dbs chain of dbs ticking, one after another - garbage collection.