Skip to content

Commit

Permalink
Update docs to reflect DCAT-US changes
Browse files Browse the repository at this point in the history
  • Loading branch information
amercader committed Oct 21, 2024
1 parent 3f39675 commit 49da344
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 12 deletions.
4 changes: 2 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ Ckanext-dcat is a [CKAN](https://github.com/ckan/ckan) extension that helps data

In terms of CKAN features, this extension offers:

* [Pre-built CKAN schemas](getting-started.md#schemas) for common Application Profiles that can be adapted to each site requirements to provide out-of-the-box DCAT support in data portals, including tailored form fields, validation etc. (currently supporting DCAT AP v1, v2, and v3).
* [Pre-built CKAN schemas](getting-started.md#schemas) for common Application Profiles that can be adapted to each site requirements to provide out-of-the-box DCAT support in data portals, including tailored form fields, validation etc. (currently supporting **DCAT-AP** [v1.1](https://joinup.ec.europa.eu/asset/dcat_application_profile/asset_release/dcat-ap-v11), [v2.1](https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/dcat-application-profile-data-portals-europe/release/210) and [v3](https://semiceu.github.io/DCAT-AP/releases/3.0.0/) and **DCAT-US** [v3](https://doi-do.github.io/dcat-us/)).

* [DCAT Endpoints](endpoints.md) that expose the catalog datasets in different RDF serializations (`dcat` plugin).

Expand All @@ -114,7 +114,7 @@ In terms of CKAN features, this extension offers:

These are implemented internally using:

* A base [mapping](mapping.md) between DCAT and CKAN datasets and viceversa (compatible with [DCAT-AP v1.1](https://joinup.ec.europa.eu/asset/dcat_application_profile/asset_release/dcat-ap-v11), [DCAT-AP v2.1](https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/dcat-application-profile-data-portals-europe/release/210) and [DCAT-AP v3](https://semiceu.github.io/DCAT-AP/releases/3.0.0/)).
* A base [mapping](mapping.md) between DCAT and CKAN datasets and viceversa (compatible with **DCAT-AP** [v1.1](https://joinup.ec.europa.eu/asset/dcat_application_profile/asset_release/dcat-ap-v11), [v2.1](https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/dcat-application-profile-data-portals-europe/release/210) and [v3](https://semiceu.github.io/DCAT-AP/releases/3.0.0/) and **DCAT-US** [v3](https://doi-do.github.io/dcat-us/)).

* An [RDF Parser](profiles.md#rdf-dcat-parser) that allows to read RDF serializations in different formats and extract CKAN dataset dicts, using customizable [profiles](profiles.md#profiles).

Expand Down
28 changes: 18 additions & 10 deletions docs/mapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ the DCAT publisher property with a CKAN dataset author, maintainer or organizati
and may depend on a particular instance needs. When mapping from CKAN metadata to DCAT though, there are in some cases fallback fields
that are used if the default field is not present (see [RDF Serializer](profiles.md#rdf-dcat-serializer) for more details on this).

This mapping is compatible with [DCAT-AP v1.1](https://joinup.ec.europa.eu/asset/dcat_application_profile/asset_release/dcat-ap-v11), [DCAT-AP v2.1](https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/dcat-application-profile-data-portals-europe/release/210) and [DCAT-AP v3](https://semiceu.github.io/DCAT-AP/releases/3.0.0/). It depends on the active profile(s) (see [Profiles](profiles.md#profiles)) which DCAT properties are mapped.
This mapping is compatible with **DCAT-AP** [v1.1](https://joinup.ec.europa.eu/asset/dcat_application_profile/asset_release/dcat-ap-v11), [v2.1](https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/dcat-application-profile-data-portals-europe/release/210) and [v3](https://semiceu.github.io/DCAT-AP/releases/3.0.0/) and **DCAT-US** [v3](https://doi-do.github.io/dcat-us/). It depends on the active [profile(s)](profiles.md#profiles) and the fields present in your custom [schema](getting-started.md#schemas) which DCAT properties are mapped.

Sites are encouraged to use ckanext-scheming to manage their metadata schema (see [Schemas](getting-started.md#schemas) for all details). This changes in
some cases the way metadata is stored internally and presented at the CKAN API level, but should not affect the RDF DCAT output.

!!! Note
Fields prefixed with `custom:` are custom metadata fields defined via ckanext-scheming. When using `euro_dcat_ap`
Fields prefixed with `custom:` are custom metadata fields defined via ckanext-scheming. When using `euro_dcat_ap`
and `euro_dcat_ap_2` based profiles, these could also be actual extra fields (e.g. `extras=[{"key": "issued", "value": "2024"}]`).
It is recommended that site maintainers start to migrate to custom fields by using the `euro_dcat_ap_scheming` profile as this
fields are properly validated, can use the scheming snippets etc. See [Schemas](getting-started.md#schemas) for more details.
Expand All @@ -38,29 +38,35 @@ some cases the way metadata is stored internally and presented at the CKAN API l
| dcat:Dataset | dct:accessRights | custom:access_rights | | text | |
| dcat:Dataset | foaf:page | custom:documentation | | list | See [Lists](#lists) |
| dcat:Dataset | dct:provenance | custom:provenance | | text | |
| dcat:Dataset | dcat-us:liabilityStatement | custom:liability | | text | DCAT-US v3 and higher only
| dcat:Dataset | dcat-us:purpose | custom:purpose | | text | DCAT-US v3 and higher only
| dcat:Dataset | skos:scopeNote | custom:usage | | text | DCAT-US v3 and higher only
| dcat:Dataset | dct:type | custom:dcat_type | | text | |
| dcat:Dataset | dct:hasVersion | custom:has_version | | list | See [Lists](#lists). It is assumed that these are one or more URIs referring to another dcat:Dataset |
| dcat:Dataset | dct:isVersionOf | custom:is_version_of | | list | See [Lists](#lists). It is assumed that these are one or more URIs referring to another dcat:Dataset |
| dcat:Dataset | dct:source | custom:source | | list | See [Lists](#lists). It is assumed that these are one or more URIs referring to another dcat:Dataset |
| dcat:Dataset | adms:sample | custom:sample | | list | See [Lists](#lists). It is assumed that these are one or more URIs referring to dcat:Distribution instances |
| dcat:Dataset | dct:spatial | custom:spatial_uri | | text | See [Spatial coverage](#spatial-coverage) |
| dcat:Dataset | dct:temporal | custom:temporal_start + custom:temporal_end | | text | None, one or both extras can be present |
| dcat:Dataset | dcat-us:geographicBoundingBox | custom:bbox | | list of objects | DCAT-US v3 and higher only
| dcat:Dataset | dcat-us:describedBy | custom:data_dictionary | | list of objects | DCAT-US v3 and higher only
| dcat:Dataset | dcat:temporalResolution | custom:temporal_resolution | | list | |
| dcat:Dataset | dcat:spatialResolutionInMeters | custom:spatial_resolution_in_meters | | list | |
| dcat:Dataset | dct:isReferencedBy | custom:is_referenced_by | | list | |
| dcat:Dataset | dct:publisher | custom:publisher_uri | | text | See [URIs](mapping.md#uris) and [Publisher](#contact-points-and-publisher) |
| dcat:Dataset | dct:publisher | custom:publisher_uri | | list of objects | See [URIs](mapping.md#uris) and [Publisher](#contact-points-and-publisher) |
| foaf:Agent | foaf:name | custom:publisher_name | | text | |
| foaf:Agent | foaf:mbox | custom:publisher_email | organization:title | text | |
| foaf:Agent | foaf:homepage | custom:publisher_url | | text | |
| foaf:Agent | dct:type | custom:publisher_type | | text | |
| foaf:Agent | dct:identifier | custom:publisher_id | | text |
| dcat:Dataset | dct:creator | custom:creator_uri | | text | See [URIs](mapping.md#uris) and [Publisher](#contact-points-and-publisher) |
| foaf:Agent | dct:identifier | custom:publisher_id | | text |
| dcat:Dataset | dct:creator | custom:creator_uri | | list of objects | See [URIs](mapping.md#uris) |
| foaf:Agent | foaf:name | custom:creator_name | | text | |
| foaf:Agent | foaf:mbox | custom:creator_email | organization:title | text | |
| foaf:Agent | foaf:homepage | custom:creator_url | | text | |
| foaf:Agent | dct:type | custom:creator_type | | text | |
| foaf:Agent | dct:identifier | custom:creator_id | | text |
| dcat:Dataset | dcat:contactPoint | custom:contact_uri | | text | See [URIs](mapping.md#uris) and [Contact points](#contact-points-and-publisher) |
| foaf:Agent | dct:identifier | custom:creator_id | | text |
| dcat:Dataset | dct:contributor | custom:contributor | | list of objects | See [URIs](mapping.md#uris). The object properties are the same than publishers and creators. DCAT-US v3 and higher only |
| dcat:Dataset | dcat:contactPoint | custom:contact_uri | | list of objects | See [URIs](mapping.md#uris) and [Contact points](#contact-points-and-publisher) |
| vcard:Kind | vcard:fn | custom:contact_name | maintainer, author | text | |
| vcard:Kind | vcard:hasEmail | custom:contact_email | maintainer_email, author_email | text | |
| vcard:Kind | vcard:hasUID | custom:contact_identifier | | text | |
Expand All @@ -84,7 +90,10 @@ some cases the way metadata is stored internally and presented at the CKAN API l
| dcat:Distribution | dcatap:availability | resource:availability | | text | |
| dcat:Distribution | dcat:compressFormat | resource:compress_format | | text | |
| dcat:Distribution | dcat:packageFormat | resource:package_format | | text | |
| dcat:Distribution | dcat:accessService | resource:access_services | | text | |
| dcat:Distribution | cnt:characterEncoding | resource:package_format | | text | DCAT-US v3 and higher only
| dcat:Distribution | dct:identifier | custom:identifier | custom:guid, id | text | DCAT-US v3 and higher only
| dcat:Distribution | dcat-us:describedBy | custom:data_dictionary | | list of objects | DCAT-US v3 and higher only
| dcat:Distribution | dcat:accessService | resource:access_services | | list of objects | |
| dcat:DataService | dct:title | access_service:title | | text | |
| dcat:DataService | dcat:endpointURL | access_service:endpoint_url | | list | |
| dcat:DataService | dcat:endpointDescription | access_service:endpoint_description | | text | |
Expand Down Expand Up @@ -228,7 +237,7 @@ On the scheming-based ones, these are shown as actual lists:
```
### Contact points and Publisher

Properties for `dcat:contactPoint` and `dct:publisher` are stored as namespaced extras in the legacy profiles. When using
Properties for `dcat:contactPoint` and `dct:publisher` are stored as namespaced extras in the legacy profiles. When using
a scheming-based profile, these are stored as proper objects (and multiple instances are allowed for contact point):

```json
Expand Down Expand Up @@ -268,7 +277,6 @@ If no `publisher` or `publisher_*` fields are found, the serializers will fall b


The following formats for `dct:spatial` are supported by the default [parser](profiles.md#rdf-dcat-parser). Note that the default [serializer](profiles.md#rdf-dcat-serializer) will return the single `dct:spatial` instance form by default.
## RDF DCAT Parser

- One `dct:spatial` instance, URI only

Expand Down

0 comments on commit 49da344

Please sign in to comment.