You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+95-7Lines changed: 95 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,13 +3,31 @@
3
3
[](https://github.com/nfdi-de/dcat-ap-plus/actions/workflows/main.yaml)
# DCAT Application Profile for Providing Links to Use-case Specific Context (DCAT-AP+)
7
7
8
-
This metadata schema is an Extension of the DCAT Application Profile for Providing Links to Use-case Specific Context. It allows to provide additional metadata regarding: which kind(s) of entity(s) or activity(s) were evaluated (the dcat:Dataset is about), which kind of activity generated the dcat:Dataset, which kind of instruments were used in the dataset generating activity, in which surrounding (e.g. a laboratory) and according to which plan the dataset generating activity took place, as well as regarding which kind(s) of qualitative and quantitative characteristic were attributed to the evaluated entity or evaluated activity and to the used instruments.
8
+
The LinkML schema provided in this repository is an extension of the [DCAT Application Profile](https://semiceu.github.io/DCAT-AP/releases/3.0.0/), which allows to provide additional metadata for a `dcat:Dataset` in a very generic manner, such as:
9
+
* which kind(s) of entity(s) or activity(s) were evaluated,
10
+
* which kind of activity generated the `dcat:Dataset`,
11
+
* which kind of instruments were used in the dataset generating activity,
12
+
* in which surrounding (e.g. a laboratory) and according to which plan the dataset generating activity took place,
13
+
* as well as which kind(s) of qualitative and quantitative characteristic(s) were attributed to the evaluated entity or evaluated activity and to the used instruments.
9
14
10
-
## Documentation Website
15
+
This extension is mainly based on the [Starting Point Terms of the Provenance Ontology (PROV-O)](https://www.w3.org/TR/prov-o/#description-starting-point-terms),
16
+
in that it makes the `prov:wasGeneratedBy` property of the `Dataset` class mandatory and specifies necessary properties for its expected range, the `prov:Activity` class.
The choice to use LinkML for extending DCAT-AP was based on the need to have different layers that cater to different domain-specific use cases. DCAT-AP+ serves as the basic layer for such extensions and is thus kept very generic. Being the basis of the [ChemDCAT-AP](
19
+
nfdi-de.github.io/chem-dcat-ap), one can see how it can be applied to further extend its classes for domain-specific needs.
20
+
21
+
DCAT-AP+ is developed within close collaboration between [NFDI4Chem](https://nfdi4chem.de) & [NFDI4Cat](https://nfdi4cat.org/) and is intended to be further improved, extended and adapted by the whole NFDI community.
22
+
23
+
A more elaborate documentation is provided here: [https://nfdi-de.github.io/dcat-ap-plus](hhttps://nfdi-de.github.io/dcat-ap-plus/latest/about/).
24
+
25
+
## DCAT-AP to LinkML: Automatic Translation and Extension
26
+
27
+
The JSON-LD serialization of the official DCAT-AP 3.0.0 SHACL shapes ([dcat_ap_shacl.jsonld](src/dcat_ap_shacl.jsonld)) were downloaded from the DCAT-AP GitHub repository [3.0.0 release folder within the master branch](https://github.com/SEMICeu/DCAT-AP/tree/master/releases/3.0.0/shacl). The downloaded SHACL shapes were then processed by the [dcat_ap_shacl_2_linkml.py](src/dcat_ap_shacl_2_linkml.py) script to generate two LinkML schemas from it:
28
+
29
+
*[dcat_ap_linkml.yaml](src/dcat_ap_plus/schema/dcat_ap_linkml.yaml) - an almost 1:1 translation of the DCAT-AP SHACL shapes to LinkML.
30
+
*[dcat_ap_plus.yaml](src/dcat_ap_plus/schema/dcat_ap_plus.yaml) - the LinkML representation of DCAT-AP to which we added the additional constraints, classes and properties we need for our DCAT-AP+ extension.
13
31
14
32
## Repository Structure
15
33
@@ -26,10 +44,80 @@ This metadata schema is an Extension of the DCAT Application Profile for Providi
26
44
*[tests/](tests/) - Python tests
27
45
*[data/](tests/data) - Example data
28
46
29
-
## Developer Tools
47
+
## Developer Documentation
48
+
49
+
See also the documentation of the template: https://github.com/linkml/linkml-project-copier?tab=readme-ov-file#prerequisites
50
+
51
+
* uv
52
+
53
+
uv is a tool to manage Python projects and for managing isolated Python-based applications. You will use it in your generated project to manage dependencies and build distribution files. Install uv by following their [instructions](https://docs.astral.sh/uv/getting-started/installation/).
54
+
55
+
Note: Environments with private PyPi repository may need extra configuration (example):
Copier is a tool for generating projects based on a template (like this one!). It also allows re-configuring the projects and to keep them updated when the original template changes. To insert dates into the template, copier requires [jinja2_time](https://github.com/hackebrot/jinja2-time) in the copier environment. Install both with uv by running:
63
+
64
+
uv tool install --with jinja2-time copier
65
+
66
+
* just
67
+
68
+
The project contains a justfile with pre-defined complex commands. To execute these commands you need [just](https://github.com/casey/just) as command runner. Install it by running:
69
+
70
+
uv tool install rust-just
71
+
72
+
To generate project artefacts run:
73
+
`just gen-project`: generates all other representations
74
+
`just deploy`: deploys site
75
+
`just testdoc`: locally builds docs and runs test server
76
+
77
+
### Regenerate schema files from DCAT-AP SHACL shapes
78
+
79
+
To regenerate the DCAT-AP LinkML representation as well as the PLUS extension run:
80
+
81
+
uv run python src/dcat_ap_shacl_2_linkml.py
82
+
83
+
### Test data validation and convertion
84
+
85
+
Validate and test all: `just test`
86
+
87
+
Validate a single example dataset using LinkML's validator framework:
88
+
89
+
* Validate DCAT-AP-PLUS extension conform example
90
+
````commandline
91
+
uv run linkml validate tests/data/valid/AnalysisDataset-001.yaml -s src/dcat_ap_plus/schema/dcat_ap_plus.yaml -C AnalysisDataset
92
+
````
93
+
* Validate DCAT-AP-PLUS extension conform example
94
+
````commandline
95
+
uv run linkml validate tests/data/valid/Dataset-001.yaml -s src/dcat_ap_plus/schema/dcat_ap_plus.yaml -C Dataset
96
+
````
97
+
98
+
To convert the test datasets of each DCAT-AP profile into a TTL graph run:
99
+
* Convert domain agnostic DCAT-AP extension conform example of an analysis
Copy file name to clipboardExpand all lines: README_pypkg.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,11 @@
1
1
# dcat_ap_plus
2
2
3
-
Extension of the DCAT Application Profile (DCAT-AP) that adds links to use-case specific context. It enables describing:
4
-
5
-
- which entities or activities were evaluated (the dataset is about),
6
-
- which activity generated the dataset, including instruments, environment (e.g., lab), and plan,
7
-
- which qualitative and quantitative characteristics were attributed to evaluated entities/activities and used instruments.
3
+
An extension of the [DCAT Application Profile](https://semiceu.github.io/DCAT-AP/releases/3.0.0/), which allows to provide additional metadata for a `dcat:Dataset` in a very generic manner, such as:
4
+
* which kind(s) of entity(s) or activity(s) were evaluated,
5
+
* which kind of activity generated the `dcat:Dataset`,
6
+
* which kind of instruments were used in the dataset generating activity,
7
+
* in which surrounding (e.g. a laboratory) and according to which plan the dataset generating activity took place,
8
+
* as well as which kind(s) of qualitative and quantitative characteristic(s) were attributed to the evaluated entity or evaluated activity and to the used instruments.
8
9
9
10
This package ships the LinkML-generated Python datamodel for the schema.
10
11
Two versions of the datamodel are provided: one using Python dataclasses and another using Pydantic.
@@ -38,7 +39,7 @@ print(ds)
38
39
## Documentation
39
40
40
41
- Project docs and schema reference: <https://nfdi-de.github.io/dcat-ap-plus>
This metadata schema is an Extension of the DCAT Application Profile
4
-
for Providing Links to Use-case Specific Context. It allows to provide additional
5
-
metadata regarding: which kind(s) of entity(s) or activity(s) were evaluated (the
6
-
dcat:Dataset is about), which kind of activity generated the dcat:Dataset, which
7
-
kind of instruments were used in the dataset generating activity, in which surrounding
8
-
(e.g. a laboratory) and according to which plan the dataset generating activity
9
-
took place, as well as regarding which kind(s) of qualitative and quantitative characteristic
10
-
were attributed to the evaluated entity or evaluated activity and to the used instruments.
1
+
# About DCAT-AP+
2
+
3
+
Funded by the German Research Foundantion (DFG) as part of the German National Research Data Infrastucture (NFDI)
4
+
initiative under the grant numbers [441926934](https://gepris.dfg.de/gepris/projekt/441926934) and [441958208](https://gepris.dfg.de/gepris/projekt/441958208),
5
+
DCAT-AP+ is being developed in close collaboration between the German research
6
+
infrastructure projects [NFDI4Chem](https://nfdi4chem.de) and [NFDI4Cat](https://nfdi4cat.org/).
7
+
8
+
To allow more fine-grained and semantic searches within their data repositories,
9
+
both projects had to address the need to also provide detailed chemistry-specific metadata for the research data output
10
+
of their communities. Due to the disciplinary overlap of both projects, their previous collaboration was thus intensified
11
+
to produce a common metadata schema called [ChemDCAT-AP](nfdi-de.github.io/chem-dcat-ap/), an extension of the
12
+
[DCAT Application Profile](https://semiceu.github.io/DCAT-AP/releases/3.0.0/) that is based mostly on
13
+
the [Starting Point Terms](https://www.w3.org/TR/prov-o/#description-starting-point-terms) of the W3C standard the Provenance Ontology (PROV-O). With ChemDCAT-AP, the chemical
14
+
substances, entities and reactions covered by a dataset as well as the processes,
15
+
tools and devices that were involved its creation can be described in a semantically uniform way that allows further
16
+
use-case specific extension.
17
+
This work will be published and presented at the 19th International Conference on Metadata and Semantics Research
18
+
([MTSR](https://www.mtsr-conf.org/home)) Thessaloniki, Greece, 15 - 19 December 2025.
19
+
20
+
Since the underlying basic design patterns of ChemDCAT-AP are domain-agnostic and thus applicable to a much wider
21
+
range of use cases, the core layer of ChemDCAT-AP, called DCAT-AP+, was decided to be outsourced into its own repository.
22
+
23
+
## Next Steps
24
+
Within the [NFDI Section Metadata Working Group Ontology Harmonization and Mapping](https://www.nfdi.de/section-metadata/),
25
+
we started to test and discuss the applicability of DCAT-AP+ for the whole NFDI community. Additionally, we currently
26
+
investigate the feasibility of providing more semantic depth and interoperability by mapping the DCAT-AP+ schema
27
+
elements to the [NFDIcore ontology](https://nfdi.fiz-karlsruhe.de/ontology/) instead of the PROV-O and DCTerms
In order to build an extension of DCAT-AP, a faithful translation of DCAT-AP into a LinkML schema was provided first.
3
+
For this, the JSON-LD serialization of the official DCAT-AP 3.0.0 SHACL shapes ([dcat_ap_shacl.jsonld](src/dcat_ap_shacl.jsonld)) were used,
4
+
which we downloaded from the DCAT-AP GitHub repository [3.0.0 release folder within the master branch](https://github.com/SEMICeu/DCAT-AP/tree/master/releases/3.0.0/shacl).
0 commit comments