Skip to content

About

a FAIR Data Point backed by static content

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

37 Commits

Folders and files

Repository files navigation

Static FAIR Data Point

Important

New FDPs: start from the FDP ecosystem template. This repository is the original StaticFDP framework, started in 2023 by Eric Prud'hommeaux. In the StaticFDP consolidation (one repository per layer), its ShEx validation moves to the template (fdp-ecosystem-template#1). Once that has landed, this repository is proposed for archiving. It stays readable, with its history and examples.

A framework for publishing a FAIR Data Point (FDP) backed entirely by static files on GitHub — no running server required.

Metadata is maintained as RDF Turtle in a Git repository, validated with ShEx, and published to GitHub Pages. Community contributions arrive via GitHub Issue forms (or optional web forms) and are automatically converted into DCAT-compliant datasets by GitHub Actions.

How it works

flowchart TD
    A[Contributors] -->|GitHub Issue forms| B[GitHub Issues]
    A -->|Web forms\nCloudflare Worker| B
    B --> C[GitHub Actions]
    C --> D[issues_to_datasets.py]
    C --> E[publish.yml]
    D --> F["datasets/{slug}/\ndocs/datasets/"]
    E --> G["docs/fdp/ (RDF)\ngenerated/ (SHACL)"]
    F --> H[GitHub Pages\nstatic FAIR Data Point]
    G --> H
    H -.->|optional| I[FDP Index]

    style A fill:#4a90d9,color:#fff
    style B fill:#f5a623,color:#fff
    style C fill:#7b68ee,color:#fff
    style H fill:#50c878,color:#fff
    style I fill:#ccc,color:#333,stroke-dasharray: 5 5
Loading
  1. Contribute — submit structured data via a GitHub Issue form or web form
  2. Validate — ShEx schemas check every RDF resource on every PR
  3. Convert — GitHub Actions transform issues into per-topic FAIR datasets
  4. Publish — Turtle, JSON-LD, and HTML are served from GitHub Pages
  5. Index — an optional FDP index crawls and aggregates published FDPs

Quick start

git clone https://github.com/StaticFDP/static-fdp.git
cd static-fdp
chmod +x setup.sh

./setup.sh \
  --name "my-project" \
  --title "My FAIR Data Point" \
  --org "MyOrg" \
  --publisher "My Working Group" \
  --publisher-url "https://example.org/" \
  --domain "fdp.example.org" \
  --output ./my-new-fdp

This generates a ready-to-push repository with ShEx profiles, GitHub Actions workflows, issue templates, and a DCAT catalog — all parameterized for your project.

See DEPLOY.md for the full deployment guide, including prerequisites and optional components (Cloudflare Worker, ORCID, FDP Index).

Repository layout

graph LR
    root[static-fdp/] --> readme[README.md]
    root --> deploy[DEPLOY.md]
    root --> setup[setup.sh]
    root --> profiles[profiles/]
    root --> templates[templates/]
    root --> fdpindex[fdp-index/]
    root --> examples[examples/]
    root --> docs[docs/]
    root --> license[LICENSE]

    profiles --> shex1[FairDataPoint.shex]
    profiles --> shex2[Catalog.shex]
    profiles --> shex3[Dataset.shex]

    templates --> catalog[catalog.ttl]
    templates --> wrangler[wrangler.toml]
    templates --> issuetpl[issue-templates/]
    templates --> workflows[workflows/]

    issuetpl --> contrib[01-contribution.yml]
    issuetpl --> config[config.yml]

    workflows --> validate[validate.yml]
    workflows --> publish[publish.yml]
    workflows --> convert[convert-issues.yml]
    workflows --> deployworker[deploy-worker.yml]

    fdpindex --> fdpreadme[README.md]

    examples --> leiden[leiden-longevity-study/]

    docs --> spec[spec/]
    docs --> images[images/]

    style root fill:#4a90d9,color:#fff
    style profiles fill:#50c878,color:#fff
    style templates fill:#f5a623,color:#fff
    style workflows fill:#f5a623,color:#fff
Loading

Validation

ShEx is the primary validation gate — PRs cannot merge if ShEx validation fails. SHACL schemas are generated automatically from ShEx for ecosystem compatibility but are not blocking.

Schema Validates
profiles/FairDataPoint.shex FDP root resource
profiles/Catalog.shex dcat:Catalog entries
profiles/Dataset.shex dcat:Dataset entries

FDP Index

The companion fdp-index repository provides a serverless FDP index that crawls registered FDPs daily and publishes a searchable catalog at staticfdp.github.io/fdp-index.

See fdp-index/README.md for how to register your FDP or deploy your own index.

Live deployments

FDP Repository
GA4GH Rare Disease Trajectories StaticFDP/ga4gh-rare-disease-trajectories

Specification

The FDP Layout specification describes the RDF graph structures required to construct a conformant FAIR Data Point, based on DCAT2.

Authors

Name ORCID
Rajaram Kaliyaperumal 0000-0002-1215-167X
Eric G. Prud'hommeaux 0000-0003-1775-9921
Egon Willighagen 0000-0001-7542-0286
Andra Waagmeester 0000-0001-9773-4008

Previous version

The original EJP-RD-specific implementation is preserved on the archive/v0-ejprd branch.

License

MIT

About

a FAIR Data Point backed by static content

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages