Skip to content

Commit c3d36d6

Browse files
authored
Merge pull request #80 from workflowhub-eu/fix-orcid-again
More defensive modifcations for ORCID enrichment
2 parents 500cf1a + 8854413 commit c3d36d6

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

Snakefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@ rule source_ro_crates:
2323
output:
2424
f"{config['output-dir']}/{config['sourced-list']}"
2525
params:
26+
min_workflow_id = config['min-workflow-id'],
2627
max_workflow_id = config['max-workflow-id'],
2728
output_dir = config['output-dir'],
2829
base_url = config['base-url']
2930
shell:
3031
"source-crates "
31-
"--workflow-ids 1-{params.max_workflow_id} "
32+
"--workflow-ids {params.min_workflow_id}-{params.max_workflow_id} "
3233
"--output-dir {params.output_dir} "
3334
"--base-url {params.base_url} "
3435

@@ -105,4 +106,4 @@ rule create_ro_crate:
105106
--enrichments-dir {params.enrichments_dir} \
106107
--workflow-file {params.workflow_file} \
107108
--output-dir {params.output_dir}
108-
"""
109+
"""

workflowhub_graph/workflowhub_graph/enrichment_strategies/orcid.py

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -60,30 +60,32 @@ def graph_for_orcid(orcid_id, orcid_data):
6060
person_data = orcid_data.get('person', {})
6161
name_data = person_data.get('name', {})
6262

63-
given_name = name_data.get('given-names', {}).get('value')
64-
if given_name:
65-
graph.add((orcid_uri, SCHEMA.givenName, Literal(given_name)))
66-
logging.info(f"Added ORCID ID {orcid_id} with given name {given_name}")
67-
68-
family_name = name_data.get('family-name', {}).get('value')
69-
if family_name:
70-
graph.add((orcid_uri, SCHEMA.familyName, Literal(family_name)))
71-
logging.info(f"Added ORCID ID {orcid_id} with name {given_name} {family_name}")
63+
if name_data:
64+
given_name = name_data.get('given-names', {}).get('value')
65+
if given_name:
66+
graph.add((orcid_uri, SCHEMA.givenName, Literal(given_name)))
67+
logging.info(f"Added ORCID ID {orcid_id} with given name {given_name}")
68+
69+
family_name = name_data.get('family-name', {}).get('value')
70+
if family_name:
71+
graph.add((orcid_uri, SCHEMA.familyName, Literal(family_name)))
72+
logging.info(f"Added ORCID ID {orcid_id} with name {given_name} {family_name}")
7273

7374
# add employment information
7475
# jq '._decoded_content["activities-summary"].employments["affiliation-group"] | .[] | .summaries[0]["employment-summary"].organization.name'
7576

7677
activities = orcid_data.get('activities-summary', {})
77-
employments = activities.get('employments', {}).get('affiliation-group', [])
78-
for employment in employments:
79-
summaries = employment.get('summaries', [])
80-
if summaries and len(summaries) > 0:
81-
employment_summary = summaries[0].get('employment-summary', {})
82-
organization = employment_summary.get('organization', {})
83-
org_name = organization.get('name')
84-
if org_name:
85-
graph.add((orcid_uri, SCHEMA.affiliation, Literal(org_name)))
86-
logging.info(f"Added affiliation {org_name} for ORCID ID {orcid_id}")
78+
if activities:
79+
employments = activities.get('employments', {}).get('affiliation-group', [])
80+
for employment in employments:
81+
summaries = employment.get('summaries', [])
82+
if summaries and len(summaries) > 0:
83+
employment_summary = summaries[0].get('employment-summary', {})
84+
organization = employment_summary.get('organization', {})
85+
org_name = organization.get('name')
86+
if org_name:
87+
graph.add((orcid_uri, SCHEMA.affiliation, Literal(org_name)))
88+
logging.info(f"Added affiliation {org_name} for ORCID ID {orcid_id}")
8789

8890
return graph
8991

0 commit comments

Comments
 (0)