Auto-assembly using Croissant ML metadata—separation of semantic schema and data element metadata #14
slobentanzer
started this conversation in
Ideas
Replies: 1 comment
|
Hi @kpto, happy new year! Would be interested in your opinion on this. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
flowchart TD %% --------------------------- %% SUBGRAPHS TO SHOW LAYERS %% --------------------------- subgraph UserLayer[User Layer] Ud[User defines ETL] U[User selects concepts] end subgraph SemanticLayer[Semantic Layer] SC[BioCypher schema] end subgraph MetadataLayer[Data Element Metadata Layer] DE_existing[Existing metadata in adapters] DE_new[New BioCroissant based metadata] end subgraph AdapterLayer[Adapter Layer] A_existing[Manual adapters] A_gen[Generated adapters from metadata] end subgraph AssemblyLayer[Assembly and Build Layer] AM_existing[Current schema plus adapter matching] AM_new[Future automatic assembly] end subgraph GraphLayer[Graph Construction Layer] GC[BioCypher graph builder] end %% --------------------------- %% FLOWS %% --------------------------- U --> SC Ud --> DE_existing U --- Ud SC --> AM_existing SC --> AM_new DE_existing --> A_existing DE_new --> A_gen DE_new --> AM_new A_existing --> GC A_gen --> GC AM_existing --> GC AM_new --> GC %% --------------------------- %% COLOUR STYLING %% --------------------------- %% Legacy components (keep) style SC fill:#dbeafe,stroke:#1e40af,stroke-width:1px style GC fill:#dbeafe,stroke:#1e40af,stroke-width:1px %% Deprecated components (phase out) style Ud fill:#fee2e2,stroke:#b91c1c,stroke-width:1px style A_existing fill:#fee2e2,stroke:#b91c1c,stroke-width:1px style DE_existing fill:#fee2e2,stroke:#b91c1c,stroke-width:1px style AM_existing fill:#fee2e2,stroke:#b91c1c,stroke-width:1px %% New additions style U fill:#dcfce7,stroke:#15803d,stroke-width:1px style DE_new fill:#dcfce7,stroke:#15803d,stroke-width:1px style A_gen fill:#dcfce7,stroke:#15803d,stroke-width:1px style AM_new fill:#dcfce7,stroke:#15803d,stroke-width:1pxHigh-Level Refactor Plan: Clean Separation of Semantics and Data-Element Metadata in BioCypher
Goal
Make BioCypher easier to use and more maintainable by separating semantic modelling (ontology-based) from data recording metadata (technical representation)
Achieve a workflow where users select domain concepts, and BioCypher automatically assembles the ETL, metadata validation, and graph construction behind the scenes.
Current State
BioCypher Schema (semantic layer)
Graph Builder
Manual Adapters (where needed)
The Problem Today
This creates tight coupling and repeated effort.
The New Architecture (Additions)
A dedicated metadata layer (BioCroissant style)
A structured metadata registry describing:
This is NOT semantic. It is purely technical representation.
BioCypher does not interpret this as ontology.
It just uses it to produce validated structured data.
Automatic Adapter Generation from Metadata
Using a templating system (e.g., Jinja), metadata now produces:
Users no longer write ETL unless they want to.
Automatic Assembly Layer
A new component that:
User only selects concepts; BioCypher handles everything else.
Clean Separation of Concerns
Semantics (BioCypher schema)
Metadata (BioCroissant)
Adapters
Graph Builder
Components Being Deprecated
These are phased out incrementally:
These remain for compatibility but are no longer the recommended pathway.
Expected Benefits
For Users
For Developers
For Future Integrations (BioContext, LLM tooling)
Summary
Target is a three-layer architecture:
Adapters and graph builder remain compatible and largely unchanged, but their inputs are now better defined and automatically produced.
All reactions