#+TITLE: Domino Features & Roadmap * Extended Relational Model (RM/T) :PROPERTIES: :CATEGORY: semantic-modeling :END: An extended relational database engine based on E. F. Codd's RM/T (1979). Captures more meaning through entity types, surrogates, and molecular semantics. ** Implemented Features *** DONE Content-Addressed Storage CLOSED: [2025-01-21] - [X] SHA-256 surrogates for all entities - [X] System-controlled entity identifiers (E-domain) - [X] Automatic deduplication via content addressing - [X] Immutable data structures *** DONE Entity Types (E-Relations) CLOSED: [2025-01-21] - [X] Kernel entity types (database, relation) - [X] E-relations for entity existence assertion - [X] Surrogate-based entity identification - [X] Entity integrity enforcement *** DONE Property Relations (P-Relations) CLOSED: [2025-01-21] - [X] Immediate property storage - [X] Single-valued property support - [X] Property integrity (Rule 4) - [X] Foreign key references via surrogates *** DONE Merkle Tree Integration CLOSED: [2025-01-21] - [X] Relations as Merkle trees - [X] Database state versioning - [X] Efficient state diffing - [X] Content-addressed relation hashing *** DONE Volcano Iterator Model CLOSED: [2025-01-21] - [X] Lazy tuple evaluation - [X] Process-based iterators - [X] Message-passing protocol - [X] Memory-bounded queries *** DONE Transactional Operations CLOSED: [2025-01-21] - [X] ACID guarantees via Mnesia - [X] Atomic tuple insertion - [X] Tuple retraction with transactions - [X] Relation clear and retract operations *** DONE Comprehensive Test Suite CLOSED: [2025-01-21] - [X] Database creation tests - [X] Relation and tuple operations - [X] Hash consistency validation - [X] Iterator protocol tests - [X] Retraction and truncate tests ** Planned RM/T Extensions *** TODO Characteristic Entities Multi-valued properties as subordinate entities. - [ ] Characteristic entity types (C-relations) - [ ] Characteristic graph (CG-relation) - [ ] Characteristic tree hierarchy - [ ] Characteristic integrity (Rule 5) - [ ] Example: Job history as characteristic of Employee *** TODO Associative Entities Relationships as first-class entities with properties. - [ ] Associative entity types (A-relations) - [ ] Association graph (AG-relation) - [ ] Association integrity (Rule 6) - [ ] Higher-order associations - [ ] Example: Assignment(employee, project, start_date) *** TODO Generalization Hierarchies Entity subtyping and inheritance. - [ ] Unconditional gen inclusion (UGI-relation) - [ ] Alternative gen inclusion (AGI-relation) - [ ] Subtype integrity (Rule 7) - [ ] Property inheritance - [ ] Multiple inheritance support - [ ] Example: Engineer/Secretary/Trucker subtypes of Employee *** TODO Cover Aggregation Collections and groupings. - [ ] Cover membership relation (KG-relation) - [ ] Cover entity types - [ ] Dynamic membership - [ ] Heterogeneous covers - [ ] Example: Convoys, Teams, Departments *** TODO Event Precedence Temporal ordering and scripts. - [ ] Event entity types (T-relations) - [ ] Unconditional successor (US-relation) - [ ] Alternative successor (AS-relation) - [ ] Unconditional predecessor (UP-relation) - [ ] Alternative predecessor (AP-relation) - [ ] Example: Order → Shipment → Invoice *** TODO Extended Operators Operators for molecular semantics. - [ ] OUTER NATURAL JOIN - [ ] OUTER UNION - [ ] OUTER THETA-JOIN - [ ] MAYBE operators (null handling) - [ ] Graph operators (OPEN, CLOSE, STEP) *** TODO RM/T Catalog Extensible schema catalog. - [ ] CATR (relations catalog) - [ ] CATRA (relation-attribute) - [ ] CATA (attributes catalog) - [ ] CATAD (attribute-domain) - [ ] CATD (domains catalog) - [ ] CATC (categories catalog) - [ ] CATRC (relation-category) *** TODO Property Graph (PG-relation) Link P-relations to E-relations. - [ ] Property molecule types - [ ] Dynamic property schema - [ ] Property graph traversal ** Classical Relational Algebra *** TODO Selection (σ) Filter tuples by predicate. - [ ] THETA-SELECT with comparison operators - [ ] Support for <, ≤, =, ≥, >, ≠ - [ ] TRUE and MAYBE versions (null handling) *** TODO Projection (π) Project relation onto subset of attributes. - [ ] Remove specified columns - [ ] Eliminate duplicate rows - [ ] Preserve set semantics *** TODO Cartesian Product (×) Cross product of two relations. - [ ] Unrestricted concatenation - [ ] Basis for joins *** TODO Natural Join (⋈) Join on common attributes. - [ ] Equi-join with duplicate removal - [ ] Used in normalization *** TODO Theta Join (⋈θ) Join with arbitrary comparison. - [ ] Support all theta operators - [ ] Generalizes natural join *** TODO Union (∪) Set union of compatible relations. - [ ] Union-compatible constraint - [ ] Duplicate removal *** TODO Intersection (∩) Set intersection. - [ ] Union-compatible constraint *** TODO Difference (−) Set difference. - [ ] Union-compatible constraint *** TODO Divide (÷) Relational division. - [ ] Algebraic universal quantifier *** TODO Rename (ρ) Attribute renaming. - [ ] Enable self-joins ** Advanced Features *** TODO Null Value Handling Three-valued logic for incomplete information. - [ ] "Value unknown" null type - [ ] "Property inapplicable" null type - [ ] E-null for "entity unknown" - [ ] Null substitution principle - [ ] MAYBE operators *** TODO Infinite Relations (Aleph₀) Countably infinite relation generators. - [ ] Integer generator - [ ] Arithmetic relations (plus, minus, multiply) - [ ] Lazy evaluation with constraints - [ ] Partially materialized storage - [ ] User-defined generators *** TODO View Integration Merging multiple perspectives. - [ ] View definition language - [ ] Automatic view maintenance - [ ] View update translation *** TODO Temporal Support Time-varying databases. - [ ] Transaction time - [ ] Valid time - [ ] Bitemporal support - [ ] Non-forgetting mode *** TODO Distributed Synchronization Merkle tree-based replication. - [ ] Efficient diff protocol - [ ] Conflict resolution - [ ] Eventual consistency ** Developer Experience *** TODO Query Language High-level relational query language. - [ ] Algebraic syntax - [ ] Tuple calculus variant - [ ] Domain calculus variant *** TODO REPL Console Interactive query environment. - [ ] Live query evaluation - [ ] Schema introspection - [ ] Query history *** TODO Visualization Tools Graphical representation. - [ ] Relation browser - [ ] Join graph visualization - [ ] Generalization hierarchy diagrams - [ ] Query execution plans *** TODO Org Babel Integration Literate programming support. - [ ] Execute relational queries in org-mode - [ ] Export results to tables - [ ] Reproducible analysis ** Documentation & Validation *** DONE Code Documentation CLOSED: [2025-01-21] - [X] Module architecture overview - [X] Data structure specifications - [X] Usage examples - [X] Implementation details *** TODO Theoretical Validation Ensure correctness. - [ ] Formal proofs of operator properties - [ ] Closure verification - [ ] Idempotence tests - [ ] Property-based testing with PropEr - [ ] Comparison with Date & Darwen semantics *** TODO Research Papers Link to foundational theory. - [ ] Codd 1970: "A Relational Model" - [ ] Codd 1979: "Extending the Database Relational Model" (RM/T) - [ ] Codd 1985: "Does AlOL Need the Relational Algebra?" - [ ] Date & Darwen: "Foundation for Future Database Systems" ** References - E. F. Codd (1979). "Extending the Database Relational Model to Capture More Meaning" - E. F. Codd (1970). "A Relational Model of Data for Large Shared Data Banks" - C. J. Date & Hugh Darwen. "Foundation for Future Database Systems: The Third Manifesto"