bra0  /  Blueprint  /  Source ingestionIngestion des sources

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.

OverviewVue d'ensemble

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.

The two capabilities side by sideLes deux capacités côte à côte
Operational capabilities involvedCapacités opérationnelles impliquées
SL-5
shippedlivré DRAFTBROUILLON
Data MappingMapping de données
W3C RML mapping engine. Turns tabular and JSON sources into RDF instances ; schema inference, IRI templates, type coercion, source provenance tracked end-to-end. Default engine for structured source ingestion.Moteur de mapping W3C RML. Transforme des sources tabulaires et JSON en instances RDF ; inférence de schéma, templates IRI, coercition de type, provenance de source tracée de bout en bout. Moteur par défaut de l'ingestion structurée de sources.
ExistsExiste
RML rmlEngine
NS-8
shippedlivré DRAFTBROUILLON
Entity RecognitionReconnaissance d'entités
Named-entity recognition without per-domain training. Runs candle BERT (MiniLM-L6-v2, 22 MB, 384 dimensions) over your domain SKOS vocabulary and ranks concepts by cosine similarity. Reads the Markdown produced by document ingestion.Reconnaissance d'entités nommées sans entraînement par domaine. Exécute candle BERT (MiniLM-L6-v2, 22 Mo, 384 dimensions) contre votre vocabulaire SKOS de domaine et classe les concepts par similarité cosinus. Lit le Markdown produit par l'ingestion documentaire.
ExistsExiste
ner.rs · NerEngine
NS-9
plannedplanifié DRAFTBROUILLON
Local transcriptionTranscription locale
Audio-to-text running on the device. candle-whisper (Rust, WebAssembly) for speech, sherpa-onnx for speaker separation — no audio leaves the machine. Multilingual (fr / en). Runs as the audio / video pre-pass for document ingestion.Audio vers texte exécuté sur l'appareil. candle-whisper (Rust, WebAssembly) pour la parole, sherpa-onnx pour la séparation de locuteurs — aucun audio ne quitte la machine. Multilingue (fr / en). Exécutée comme pré-passe audio / vidéo de l'ingestion documentaire.
Planned v0.9Planifié v0.9
candle-whisper · sherpa-onnx
The symmetric link, visible to SPARQLLe lien symétrique, visible à SPARQL

The 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.

The two statements (capability-operations.ttl)Les deux déclarations (capability-operations.ttl)
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)." .
SPARQL — find the paired capabilities without hardcoding their namesSPARQL — trouver les capacités appariées sans coder leurs noms en dur
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.

Registered external toolsOutils externes enregistrés

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.

markitdown 0.1.5MIT · converts Office / PDF / HTML / audio transcripts into Markdownconvertit Office / PDF / HTML / transcriptions audio en Markdown
ffmpeg 8.0.1LGPL-2.1-or-later · extracts the audio track from video before markitdown converts itextrait la piste audio des vidéos avant que markitdown ne la convertisse

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).

The contracts behind this pageLes contrats derrière cette page
ADR-111 · Structured source ingestion — RML as the default mapping engine for CSV, JSON, SQL, Zotero, arXiv, RSS, patents, REST APIs.Ingestion structurée de sources — RML comme moteur de mapping par défaut pour CSV, JSON, SQL, Zotero, arXiv, RSS, brevets, APIs REST.
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.

Back to BlueprintRetour au Blueprint