Source ingestionIngestion des sources
A Knowledge Space holds two ingestion capabilities — one for sources that already carry a schema (CSV, JSON, SQL, Zotero, REST APIs), one for documents that must be converted first (PDF, Office, audio, video). Every new kind of source binds to one of the two.Un Knowledge Space dispose de deux capacités d'ingestion — l'une pour les sources qui portent déjà un schéma (CSV, JSON, SQL, Zotero, APIs REST), l'autre pour les documents qu'il faut d'abord convertir (PDF, Office, audio, vidéo). Chaque nouveau type de source se rattache à l'une des deux.
How sources enter a Knowledge SpaceComment les sources entrent dans un Knowledge Space
Two capabilities — named in the capability graph — handle every source. Structured source ingestion (cap:KSStructuredSourceIngestion) covers data that already has a schema : Zotero entries, CSV files, JSON documents, SQL tables, arXiv records, RSS feeds, patents, REST API responses. Document ingestion (cap:KSUnstructuredSourceIngestion) covers documents that must be converted first : voice recordings, video, audio, PDFs, Office files, HTML pages, transcripts.
Deux capacités — nommées dans le graphe de capacités — couvrent toute source. L'ingestion structurée de sources (cap:KSStructuredSourceIngestion) prend en charge les données qui portent déjà un schéma : entrées Zotero, fichiers CSV, documents JSON, tables SQL, enregistrements arXiv, flux RSS, brevets, réponses d'APIs REST. L'ingestion documentaire (cap:KSUnstructuredSourceIngestion) prend en charge les documents qu'il faut d'abord convertir : enregistrements vocaux, vidéo, audio, PDF, fichiers Office, pages HTML, transcriptions.
The two capabilities are linked by a skos:related statement in the ontology. By the SKOS specification, this property is symmetric ; the link is recorded in both directions so any SPARQL engine sees it without needing to run OWL reasoning. The pairing is graph data, not a convention written in prose.
Les deux capacités sont liées par une déclaration skos:related dans l'ontologie. Selon la spécification SKOS, cette propriété est symétrique ; le lien est enregistré dans les deux directions pour qu'un moteur SPARQL le voie sans déclencher de raisonnement OWL. L'appariement est une donnée de graphe, pas une convention écrite en prose.
Mixed sources split fields between the two capabilities. A Zotero entry with an attached PDF, for example, sends the bibliographic metadata through structured source ingestion and the PDF body through document ingestion. The two fragments stay linked via dcterms:source and prov:wasDerivedFrom.
Les sources mixtes répartissent leurs champs entre les deux capacités. Une entrée Zotero avec un PDF joint, par exemple, envoie les métadonnées bibliographiques par l'ingestion structurée de sources et le corps du PDF par l'ingestion documentaire. Les deux fragments restent liés via dcterms:source et prov:wasDerivedFrom.
zotero-to-csv · csv-passthrough · sql-to-csv · ...rmlEngine · RmlMappingConfig · W3C RMLffmpeg · audio extractionextraction audio · LGPL-2.1+markitdown · MITdcterms:source · prov:wasDerivedFrom · timestampRML rmlEnginener.rs · NerEnginecandle-whisper · sherpa-onnxThe two capabilities are linked by skos:related in capability-operations.ttl. By the SKOS specification, this property is symmetric — declared once, valid in both directions. The ontology records the statement twice (once per direction) so any SPARQL engine sees the link without depending on OWL reasoning. The pairing is graph data, not a convention written in prose.Les deux capacités sont liées par skos:related dans capability-operations.ttl. Selon la spécification SKOS, cette propriété est symétrique — déclarée une fois, valable dans les deux directions. L'ontologie enregistre la déclaration deux fois (une par direction) pour qu'un moteur SPARQL voie le lien sans dépendre du raisonnement OWL. L'appariement est une donnée de graphe, pas une convention écrite en prose.
bra0:KSStructuredSourceIngestion skos:related bra0:KSUnstructuredSourceIngestion ; rdfs:comment "Paired ingestion paths : structured (RML) and unstructured (markitdown)." . bra0:KSUnstructuredSourceIngestion skos:related bra0:KSStructuredSourceIngestion ; rdfs:comment "Paired ingestion paths : unstructured (markitdown) and structured (RML)." .
SELECT ?a ?b WHERE { ?a a edgy:Capability ; skos:related ?b . ?b a edgy:Capability ; skos:related ?a . # both arrows present — the relation is symmetric }
The query returns the paired capabilities as graph data. Adding a third ingestion capability would require a third edgy:Capability instance — and the moment that third capability is linked to one of the existing two by another skos:related statement, the same query exposes the breach. The two-capability contract is enforced by data, not by prose.La requête retourne les capacités appariées en tant que données de graphe. Ajouter une troisième capacité d'ingestion exigerait une troisième instance edgy:Capability — et dès qu'elle serait liée à l'une des deux existantes par une autre déclaration skos:related, la même requête en révélerait la rupture. Le contrat à deux capacités tient par la donnée, pas par la prose.
Document ingestion delegates two pre-processing steps to external open-source tools. Each is pinned at a specific version in the project's component registry so the pipeline stays reproducible.L'ingestion documentaire délègue deux étapes de pré-traitement à des outils externes open-source. Chacun est épinglé à une version précise dans le registre de composants du projet pour que la pipeline reste reproductible.
Structured source ingestion has no external dependencies — the RML mapping engine is part of bra0 itself (Rust workspace, rmlEngine crate).L'ingestion structurée de sources n'a pas de dépendance externe — le moteur de mapping RML fait partie de bra0 lui-même (workspace Rust, crate rmlEngine).
ADR-112 · Document ingestion — markitdown as the default converter for voice, video, audio, PDF, Office, HTML, transcripts.Ingestion documentaire — markitdown comme convertisseur par défaut pour voix, vidéo, audio, PDF, Office, HTML, transcriptions.
ADR-116 · Two status badges on every capability — delivery status (gap, planned, partial, shipped) and doctrine stage (DRAFT, PROPOSED, PROVEN, SEALED).Deux badges de statut sur chaque capacité — statut de livraison (lacune, planifié, partiel, livré) et étape doctrinale (BROUILLON, PROPOSÉ, PROUVÉ, SCELLÉ).
ADR-117 · Visual primitives — the
.cap blocks, data-cap-iri binding, and status badges used throughout this drill-down.Primitives visuelles — les blocs .cap, le binding data-cap-iri et les badges de statut utilisés tout au long de ce drill-down.