The RSEc content repository stores one file per source resource
A metadata commons to store research software metadata
At a glance
- What is it?
- research-software-ecosystem/content is a metadata commons rather than software: each research tool gets a folder, and inside it each file holds the metadata that came from one upstream resource or was reformatted into one scheme. It aggregates bio.tools, Bioconda, Biocontainers, OpenEBench, Debian Med and BIII.eu, and the README is far shorter than the repository.
- Who is it for?
- This repository suits a project that needs research software metadata gathered in one place rather than by scraping each upstream separately, and it does not suit anyone who needs a library, an API or a schema-driven client.
- Can I use it commercially?
- Yes, with credit. CC-BY-4.0 allows commercial use as long as you credit the authors and indicate what you changed. It is written for creative content, so check how it applies to any code.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly HTML, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 21, 2026, and from our analysis. They are not legal advice.
Star history
- research-software-ecosystem/content48 ★ · +0
| Repository | 2026-08-23 | 2026-10-21 |
|---|---|---|
| research-software-ecosystem/content | 48 | 48 |
0 Stars in the last 59 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
A metadata commons, and HTML is its primary language
The first thing to understand is that this is not a code project. The repository description calls it a metadata commons to store research software metadata, and its stated purpose is to act as a central place for the exchange of these metadata across multiple projects. The language recorded for the repository is HTML, which for a data collection that ships JSON, YAML and JSON-LD means something is rendered rather than executed: the top level holds doc/ and report/ directories alongside the data itself, and the README never mentions code at all. There are no releases, no install instructions and no entry point, because there is nothing to install. The deliverable is the accumulated records in the tree, which is why the interesting questions here are about provenance, naming and freshness rather than about an API.
One folder per tool, one file per source
The layout rule is stated in one sentence and everything else follows from it. All software metadata sits in the data folder, each software package or tool having its own distinct folder, and inside that folder sit multiple files. Each of those files holds metadata about the same tool as it came from a specific resource, or reformatted into a specific format. The worked example in the README is the fastqc folder, and it contains six files covering six different origins. That is the whole design: the tool is the unit of storage, and the source is the unit of disagreement. Two records for the same tool can therefore differ without either being wrong, because one describes a Bioconda package and the other describes a container image built from it.
The file names do not follow one convention
Look closely at the six names in the fastqc example and two competing patterns appear side by side. Four are tool-first with a source suffix: fastqc.biotools.json, fastqc.oeb.metrics.json, fastqc.debian.yaml and fastqc.bioschemas.jsonld. Two are source-first with the tool in the middle: bioconda_fastqc.yaml and biocontainers.yaml. Both appear in the same folder, so a consumer cannot infer the layout from the directory alone and has to handle both orders. The README's own worked example shows the mixing directly:
fastqc.biotools.json # metadata for the fastqc bio.tools entry (pulled by RSEc bot)
bioconda_fastqc.yaml # metadata for the bioconda fastqc package (pulled by RSEc bot)
biocontainers.yaml # metadata for the fastqc biocontainers image (pushed by biocontainers bot)
fastqc.oeb.metrics.json # metadata for the OpenEBench fastqc package metrics (pulled by RSEc bot)
fastqc.debian.yaml # metadata for the Debian Med fastqc package (pulled by RSEc bot)The extensions vary for a defensible reason, since JSON, YAML and JSON-LD are different serialisations of the same kind of fact, and one entry carries an extra segment because it holds metrics rather than a description. If you are writing a parser, that naming inconsistency is the first thing to design around.
Pulled and pushed are different guarantees
The inline comments in the example record how each file arrived, and the two directions are not equivalent. Four of the six entries are marked as pulled by the RSEc bot, which means this project fetched them from bio.tools, Bioconda, OpenEBench and Debian Med. One entry is marked as pushed by a biocontainers bot, which means the upstream project wrote into this repository rather than being scraped. The sixth is neither: fastqc.bioschemas.jsonld is described as converted from the bio.tools metadata, so it is a derived artefact rather than an independent observation. A pushed record therefore tells you what the upstream project believed at push time, while a pulled record tells you what this project found, and a converted record can drift from its source without anything failing loudly.
The README documents one folder; the root holds nine
The README explains the data folder and nothing else, yet the top level of the repository carries considerably more. Alongside data/ there are datasets/, imports/, report/, doc/ and schemas/, plus a .github directory and a .gitignore. That is five more directories than the documentation walks you through, and their names imply a pipeline the README never describes: imports for whatever lands from upstream, datasets for something broader than the per-tool records, schemas for validation, report and doc for what a person reads. A metadata commons that ships a schemas directory is telling you validation exists somewhere; it is not telling you what the rules are. Plan for that gap rather than assuming the per-tool folders are the whole repository.
Governance files sit beside a SQLite cache and an import log
Several files at the root are operational rather than descriptive, and together they say more about how the project runs than the README does. GOVERNANCE.md and roles.md indicate that this is a commons with a defined decision structure rather than a personal dataset, and CODE_OF_CONDUCT.md puts participation on the same footing. Then there are two artefacts you would not expect to find committed in a data repository: doi_cache.sqlite, a SQLite database apparently caching DOI state, and debian_import.log, a log of a Debian import run. Committing both means the record of what was imported and when is versioned alongside the data, which is what you want in a commons and what makes diffs noisy for anyone cloning it.
JSON-LD is the one derived format in the example
Of the six files, five carry metadata that exists upstream in roughly that shape. The sixth, the JSON-LD file, exists because of the bioschemas work, converting the bio.tools metadata into a linked-data serialisation. That single file explains the project's second purpose, which is not aggregation but transformation: the same fact about fastqc can be published as plain JSON for a tool listing, as YAML for a package manager, and as JSON-LD for a schema-driven consumer, all derived from one upstream record rather than three independent ones. That is what makes the commons worth building. The cost is that every derivation has to be reproducible from its source, and nothing in the short README says how a conversion is versioned or re-run.
Editorial conclusion
This repository suits a project that needs research software metadata gathered in one place rather than by scraping each upstream separately, and it does not suit anyone who needs a library, an API or a schema-driven client. Before relying on it, check four things: which upstream sources actually have a file for the tool you care about, whether the naming convention helps or confuses your parser, what a pulled record promises against a pushed one, and where the validation rules live, since the README mentions a schemas directory without describing any of it.
Frequently asked questions
What is the meaning of content in the RSEc content repository?
Nothing in the repository concerns the word. The project is a metadata commons that stores research software metadata, giving each tool its own folder under data/ and each file inside it the metadata from one upstream resource such as bio.tools, Bioconda or Debian Med.
How is research software metadata organised in the RSEc content repository?
Each software package has its own folder under data/, and each file inside holds metadata from one specific resource or reformatted into one specific format. The fastqc example holds six: fastqc.biotools.json, bioconda_fastqc.yaml, biocontainers.yaml, fastqc.oeb.metrics.json, fastqc.debian.yaml and fastqc.bioschemas.jsonld.
How is the metadata in the RSEc content repository collected?
The per-file comments name the mechanism. bio.tools, Bioconda, OpenEBench and Debian Med entries are marked as pulled by an RSEc bot, the biocontainers image entry is marked as pushed by a biocontainers bot, and the bioschemas JSON-LD file is a conversion from the bio.tools metadata rather than a separate fetch.
Which upstream projects does the RSEc content repository aggregate?
The README names bio.tools, Biocontainers, Bioconda, OpenEBench, Debian Med and BIII.eu, and closes the list with a note that more follow. Records enter through two directions: an RSEc bot pulling from upstream, and an upstream project such as biocontainers pushing directly into this repository.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/research-software-ecosystem-content)Star history chart for your README
[](https://hysenlabs.com/projects/research-software-ecosystem-content)