Skip to content

Repository files navigation

staticfdp-vp

A Static Virtual Platform — the third layer of the StaticFDP ecosystem (GitHub · Codeberg).

A Virtual Platform (VP) is a federated discovery hub that aggregates multiple FDP Indexes into a single browsable and machine-readable catalog. Data stays at its source; the VP only stores pointers. A CI pipeline rebuilds the aggregated federation graph on a schedule. No dedicated server required.


Part of the StaticFDP Ecosystem

RepositoryGitHubCodebergLayer
staticfdpgithub.com/StaticFDP/staticfdpcodeberg.org/StaticFDP/staticfdpFAIR Data Point
staticfdp-indexgithub.com/StaticFDP/staticfdp-indexcodeberg.org/StaticFDP/staticfdp-indexFDP Index
staticfdp-vp ← you are heregithub.com/StaticFDP/staticfdp-vpcodeberg.org/StaticFDP/staticfdp-vpVirtual Platform

How it works

  1. Register — an FDP Index operator opens a GitHub Issue or submits a PR adding a YAML file to registered-indexes/
  2. Aggregate — a scheduled CI pipeline (scripts/build_vp.py) fetches index.ttl from every registered FDP Index, merges the catalogs, and resolves each FDP's own catalog.ttl
  3. Publish — the pipeline writes docs/vp/federation.ttl (the full federation graph) and docs/index.html (HTML search + browse), then commits; GitHub / Codeberg Pages serves the result immediately
flowchart TD
A["FDP Index A\ne.g. rare disease community"]
B["FDP Index B\ne.g. genomics community"]
C["FDP Index C\ne.g. clinical data community"]
PY["scripts/build_vp.py\nscheduled CI pipeline"]
TTL["docs/vp/federation.ttl\nfull graph"]
JSONLD["docs/vp/federation.jsonld"]
HTML["docs/index.html\nsearch + browse UI"]
A -->|"harvest"| PY
B -->|"harvest"| PY
C -->|"harvest"| PY
PY --> TTL
PY --> JSONLD
PY --> HTML
Loading

Quick start

GitHub:

git clone https://github.com/StaticFDP/staticfdp-vp
cd staticfdp-vp
bash scripts/setup.sh # configure GitHub / Codeberg / both

Codeberg:

git clone https://codeberg.org/StaticFDP/staticfdp-vp
cd staticfdp-vp
bash scripts/setup.sh

Then:

  1. Set secrets (GITHUB_TOKEN for GitHub Actions, FORGEJO_TOKEN for Woodpecker)
  2. Enable GitHub Pages (branch main, path /docs)
  3. Register FDP Indexes by opening Register FDP Index Issues

Registering an FDP Index

Open an Issue using the Register FDP Index template and provide:

  • Index name
  • Index catalog URL (must resolve to valid Turtle or JSON-LD)
  • Contact / maintainer

The aggregation pipeline runs daily and on every new registration.


Configuration (vp-config.yaml)

virtual_platform:
title: "My Virtual Platform"base_url: https://OWNER.github.io/staticfdp-vppublisher_name: "My Organisation"publisher_url: https://example.org/infrastructure:
primary: github # github | codeberg | bothgithub:
enabled: truerepo: OWNER/staticfdp-vppages_url: https://OWNER.github.io/staticfdp-vpcodeberg:
enabled: falserepo: OWNER/staticfdp-vpbase_url: https://codeberg.orgpages_url: https://OWNER.codeberg.page/staticfdp-vpaggregate:
schedule: "40 4 * * *"timeout_seconds: 30soft_fail: true

Relation to the ELIXIR / GA4GH Virtual Platform

The FAIR Data Point Virtual Platform concept originates from the ELIXIR and GA4GH communities. The reference implementation uses a Java/Spring Boot server with Blazegraph. staticfdp-vp is a fully static alternative — same DCAT-AP semantics, no server required.


Secrets required

SecretPurpose
GITHUB_TOKENCommit generated files (GitHub Actions)
FORGEJO_TOKENCommit generated files (Woodpecker / Codeberg)

Authors

This work was envisioned and built by:

NameORCID
Rajaram KaliyaperumalORCID
Eric G. Prud'hommeauxORCID
Egon WillighagenORCID
Andra WaagmeesterORCID

Machine-readable citation metadata is available in CITATION.cff and codemeta.json.


License

MIT.

About

Static Virtual Platform — part of the StaticFDP ecosystem

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages