GovDataOfficial / ckanext-dcatde

DE: Dieses Repository beinhaltet die Erweiterung von ckanext-dcat auf die Spezifikation DCAT-AP.de. EN: This is a DCAT-AP.de specific CKAN extension for providing and importing DCAT-AP.de-Profile data.
http://www.dcat-ap.de/
GNU Affero General Public License v3.0
11 stars 10 forks source link

dcat:mediaType darf kein Literal sein #16

Open jze opened 1 year ago

jze commented 1 year ago

Laut DCAT-AP.de Spezifikation muss der dcat:mediaType eine Resource und kein Literal sein: https://www.dcat-ap.de/def/dcatde/2.0/spec/#distribution-medientyp

Unter anderem in diesem Test wird aber ausdrücklich geprüft, dass der mediaType in Literal ist: https://github.com/GovDataOfficial/ckanext-dcatde/blob/33dbe600b5171c17618c88557c213ad515a69333/ckanext/dcatde/tests/test_dcatde_serialize.py#L330

An der Stelle müsste es meiner Meinung nach heißen:

self._build_graph_and_check_format_mediatype(
            dataset_dict,
            [],
            [URIRef('https://www.iana.org/assignments/media-types/application/json')]

Es sind auch noch weitere Stellen in dem Test (und natürlich die eigentlich Programmlogik, die dort ein Literal erzeugt) davon betroffen.

seitenbau-govdata commented 1 year ago

Für das Einlesen wird an den meisten Stellen wo eine Ressource gefordert wird URIRefOrLiteral verwendet, wodurch u.a. versucht wird aus einem Wert ein URIRef zu erzeugen, wenn der Wert eine gültige URI ist. Als Fallback wird der Wert als Literal erzeugt, da es unserer Ansicht nach besser ist den Wert als Literal hinzuzufügen als eine ungültige URIRef oder die Eigenschaft gar ganz wegzulassen. Dementsprechend kommen auch in den Tests Literals vor, da diese aktuell gültige Eingaben sind.