diff --git a/ckanext/dcat/profiles/croissant.py b/ckanext/dcat/profiles/croissant.py index 4a29f22d..e9f02748 100644 --- a/ckanext/dcat/profiles/croissant.py +++ b/ckanext/dcat/profiles/croissant.py @@ -8,6 +8,7 @@ from dateutil.parser import parse as parse_date from rdflib import URIRef, BNode, Literal +from rdflib.namespace import Namespace from ckantoolkit import url_for, config from ckanext.dcat.utils import resource_uri @@ -16,9 +17,14 @@ CR, DCT, RDF, - SCHEMA, ) +# The Croissant validator insists on https and will consider invalid +# output that uses the http namespace + +SCHEMA = Namespace("https://schema.org/") + + class CroissantProfile(RDFProfile): """ An RDF profile based on the schema.org Dataset, modified by Croissant. @@ -360,4 +366,4 @@ def _resource_subresources_graph(self, dataset_ref, resource_ref, resource_dict) ] self._add_list_triples_from_dict(subresource_dict, subresource_ref, items) - self.g.add((subresource_ref, CR.containedIn, resource_ref)) \ No newline at end of file + self.g.add((subresource_ref, CR.containedIn, resource_ref)) diff --git a/ckanext/dcat/tests/profiles/croissant/test_validate.py b/ckanext/dcat/tests/profiles/croissant/test_validate.py index d98b32a2..e2aec87e 100644 --- a/ckanext/dcat/tests/profiles/croissant/test_validate.py +++ b/ckanext/dcat/tests/profiles/croissant/test_validate.py @@ -9,13 +9,15 @@ def test_valid_output(): - dataset_dict = json.loads(get_file_contents("ckan/ckan_full_dataset_croissant.json")) + dataset_dict = json.loads( + get_file_contents("ckan/ckan_full_dataset_croissant.json") + ) s = RDFSerializer(profiles=["croissant"]) s.graph_from_dataset(dataset_dict) - croissant_dict = s.g.serialize(format="json-ld") + croissant_dict = json.loads(s.g.serialize(format="json-ld", auto_compact=True)) try: mlc.Dataset(croissant_dict) diff --git a/examples/ckan/ckan_full_dataset_croissant.json b/examples/ckan/ckan_full_dataset_croissant.json index d387fe2f..55e225a9 100644 --- a/examples/ckan/ckan_full_dataset_croissant.json +++ b/examples/ckan/ckan_full_dataset_croissant.json @@ -6,7 +6,7 @@ "id_given": "my-custom-id", "is_live_dataset": true, "url": "http://example.org/ds1", - "version": "1.0b", + "version": "1.0.0", "tags": [ { "name": "Tag 1"