Generated from
folio-assistant-core/processes/library/ingest-build-l1-kg.bpmnbygen-processes-viz.ts— do not edit here. All processes
Ingestion subprocess — build the L1 knowledge graph
Process_BuildL1Kg · advisory · 5 step(s)
Build the L1 knowledge graph from what ingestion derived: Dublin Core, the manifest, the assets, their binding and their links. folio-assistant — Ingestion subprocess — build the L1 knowledge graph.
Source of truth: this file. Open it in bpmn.io, Camunda Modeler, or any other
BPMN 2.0 tool. The SVG under docs/assets/img/workflows/ is generated from it
by bun run cat render:bpmn — never hand-edit the SVG.
The
How it connects
- Called by: L1 document ingestion — a document to the L1 source knowledge graph
- Calls: none
- Presented on: Document ingestion — Build the L1 knowledge graph
Lanes — who acts
| lane | role | what it does here |
|---|---|---|
| Ingestion Engine (agent, runs unattended) | ingestion-agent | Writes four records in a fixed order and touches the corpus graph in none of them — dublin-core as the record of truth, a manifest that references it, assets[] kept as a SIBLING of library: because that tree is regenerated and would drop anything written inside it, and finally the slug binding Task_Link depends on. Getting the order or the placement wrong here is invisible until the next sync silently drops it. |
| Corpus — L1 source knowledge graph | corpus | The single moment the four records Lane_0 wrote become reachable by reference rather than just present on disk: Task_Link is what a knowledge-graph reference in a paper, an L2 or an L3 artefact actually resolves through, and until it runs, dublin-core.jsonld and its siblings are files in library/ that nothing in the graph points to yet. |
Steps
Every one of the 5 step(s) is documented.
| step | lane | skill / sub-process | what it does |
|---|---|---|---|
Write dublin-core.jsonld (the record of truth)Task_Dublin | Ingestion Engine (agent, runs unattended) | document-intake | One standalone Dublin Core record per folder. dcterms is already this corpus’s JSON-LD vocabulary, so this extends a live context rather than introducing one. |
Write manifest.jsonld referencing itTask_Manifest | Ingestion Engine (agent, runs unattended) | document-intake | Write manifest.jsonld for the folder: its @id, @type folio:SourceDocument, what it contains and its provenance, referencing the standalone dublin-core.jsonld as the record of truth rather than copying its fields. |
Record assets[] — local path or remote URLTask_Assets | Ingestion Engine (agent, runs unattended) | document-intake | kind / role / url-or-path / checksum / retrieved. A SIBLING of library:, never inside it: LibraryRef is regenerated from the tree, so an authored URL placed there is dropped on the next sync. |
Bind the folder name to the bibliography slugTask_Bind | Ingestion Engine (agent, runs unattended) | document-intake | Bind the folder name to the document’s bibliography slug, so library/ |
Link L1 nodes into the corpus graphTask_Link | Corpus — L1 source knowledge graph | document-intake | Anything in library/ is L1 source content. A knowledge-graph reference from any artefact – paper, L2, L3 – resolves to it through library/. |