@@ -221,8 +221,21 @@ def _publisher(self, subject, identifier):
221
221
self ._object_value (agent , FOAF .homepage ) or
222
222
(str (agent ) if isinstance (agent , URIRef ) else '' )
223
223
)
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
+
226
239
publisher_deprecated = self ._object_value (agent , RDFS .label )
227
240
if publisher_name :
228
241
publisher ['name' ] = publisher_name
@@ -600,8 +613,7 @@ def parse_dataset(self, dataset_dict, dataset_ref): # noqa
600
613
dataset_ref ,
601
614
dataset_dict .get ('identifier' , '' )
602
615
)
603
- log .info ("harvested publisher dict" )
604
- log .info (dataset_dict ['publisher' ])
616
+
605
617
# Relations
606
618
dataset_dict ['relations' ] = self ._relations (dataset_ref )
607
619
for relation in dataset_dict ['relations' ]:
0 commit comments