ARCtrl
Since their publication a decade ago, the FAIR guiding principles have increasingly shaped Research Data Management (RDM), particularly in how research outputs are described, shared, and reused [1]. Their influence has also informed more technical concepts such as FAIR Digital Objects (FDOs), which aim to represent research data and associated metadata in a persistently identifiable, semantically described, and machine-actionable form [2]. If adopted correctly, these concepts can boost the long-term value of research data by enabling automated reuse and integration in future scientific contexts. However, this does not come without cost, as it requires a reliable and technically sound transfer of knowledge from researchers and research-support personnel into these highly formalized data and metadata structures.
The Annotated Research Context (ARC) addresses this challenge by combining a human-usable project structure with a machine-actionable representation of the same research context [3]. Its ARC Scaffold provides a version-controlled folder-and-file structure for managing research data and metadata, while ARC RO-Crate provides its machine-actionable, RO-Crate-based representation for use as a FAIR Digital Object [4]. By building upon standards such as ISA, CWL, and RO-Crate, the ARC integrates experimental metadata, computational workflows, and provenance in a form that supports both day-to-day research work and FAIR infrastructure integration [5, 6].
Realizing an FDO involves several complementary concerns, including content representation, persistent identification and resolution, and the services and governance required to manage the object over time. Each of these requires reliable tooling, with the presented solution concerning the content representation. Individual researchers and project teams benefit from tools with intuitive graphical user interfaces (GUIs) that support day-to-day project work. Data stewards and power users require scripted workflows and command-line access. Facility managers, infrastructure providers, and consortia need stable libraries that can be embedded into existing software stacks. These requirements are especially demanding in a rapidly evolving RDM landscape, where specifications both shape and are shaped by the expectations of RDM experts and the research communities that adopt them.
In this contribution, we present the software library ARCtrl as the central reference implementation of the ARC data model and its representations [7]. ARCtrl provides the core functionality required to parse, manipulate, and convert ARCs across their different representations. It acts as an authoritative software layer between the ARC specification and applications that depend on ARC functionality. This is important because specifications alone cannot prevent divergent interpretations across independently developed tools. By centralizing core ARC behavior in a shared implementation, ARCtrl aims to reduce fragmentation within the ARC community, providing a stable foundation for a wide range of downstream applications.
A central challenge in designing ARCtrl is the heterogeneity of use-cases and their deployment environments. These use cases range from GUI-based project management, through infrastructure-level automation, to validation packages and research-driven analysis pipelines that require programmatic access to ARC metadata. In practice, supporting these environments requires ARC functionality to be available in several specialized programming languages. At the same time, academic software teams are often small, funding is project-based, and long-term maintenance resources are limited. Maintaining several independent implementations of the same rapidly evolving data model would therefore be costly and would increase the risk of inconsistent behavior across tools.
ARCtrl addresses this challenge through a single-source, polyglot implementation strategy. The core library is implemented in F# and transpiled to multiple target ecosystems, namely .NET, Python, and JavaScript/TypeScript. This provides first-class ARC support in several widely used programming environments while avoiding the maintenance burden of independent reimplementations. The same conceptual data model and core behavior can therefore be reused in desktop or terminal applications, Python-based data-processing workflows, browser-based tools, and TypeScript web applications. The resulting packages are distributed through NuGet, PyPI, and npm, respectively.
The polyglot architecture requires careful API and testing design. Since source and target languages differ in type and module systems, runtime environments, and idiomatic usage patterns, ARCtrl applies constraints and adaptations to ensure that transpiled code remains usable in each ecosystem. API elements must be exposed cleanly in Python and TypeScript while preserving the structure of the F# source implementation. Runtime-dependent behavior must also be abstracted rather than tied to a specific file-system implementation. ARCtrl therefore provides a fully functional in-memory model and a Data Transfer Object-based I/O layer, giving implementers flexibility across execution contexts. This is especially important in JavaScript, where the same library may run in browsers, scripts, or servers with different input and output access patterns. ARCtrl uses a shared test strategy: core tests are written against the F# implementation and transpiled alongside the source code, ensuring consistent behavior across language boundaries. In addition, native tests written directly in Python and TypeScript verify that the published packages expose idiomatic top-level APIs for their target ecosystems.
Functionally, ARCtrl implements the ARC content model, its principal representations, and the conversion pathways between them. It supports the ARC Scaffold as the user-facing file-system representation and ARC RO-Crate as the machine-actionable linked-data representation. The core data model is aligned with the conceptual requirements of the ARC Scaffold representation. It includes ISA, CWL, and Datamap types and methods, as well as a rich suite of functions for fine-grained table manipulation. For the RO-Crate layer, ARCtrl provides generic JSON-LD functionality, including representations of contexts, nodes, graphs, compaction, and flattening, while allowing static and dynamic properties to coexist. This is important because ARC metadata must combine well-defined schema elements with the extensibility required by evolving community standards. ARCtrl also implements import and export mechanisms for ARC-related formats, including ISA-JSON, ISA-XLSX, RO-Crate JSON, and CWL-YAML.
The practical value of ARCtrl becomes visible in how it is used across different tools and programming environments. The TypeScript package forms the basis for SWATE, which supports fine-grained metadata annotation, and ARCitect, which manages complete ARCs, integrating the aforementioned SWATE functionality into a project-wide environment, including the necessary file-system interaction . In F#/.NET, ARCtrl underlies command-line tools such as ARCCommander for creating and managing ARCs, as well as arc-export, which is used in the PLANTdataHUB to convert between ARC representations [9, 10]. The F# package has also been used for querying ARCs in downstream data-analysis scenarios. In Python, ARCtrl enables integration with established data-science and validation libraries. For example, it can be combined with Frictionless to extract data maps from an ARC, derive or improve tabular validation schemas from ARC metadata, and validate the corresponding data files [11]. It is also used in BrAPI2ARC, which allows researchers to submit phenotyping observations to a dataset stored as an ARC.
By providing a stable, tested, and reusable reference implementation for the ARC, ARCtrl contributes to the sustainability of FAIR RDM infrastructures. It lowers the barrier to adoption by making ARC functionality available in familiar programming environments, reduces fragmentation around an evolving data model, and supports interoperable tools around a shared software foundation. More broadly, ARCtrl demonstrates how a carefully designed polyglot core library can bridge the gap between FAIR data specifications and practical research workflows, strengthening the ARC as both a user-centered RDM entry point and a machine-actionable, AI-ready FAIR Digital Object.