Rules for extending DCAT-AP+ in domain-specific profiles
DCAT-AP+ is designed to be imported and specialized. ChemDCAT-AP demonstrates this for chemistry and catalysis. This section documents the contract between DCAT-AP+ and its downstream profiles.
The two-layer architecture
What you MUST do
- Import the full DCAT-AP+ schema in your LinkML schema's
importssection. - Preserve DCAT-AP mandatory constraints. If DCAT-AP requires
titleanddescriptiononDataset, your profile must not make them optional.
What you MAY do
- Subclass DCAT-AP+ classes using
is_ato create a new node shape with additional slots or stricter slot constraints. When you do so and also choose to map to a semantically narrower ontology term viaclass_uri, you should make sure to remain aligned with DCAT-AP+ for interoperability. See Foundational principle: LinkML elements as SHACL shapes for guidance. For example, ChemDCAT-AP definesSubstanceSampleasis_a: EvaluatedEntitywithclass_uri: SIO:001378. - Create sub-slots using
is_aon slots for making stricter constraints. When you do so and also choose to map to a semantically narrower ontology term viaslot_uri, you should make sure to remain aligned with DCAT-AP+ for interoperability. See Foundational principle: LinkML elements as SHACL shapes for guidance. For example, ChemDCAT-AP definesused_catalystasis_a: carried_out_bywithslot_uri: RXNO:0000425. - Add new slots to your domain classes.
- Constrain ranges further (narrowing is allowed by DCAT-AP extension rules).
- Provide domain-specific enums to bind
rdf_typeortypeto specific controlled vocabularies.
What you MUST NOT do
- Don't broaden cardinality on inherited slots (e.g. don't make a
requiredslot optional). - Don't change
slot_uriorclass_urion imported DCAT-AP+ elements. Modifying the base schema's ontology mappings would break the RDF mapping for all profiles. - Don't add domain-specific classes directly to DCAT-AP+. Create your own schema that imports it.
- Don't duplicate existing DCAT-AP classes or properties. Add new ones or specialize existing ones.
Conformance checklist for your domain profile
- Schema imports
dcat-ap-plus - All DCAT-AP mandatory properties remain
required: true - New classes use
is_ato extend DCAT-AP+ classes - New slots use
is_ato extend DCAT-AP+ slots where a generic counterpart exists -
class_uriandslot_urion new elements point to established ontology terms - Example instance data validates with
linkml-validate - CI pipeline runs schema and data validation on every PR