https://github.com/nfdi4plants/arc-validate
Libraries and CLI tools for creation, consumption, and execution of ARC validation packages
https://github.com/nfdi4plants/arc-validate
arc dataplant docker dotnet expecto fsharp isa-dotnet nfdi4plants unit-testing validation
Last synced: 3 months ago
JSON representation
Libraries and CLI tools for creation, consumption, and execution of ARC validation packages
- Host: GitHub
- URL: https://github.com/nfdi4plants/arc-validate
- Owner: nfdi4plants
- License: mit
- Created: 2023-02-17T09:12:15.000Z (over 3 years ago)
- Default Branch: release
- Last Pushed: 2026-02-26T10:05:12.000Z (4 months ago)
- Last Synced: 2026-02-26T16:01:09.408Z (4 months ago)
- Topics: arc, dataplant, docker, dotnet, expecto, fsharp, isa-dotnet, nfdi4plants, unit-testing, validation
- Language: F#
- Homepage: https://nfdi4plants.github.io/arc-validate/
- Size: 1.44 MB
- Stars: 4
- Watchers: 3
- Forks: 3
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# arc-validate
Home of all the tools and libraries to create and run validation of ARCs:
- **ARCExpect** ([docs :notebook:](https://nfdi4plants.github.io/arc-validate/ARCExpect/introduction.html)) - easy to use and understand APIs to create and execute validation cases.
- **ARCValidationPackages** ([docs :notebook:](https://nfdi4plants.github.io/arc-validate/ARCValidationPackages/introduction.html)) - package for installing, updating, and executing ARC validation packages.
- **arc-validate/** ([docs :notebook:](https://nfdi4plants.github.io/arc-validate/arc-validate/introduction.html)) - CLI tool that offers commands for validating ARCs and managing validation packages.
## Docker container
This repository provides a [docker container](https://github.com/nfdi4plants/arc-validate/pkgs/container/arc-validate) that has the `arc-validate` tool pre-installed for using it in [DataHUB](https://git.nfdi4plants.org/explore)-CI jobs.
Use the containers tagged with [main](https://github.com/nfdi4plants/arc-validate/pkgs/container/arc-validate/174978018?tag=main) for production use.
## Project aim
Validation of ARCs based on:
- **ARCTokenization**: Structural ontologies for file formats (for parsing/tokenizing files): INVMSO, STDMSO, ASSMSO
- **OBO.NET**:
- parsing ontologies, generation of **OBO graphs** based on ontology term relation
- code genearation of ontology modules with accessible terms
- **ARCGraph**: Graph representation of file content based on structural ontologies via **OBO graph**
- **Graph-based** completion of File content (missing cells -> empty tokens) via **ARCGraph**
- **ARCExpect.Core**: Expecto-like API for validation
- **ARCExpect**: ARC aware API for validation cases
- **Validation Packages**: API for installing and executing additional validation packages
## Project layout
### Dependency visualization
```mermaid
flowchart TD
ControlledVocabulary("ControlledVocabulary:
Data model for CVs")
ARCTokenization("ARCTokenization:
Tokenization of ARCs into CVs")
OBO.NET("OBO.NET:
OBO Ontology data model and parsing")
ARCGraph("ARCGraph:
Graph based on structural ontologies")
ARCExpect("ARCExpect:
ARC aware API for validation")
ARCExpect.Core("ARCExpect.Core:
Expecto-like API for validation")
ARCValidationPackages("ARCValidationPackages:
API for additional validation packages")
arc-validate("arc-validate:
validation CLI tool")
arc-validate --depends on--> ARCExpect
arc-validate --depends on--> ARCValidationPackages
ARCTokenization --depends on--> ControlledVocabulary
ARCTokenization --depends on--> OBO.NET
ARCExpect --depends on--> ARCExpect.Core
ARCExpect --depends on--> ARCGraph
ARCExpect --depends on--> ARCTokenization
ARCGraph --depends on--> ARCTokenization
ARCGraph --depends on--> OBO.NET
```
### Libraries used
#### ARCExpect
- [ARCTokenization](https://github.com/nfdi4plants/ARCTokenization)
- [AVPRIndex](https://github.com/nfdi4plants/arc-validate-package-registry)
- [OBO.NET](https://github.com/CSBiology/OBO.NET)
- [Graphoscope](https://github.com/fslaborg/Graphoscope)
- [Cytoscape.NET](https://github.com/fslaborg/Cytoscape.NET)
- [AnyBadge.NET](https://github.com/kMutagene/AnyBadge.NET)
- [FSharp.SystemTextJson](https://github.com/Tarmil/FSharp.SystemTextJson)
- [FSharpAux](https://github.com/CSBiology/FSharpAux)
- [FsSpreadsheet](https://github.com/fslaborg/FsSpreadsheet)
- [Expecto](https://github.com/haf/expecto)
### ARCValidationPackages
- [Fake.DotNet.Cli](https://github.com/fsprojects/FAKE)
- [FsHttp](https://github.com/fsprojects/FsHttp)
- [AVPRIndex](https://github.com/nfdi4plants/arc-validate-package-registry)
- [AVPRClient](https://github.com/nfdi4plants/arc-validate-package-registry)
#### arc-validate
- ARCExpect
- ARCValidationPackages
- [Argu](https://github.com/fsprojects/Argu)
- [Expecto](https://github.com/haf/expecto)
- [Spectre.Console](https://github.com/spectreconsole/spectre.console)
## Development
For how to contribute to and how to develop on this project, please read the [Contributing guidelines](https://github.com/nfdi4plants/arc-validate/blob/release/CONTRIBUTING.md).
Just call `build.sh` or `build.cmd` depending on your OS.
### Test
test setup is interconnected with production services, running tests for the compiled `arc-validate` tool with validation packages with source https://avpr.nfdi4plants.org.
since testing the cli tool relies on it being compiled via `dotnet publish`, either use the build scripts or manually publish `arc-validate` to the `/publish` folder when using e.g. TestExplorers.
```bash
build.sh runtests
```
```bash
build.cmd runtests
```
### Create Nuget package
```bash
build.sh pack
```