aboutsummaryrefslogblamecommitdiffstats
path: root/docs/features.org
blob: 945bfafe75f8e703e295be7e6030d107a0adc7aa (plain) (tree)
1
2
3
4
5
6


                                  
              
                              
       
















































































                                                                                  
 






                                                 
 







                                                 
 






                                             
 








                                    
 




                                     
 
                               

                       




                                                 
                        




                                               
                               



                                    
                           



                                          
                           



                                     
                    



                                      
                           


                                     
                         






                                        
                    



















                                                      
 




                                    
 





                             
 




                                    
 
                       
 




                                         
 




                                  
 





                                           
 




                                                
 
                             
 





                                       
 






                                                 
 





                                                                     
 



                                                                                            
#+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"