Skip to content

StaticFDP/static-fdp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Static FAIR Data Point

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

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages