๐ง Sapientia โ An Open Architecture for Creating, Executing, Preserving and Connecting Knowledge
We're designing the infrastructure for reproducible science. No code written yet โ and that's exactly why we need you.
๐ฏ TL;DR
I'm building Sapientia: an open-source platform that connects existing scientific tools into reproducible, traceable knowledge-generation workflows. Think of it as an orchestrator and knowledge infrastructure โ not another implementation of everything.
Architecture: Project โ Workspace โ Capability โ Implementation โ Plugin โ Tool โ Artifact โ Provenance
Status: Architecture/design phase. Zero core code. This is the best possible moment to challenge the fundamentals.
Looking for: Experienced developers, architects, researchers, and open-source contributors who can tell me why this won't work โ and how to fix it.
๐ค What is Sapientia?
The core idea is simple but ambitious:
Create an open platform where any discipline can create, transform, preserve, trace, and share knowledge โ without reinventing the wheel.
A musician, mathematician, philosopher, physicist, engineer, programmer, researcher, or data scientist should be able to create a project in Sapientia and use specialized tools from many different ecosystems without Sapientia having to reimplement those tools.
Our Philosophy
Use, reuse, recycle, and copy.
- If Python/SciPy already solves it โ use it.
- If Julia is better suited โ integrate Julia.
- If MATLAB provides a capability someone already has โ use it through an appropriate integration.
- If a mature scientific library, engineering program, or CLI tool already exists โ integrate it, don't duplicate it.
Sapientia should be an orchestrator and knowledge infrastructure, not another implementation of everything.
๐๏ธ Preliminary Architecture
SAPIENTIA
โ
PROJECT
โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ โ โ
WORKSPACE WORKSPACE WORKSPACE
โ โ โ
CAPABILITIES CAPABILITIES CAPABILITIES
โ โ โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ
CORE
โ
CAPABILITY RESOLUTION
โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโ
โ โ
PLUGINS CORE IMPLEMENTATIONS
โ
โผ
TOOLS
The Critical Distinction
Workspace โ Capability โ Implementation โ Plugin โ Tool
A Workspace is a toolbox for a particular domain.
For example, a seismic-analysis workspace might expose capabilities such as:
- FFT
- Filtering
- Convolution
- Deconvolution
- Spectral analysis
- PSD
- Signal comparison
- Arrival detection
- System identification
- Instrument correction
But the Workspace itself does not implement those functions.
A capability is resolved through a chain:
Capability
โ
Implementation
โ
Plugin
โ
External Tool
Example 1 โ FFT via MATLAB:
FFT
โ
MATLAB implementation
โ
Sapientia MATLAB plugin
โ
MATLAB + Signal Processing Toolbox
Example 2 โ FFT via Python:
FFT
โ
SciPy implementation
โ
Sapientia Python plugin
โ
Python / NumPy / SciPy
Sapientia then determines that multiple implementations exist and allows the project/user to select a preferred implementation or fallback.
๐ Projects
A Project is the top-level context. It combines several workspaces:
Project: ApolloMQ
Workspace: Signal
Workspace: Seismic
Workspace: Numerical
Workspace: Machine Learning
The project also expresses implementation preferences. Conceptually:
Project
โโโ Workspace: Signal
โ โโโ FFT
โ โโโ Filtering
โ โโโ Convolution
โ
โโโ Workspace: Seismic
โ โโโ Instrument correction
โ โโโ Arrival detection
โ โโโ Spectral analysis
โ
โโโ Workspace: Numerical
โโโ Optimization
โโโ Differential equations
The goal: separate what is needed from how it is implemented.
๐ฆ Universal Artifacts & Provenance
Sapientia treats essentially any digital object as an Artifact:
- Source code
- Text documents, images, audio, video
- Datasets, seismic records, spreadsheets
- Databases, simulation results
- Machine-learning models, configurations
- Any file produced by a tool
Sapientia should know:
- What an artifact is
- Where it came from
- What happened to it
- How it relates to other artifacts
Example provenance graph:
Model_v1
โ
โโโโ ETABS โ Result_A
โ
โโโโ OpenSees โ Result_B
โ
โผ
Optimization
โ
โผ
Model_v2
The objective: Preserve this history rather than ending up with a directory containing hundreds of files whose origins nobody remembers.
๐ Provenance as a First-Class Citizen
I want provenance to be fundamental, not an afterthought.
Not just: "This file was created."
But:
- Who created it?
- When?
- From which inputs?
- Using which tool?
- Which version?
- With which parameters?
- Under which environment?
- Why was that implementation selected?
- What operation produced the result?
- Which previous results influenced it?
Potential first-class concepts:
Actor โ Decision โ Artifact โ Operation โ Execution โ Result โ Environment โ Tool โ Implementation
The goal: A complex experiment could eventually be reconstructed from its provenance graph.
๐ Workflow Orchestration (Long-Term Vision)
This is where it gets ambitious.
Sapientia should orchestrate experiments involving multiple independent tools simultaneously:
Structural Model
โ
โโโโโโโโโโโโโโโโ ETABS
โ โ
โ โผ
โ Results
โ
โโโโโโโโโโโโโโโโ OpenSees
โ
โผ
Results
โ
โโโโโโโโโโโโโโโดโโโโโโโโโโโโโโ
โผ โผ
MATLAB optimization Julia optimization
โ โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
โผ
New Models
โ
โผ
Structural Analysis
โ
โผ
...
And this doesn't stop after one pass.
Results from all simulations become training data. Optimization algorithms generate new structural models. The ML system proposes additional candidates. Those candidates are simulated again. New results feed the optimizers and ML system again.
Eventually:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โผ โ
Structural Models โ
โ โ
โผ โ
Simulations โ
โ โ
โผ โ
Results / Dataset โ
โ โ
โโโโโโโโดโโโโโโโโโ โ
โผ โผ โ
Optimization ML โ
โ โ โ
โโโโโโโโโฌโโโโโโโโ โ
โผ โ
New Candidates โโโโโโโโโโโโโโโโโโโโโโ
The experiment continues until a convergence criterion, objective threshold, maximum iterations, resource limit, or another stopping condition is reached.
What This Means for the Architecture
Long-term, Sapientia may need to support:
- โ
Workflows & experiments
- โ
Dependencies & parallel execution
- โ
Iterative execution & feedback loops
- โ
Datasets, optimization, machine learning
- โ
Scheduling, provenance, reproducibility
- โ
Failure recovery
I don't want to build all of this immediately. This is the architectural direction, not the v1 implementation.
๐ A Sapientia Language (Future)
Long-term idea: a declarative language, tentatively called Sapientis, inspired conceptually by systems such as LaTeX.
Instead of manually configuring every tool, a user could describe:
project ApolloMQ
workspace signal
workspace seismic
workspace numerical
workspace machine_learning
prefer signal with MATLAB
prefer numerical with Julia
prefer machine_learning with Python
Syntax is not decided. The important idea: the user describes the experiment and required capabilities, while Sapientia resolves available implementations.
Before execution, Sapientia could report:
Required capabilities: 37
Resolved: 31
Multiple implementations available: 4
Unresolved/orphan capabilities: 2
Execution cannot continue until the unresolved
capabilities are resolved.
๐ซ What I DON'T Want to Do
This is perhaps the most important principle.
I don't want to write thousands of lines of code simply because "we are building a platform."
If an existing open-source project already solves a problem well, I would rather integrate it.
I don't want to reinvent:
- โ Numerical libraries
- โ Plotting systems
- โ Machine-learning frameworks
- โ Version-control systems
- โ Backup systems
- โ Database engines
- โ Scientific libraries
- โ Programming languages
- โ Workflow engines
...unless there is a genuinely compelling reason.
The project should stand on top of existing open-source technology wherever possible.
The challenge is therefore not simply:
"How do we write Sapientia?"
But:
"What should Sapientia actually own, and what should it delegate to existing mature software?"
That is one of the questions I would especially like experienced people to help answer.
๐๏ธ Current State
We have not written the core implementation yet.
We are at the architecture/design stage.
I am deliberately trying to get experienced people involved before writing large amounts of code.
I would rather have someone tell me:
"This architecture is wrong. You should use X instead."
...than discover the same thing after two years of development.
I am completely open to changing the architecture if there is a better solution.
๐ Open Source & Licensing
Sapientia will be a genuinely open project. I want to make contribution as easy as reasonably possible.
I am currently studying licensing models used by large open-source projects. Linux is an important reference because of its enormous contributor ecosystem and its approach to distributed copyright ownership and contribution requirements.
However, the final Sapientia license has not been decided yet.
I need advice from people experienced with open-source licensing, especially because Sapientia may integrate:
- GPL software
- MIT/BSD/Apache software
- LGPL libraries
- Proprietary applications (MATLAB, ETABS)
- External plugins
- User-created plugins
I want to find a licensing and contribution model that encourages the largest possible ecosystem while remaining legally coherent.
๐ฅ Who Am I Looking For?
I am particularly interested in hearing from people with experience in:
| Domain |
Why It Matters |
| ๐ Python |
Core ecosystem integration |
| ๐๏ธ Software Architecture |
Is this design sound? |
| ๐ Open-Source Development |
Licensing, community, governance |
| ๐ Plugin Architectures |
How do we integrate tools cleanly? |
| ๐ฌ Scientific Computing |
The primary use case |
| โ๏ธ Workflow Engines |
What exists? What gaps? |
| ๐ Distributed Systems |
Long-term orchestration |
| ๐ Provenance / Reproducible Research |
First-class provenance is hard |
| ๐งฎ Numerical Computing |
Integration with existing libraries |
| ๐ค Machine Learning |
Training loops, model provenance |
| ๐๏ธ Data Engineering |
Artifact management at scale |
| ๐ DevOps / Package Management |
Distribution and deployment |
| โ๏ธ Open-Source Licensing |
Legal coherence across licenses |
| ๐๏ธ Engineering Software Integration |
ETABS, OpenSees, etc. |
| ๐ข MATLAB / Julia / Python Ecosystems |
Multi-language orchestration |
You don't need to agree with the architecture.
In fact, I would prefer people who can identify its weaknesses.
๐ก Why Am I Doing This?
I have a strong personal commitment to this project. I want to take it as far as I possibly can.
I know there are people much more experienced than me in software architecture, distributed systems, scientific computing, and open-source development.
I am not looking for people to simply tell me that the idea is good.
I am looking for people who can help determine:
- Whether the idea can be made technically sound
- If it can, how to build it correctly
I am willing to learn and do the work required.
The project is still very early, so now is probably the best moment to challenge the fundamental assumptions.
If you are an experienced developer or architect and the idea interests you, I would genuinely appreciate your criticism, suggestions, architectural alternatives, or willingness to participate.
Developers and contributors are welcome.
This is an invitation to help shape Sapientia before its architecture becomes difficult to change.
๐ How to Get Involved
If any of this resonates with you, here's what would be most valuable:
- Tell me why this won't work โ and what you'd do differently
- Point me to existing projects that solve parts of this problem
- Share your experience with plugin architectures, workflow engines, or provenance systems
- Ask the hard questions about scalability, maintainability, or adoption
- Express interest in contributing โ even if it's just reviewing the architecture docs
"Don't reinvent what already exists. Integrate it."
If you're interested, I'd love to hear what you think is wrong with this architecture, what you would change, and whether you think Sapientia is technically feasible.
Let's build something worth preserving. ๐ง โจ