Skip to content

Commit 26a8c18

Browse files
committed
feat: Add check if the language is already an iri
1 parent 475e207 commit 26a8c18

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

ckanext/dcatapchharvest/profiles.py

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -866,9 +866,16 @@ def graph_from_dataset(self, dataset_dict, dataset_ref): # noqa
866866
# Languages
867867
languages = dataset_dict.get('language', [])
868868
for lang in languages:
869-
uri = language_uri_map.get(lang)
870-
if uri:
871-
g.add((dataset_ref, DCT.language, URIRef(uri)))
869+
if lang.startswith('http://') or lang.startswith('https://'):
870+
# lang is already a full IRI, use directly
871+
g.add((dataset_ref, DCT.language, URIRef(lang)))
872+
else:
873+
uri = language_uri_map.get(lang)
874+
if uri:
875+
g.add((dataset_ref, DCT.language, URIRef(uri)))
876+
else:
877+
log.debug("Language '{}' not found in"
878+
" language_uri_map".format(lang))
872879

873880
# Relations
874881
if dataset_dict.get('relations'):
@@ -1035,6 +1042,20 @@ def graph_from_dataset(self, dataset_dict, dataset_ref): # noqa
10351042
if uri:
10361043
g.add((distribution, DCT.language, URIRef(uri)))
10371044

1045+
# Language
1046+
languages = resource_dict.get('language', [])
1047+
for lang in languages:
1048+
if lang.startswith('http://') or lang.startswith('https://'):
1049+
# lang is already a full IRI, use directly
1050+
g.add((distribution, DCT.language, URIRef(lang)))
1051+
else:
1052+
uri = language_uri_map.get(lang)
1053+
if uri:
1054+
g.add((distribution, DCT.language, URIRef(uri)))
1055+
else:
1056+
log.debug("Language '{}' not found in"
1057+
" language_uri_map".format(lang))
1058+
10381059
# Download URL & Access URL
10391060
download_url = resource_dict.get('download_url')
10401061
if download_url:
@@ -1407,12 +1428,19 @@ def graph_from_dataset(self, dataset_dict, dataset_ref):
14071428
distribution, DCT.description, "description", resource_dict
14081429
) # noqa
14091430

1410-
# Language
1431+
# Language
14111432
languages = resource_dict.get('language', [])
14121433
for lang in languages:
1413-
uri = language_uri_map.get(lang)
1414-
if uri:
1415-
g.add((distribution, DCT.language, URIRef(uri)))
1434+
if lang.startswith('http://') or lang.startswith('https://'):
1435+
# lang is already a full IRI, use directly
1436+
g.add((distribution, DCT.language, URIRef(lang)))
1437+
else:
1438+
uri = language_uri_map.get(lang)
1439+
if uri:
1440+
g.add((distribution, DCT.language, URIRef(uri)))
1441+
else:
1442+
log.debug("Language '{}' not found in"
1443+
" language_uri_map".format(lang))
14161444

14171445
# Download URL & Access URL
14181446
self.download_access_url(resource_dict, distribution, g)

0 commit comments

Comments
 (0)