Skip to content

Commit 01f9da2

Browse files
committed
feat: Detect if the agent is a foaf:Agent or foaf:Organization
1 parent c539756 commit 01f9da2

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

ckanext/dcatapchharvest/profiles.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,21 @@ def _publisher(self, subject, identifier):
221221
self._object_value(agent, FOAF.homepage) or
222222
(str(agent) if isinstance(agent, URIRef) else '')
223223
)
224-
publisher_name = self._object_value(agent, FOAF.name,
225-
multilang=True)
224+
# detect if the agent is a foaf:Agent or foaf:Organization
225+
is_agent = (FOAF.Agent in self.g.objects(agent, RDF.type))
226+
is_organization = (
227+
FOAF.Organization in self.g.objects(agent, RDF.type))
228+
229+
if is_agent:
230+
# handle multilingual name for foaf:Agent
231+
publisher_name = self._object_value(agent, FOAF.name,
232+
multilang=True)
233+
elif is_organization:
234+
# handle single name for foaf:Organization
235+
publisher_name = self._object_value(agent, FOAF.name)
236+
else:
237+
publisher_name = None
238+
226239
publisher_deprecated = self._object_value(agent, RDFS.label)
227240
if publisher_name:
228241
publisher['name'] = publisher_name
@@ -600,8 +613,7 @@ def parse_dataset(self, dataset_dict, dataset_ref): # noqa
600613
dataset_ref,
601614
dataset_dict.get('identifier', '')
602615
)
603-
log.info("harvested publisher dict")
604-
log.info(dataset_dict['publisher'])
616+
605617
# Relations
606618
dataset_dict['relations'] = self._relations(dataset_ref)
607619
for relation in dataset_dict['relations']:

0 commit comments

Comments
 (0)