portaljs-add-dcat
Make a PortalJS portal harvestable by national/EU/US open-data portals — emit standards-compliant DCAT catalog feeds (DCAT 2/3, DCAT-AP, DCAT-US, national profiles) in JSON-LD, Turtle, and RDF/XML at build, with autodiscovery and per-profile conformance checking. Use when a portal needs to be harvested by data.europa.eu, data.gov, or a national open-data catalog.
npx skills add datopian/portaljs --skill portaljs-add-dcat --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# PortalJS — Add DCAT ## Overview Turn an existing PortalJS (`portaljs-catalog`) portal into a harvestable data catalog. PortalJS is Frictionless-native — a dataset is a Data Package (see `portaljs-define-schema`) — and DCAT is the serialization + harvest layer on top (`lib/metadata/dcat.ts` + `lib/metadata/dcat-profiles.ts`). This skill selects one or more DCAT application profiles, maps every dataset's metadata to them, and writes static feed files at build time — JSON-LD, Turtle, and RDF/XML — so external catalogs (data.europa.eu, data.gov, national portals) can harvest the datasets automatically, on any static host, with no runtime. ## Prerequisites - A scaffolded PortalJS portal with `datasets.json`, `package.json`, and `lib/metadata/` (the metadata-profile contract) present. - `lib/metadata/dcat.ts` (the DCAT-3 core) already in place — profiles augment it. - Node 18+ and npm available in the portal directory. - For DCAT-AP / DCAT-US: a publishing organization (name + homepage) and a contact (name + email) — both profiles require `dct:publisher` and `dcat:contactPoint`. - Optional but recommended: network access to run SHACL conformance checks against the official EU ITB valid
- Overview
- Prerequisites
- Instructions
- Output
- Error Handling
- Examples
- Example 1 — Default DCAT-3 feed, no national harvesting
- Example 2 — EU harvesting via DCAT-AP
- Example 3 — US federal harvesting via DCAT-US
- Example 4 — Multiple profiles plus a national extension
- Resources
What does the portaljs-add-dcat skill do?
Make a PortalJS portal harvestable by national/EU/US open-data portals — emit standards-compliant DCAT catalog feeds (DCAT 2/3, DCAT-AP, DCAT-US, national profiles) in JSON-LD, Turtle, and RDF/XML at build, with autodiscovery and per-profile conformance checking. Use when a portal needs to be harvested by data.europa.eu, data.gov, or a national open-data catalog.
How do I install it?
Run `npx skills add datopian/portaljs --skill portaljs-add-dcat --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From datopian/portaljs, a repository with 2,337 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
