
Temporary conceptual vignette for internal discussion and alignment
temp.Rmd
library(fscontext)
library(knitr)
#> Warning: package 'knitr' was built under R version 4.5.2
library(dplyr)
#> Warning: package 'dplyr' was built under R version 4.5.3
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, unionfscontext provides a contextual observational framework
for file systems and related digital resource collections.
The package creates reproducible snapshots of observed files, repository structures, and related operational resources, then supports their contextual enrichment and reconstruction-oriented analysis.
Typical use cases include:
- forensic and audit workflows
- development activity reconstruction
- contextual research corpora
- duplicate and reuse detection
- temporal activity analysis
- repository and Git-aware workflows
- Heritage Digital Twin analytical workspaces
- lightweight Record Set projection
This document explains the emerging conceptual direction of fscontext using terminology inspired by:
Records in Context, particularly RiC-CM; RiC-O;
CIDOC’s CRMDig;
operational archival reconstruction workflows.
The package is currently exploratory and should not yet be interpreted as a formal implementation of RiC-CM.
Why this package exists
Many institutions possess:
large filesystem collections;
fragmented digital archives;
partially documented working directories;
duplicated repositories;
synchronised laptops and servers;
legacy storage environments;
poorly linked digital surrogates.
Typical examples include:
cultural heritage institutions;
research organisations;
software development environments;
documentary production workflows;
corporate shared drives;
partially digitised archives.
In such environments:
files exist;
storage systems exist;
metadata partially exists;
but contextual understanding is fragmented.
The problem is therefore not merely storage or search.
The problem is reconstruction of operational documentary context.
Conceptual direction
The package currently treats filesystem observations as:
Filesystem observations of documentary activity
rather than authoritative archival descriptions.
data("fscontextdemo_snapshot_02")
fscontextdemo_snapshot_02 |>
select(storage_id, full_path, rel_path, filename, scan_time) |>
head() |>
knitr::kable()| storage_id | full_path | rel_path | filename | scan_time |
|---|---|---|---|---|
| fscontextdemo | D:/_packages/fscontextdemo/.github/.gitignore | .github/.gitignore | .gitignore | 2026-05-25 17:46:40 |
| fscontextdemo | D:/_packages/fscontextdemo/.github/workflows/pkgdown.yaml | .github/workflows/pkgdown.yaml | pkgdown.yaml | 2026-05-25 17:46:40 |
| fscontextdemo | D:/_packages/fscontextdemo/.gitignore | .gitignore | .gitignore | 2026-05-25 17:46:40 |
| fscontextdemo | D:/_packages/fscontextdemo/.Rbuildignore | .Rbuildignore | .Rbuildignore | 2026-05-25 17:46:40 |
| fscontextdemo | D:/_packages/fscontextdemo/data/fscontextdemo_snapshot_01.rda | data/fscontextdemo_snapshot_01.rda | fscontextdemo_snapshot_01.rda | 2026-05-25 17:46:40 |
| fscontextdemo | D:/_packages/fscontextdemo/data/fsdemo_country_data.rda | data/fsdemo_country_data.rda | fsdemo_country_data.rda | 2026-05-25 17:46:40 |
fscontextdemo_snapshot_02 |>
add_snapshot_context() |>
add_structural_groups() |>
select(
rel_path,
structural_group,
component
) |>
head(10) |>
knitr::kable()| rel_path | structural_group | component |
|---|---|---|
| .github/.gitignore | .github/.gitignore | NA |
| .github/workflows/pkgdown.yaml | .github/workflows | pkgdown.yaml |
| .gitignore | .gitignore | NA |
| .Rbuildignore | .Rbuildignore | NA |
| data/fscontextdemo_snapshot_01.rda | data/fscontextdemo_snapshot_01.rda | NA |
| data/fsdemo_country_data.rda | data/fsdemo_country_data.rda | NA |
| data-raw/create_fsdemo_country_data.R | data-raw/create_fsdemo_country_data.R | NA |
| data-raw/package_initialisation.R | data-raw/package_initialisation.R | NA |
| DESCRIPTION | DESCRIPTION | NA |
| docs/404.html | docs/404.html | NA |
The package therefore operates at a lower operational layer than traditional archival description systems.
The goal is to:
observe;
contextualise;
reconstruct;
group;
compare;
and progressively understand
large evolving documentary environments.
Relationship to RiC-CM
The package is strongly inspired by the RiC family of models.
In particular:
| fscontext idea | Approximate RiC intuition |
|---|---|
| filesystem observation | Instantiation-like operational evidence |
| snapshot | observational state capture |
| structural group | lightweight operational aggregation |
| record set | contextual documentary grouping |
| provenance attributes | provenance / event traces |
| reconstruction context | contextual operational projection |
| representation analysis | documentary representation layer |
The package currently does not attempt to:
construct authoritative archival descriptions;
replace archival arrangement;
replace professional appraisal;
impose stable archival hierarchies.
Instead it attempts to support:
human-in-the-loop contextual reconstruction
of large documentary ecosystems.
fscontextdemo_snapshot_02 |>
add_snapshot_context() |>
add_structural_groups() |>
select(
rel_path,
structural_group,
component
) |>
head(10) |>
knitr::kable()| rel_path | structural_group | component |
|---|---|---|
| .github/.gitignore | .github/.gitignore | NA |
| .github/workflows/pkgdown.yaml | .github/workflows | pkgdown.yaml |
| .gitignore | .gitignore | NA |
| .Rbuildignore | .Rbuildignore | NA |
| data/fscontextdemo_snapshot_01.rda | data/fscontextdemo_snapshot_01.rda | NA |
| data/fsdemo_country_data.rda | data/fsdemo_country_data.rda | NA |
| data-raw/create_fsdemo_country_data.R | data-raw/create_fsdemo_country_data.R | NA |
| data-raw/package_initialisation.R | data-raw/package_initialisation.R | NA |
| DESCRIPTION | DESCRIPTION | NA |
| docs/404.html | docs/404.html | NA |
library(dataset)
#>
#> Attaching package: 'dataset'
#> The following object is masked from 'package:dplyr':
#>
#> as_tibble
tmp <- tempfile(fileext = ".rds")
saveRDS(fscontextdemo_snapshot_02, tmp)
demo_recordset <- snapshot_to_recordset_df(
person = utils::person("Jane", "Doe"),
snapshot_files = tmp,
roots = "D:/_packages/fscontextdemo",
record_set_id = "fscontextdemo"
)
set.seed(1)
print(demo_recordset |> sample_n(10))
#> Doe (2026): The fscontextdemo filesystem record set [dataset]
#> rowid storage_id person_id full_path rel_path filename stem extension type
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <fct>
#> 1 obs68 fscontextd… demo_user D:/_pack… docs/re… index.h… index html file
#> 2 obs39 fscontextd… demo_user D:/_pack… docs/de… fa-bran… fa-b… ttf file
#> 3 obs1 fscontextd… demo_user D:/_pack… .Rbuild… .Rbuild… .Rbu… NA file
#> 4 obs34 fscontextd… demo_user D:/_pack… docs/de… data-de… data… txt file
#> 5 obs43 fscontextd… demo_user D:/_pack… docs/de… fa-soli… fa-s… ttf file
#> 6 obs14 fscontextd… demo_user D:/_pack… README.… README.… READ… md file
#> 7 obs82 fscontextd… demo_user D:/_pack… man/lab… label_c… labe… rd file
#> 8 obs59 fscontextd… demo_user D:/_pack… docs/li… link.svg link svg file
#> 9 obs51 fscontextd… demo_user D:/_pack… docs/de… jquery-… jque… map file
#> 10 obs21 fscontextd… demo_user D:/_pack… docs/40… 404.md 404 md file
#> # ℹ 22 more variables: size <dbl>, mtime <dttm>, ctime <dttm>, atime <dttm>,
#> # birth_time <dttm>, depth <int>, links <dbl>, permissions <fs::perms>,
#> # quick_sig <chr>, scan_time <dttm>, repo_root <chr>, repo_rel_path <chr>,
#> # git_tracked <lgl>, storage_path_id <chr>, rel_root_path <chr>,
#> # storage_full_path <chr>, observation_id <chr>, structural_group <chr>,
#> # component <chr>, record_set_id <chr>, resource_id <chr>, locator_path <chr>RiC-aligend record sets are stored with rich metadata:
attr(demo_recordset, "dataset_bibentry")
#> Dublin Core Metadata Record
#> --------------------------
#> Title: The fscontextdemo filesystem record set
#> Creator(s): Jane Doe [ctb]
#> Publisher: :unas
#> Year: 2026
#> Description: Filesystem-derived contextual record set created from observational filesystem snapshots.Observational philosophy
A central design principle is:
Filesystem structure is evidence of activities.
Not truth. Not a thing that can be used without interpretation.
For example:
a folder hierarchy may reflect documentary structure;
or merely software installation conventions;
or temporary synchronisation behaviour;
or accidental duplication.
Therefore:
filesystem paths are treated operationally;
structural grouping remains heuristic;
provenance remains explicit;
uncertainty is preserved.
This aligns with archival reconstruction practice:
context must often be inferred progressively from partial documentary evidence.
From files toward documentary entities
The package began as filesystem analytics.
However, the conceptual direction increasingly separates:
record set
-> archive object
-> resource
-> representation
This distinction becomes important because:
the same documentary resource may appear in many representations;
representations may evolve independently;
AI extraction may create additional derived representations;
provenance chains must remain inspectable.
Examples:
| Resource | Possible representations |
| webpage | HTML, OCR text, screenshot, metadata extraction |
| photograph | TIFF, JPEG, OCR annotation, embedding vector |
| dataset | CSV, XLSX, Parquet, published archive |
| musical work | score, recording, metadata graph |
The package therefore increasingly treats filesystem observations as:
operational representations of documentary resources
rather than merely files.
toy_recordset <- fscontextdemo_snapshot_02 |>
add_snapshot_context() |>
add_structural_groups() |>
create_record_set(
record_set_id = "structural_group",
resource_id = "inst_id",
locator_path = "rel_root_path",
construction_rule =
c("path_prefix", "structural_group")
)
toy_recordset |>
select(
record_set_id,
resource_id,
locator_path
) |>
head(10) |>
knitr::kable()| record_set_id | resource_id | locator_path |
|---|---|---|
| .github/.gitignore | inst_id | rel_root_path |
| .github/workflows | inst_id | rel_root_path |
| .gitignore | inst_id | rel_root_path |
| .Rbuildignore | inst_id | rel_root_path |
| data/fscontextdemo_snapshot_01.rda | inst_id | rel_root_path |
| data/fsdemo_country_data.rda | inst_id | rel_root_path |
| data-raw/create_fsdemo_country_data.R | inst_id | rel_root_path |
| data-raw/package_initialisation.R | inst_id | rel_root_path |
| DESCRIPTION | inst_id | rel_root_path |
| docs/404.html | inst_id | rel_root_path |
Longitudinal observation
The package is designed around repeated observation.
A single snapshot is useful.
Multiple snapshots become analytically powerful.
tmp <- file.path(tempdir(), "observe_universe_vignette")
dir.create(tmp, recursive = TRUE, showWarnings = FALSE)
data("fscontextdemo_snapshot_01")
data("fscontextdemo_snapshot_02")
saveRDS(
fscontextdemo_snapshot_01,
file.path(tmp, "scontextdemo_snapshot_01.rds")
)
saveRDS(
fscontextdemo_snapshot_02,
file.path(tmp, "scontextdemo_snapshot_02.rds")
)
observe_universe(
snapshot_dir = tmp,
max_aggregation_depth = 2
) |>
head(10) |>
knitr::kable()| storage_id | aggregation_depth | max_aggregation_depth | observed_unit | n_observations | avg_files_unit | avg_size_unit | avg_size_mb_unit | avg_size_gb_unit | total_files_unit | total_size_unit |
|---|---|---|---|---|---|---|---|---|---|---|
| fscontextdemo | 2 | 2 | D:/_packages/fscontextdemo | 2 | 83 | 3084224 | 2.94 | 0 | 166 | 6168449 |
This allows the package to observe:
persistence;
duplication;
disappearance;
growth;
fragmentation;
repeated operational activity.
The package therefore begins to approximate:
longitudinal documentary reconstruction
rather than merely static filesystem analysis.
Operational record sets
The package increasingly distinguishes between:
filesystem observations;
contextual projections;
operational record sets;
documentary resources;
documentary representations.
toy_recordset <- fscontextdemo_snapshot_02 |>
add_snapshot_context() |>
add_structural_groups() |>
create_record_set(
record_set_id = "structural_group",
resource_id = "inst_id",
locator_path = "rel_root_path",
construction_rule =
c("path_prefix", "structural_group")
)
toy_recordset |>
select(
record_set_id,
resource_id,
locator_path
) |>
head(10) |>
knitr::kable()| record_set_id | resource_id | locator_path |
|---|---|---|
| .github/.gitignore | inst_id | rel_root_path |
| .github/workflows | inst_id | rel_root_path |
| .gitignore | inst_id | rel_root_path |
| .Rbuildignore | inst_id | rel_root_path |
| data/fscontextdemo_snapshot_01.rda | inst_id | rel_root_path |
| data/fsdemo_country_data.rda | inst_id | rel_root_path |
| data-raw/create_fsdemo_country_data.R | inst_id | rel_root_path |
| data-raw/package_initialisation.R | inst_id | rel_root_path |
| DESCRIPTION | inst_id | rel_root_path |
| docs/404.html | inst_id | rel_root_path |
At the current stage these Record Sets remain:
operational;
heuristic;
contextual;
partially inferred.
They should not automatically be interpreted as authoritative archival arrangements.
However, they provide an important intermediate layer between:
raw filesystem evidence
and
semantically enriched documentary interpretation.
Toward representation-aware archives
The package increasingly moves toward representation-aware analysis.
A documentary resource may exist in multiple operational representations.
Examples:
| Resource | Representations |
|---|---|
| webpage | HTML, OCR text, screenshot, extracted metadata |
| photograph | TIFF, JPEG, thumbnail, embedding vector |
| report | DOCX, PDF, OCR text, markdown conversion |
| software package | source files, binaries, documentation, repository state |
This distinction becomes increasingly important for:
AI extraction workflows;
web archives;
digitisation pipelines;
heritage reconstruction;
linked knowledge graph construction.
Web archives and WACZ
The current filesystem model already aligns surprisingly well with web archive structures.
A WACZ archive may itself become:
a Record Set;
containing archived web resources;
each with multiple representations.
For example:
record set
└── web archive collection
└── webpage
├── HTML representation
├── embedded image representation
├── PDF representation
├── OCR text representation
└── extracted metadata representation
This means that the same operational reconstruction logic may later support:
local filesystems;
WARC/WACZ archives;
repository ecosystems;
digitisation pipelines;
hybrid physical-digital archives.
Human-in-the-loop reconstruction
The package does not assume that AI alone can solve documentary reconstruction.
Large documentary environments frequently contain:
millions of files;
fragmented metadata;
duplicated representations;
partial contextual information;
inconsistent naming practices;
missing provenance.
AI systems may help process these environments.
However:
processing is not equivalent to understanding.
The package therefore emphasises:
inspectable provenance;
explicit contextualisation;
heuristic transparency;
operational traceability;
human-guided reconstruction.
This aligns with emerging concerns in:
cybersecurity;
digital preservation;
AI governance;
archival reconstruction;
heritage informatics.
Provenance and Accountability in Agentic Systems
The project also explores an increasingly important problem in AI-native knowledge systems: provenance and accountability in orchestrated multi-agent environments.
Swarm-like AI architectures can generate large numbers of hypotheses, transformations, and inferred links at very high speed. While this creates significant opportunities for enrichment and discovery, it also introduces substantial epistemic and operational risks. Without structured provenance, it rapidly becomes unclear:
which agent generated a claim,
from which source data,
under which assumptions or prompts,
through which transformations,
and with what degree of uncertainty or agreement.
The project therefore treats provenance not as auxiliary metadata, but as a core infrastructural requirement for trustworthy agentic systems. Candidate links, refinements, validations, and rejections should remain reconstructable and attributable over time, allowing both human experts and later automated systems to evaluate how a conclusion was reached.
In this sense, the graph is not merely a storage layer for accepted knowledge, but also a structured memory of exploratory reasoning, partial hypotheses, and contested interpretations. It preserves not only what the system currently “believes,” but also how those beliefs emerged, which alternatives were considered, and where uncertainty or disagreement remains unresolved.
This becomes increasingly important in swarm-like agentic systems, where large numbers of inexpensive, disposable agents may continuously generate candidate links, classifications, transformations, or semantic assertions. Such systems can be highly productive, but without structured contextual memory they also risk producing opaque, unstable, or irreproducible knowledge environments. Valuable intermediate reasoning may disappear, errors may repeatedly re-emerge, and conflicting interpretations may become impossible to audit retrospectively.
The graph therefore functions as a possible “defensive” layer for large-scale AI orchestration. Rather than allowing agent outputs to collapse immediately into accepted truth claims, the system preserves contextual traceability, provenance, uncertainty, confidence estimates, conflicting interpretations, and human review events as first-class operational objects. This makes it possible to reconstruct not only the final state of the graph, but also the epistemic pathway through which that state was reached.
Importantly, this defensive role is not primarily about restricting AI systems, but about stabilising them. The production graph provides continuity across otherwise ephemeral computational processes. Disposable agents may come and go, prompts and models may evolve, but the structured operational memory remains inspectable, accumulative, and progressively refinable over time.
In this interpretation, provenance is no longer auxiliary metadata attached after knowledge production. It becomes part of the reasoning infrastructure itself: a mechanism for preserving accountability, contextual continuity, and human interpretability in environments where knowledge is increasingly generated through distributed, iterative, and partially autonomous machine collaboration.
Production Graphs for Agentic Knowledge Construction
The project also explores the idea of a “production graph”: a structured, provenance-aware graph designed not primarily as an end-user knowledge product, but as an operational substrate that helps AI agents construct more accurate downstream graphs.
Unlike a published knowledge graph, whose primary purpose is retrieval or presentation, the production graph functions as a persistent operational memory for human and machine collaboration. It stores not only validated entities and relationships, but also contextual traces of how those relationships were produced, challenged, refined, or rejected over time.
In this model, the graph becomes part of the reasoning environment itself. Agents do not operate against isolated records or raw API responses, but against an evolving contextual substrate containing prior reconciliations, identity mappings, provenance trails, uncertainty markers, competing hypotheses, and partially resolved ambiguities. This allows later agents to reuse earlier work, narrow search spaces, and avoid repeatedly solving already explored identification problems.
The production graph therefore accumulates not merely accepted knowledge, but operational experience. Failed matches, contested interpretations, low-confidence links, and unresolved entities may all remain valuable as contextual evidence for future iterations. In this sense, the graph acts simultaneously as:
a provenance system, a coordination layer, a contextual memory, and a stabilisation mechanism for swarm-like agentic workflows.
This distinction becomes increasingly important in large-scale AI orchestration. Disposable agents may generate enormous volumes of short-lived hypotheses, transformations, and inferred relationships. Without a structured production graph, these outputs risk becoming epistemically opaque and operationally irreproducible. The production graph instead preserves reconstructability: which agent generated a claim, from which sources, through which transformations, under which assumptions, and with what degree of uncertainty or agreement.
The end-user graph therefore becomes only one possible projection of a deeper operational environment. Beneath it, the production graph continuously records exploratory reasoning, contextual evidence, and evolving semantic structure, allowing human experts and later automated systems to progressively refine the knowledge space over time.
The fscontext::recordset_df objects are graph-ready,
N-Triple provenance graph, that can be immediately inserted into a
production graph
cat(provenance(demo_recordset))
#> <http://example.com/dataset_prov.nt> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Bundle> . <http://example.com/dataset#> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Entity> . <http://example.com/dataset#> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://purl.org/linked-data/cube#DataSet> . _:doejane <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Agent> . <https://doi.org/10.32614/CRAN.package.dataset> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#SoftwareAgent> . <http://example.com/creation> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Activity> . <http://example.com/creation> <http://www.w3.org/ns/prov#generatedAtTime> "2026-06-13T16:22:41Z"^^<xsd:dateTime> . <https://fscontext.example.org/agent/Jane_Doe> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> . <https://fscontext.example.org/agent/Jane_Doe> <http://www.w3.org/2000/01/rdf-schema#label> "Jane Doe"^^<http://www.w3.org/2001/XMLSchema#string> . <https://fscontext.example.org/software/snapshot_to_recordset_df> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#SoftwareAgent> . <https://fscontext.example.org/recordset/fscontextdemo/activity/snapshot_to_recordset_df> <http://www.w3.org/ns/prov#wasAssociatedWith> <https://fscontext.example.org/software/snapshot_to_recordset_df> . <https://fscontext.example.org/recordset/fscontextdemo/activity/snapshot_to_recordset_df> <http://www.w3.org/ns/prov#wasAssociatedWith> <https://fscontext.example.org/agent/Jane_Doe> . <https://fscontext.example.org/recordset/fscontextdemo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Entity> . <https://fscontext.example.org/recordset/fscontextdemo/activity/snapshot_to_recordset_df> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Activity> . <https://fscontext.example.org/recordset/fscontextdemo/activity/snapshot_to_recordset_df> <http://www.w3.org/ns/prov#endedAtTime> "2026-06-13T18:22:42Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> . <https://fscontext.example.org/recordset/fscontextdemo> <http://www.w3.org/ns/prov#wasGeneratedBy> <https://fscontext.example.org/recordset/fscontextdemo/activity/snapshot_to_recordset_df> . "file:///C:/Users/DanielAntal/AppData/Local/Temp/RtmpYlLSvG/file4b60756123f8.rds"^^<http://www.w3.org/2001/XMLSchema#string> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Entity> . <https://fscontext.example.org/recordset/fscontextdemo/activity/snapshot_to_recordset_df> <http://www.w3.org/ns/prov#used> "file:///C:/Users/DanielAntal/AppData/Local/Temp/RtmpYlLSvG/file4b60756123f8.rds"^^<http://www.w3.org/2001/XMLSchema#string> . <https://fscontext.example.org/recordset/fscontextdemo> <http://www.w3.org/ns/prov#wasDerivedFrom> "file:///C:/Users/DanielAntal/AppData/Local/Temp/RtmpYlLSvG/file4b60756123f8.rds"^^<http://www.w3.org/2001/XMLSchema#string> .In this model, the graph stores:
validated entities and identifiers,
contextual relationships,
prior matching decisions,
uncertainty and conflict information,
provenance trails,
and previously explored hypotheses.
Rather than repeatedly solving the same identification and disambiguation problems from raw text or isolated API responses, agents can operate against this evolving production graph as a shared contextual memory.
This allows agent swarms to:
narrow search spaces,
reuse prior reconciliations,
detect conflicting interpretations,
preserve contextual continuity across runs,
and converge more efficiently on plausible links.
The end-user graph therefore becomes only one layer of the system. Beneath it, the production graph functions as a continuously evolving coordination and memory infrastructure for human-in-the-loop agentic knowledge production.
Toward heritage digital twins
The long-term conceptual direction increasingly resembles:
operational heritage digital twins
rather than static inventories.
In this interpretation:
filesystem observations provide operational evidence;
Record Sets provide contextual aggregation;
representations provide interaction surfaces;
linked semantic models provide interoperability;
human analysts guide interpretation.
This creates possibilities for interaction between:
RiC-aligned documentary graphs;
CIDOC CRM heritage graphs;
FRBRoo cultural object models;
repository histories;
web archive structures;
AI-assisted analytical workflows.
The goal is therefore not merely to store documentary information.
The goal is to create:
inspectable operational environments for understanding evolving documentary ecosystems.