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.
| Repository | GitHub | Codeberg | Layer |
|---|---|---|---|
| staticfdp | github.com/StaticFDP/staticfdp | codeberg.org/StaticFDP/staticfdp | FAIR Data Point |
| staticfdp-index | github.com/StaticFDP/staticfdp-index | codeberg.org/StaticFDP/staticfdp-index | FDP Index |
| staticfdp-vp ← you are here | github.com/StaticFDP/staticfdp-vp | codeberg.org/StaticFDP/staticfdp-vp | Virtual Platform |
- Register — an FDP Index operator opens a GitHub Issue or submits a PR
adding a YAML file to
registered-indexes/ - Aggregate — a scheduled CI pipeline (
scripts/build_vp.py) fetchesindex.ttlfrom every registered FDP Index, merges the catalogs, and resolves each FDP's owncatalog.ttl - Publish — the pipeline writes
docs/vp/federation.ttl(the full federation graph) anddocs/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
GitHub:
git clone https://github.com/StaticFDP/staticfdp-vp
cd staticfdp-vp
bash scripts/setup.sh # configure GitHub / Codeberg / bothCodeberg:
git clone https://codeberg.org/StaticFDP/staticfdp-vp
cd staticfdp-vp
bash scripts/setup.shThen:
- Set secrets (
GITHUB_TOKENfor GitHub Actions,FORGEJO_TOKENfor Woodpecker) - Enable GitHub Pages (branch
main, path/docs) - Register FDP Indexes by opening Register FDP Index Issues
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.
virtual_platform:
title: "My Virtual Platform"
base_url: https://OWNER.github.io/staticfdp-vp
publisher_name: "My Organisation"
publisher_url: https://example.org/
infrastructure:
primary: github # github | codeberg | both
github:
enabled: true
repo: OWNER/staticfdp-vp
pages_url: https://OWNER.github.io/staticfdp-vp
codeberg:
enabled: false
repo: OWNER/staticfdp-vp
base_url: https://codeberg.org
pages_url: https://OWNER.codeberg.page/staticfdp-vp
aggregate:
schedule: "40 4 * * *"
timeout_seconds: 30
soft_fail: trueThe 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.
| Secret | Purpose |
|---|---|
GITHUB_TOKEN |
Commit generated files (GitHub Actions) |
FORGEJO_TOKEN |
Commit generated files (Woodpecker / Codeberg) |
This work was envisioned and built by:
| Name | ORCID |
|---|---|
| Rajaram Kaliyaperumal | |
| Eric G. Prud'hommeaux | |
| Egon Willighagen | |
| Andra Waagmeester |
Machine-readable citation metadata is available in CITATION.cff and codemeta.json.
MIT.