This document outlines the tasks required to polish Positorium, bringing it closer to the formalisms and features described in the paper "Transitional Representation: A Formalism for Conflicting and Evolving Information".
- Native Assertion Handling: Implement the
Information in Effectoperator as a first-class engine feature.- Currently, assertions using reserved roles
positandascertainsmust be manually joined in Traqula queries. - The engine should support a global
as of(assertion time) and automatically filter posits based on the highest certainty from a specified positor or a resolution policy.
- Currently, assertions using reserved roles
- Deterministic Temporal Resolution: Implement the full resolution procedure from the paper for both ordinary posits and assertion posits.
- Ensure correct handling of the
[-1, 1]signed certainty scale in the selection logic.
- Ensure correct handling of the
- Identity Management: Formalize the separation between the representation layer and the identification process.
- While
ThingGeneratorexists, the "external identification" mentioned in the paper (using auxiliary posits as keys) should be better documented or supported via specific query patterns.
- While
- Persistence Enhancements:
- Ensure the SQLite schema fully supports the
Strictmode andWALas described. - Verify that all
DataTypeUIDs are stable and correctly rehydrated inpersist.rs.
- Ensure the SQLite schema fully supports the
- Reserved Role Syntax: Add syntax sugar or dedicated keywords for the reserved roles (
posit,ascertains,named,thing,class). - Class Layer Implementation:
- Implement the minimal class layer (
named,thing,class) natively in the engine. - Support subclass reasoning (transitive closure) at query time.
- Implement the minimal class layer (
- Constraint Layer:
- Implement the cardinality policy mechanism described in the paper (
policy,posit class,lower bound,upper bound). - Add a validation pass or query-time constraint checking for "Decisive Fulfillment".
- Implement the cardinality policy mechanism described in the paper (
- Variable Binding Refinement:
- Complete the "Binding" struct scaffold in
src/traqula.rsto replace the current projection logic. - Support variable-to-variable value comparisons more robustly.
- Complete the "Binding" struct scaffold in
- Web Console Polish:
- Improve
positorium.htmlto better visualize bitemporal data (e.g., a "time travel" slider for both appearance and assertion time). - Add better error reporting from the Axum server to the web terminal.
- Improve
- VS Code Extension:
- Ensure
traqula.tmLanguage.jsonis in sync withtraqula.pest. - Implement LSP features like autocompletion for roles and class names.
- Ensure
- Documentation:
- Update
TRAQULA.mdwith examples of bitemporal queries and assertions. - Create a "Cookbook" of common patterns (e.g., how to handle a "correction" of a birth date).
- Update
- Benchmark Suite: Extend
benches/benchmark.rsto measure the overhead of assertion-time filtering and class hierarchy traversal. - Comprehensive Testing:
- Add tests for "Information in Effect" with multiple competing positors.
- Test the
Certainty::consistentlogic against complex contradictory sets.
- Error Handling: Replace remaining
unwrap()calls insrc/traqula.rsandsrc/construct.rswith properDatabaseErrorpropagation.
- Multi-Platform CI: Setup GitHub Actions to build and test on Linux, macOS, and Windows.
- Automated Releases: Implement a workflow to automatically create GitHub Releases with attached platform-specific binaries on version tags.
- WASM Port:
- Investigate compiling the core engine to WebAssembly (
wasm32-unknown-unknown). - Plan: Put
rusqliteandpersist.rsbehind apersistencefeature flag (default enabled). - Plan: For WASM/In-Memory builds, use
#![cfg(feature = "persistence")]to exclude SQLite-specific code.
- Investigate compiling the core engine to WebAssembly (
- Public Testbed (GitHub Pages):
- Host
positorium.htmlandpositorium.csson GitHub Pages. - Connect the UI to the WASM-powered engine for a zero-install, serverless exploration of Traqula.
- Host
- Dockerization: Provide a
Dockerfilefor easy deployment of the Positorium HTTP server.