DCAT support: scope and approach #25
Replies: 4 comments
Research notes: how other tools implement DCAT, and a concrete path for metaseedFindings from a multi-source review (W3C specs, SEMIC/EU, government profiles, RDFLib/Pydantic libraries, and prior-art repos), with adversarial verification. Primary sources linked inline; honest gaps flagged at the end. 1. Target version: DCAT 3 / DCAT-AP 3.0DCAT 3 is a W3C Recommendation (2024) and is additive over DCAT 2 — a DCAT 2-shaped export is already DCAT 3 conformant unless it uses the new features (distribution checksums via
The class set an internal model must map onto is small and stable: Catalog, Dataset, Distribution, DataService, CatalogRecord, plus DCAT 3's DatasetSeries. 2. Suggested mapping for metaseed
This reuses metaseed's existing root-entity + nested-entity structure; the DCAT layer wraps a dataset rather than replacing the domain profile (MIAPPE/ISA/Darwin Core stays the content model). 3. Python implementation path (non-RDF Pydantic model -> RDF)The practical route, confirmed against upstream docs:
This fits metaseed's 4. Profiles and validation (SHACL)DCAT-AP is the EU "master profile" of DCAT 3; national/domain profiles layer constraints on it and are validated with SHACL shapes shipped as Turtle files:
Implication: our existing profile.yaml 5. How comparable projects solve it + related discussions
6. Recommendation
Honest gaps (verify before relying on these)
Compiled from an automated multi-source research pass with adversarial verification. Primary sources linked inline. |
Follow-up: F-UJI as the validation + motivation angle for DCATF-UJI (FAIRsFAIR Research Data Object Assessment Service; PANGAEA / Devaraju & Huber, EU Horizon 2020 FAIRsFAIR, later extended under FAIR-IMPACT) is a web service that programmatically scores a dataset's FAIRness against the FAIRsFAIR Data Object Assessment Metrics. It matters here because it is a concrete, third-party consumer of DCAT metadata — which reframes "add DCAT export" from a catalog feature into something with a measurable payoff. Why it's relevant to this discussion
What this implies for the metaseed DCAT feature
Links
Suggested addition to the scopeAdd a fourth direction to the scope options: "DCAT export validated by F-UJI" — produce harvestable DCAT(-AP) JSON-LD, then use F-UJI (self-hostable via its Docker image / API) as an automated FAIRness regression check in CI alongside SHACL validation. Sourced from f-uji.net, the FAIRsFAIR/FAIR-IMPACT repos, and the FsF metrics; F-UJI's DCAT-2/RDFLib/SPARQL harvesting confirmed from its documentation and published methodology. |
Outcome (260628): DCAT is implementedThis discussion's scope is now built and on
PRs: #53 (model+serializer+viewer), #54 (spec-driven mapping), #55/#56 (hardening), #58 (catalog-metadata editor). Tracking epic: #24. Remaining (open): SHACL/DCAT-AP conformance (#29), harvestable exposure for portals/F-UJI (#30, handled separately), and the F-UJI regression check (#31). The F-UJI angle from this thread is captured in #31. |
Status (260628): export-adapter pattern extended — first step, untestedDCAT remains the reference exporter (done, hardened). It now has siblings: a first cut of export adapters for ENA (submission XML), PRIDE ( Honest caveat: unlike DCAT, these are first-step and untested — smoke-tested against a single live record each, not comprehensively tested and not validated against the real submission systems. The pattern and the seam are in place; correctness at scale is not yet proven. |
Uh oh!
There was an error while loading. Please reload this page.
DCAT (W3C Data Catalog Vocabulary) is the catalog/discovery layer for datasets and data services. It is complementary to the domain content standards metaseed already supports (MIAPPE, ISA, DiSSCo, Darwin Core): DCAT describes that a dataset exists and where to get it, while those standards describe what is inside it.
Opening this to scope what DCAT support in metaseed should mean before committing to an approach.
Core model (fits metaseed's root-entity + nested-entity hierarchy)
dcat:Catalog->dcat:Dataset/dcat:DataServicedcat:Dataset-> one or moredcat:Distribution(a concrete form: CSV, API, ...)dcat:Distribution->dcat:accessURL,dcat:downloadURL,dcat:mediaType,dcterms:formatdcat:CatalogRecord, withdcat:Resourceas the abstract superclassDCAT reuses external vocabularies (Dublin Core Terms, FOAF, vCard, SKOS, PROV) rather than defining its own, which maps well to metaseed's
ontology_term/ ontology-prefix mechanism. Current version is DCAT 3 (W3C Recommendation, 2024); DCAT 2 (2020) is still widely deployed. Application profiles (DCAT-AP for the EU, plus Geo/Stat/Health variants, and DCAT-US) are where it is used in practice.Questions for discussion
CatalogRecord), or both?Tracking issue with the concrete scope options: #24
All reactions