diff --git a/dhp-workflows/dhp-enrichment/null/leaves/._SUCCESS.crc b/dhp-workflows/dhp-enrichment/null/leaves/._SUCCESS.crc
new file mode 100644
index 0000000000..3b7b044936
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/leaves/._SUCCESS.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/leaves/.part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/leaves/.part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/leaves/.part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/leaves/_SUCCESS b/dhp-workflows/dhp-enrichment/null/leaves/_SUCCESS
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/dhp-workflows/dhp-enrichment/null/leaves/part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz b/dhp-workflows/dhp-enrichment/null/leaves/part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/leaves/part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/._SUCCESS.crc b/dhp-workflows/dhp-enrichment/null/newRelation/._SUCCESS.crc
new file mode 100644
index 0000000000..3b7b044936
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/._SUCCESS.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc
new file mode 100644
index 0000000000..3c70b3ca0b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc
new file mode 100644
index 0000000000..9690bbf522
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc
new file mode 100644
index 0000000000..9690bbf522
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc
new file mode 100644
index 0000000000..9690bbf522
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc
new file mode 100644
index 0000000000..9690bbf522
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc
new file mode 100644
index 0000000000..9690bbf522
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc
new file mode 100644
index 0000000000..9690bbf522
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc
new file mode 100644
index 0000000000..9690bbf522
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc
new file mode 100644
index 0000000000..9690bbf522
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc
new file mode 100644
index 0000000000..557a5a816f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc
new file mode 100644
index 0000000000..557a5a816f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc
new file mode 100644
index 0000000000..557a5a816f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc
new file mode 100644
index 0000000000..557a5a816f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc
new file mode 100644
index 0000000000..557a5a816f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc
new file mode 100644
index 0000000000..557a5a816f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc
new file mode 100644
index 0000000000..557a5a816f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc
new file mode 100644
index 0000000000..557a5a816f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc
new file mode 100644
index 0000000000..b3370486fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc
new file mode 100644
index 0000000000..ba9dc02f20
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc
new file mode 100644
index 0000000000..ba9dc02f20
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc
new file mode 100644
index 0000000000..ba9dc02f20
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc
new file mode 100644
index 0000000000..c0e5dc3160
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc
new file mode 100644
index 0000000000..c0e5dc3160
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc
new file mode 100644
index 0000000000..c0e5dc3160
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc
new file mode 100644
index 0000000000..ba9dc02f20
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc
new file mode 100644
index 0000000000..c0e5dc3160
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc
new file mode 100644
index 0000000000..c0e5dc3160
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc
new file mode 100644
index 0000000000..c0e5dc3160
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc
new file mode 100644
index 0000000000..ba9dc02f20
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc
new file mode 100644
index 0000000000..ba9dc02f20
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc
new file mode 100644
index 0000000000..c0e5dc3160
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc
new file mode 100644
index 0000000000..c0e5dc3160
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc
new file mode 100644
index 0000000000..ba9dc02f20
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc
new file mode 100644
index 0000000000..ba9dc02f20
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc
new file mode 100644
index 0000000000..2f7fbb2e7d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc
new file mode 100644
index 0000000000..5ea578242f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc
new file mode 100644
index 0000000000..fcf53cc925
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc
new file mode 100644
index 0000000000..fcf53cc925
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc
new file mode 100644
index 0000000000..fcf53cc925
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc
new file mode 100644
index 0000000000..fcf53cc925
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc
new file mode 100644
index 0000000000..fcf53cc925
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc
new file mode 100644
index 0000000000..fcf53cc925
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc
new file mode 100644
index 0000000000..fcf53cc925
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc
new file mode 100644
index 0000000000..fcf53cc925
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/_SUCCESS b/dhp-workflows/dhp-enrichment/null/newRelation/_SUCCESS
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz
new file mode 100644
index 0000000000..a92a574363
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz
new file mode 100644
index 0000000000..2298c84f35
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz
new file mode 100644
index 0000000000..2298c84f35
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz
new file mode 100644
index 0000000000..2298c84f35
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz
new file mode 100644
index 0000000000..2298c84f35
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz
new file mode 100644
index 0000000000..2298c84f35
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz
new file mode 100644
index 0000000000..2298c84f35
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz
new file mode 100644
index 0000000000..2298c84f35
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz
new file mode 100644
index 0000000000..2298c84f35
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz
new file mode 100644
index 0000000000..fe56417e97
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz
new file mode 100644
index 0000000000..fe56417e97
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz
new file mode 100644
index 0000000000..fe56417e97
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz
new file mode 100644
index 0000000000..fe56417e97
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz
new file mode 100644
index 0000000000..fe56417e97
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz
new file mode 100644
index 0000000000..fe56417e97
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz
new file mode 100644
index 0000000000..fe56417e97
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz
new file mode 100644
index 0000000000..fe56417e97
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz
new file mode 100644
index 0000000000..5e63538ede
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz
new file mode 100644
index 0000000000..6f7008b990
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz
new file mode 100644
index 0000000000..6f7008b990
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz
new file mode 100644
index 0000000000..6f7008b990
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz
new file mode 100644
index 0000000000..569b818991
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz
new file mode 100644
index 0000000000..569b818991
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz
new file mode 100644
index 0000000000..569b818991
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz
new file mode 100644
index 0000000000..6f7008b990
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz
new file mode 100644
index 0000000000..569b818991
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz
new file mode 100644
index 0000000000..569b818991
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz
new file mode 100644
index 0000000000..569b818991
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz
new file mode 100644
index 0000000000..6f7008b990
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz
new file mode 100644
index 0000000000..6f7008b990
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz
new file mode 100644
index 0000000000..569b818991
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz
new file mode 100644
index 0000000000..569b818991
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz
new file mode 100644
index 0000000000..6f7008b990
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz
new file mode 100644
index 0000000000..6f7008b990
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz
new file mode 100644
index 0000000000..d8d4340b29
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz
new file mode 100644
index 0000000000..6cfe02812d
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz
new file mode 100644
index 0000000000..9e0f1691ec
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz
new file mode 100644
index 0000000000..9e0f1691ec
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz
new file mode 100644
index 0000000000..9e0f1691ec
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz
new file mode 100644
index 0000000000..9e0f1691ec
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz
new file mode 100644
index 0000000000..9e0f1691ec
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz
new file mode 100644
index 0000000000..9e0f1691ec
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz
new file mode 100644
index 0000000000..9e0f1691ec
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz
new file mode 100644
index 0000000000..9e0f1691ec
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/newRelation/part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/._SUCCESS.crc b/dhp-workflows/dhp-enrichment/null/resOrg/._SUCCESS.crc
new file mode 100644
index 0000000000..3b7b044936
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/._SUCCESS.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/.part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc
new file mode 100644
index 0000000000..444ebf0e34
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/.part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc
new file mode 100644
index 0000000000..b15369f6d5
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/.part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc
new file mode 100644
index 0000000000..c20351ddf2
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/.part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc
new file mode 100644
index 0000000000..4448bb231f
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/.part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc
new file mode 100644
index 0000000000..c156ff834b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/.part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc
new file mode 100644
index 0000000000..d63755f88e
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/.part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/_SUCCESS b/dhp-workflows/dhp-enrichment/null/resOrg/_SUCCESS
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz b/dhp-workflows/dhp-enrichment/null/resOrg/part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz
new file mode 100644
index 0000000000..001322f84b
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz b/dhp-workflows/dhp-enrichment/null/resOrg/part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz
new file mode 100644
index 0000000000..4c7405f90e
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz b/dhp-workflows/dhp-enrichment/null/resOrg/part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz
new file mode 100644
index 0000000000..e9dffda1fb
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz b/dhp-workflows/dhp-enrichment/null/resOrg/part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz
new file mode 100644
index 0000000000..7ee2b282a2
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz b/dhp-workflows/dhp-enrichment/null/resOrg/part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz
new file mode 100644
index 0000000000..0389977c08
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/null/resOrg/part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz b/dhp-workflows/dhp-enrichment/null/resOrg/part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz
new file mode 100644
index 0000000000..57f1fb8985
Binary files /dev/null and b/dhp-workflows/dhp-enrichment/null/resOrg/part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz differ
diff --git a/dhp-workflows/dhp-enrichment/pom.xml b/dhp-workflows/dhp-enrichment/pom.xml
index 644ac21409..0b4269acd0 100644
--- a/dhp-workflows/dhp-enrichment/pom.xml
+++ b/dhp-workflows/dhp-enrichment/pom.xml
@@ -48,6 +48,12 @@
io.github.classgraph
classgraph
+
+ eu.dnetlib.dhp
+ dhp-aggregation
+ 1.2.4-SNAPSHOT
+ compile
+
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/PropagationConstant.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/PropagationConstant.java
index 23e97a97a8..522f8b9699 100644
--- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/PropagationConstant.java
+++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/PropagationConstant.java
@@ -1,6 +1,7 @@
package eu.dnetlib.dhp;
+import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -37,6 +38,9 @@ public class PropagationConstant {
public static final String PROPAGATION_RELATION_RESULT_ORGANIZATION_INST_REPO_CLASS_ID = "result:organization:instrepo";
public static final String PROPAGATION_RELATION_RESULT_ORGANIZATION_INST_REPO_CLASS_NAME = "Propagation of affiliation to result collected from datasources of type institutional repository";
+ public static final String PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_ID = "result:organization:semrel";
+ public static final String PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_NAME = "Propagation of affiliation to result through sematic relations";
+
public static final String PROPAGATION_RELATION_RESULT_PROJECT_SEM_REL_CLASS_ID = "result:project:semrel";
public static final String PROPAGATION_RELATION_RESULT_PROJECT_SEM_REL_CLASS_NAME = "Propagation of result to project through semantic relation";
@@ -49,6 +53,13 @@ public class PropagationConstant {
public static final String PROPAGATION_ORCID_TO_RESULT_FROM_SEM_REL_CLASS_ID = "authorpid:result";
public static final String PROPAGATION_ORCID_TO_RESULT_FROM_SEM_REL_CLASS_NAME = "Propagation of authors pid to result through semantic relations";
+ public static final String ITERATION_ONE = "ExitAtFirstIteration";
+ public static final String ITERATION_TWO = "ExitAtSecondIteration";
+ public static final String ITERATION_THREE = "ExitAtThirdIteration";
+ public static final String ITERATION_FOUR = "ExitAtFourthIteration";
+ public static final String ITERATION_FIVE = "ExitAtFifthIteration";
+ public static final String ITERATION_NO_PARENT = "ExitAtNoFirstParentReached";
+
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private static final String cfHbforResultQuery = "select distinct r.id, inst.collectedfrom.key cf, inst.hostedby.key hb "
@@ -94,6 +105,39 @@ public class PropagationConstant {
return pa;
}
+ public static ArrayList getOrganizationRelationPair(String orgId,
+ String resultId,
+ String classID,
+ String className
+
+ ) {
+ ArrayList newRelations = new ArrayList();
+ newRelations
+ .add(
+ getRelation(
+ orgId,
+ resultId,
+ ModelConstants.IS_AUTHOR_INSTITUTION_OF,
+ ModelConstants.RESULT_ORGANIZATION,
+ ModelConstants.AFFILIATION,
+ PROPAGATION_DATA_INFO_TYPE,
+ classID,
+ className));
+ newRelations
+ .add(
+ getRelation(
+ resultId,
+ orgId,
+ ModelConstants.HAS_AUTHOR_INSTITUTION,
+ ModelConstants.RESULT_ORGANIZATION,
+ ModelConstants.AFFILIATION,
+ PROPAGATION_DATA_INFO_TYPE,
+ classID,
+ className));
+
+ return newRelations;
+ }
+
public static Relation getRelation(
String source,
String target,
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/PrepareResultInstRepoAssociation.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/PrepareResultInstRepoAssociation.java
index dbd3bccfb5..50ab997b68 100644
--- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/PrepareResultInstRepoAssociation.java
+++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/PrepareResultInstRepoAssociation.java
@@ -10,7 +10,6 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
-import eu.dnetlib.dhp.KeyValueSet;
import org.apache.commons.io.IOUtils;
import org.apache.hadoop.io.compress.GzipCodec;
import org.apache.spark.SparkConf;
@@ -23,6 +22,7 @@ import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
+import eu.dnetlib.dhp.KeyValueSet;
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import eu.dnetlib.dhp.schema.oaf.Datasource;
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/SparkResultToOrganizationFromIstRepoJob.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/SparkResultToOrganizationFromIstRepoJob.java
index be0a4804af..0757ebccd4 100644
--- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/SparkResultToOrganizationFromIstRepoJob.java
+++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/SparkResultToOrganizationFromIstRepoJob.java
@@ -8,7 +8,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
-import eu.dnetlib.dhp.KeyValueSet;
import org.apache.commons.io.IOUtils;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.function.FlatMapFunction;
@@ -19,6 +18,7 @@ import org.apache.spark.sql.SparkSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import eu.dnetlib.dhp.KeyValueSet;
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
import eu.dnetlib.dhp.schema.common.ModelConstants;
import eu.dnetlib.dhp.schema.oaf.Relation;
@@ -138,30 +138,15 @@ public class SparkResultToOrganizationFromIstRepoJob {
String resultId = potentialUpdate.getKey();
organizations
.forEach(
- orgId -> {
- newRelations
- .add(
- getRelation(
- orgId,
- resultId,
- ModelConstants.IS_AUTHOR_INSTITUTION_OF,
- ModelConstants.RESULT_ORGANIZATION,
- ModelConstants.AFFILIATION,
- PROPAGATION_DATA_INFO_TYPE,
- PROPAGATION_RELATION_RESULT_ORGANIZATION_INST_REPO_CLASS_ID,
- PROPAGATION_RELATION_RESULT_ORGANIZATION_INST_REPO_CLASS_NAME));
- newRelations
- .add(
- getRelation(
- resultId,
- orgId,
- ModelConstants.HAS_AUTHOR_INSTITUTION,
- ModelConstants.RESULT_ORGANIZATION,
- ModelConstants.AFFILIATION,
- PROPAGATION_DATA_INFO_TYPE,
- PROPAGATION_RELATION_RESULT_ORGANIZATION_INST_REPO_CLASS_ID,
- PROPAGATION_RELATION_RESULT_ORGANIZATION_INST_REPO_CLASS_NAME));
- });
+ orgId -> newRelations
+ .addAll(
+ getOrganizationRelationPair(
+ orgId,
+ resultId,
+ PROPAGATION_RELATION_RESULT_ORGANIZATION_INST_REPO_CLASS_ID,
+ PROPAGATION_RELATION_RESULT_ORGANIZATION_INST_REPO_CLASS_NAME))
+
+ );
return newRelations.iterator();
};
}
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStep.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStep.java
deleted file mode 100644
index ed33a6297a..0000000000
--- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStep.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
-
-public class ExecStep {
-}
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/Leaves.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/Leaves.java
index 602dc1aaa7..7984721e8c 100644
--- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/Leaves.java
+++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/Leaves.java
@@ -1,4 +1,16 @@
+
package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
-public class Leaves {
+import java.io.Serializable;
+
+public class Leaves implements Serializable {
+ private String value;
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
}
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfo.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfo.java
index 34817d9a9e..71b032b2bd 100644
--- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfo.java
+++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfo.java
@@ -1,26 +1,32 @@
+
package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import eu.dnetlib.dhp.KeyValueSet;
-import eu.dnetlib.dhp.schema.common.ModelConstants;
-import eu.dnetlib.dhp.schema.oaf.Relation;
-
-
-import org.apache.spark.api.java.function.MapFunction;
-import org.apache.spark.sql.Dataset;
-import org.apache.spark.sql.Encoders;
-
-import org.apache.spark.sql.SaveMode;
-import org.apache.spark.sql.SparkSession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import scala.Tuple2;
+import static eu.dnetlib.dhp.PropagationConstant.*;
+import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession;
import java.io.Serializable;
import java.util.*;
+import java.util.stream.Collectors;
-import static eu.dnetlib.dhp.PropagationConstant.*;
+import org.apache.commons.collections.iterators.ArrayListIterator;
+import org.apache.commons.io.IOUtils;
+import org.apache.spark.SparkConf;
+import org.apache.spark.api.java.function.*;
+import org.apache.spark.sql.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.sun.tools.internal.ws.processor.model.Model;
+
+import eu.dnetlib.dhp.KeyValueSet;
+import eu.dnetlib.dhp.PropagationConstant;
+import eu.dnetlib.dhp.application.ArgumentApplicationParser;
+import eu.dnetlib.dhp.resulttoorganizationfrominstrepo.SparkResultToOrganizationFromIstRepoJob;
+import eu.dnetlib.dhp.schema.common.ModelConstants;
+import eu.dnetlib.dhp.schema.oaf.Relation;
+import net.sf.saxon.expr.instruct.ForEach;
+import scala.Tuple2;
/**
* Searches for all the association between result and organization already existing in the graph
@@ -29,90 +35,120 @@ import static eu.dnetlib.dhp.PropagationConstant.*;
public class PrepareInfo implements Serializable {
- //leggo le relazioni e seleziono quelle fra result ed organizzazioni
- //raggruppo per result e salvo
- //r => {o1, o2, o3}
+ // leggo le relazioni e seleziono quelle fra result ed organizzazioni
+ // raggruppo per result e salvo
+ // r => {o1, o2, o3}
- //leggo le relazioni fra le organizzazioni e creo la gerarchia delle parentele:
- //hashMap key organizzazione -> value tutti i suoi padri
- // o => {p1, p2}
+ // leggo le relazioni fra le organizzazioni e creo la gerarchia delle parentele:
+ // hashMap key organizzazione -> value tutti i suoi padri
+ // o => {p1, p2}
- private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
- private static final Logger log = LoggerFactory.getLogger(PrepareInfo.class);
+ private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+ private static final Logger log = LoggerFactory.getLogger(PrepareInfo.class);
- //associa i figli con tutti i loro padri
- private static final String relOrgQuery =
- "SELECT target key, collect_set(source) as valueSet " +
- "FROM relation " +
- "WHERE lower(relclass) = '" + ModelConstants.IS_PARENT_OF.toLowerCase() + "' and datainfo.deletedbyinference = false " +
- "GROUP BY target";
+ // associate orgs with all their parent
+ private static final String relOrgQuery = "SELECT target key, collect_set(source) as valueSet " +
+ "FROM relation " +
+ "WHERE lower(relclass) = '" + ModelConstants.IS_PARENT_OF.toLowerCase() +
+ "' and datainfo.deletedbyinference = false " +
+ "GROUP BY target";
- private static final String relResQuery = "SELECT source key, collect_set(target) as valueSet " +
- "FROM relation " +
- "WHERE lower(relclass) = '" + ModelConstants.HAS_AUTHOR_INSTITUTION.toLowerCase() + "' and datainfo.deletedbyinference = false " +
- "GROUP BY source";
+ private static final String relResQuery = "SELECT source key, collect_set(target) as valueSet " +
+ "FROM relation " +
+ "WHERE lower(relclass) = '" + ModelConstants.HAS_AUTHOR_INSTITUTION.toLowerCase() +
+ "' and datainfo.deletedbyinference = false " +
+ "GROUP BY source";
+ public static void main(String[] args) throws Exception {
- public static void prepareChildrenParent(SparkSession spark, String inputPath, String childParentOrganizationPath){
- Dataset relation = readPath(spark, inputPath + "/relation", Relation.class);
- relation.createOrReplaceTempView("relation");
+ String jsonConfiguration = IOUtils
+ .toString(
+ SparkResultToOrganizationFromIstRepoJob.class
+ .getResourceAsStream(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_preparation_parameter.json"));
- spark
- .sql(relOrgQuery)
- .as(Encoders.bean(KeyValueSet.class))
- .write()
- .mode(SaveMode.Overwrite)
- .option("compression","gzip")
- .json(childParentOrganizationPath);
- }
+ final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration);
- public static void prepareResultOrgnization(SparkSession spark, String inputPath, String resultOrganizationPath){
- spark
- .sql(relResQuery)
- .as(Encoders.bean(KeyValueSet.class))
- .write()
- .mode(SaveMode.Overwrite)
- .option("compression","gzip")
- .json(resultOrganizationPath);
- }
+ parser.parseArgument(args);
- private static void prepareInfo(SparkSession spark, String inputPath, String childParentOrganizationPath,
- String currentIterationPath, String resultOrganizationPath){
- Dataset relation = readPath(spark, inputPath + "/relation", Relation.class);
- relation.createOrReplaceTempView("relation");
+ Boolean isSparkSessionManaged = isSparkSessionManaged(parser);
+ log.info("isSparkSessionManaged: {}", isSparkSessionManaged);
- spark
- .sql(relOrgQuery)
- .as(Encoders.bean(KeyValueSet.class))
- .write()
- .mode(SaveMode.Overwrite)
- .option("compression","gzip")
- .json(childParentOrganizationPath);
+ String graphPath = parser.get("graphPath");
+ log.info("graphPath: {}", graphPath);
- spark
- .sql(relResQuery)
- .as(Encoders.bean(KeyValueSet.class))
- .write()
- .mode(SaveMode.Overwrite)
- .option("compression","gzip")
- .json(resultOrganizationPath);
+ final String leavesPath = parser.get("leavesPath");
+ log.info("leavesPath: {}", leavesPath);
- Dataset children = spark.sql("Select distinct target from relation where relclass='IsParentOf' and datainfo.deletedbyinference = false").as(Encoders.STRING());
+ final String childParentPath = parser.get("childParentPath");
+ log.info("childParentPath: {}", childParentPath);
- Dataset parent = spark.sql("Select distinct source from relation where relclass='IsParentOf' and datainfo.deletedbyinference = false").as(Encoders.STRING());
+ final String resultOrganizationPath = parser.get("resultOrgPath");
+ log.info("resultOrganizationPath: {}", resultOrganizationPath);
- //prendo dalla join i risultati che hanno solo il lato sinistro: sono foglie
- children.joinWith(parent, children.col("_1").equalTo(parent.col("_1")), "left")
- .map((MapFunction, String>) value -> {
- if (Optional.ofNullable(value._2()).isPresent()) {
- return null;
- }
+ SparkConf conf = new SparkConf();
+ conf.set("hive.metastore.uris", parser.get("hive_metastore_uris"));
- return value._1();
- }, Encoders.STRING()).filter(Objects::nonNull)
- .write()
- .mode(SaveMode.Overwrite)
- .json(currentIterationPath);
- }
+ runWithSparkHiveSession(
+ conf,
+ isSparkSessionManaged,
+ spark -> prepareInfo(
+ spark,
+ graphPath,
+ childParentPath,
+ leavesPath,
+ resultOrganizationPath));
+ }
+
+ private static void prepareInfo(SparkSession spark, String inputPath, String childParentOrganizationPath,
+ String currentIterationPath, String resultOrganizationPath) {
+ Dataset relation = readPath(spark, inputPath + "/relation", Relation.class);
+ relation.createOrReplaceTempView("relation");
+
+ spark
+ .sql(relOrgQuery)
+ .as(Encoders.bean(KeyValueSet.class))
+ .write()
+ .mode(SaveMode.Overwrite)
+ .option("compression", "gzip")
+ .json(childParentOrganizationPath);
+
+ spark
+ .sql(relResQuery)
+ .as(Encoders.bean(KeyValueSet.class))
+ .write()
+ .mode(SaveMode.Overwrite)
+ .option("compression", "gzip")
+ .json(resultOrganizationPath);
+
+ Dataset children = spark
+ .sql(
+ "Select distinct target as child from relation where " +
+ "lower(relclass)='" + ModelConstants.IS_PARENT_OF.toLowerCase() +
+ "' and datainfo.deletedbyinference = false")
+ .as(Encoders.STRING());
+
+ Dataset parent = spark
+ .sql(
+ "Select distinct source as parent from relation " +
+ "where lower(relclass)='" + ModelConstants.IS_PARENT_OF.toLowerCase() +
+ "' and datainfo.deletedbyinference = false")
+ .as(Encoders.STRING());
+
+ // prendo dalla join i risultati che hanno solo il lato sinistro: sono foglie
+ children
+ .joinWith(parent, children.col("child").equalTo(parent.col("parent")), "left")
+ .map((MapFunction, String>) value -> {
+ if (Optional.ofNullable(value._2()).isPresent()) {
+ return null;
+ }
+
+ return value._1();
+ }, Encoders.STRING())
+ .filter(Objects::nonNull)
+ .write()
+ .mode(SaveMode.Overwrite)
+ .json(currentIterationPath);
+ }
}
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PropagationCounter.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PropagationCounter.java
new file mode 100644
index 0000000000..788eff0e3e
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PropagationCounter.java
@@ -0,0 +1,77 @@
+
+package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
+
+import java.io.Serializable;
+
+import org.apache.spark.util.LongAccumulator;
+
+public class PropagationCounter implements Serializable {
+ private LongAccumulator iterationOne;
+ private LongAccumulator iterationTwo;
+ private LongAccumulator iterationThree;
+ private LongAccumulator iterationFour;
+ private LongAccumulator iterationFive;
+ private LongAccumulator notReachedFirstParent;
+
+ public PropagationCounter() {
+ }
+
+ public PropagationCounter(LongAccumulator iterationOne, LongAccumulator iterationTwo,
+ LongAccumulator iterationThree, LongAccumulator iterationFour, LongAccumulator iterationFive,
+ LongAccumulator notReachedFirstParent) {
+ this.iterationOne = iterationOne;
+ this.iterationTwo = iterationTwo;
+ this.iterationThree = iterationThree;
+ this.iterationFour = iterationFour;
+ this.iterationFive = iterationFive;
+ this.notReachedFirstParent = notReachedFirstParent;
+ }
+
+ public LongAccumulator getIterationOne() {
+ return iterationOne;
+ }
+
+ public void setIterationOne(LongAccumulator iterationOne) {
+ this.iterationOne = iterationOne;
+ }
+
+ public LongAccumulator getIterationTwo() {
+ return iterationTwo;
+ }
+
+ public void setIterationTwo(LongAccumulator iterationTwo) {
+ this.iterationTwo = iterationTwo;
+ }
+
+ public LongAccumulator getIterationThree() {
+ return iterationThree;
+ }
+
+ public void setIterationThree(LongAccumulator iterationThree) {
+ this.iterationThree = iterationThree;
+ }
+
+ public LongAccumulator getIterationFour() {
+ return iterationFour;
+ }
+
+ public void setIterationFour(LongAccumulator iterationFour) {
+ this.iterationFour = iterationFour;
+ }
+
+ public LongAccumulator getIterationFive() {
+ return iterationFive;
+ }
+
+ public void setIterationFive(LongAccumulator iterationFive) {
+ this.iterationFive = iterationFive;
+ }
+
+ public LongAccumulator getNotReachedFirstParent() {
+ return notReachedFirstParent;
+ }
+
+ public void setNotReachedFirstParent(LongAccumulator notReachedFirstParent) {
+ this.notReachedFirstParent = notReachedFirstParent;
+ }
+}
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java
index bd1b7803f8..e716f8d86a 100644
--- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java
+++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java
@@ -1,29 +1,228 @@
+
package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
-public class SparkResultToOrganizationFromSemRel {
+import static eu.dnetlib.dhp.PropagationConstant.*;
+import static eu.dnetlib.dhp.common.Constants.*;
+import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession;
- //per ogni figlio nel file delle organizzazioni
- //devo fare una roba iterativa che legge info da un file e le cambia via via
- //passo 1: creo l'informazione iniale: organizzazioni che non hanno figli con almeno un padre
- //ogni organizzazione punta alla lista di padri
- //eseguo la propagazione dall'organizzazione figlio all'organizzazione padre
- //ricerco nel dataset delle relazioni se l'organizzazione a cui ho propagato ha, a sua volta, dei padri
- //e propago anche a quelli e cosi' via fino a che arrivo ad organizzazione senza padre
+import java.io.Serializable;
+import java.util.Arrays;
- //organizationFile:
- //f => {p1, p2, ..., pn}
- //resultFile
- //o => {r1, r2, ... rm}
+import org.apache.commons.io.IOUtils;
+import org.apache.spark.SparkConf;
+import org.apache.spark.api.java.function.FlatMapFunction;
+import org.apache.spark.api.java.function.MapFunction;
+import org.apache.spark.api.java.function.MapGroupsFunction;
+import org.apache.spark.sql.Dataset;
+import org.apache.spark.sql.Encoders;
+import org.apache.spark.sql.SaveMode;
+import org.apache.spark.sql.SparkSession;
+import org.apache.spark.util.LongAccumulator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
- //supponiamo che f => {r1, r2} e che nessuno dei padri abbia gia' l'associazione con questi result
- //quindi
- //p1 => {r1, r2}
- //p2 => {r1, r2}
- //pn => {r1, r2}
+import eu.dnetlib.dhp.KeyValueSet;
+import eu.dnetlib.dhp.PropagationConstant;
+import eu.dnetlib.dhp.application.ArgumentApplicationParser;
+import eu.dnetlib.dhp.resulttoorganizationfrominstrepo.SparkResultToOrganizationFromIstRepoJob;
+import eu.dnetlib.dhp.schema.common.ModelConstants;
+import eu.dnetlib.dhp.schema.oaf.Relation;
+public class SparkResultToOrganizationFromSemRel implements Serializable {
+ private static final Logger log = LoggerFactory.getLogger(SparkResultToOrganizationFromSemRel.class);
+ private static final int MAX_ITERATION = 5;
- //mi serve un file con tutta la gerarchia per organizzazioni
- //un file con le organizzazioni foglia da joinare con l'altro file
- //un file con le associazioni organizzazione -> result forse meglio result -> organization
+ public static void main(String[] args) throws Exception {
+
+ String jsonConfiguration = IOUtils
+ .toString(
+ SparkResultToOrganizationFromIstRepoJob.class
+ .getResourceAsStream(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_propagation_parameter.json"));
+
+ final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration);
+
+ parser.parseArgument(args);
+
+ Boolean isSparkSessionManaged = isSparkSessionManaged(parser);
+ log.info("isSparkSessionManaged: {}", isSparkSessionManaged);
+
+ String graphPath = parser.get("graphPath");
+ log.info("graphPath: {}", graphPath);
+
+ final String outputPath = parser.get("outputPath");
+ log.info("outputPath: {}", outputPath);
+
+ final String leavesPath = parser.get("leavesPath");
+ log.info("leavesPath: {}", leavesPath);
+
+ final String childParentPath = parser.get("childParentPath");
+ log.info("childParentPath: {}", childParentPath);
+
+ final String resultOrganizationPath = parser.get("resultOrgPath");
+ log.info("resultOrganizationPath: {}", resultOrganizationPath);
+
+ final String workingPath = parser.get("workingDir");
+ log.info("workingPath: {}", workingPath);
+
+ SparkConf conf = new SparkConf();
+ conf.set("hive.metastore.uris", parser.get("hive_metastore_uris"));
+
+ runWithSparkHiveSession(
+ conf,
+ isSparkSessionManaged,
+ spark -> execPropagation(
+ spark,
+ leavesPath,
+ childParentPath,
+ resultOrganizationPath,
+ graphPath,
+ workingPath,
+ outputPath));
+ }
+
+ public static void execPropagation(SparkSession spark,
+ String leavesPath,
+ String childParentPath,
+ String resultOrganizationPath,
+ String graphPath,
+ String workingPath,
+ String outputPath) {
+
+ final LongAccumulator iterationOne = spark.sparkContext().longAccumulator(ITERATION_ONE);
+ final LongAccumulator iterationTwo = spark.sparkContext().longAccumulator(ITERATION_TWO);
+ final LongAccumulator iterationThree = spark.sparkContext().longAccumulator(ITERATION_THREE);
+ final LongAccumulator iterationFour = spark.sparkContext().longAccumulator(ITERATION_FOUR);
+ final LongAccumulator iterationFive = spark.sparkContext().longAccumulator(ITERATION_FIVE);
+ final LongAccumulator notReachedFirstParent = spark.sparkContext().longAccumulator(ITERATION_NO_PARENT);
+
+ final PropagationCounter propagationCounter = new PropagationCounter(iterationOne,
+ iterationTwo,
+ iterationThree,
+ iterationFour,
+ iterationFive,
+ notReachedFirstParent);
+
+ doPropagate(
+ spark, leavesPath, childParentPath, resultOrganizationPath, graphPath,
+ workingPath, outputPath, propagationCounter);
+
+ }
+
+ private static void doPropagate(SparkSession spark, String leavesPath, String childParentPath,
+ String resultOrganizationPath, String graphPath, String workingPath, String outputPath,
+ PropagationCounter propagationCounter) {
+ int iteration = 0;
+ long leavesCount = 0;
+
+ do {
+ iteration++;
+ StepActions
+ .execStep(
+ spark, graphPath, workingPath + "/newRelation",
+ leavesPath, childParentPath, resultOrganizationPath);
+ StepActions
+ .prepareForNextStep(
+ spark, workingPath + "/newRelation", resultOrganizationPath, leavesPath,
+ childParentPath, workingPath + "/leaves", workingPath + "/resOrg");
+ moveOutput(spark, workingPath, leavesPath, resultOrganizationPath);
+ leavesCount = readPath(spark, leavesPath, Leaves.class).count();
+ } while (leavesCount > 0 && iteration < MAX_ITERATION);
+
+ if (leavesCount == 0) {
+ switch (String.valueOf(iteration)) {
+ case "1":
+ propagationCounter.getIterationOne().add(1);
+ break;
+ case "2":
+ propagationCounter.getIterationTwo().add(1);
+ break;
+ case "3":
+ propagationCounter.getIterationThree().add(1);
+ break;
+ case "4":
+ propagationCounter.getIterationFour().add(1);
+ break;
+ case "5":
+ propagationCounter.getIterationFive().add(1);
+ break;
+ default:
+ break;
+ }
+ } else {
+ propagationCounter.getNotReachedFirstParent().add(1);
+ }
+
+ addNewRelations(spark, workingPath + "/newRelation", outputPath);
+ }
+
+ private static void moveOutput(SparkSession spark, String workingPath, String leavesPath,
+ String resultOrganizationPath) {
+ readPath(spark, workingPath + "/leaves", Leaves.class)
+ .write()
+ .mode(SaveMode.Overwrite)
+ .option("compression", "gzip")
+ .json(leavesPath);
+
+ readPath(spark, workingPath + "/resOrg", KeyValueSet.class)
+ .write()
+ .mode(SaveMode.Overwrite)
+ .option("compression", "gzip")
+ .json(resultOrganizationPath);
+
+ }
+
+ private static void addNewRelations(SparkSession spark, String newRelationPath, String outputPath) {
+ Dataset relation = readPath(spark, newRelationPath, Relation.class);
+
+ relation
+ .groupByKey((MapFunction) r -> r.getSource() + r.getTarget(), Encoders.STRING())
+ .mapGroups(
+ (MapGroupsFunction) (k, it) -> it.next(), Encoders.bean(Relation.class))
+ .flatMap(
+ (FlatMapFunction) r -> Arrays
+ .asList(
+ r, getRelation(
+ r.getTarget(), r.getSource(), ModelConstants.IS_AUTHOR_INSTITUTION_OF,
+ ModelConstants.RESULT_ORGANIZATION,
+ ModelConstants.AFFILIATION,
+ PROPAGATION_DATA_INFO_TYPE,
+ PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_ID,
+ PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_NAME))
+ .iterator()
+
+ , Encoders.bean(Relation.class))
+ .write()
+
+ .mode(SaveMode.Append)
+ .option("compression", "gzip")
+ .json(outputPath);
+ }
+
+ // per ogni figlio nel file delle organizzazioni
+ // devo fare una roba iterativa che legge info da un file e le cambia via via
+ // passo 1: creo l'informazione iniale: organizzazioni che non hanno figli con almeno un padre
+ // ogni organizzazione punta alla lista di padri
+ // eseguo la propagazione dall'organizzazione figlio all'organizzazione padre
+ // ricerco nel dataset delle relazioni se l'organizzazione a cui ho propagato ha, a sua volta, dei padri
+ // e propago anche a quelli e cosi' via fino a che arrivo ad organizzazione senza padre
+
+ // organizationFile:
+ // f => {p1, p2, ..., pn}
+ // resultFile
+ // o => {r1, r2, ... rm}
+
+ // supponiamo che f => {r1, r2} e che nessuno dei padri abbia gia' l'associazione con questi result
+ // quindi
+ // p1 => {r1, r2}
+ // p2 => {r1, r2}
+ // pn => {r1, r2}
+
+ // mi serve un file con tutta la gerarchia per organizzazioni
+ // un file con le organizzazioni foglia da joinare con l'altro file
+ // un file con le associazioni organizzazione -> result forse meglio result -> organization
+
+ // eseguo gli step fino a che ho foglie nel set
+ // quando non ne ho piu' creo relazioni doppio verso per le nuove propagate che ho introdotto
}
diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/StepActions.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/StepActions.java
new file mode 100644
index 0000000000..2d2fd866de
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/StepActions.java
@@ -0,0 +1,213 @@
+
+package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
+
+import static eu.dnetlib.dhp.PropagationConstant.*;
+import static eu.dnetlib.dhp.PropagationConstant.readPath;
+
+import java.io.Serializable;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import org.apache.spark.api.java.function.*;
+import org.apache.spark.sql.Dataset;
+import org.apache.spark.sql.Encoders;
+import org.apache.spark.sql.SaveMode;
+import org.apache.spark.sql.SparkSession;
+import org.jetbrains.annotations.NotNull;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import eu.dnetlib.dhp.KeyValueSet;
+import eu.dnetlib.dhp.schema.common.ModelConstants;
+import eu.dnetlib.dhp.schema.oaf.Relation;
+import scala.Tuple2;
+
+public class StepActions implements Serializable {
+
+ private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+ private static final Logger log = LoggerFactory.getLogger(StepActions.class);
+
+ public static void execStep(SparkSession spark,
+ String graphPath, String newRelationPath,
+ String leavesPath, String chldParentOrgPath, String resultOrgPath) {
+
+ Dataset relationGraph = readPath(spark, graphPath + "/relation", Relation.class)
+ .filter(
+ (FilterFunction) r -> !r.getDataInfo().getDeletedbyinference() &&
+ r.getRelClass().equals(ModelConstants.HAS_AUTHOR_INSTITUTION));
+ // select only the relation source target among those proposed by propagation that are not already existent
+ getNewRels(
+ newRelationPath, relationGraph,
+ getPropagationRelation(spark, leavesPath, chldParentOrgPath, resultOrgPath));
+
+ }
+
+ public static void prepareForNextStep(SparkSession spark, String selectedRelsPath, String resultOrgPath,
+ String leavesPath, String chldParentOrgPath, String leavesOutputPath,
+ String orgOutputPath) {
+ // use of the parents as new leaves set
+ changeLeavesSet(spark, leavesPath, chldParentOrgPath, leavesOutputPath);
+
+ // add the new relations obtained from propagation to the keyvalueset result organization
+ updateResultOrganization(
+ spark, resultOrgPath, readPath(spark, selectedRelsPath, Relation.class), orgOutputPath);
+ }
+
+ private static void updateResultOrganization(SparkSession spark, String resultOrgPath,
+ Dataset selectedRels, String outputPath) {
+ Dataset resultOrg = readPath(spark, resultOrgPath, KeyValueSet.class);
+ resultOrg
+ .joinWith(
+ selectedRels, resultOrg
+ .col("key")
+ .equalTo(selectedRels.col("source")),
+ "left")
+ .groupByKey((MapFunction, String>) mf -> mf._1().getKey(), Encoders.STRING())
+ .mapGroups((MapGroupsFunction, KeyValueSet>) (key, it) -> {
+ Tuple2 first = it.next();
+ if (!Optional.ofNullable(first._2()).isPresent()) {
+ return first._1();
+ }
+ KeyValueSet ret = new KeyValueSet();
+ ret.setKey(first._1().getKey());
+ HashSet hs = new HashSet<>();
+ hs.addAll(first._1().getValueSet());
+ hs.add(first._2().getTarget());
+ it.forEachRemaining(rel -> hs.add(rel._2().getTarget()));
+ ArrayList orgs = new ArrayList<>();
+ orgs.addAll(hs);
+ ret.setValueSet(orgs);
+ return ret;
+ }, Encoders.bean(KeyValueSet.class))
+ .write()
+ .mode(SaveMode.Overwrite)
+ .option("compression", "gzip")
+ .json(outputPath);
+ }
+
+ private static void changeLeavesSet(SparkSession spark, String leavesPath, String chldParentOrgPath,
+ String leavesOutputPath) {
+ Dataset childParent = readPath(spark, chldParentOrgPath, KeyValueSet.class);
+ Dataset leaves = readPath(spark, leavesPath, Leaves.class);
+
+ childParent.createOrReplaceTempView("childParent");
+ leaves.createOrReplaceTempView("leaves");
+
+ spark
+ .sql(
+ "SELECT distinct parent as value " +
+ "FROM leaves " +
+ "JOIN (SELECT key, parent " +
+ " FROM childParent " +
+ " LATERAL VIEW explode(valueSet) kv as parent) tmp " +
+ "ON value = key ")
+ .as(Encoders.bean(Leaves.class))
+ .write()
+ .mode(SaveMode.Overwrite)
+ .option("compression", "gzip")
+ .json(leavesOutputPath);
+ }
+
+ @NotNull
+ private static void getNewRels(String newRelationPath, Dataset relationDataset,
+ Dataset newRels) {
+ // selects new, not already existent relations
+ // union of new propagation relations to the relation set
+ // grouping from sourcetarget (we are sure the only relations are those from result to organization by
+ // construction of the set)
+ // if at least one relation in the set was harvested no new relation will be returned
+
+ relationDataset
+ .union(newRels)
+ .groupByKey((MapFunction) r -> r.getSource() + r.getTarget(), Encoders.STRING())
+ .mapGroups((MapGroupsFunction) (k, it) -> {
+
+ ArrayList relationList = new ArrayList<>();
+ relationList.add(it.next());
+ it.forEachRemaining(rel -> relationList.add(rel));
+
+ if (relationList
+ .stream()
+ .filter(
+ rel -> rel
+ .getDataInfo()
+ .getProvenanceaction()
+ .getClassname()
+ .equals(ModelConstants.HARVESTED))
+ .count() > 0) {
+ return null;
+ }
+
+ return new ObjectMapper().writeValueAsString(relationList.get(0));
+
+ }, Encoders.STRING())
+ .filter(Objects::nonNull)
+ .map(
+ (MapFunction) r -> new ObjectMapper().readValue(r, Relation.class),
+ Encoders.bean(Relation.class))
+ .write()
+ .mode(SaveMode.Append)
+ .option("compression", "gzip")
+ .json(newRelationPath);
+
+ }
+
+ // get the possible relations from propagation
+ private static Dataset getPropagationRelation(SparkSession spark,
+ String leavesPath,
+ String chldParentOrgPath,
+ String resultOrgPath) {
+
+ Dataset childParent = readPath(spark, chldParentOrgPath, KeyValueSet.class);
+ Dataset resultOrg = readPath(spark, resultOrgPath, KeyValueSet.class);
+ Dataset leaves = readPath(spark, leavesPath, Leaves.class);
+
+ childParent.createOrReplaceTempView("childParent");
+ resultOrg.createOrReplaceTempView("resultOrg");
+ leaves.createOrReplaceTempView("leaves");
+
+ Dataset resultParent = spark
+ .sql(
+ "SELECT resId as key, " +
+ "collect_set(parent) valueSet " +
+ "FROM (SELECT key as child, parent " +
+ " FROM childParent " +
+ " LATERAL VIEW explode(valueSet) ks as parent) as cp " +
+ "JOIN leaves " +
+ "ON leaves.value = cp.child " +
+ "JOIN (" +
+ "SELECT key as resId, org " +
+ "FROM resultOrg " +
+ "LATERAL VIEW explode (valueSet) ks as org ) as ro " +
+ "ON leaves.value = ro.org " +
+ "GROUP BY resId")
+ .as(Encoders.bean(KeyValueSet.class));
+
+ // resultParent.foreach((ForeachFunction)kv ->
+ // System.out.println(OBJECT_MAPPER.writeValueAsString(kv)));
+ // create new relations from result to organization for each result linked to a leaf
+ Dataset tmp = resultParent
+ .flatMap(
+ (FlatMapFunction) v -> v
+ .getValueSet()
+ .stream()
+ .map(
+ orgId -> getRelation(
+ v.getKey(),
+ orgId,
+ ModelConstants.HAS_AUTHOR_INSTITUTION,
+ ModelConstants.RESULT_ORGANIZATION,
+ ModelConstants.AFFILIATION,
+ PROPAGATION_DATA_INFO_TYPE,
+ PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_ID,
+ PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_NAME))
+ .collect(Collectors.toList())
+ .iterator(),
+ Encoders.bean(Relation.class));
+ tmp.foreach((ForeachFunction) r -> System.out.println(OBJECT_MAPPER.writeValueAsString(r)));
+ return tmp;
+ }
+
+}
diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_preparation_parameter.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_preparation_parameter.json
new file mode 100644
index 0000000000..baa8ba333c
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_preparation_parameter.json
@@ -0,0 +1,38 @@
+[
+ {
+ "paramName":"gp",
+ "paramLongName":"graphPath",
+ "paramDescription": "the path of the sequencial file to read",
+ "paramRequired": true
+ },
+ {
+ "paramName":"h",
+ "paramLongName":"hive_metastore_uris",
+ "paramDescription": "the hive metastore uris",
+ "paramRequired": true
+ },
+ {
+ "paramName":"lp",
+ "paramLongName":"leavesPath",
+ "paramDescription": "true if the new version of the graph must be saved",
+ "paramRequired": false
+ },
+ {
+ "paramName":"cp",
+ "paramLongName":"childParentPath",
+ "paramDescription": "path where to store/find association from datasource and organization",
+ "paramRequired": true
+ },
+ {
+ "paramName":"rp",
+ "paramLongName":"resultOrgPath",
+ "paramDescription": "path where to store/find already linked results and organizations",
+ "paramRequired": true
+ },
+ {
+ "paramName": "ssm",
+ "paramLongName": "isSparkSessionManaged",
+ "paramDescription": "the path where prepared info have been stored",
+ "paramRequired": false
+ }
+]
\ No newline at end of file
diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_propagation_parameter.json b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_propagation_parameter.json
new file mode 100644
index 0000000000..bd7bb50f9a
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_propagation_parameter.json
@@ -0,0 +1,50 @@
+[
+ {
+ "paramName":"gp",
+ "paramLongName":"graphPath",
+ "paramDescription": "the path of the sequencial file to read",
+ "paramRequired": true
+ },
+ {
+ "paramName":"h",
+ "paramLongName":"hive_metastore_uris",
+ "paramDescription": "the hive metastore uris",
+ "paramRequired": true
+ },
+ {
+ "paramName":"lp",
+ "paramLongName":"leavesPath",
+ "paramDescription": "true if the new version of the graph must be saved",
+ "paramRequired": false
+ },
+ {
+ "paramName":"cp",
+ "paramLongName":"childParentPath",
+ "paramDescription": "path where to store/find association from datasource and organization",
+ "paramRequired": true
+ },
+ {
+ "paramName":"rp",
+ "paramLongName":"resultOrgPath",
+ "paramDescription": "path where to store/find already linked results and organizations",
+ "paramRequired": true
+ },
+ {
+ "paramName": "ssm",
+ "paramLongName": "isSparkSessionManaged",
+ "paramDescription": "the path where prepared info have been stored",
+ "paramRequired": false
+ },
+ {
+ "paramName": "wd",
+ "paramLongName": "workingDir",
+ "paramDescription": "true if it is a test running",
+ "paramRequired": false
+ },
+ {
+ "paramName": "out",
+ "paramLongName": "outputPath",
+ "paramDescription": "the path used to store temporary output files",
+ "paramRequired": true
+ }
+]
\ No newline at end of file
diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/oozie_app/config-default.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/oozie_app/config-default.xml
new file mode 100644
index 0000000000..2744ea92ba
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/oozie_app/config-default.xml
@@ -0,0 +1,58 @@
+
+
+ jobTracker
+ yarnRM
+
+
+ nameNode
+ hdfs://nameservice1
+
+
+ oozie.use.system.libpath
+ true
+
+
+ oozie.action.sharelib.for.spark
+ spark2
+
+
+ hive_metastore_uris
+ thrift://iis-cdh5-test-m3.ocean.icm.edu.pl:9083
+
+
+ spark2YarnHistoryServerAddress
+ http://iis-cdh5-test-gw.ocean.icm.edu.pl:18089
+
+
+ spark2EventLogDir
+ /user/spark/spark2ApplicationHistory
+
+
+ spark2ExtraListeners
+ com.cloudera.spark.lineage.NavigatorAppListener
+
+
+ spark2SqlQueryExecutionListeners
+ com.cloudera.spark.lineage.NavigatorQueryListener
+
+
+ sparkExecutorNumber
+ 4
+
+
+ sparkDriverMemory
+ 15G
+
+
+ sparkExecutorMemory
+ 6G
+
+
+ sparkExecutorCores
+ 1
+
+
+ spark2MaxExecutors
+ 50
+
+
\ No newline at end of file
diff --git a/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/oozie_app/workflow.xml b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/oozie_app/workflow.xml
new file mode 100644
index 0000000000..32307e13da
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/oozie_app/workflow.xml
@@ -0,0 +1,192 @@
+
+
+
+ sourcePath
+ the source path
+
+
+ outputPath
+ sets the outputPath
+
+
+
+
+ ${jobTracker}
+ ${nameNode}
+
+
+ oozie.action.sharelib.for.spark
+ ${oozieActionShareLibForSpark2}
+
+
+
+
+
+
+
+ Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]
+
+
+
+
+ ${wf:conf('resumeFrom') eq 'PrepareInfo'}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${nameNode}/${sourcePath}/relation
+ ${nameNode}/${outputPath}/relation
+
+
+
+
+
+
+
+ ${nameNode}/${sourcePath}/publication
+ ${nameNode}/${outputPath}/publication
+
+
+
+
+
+
+
+ ${nameNode}/${sourcePath}/dataset
+ ${nameNode}/${outputPath}/dataset
+
+
+
+
+
+
+
+ ${nameNode}/${sourcePath}/otherresearchproduct
+ ${nameNode}/${outputPath}/otherresearchproduct
+
+
+
+
+
+
+
+ ${nameNode}/${sourcePath}/software
+ ${nameNode}/${outputPath}/software
+
+
+
+
+
+
+
+ ${nameNode}/${sourcePath}/organization
+ ${nameNode}/${outputPath}/organization
+
+
+
+
+
+
+
+ ${nameNode}/${sourcePath}/project
+ ${nameNode}/${outputPath}/project
+
+
+
+
+
+
+
+ ${nameNode}/${sourcePath}/datasource
+ ${nameNode}/${outputPath}/datasource
+
+
+
+
+
+
+
+
+
+
+ yarn
+ cluster
+ PrepareResultOrganizationAssociation
+ eu.dnetlib.dhp.resulttoorganizationfromsemrel.PrepareInfo
+ dhp-enrichment-${projectVersion}.jar
+
+ --executor-cores=${sparkExecutorCores}
+ --executor-memory=${sparkExecutorMemory}
+ --driver-memory=${sparkDriverMemory}
+ --conf spark.extraListeners=${spark2ExtraListeners}
+ --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners}
+ --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress}
+ --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir}
+
+ --graphPath${sourcePath}
+ --hive_metastore_uris${hive_metastore_uris}
+ --leavesPath${workingDir}/preparedInfo/leavesPath
+ --childParentPath${workingDir}/preparedInfo/childParentPath
+ --resultOrgPath${workingDir}/preparedInfo/resultOrgPath
+
+
+
+
+
+
+
+ yarn
+ cluster
+ resultToOrganizationFromSemRel
+ eu.dnetlib.dhp.resulttoorganizationfromsemrel.SparkResultToOrganizationFromSemRel
+ dhp-enrichment-${projectVersion}.jar
+
+ --executor-cores=${sparkExecutorCores}
+ --executor-memory=${sparkExecutorMemory}
+ --driver-memory=${sparkDriverMemory}
+ --conf spark.extraListeners=${spark2ExtraListeners}
+ --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners}
+ --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress}
+ --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir}
+ --conf spark.dynamicAllocation.enabled=true
+ --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors}
+
+ --graphPath${sourcePath}
+ --outputPath${outputPath}/relation
+ --leavesPath${workingDir}/preparedInfo/leavesPath
+ --leavesPath${workingDir}/preparedInfo/childParentPath
+ --resultOrgPath${workingDir}/preparedInfo/resultOrgPath
+ --hive_metastore_uris${hive_metastore_uris}
+ --workingDir${workingDir}/working
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStepTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStepTest.java
deleted file mode 100644
index cd55a0688e..0000000000
--- a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStepTest.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
-
-public class ExecStepTest {
-}
diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfoJobTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfoJobTest.java
index 1d3498d042..973c663b92 100644
--- a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfoJobTest.java
+++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfoJobTest.java
@@ -1,10 +1,13 @@
package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import eu.dnetlib.dhp.KeyValueSet;
-import eu.dnetlib.dhp.projecttoresult.SparkResultToProjectThroughSemRelJob;
-import eu.dnetlib.dhp.schema.oaf.Relation;
+import static eu.dnetlib.dhp.PropagationConstant.readPath;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+
import org.apache.commons.io.FileUtils;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
@@ -22,10 +25,11 @@ import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.List;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import eu.dnetlib.dhp.KeyValueSet;
+import eu.dnetlib.dhp.projecttoresult.SparkResultToProjectThroughSemRelJob;
+import eu.dnetlib.dhp.schema.oaf.Relation;
public class PrepareInfoJobTest {
@@ -65,259 +69,484 @@ public class PrepareInfoJobTest {
spark.stop();
}
-
@Test
- public void childParentTest1() {
+ public void childParentTest1() throws Exception {
- PrepareInfo.prepareChildrenParent(spark, getClass()
- .getResource(
- "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1")
- .getPath(), workingDir.toString() + "/childParentOrg/");
+ PrepareInfo
+ .main(
+ new String[] {
+ "-isSparkSessionManaged", Boolean.FALSE.toString(),
+ "-graphPath", getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1")
+ .getPath(),
+ "-hive_metastore_uris", "",
+ "-leavesPath", workingDir.toString() + "/currentIteration/",
+ "-resultOrgPath", workingDir.toString() + "/resultOrganization/",
+ "-childParentPath", workingDir.toString() + "/childParentOrg/",
+
+ });
final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
JavaRDD tmp = sc
- .textFile( workingDir.toString() + "/childParentOrg/")
- .map(item -> OBJECT_MAPPER.readValue(item, KeyValueSet.class));
+ .textFile(workingDir.toString() + "/childParentOrg/")
+ .map(item -> OBJECT_MAPPER.readValue(item, KeyValueSet.class));
Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(KeyValueSet.class));
Assertions.assertEquals(6, verificationDs.count());
- Assertions.assertEquals(1, verificationDs.filter("key = '20|dedup_wf_001::2899e571609779168222fdeb59cb916d'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertEquals("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f",
- verificationDs.filter("key = '20|dedup_wf_001::2899e571609779168222fdeb59cb916d'")
- .collectAsList().get(0).getValueSet().get(0));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|dedup_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertEquals(
+ "20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f",
+ verificationDs
+ .filter("key = '20|dedup_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .get(0));
- Assertions.assertEquals(2, verificationDs.filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
- .collectAsList().get(0).getValueSet().contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
- Assertions.assertTrue(verificationDs.filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
- .collectAsList().get(0).getValueSet().contains("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
+ Assertions
+ .assertEquals(
+ 2, verificationDs
+ .filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
- Assertions.assertEquals(1, verificationDs.filter("key = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
- .collectAsList().get(0).getValueSet().contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
- Assertions.assertEquals(1, verificationDs.filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
- .collectAsList().get(0).getValueSet().contains("20|doajarticles::03748bcb5d754c951efec9700e18a56d"));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::03748bcb5d754c951efec9700e18a56d"));
- Assertions.assertEquals(1, verificationDs.filter("key = '20|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
- .collectAsList().get(0).getValueSet().contains("20|openaire____::ec653e804967133b9436fdd30d3ff51d"));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|openaire____::ec653e804967133b9436fdd30d3ff51d"));
- Assertions.assertEquals(1, verificationDs.filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1'")
- .collectAsList().get(0).getValueSet().contains("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
+
+ verificationDs
+ .foreach((ForeachFunction) v -> System.out.println(OBJECT_MAPPER.writeValueAsString(v)));
}
-
-
@Test
- public void childParentTest2() {
+ public void childParentTest2() throws Exception {
- PrepareInfo.prepareChildrenParent(spark, getClass()
- .getResource(
- "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest2")
- .getPath(), workingDir.toString() + "/childParentOrg/");
+ PrepareInfo
+ .main(
+ new String[] {
+ "-isSparkSessionManaged", Boolean.FALSE.toString(),
+ "-graphPath", getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest2")
+ .getPath(),
+ "-hive_metastore_uris", "",
+ "-leavesPath", workingDir.toString() + "/currentIteration/",
+ "-resultOrgPath", workingDir.toString() + "/resultOrganization/",
+ "-childParentPath", workingDir.toString() + "/childParentOrg/",
+ });
final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
JavaRDD tmp = sc
- .textFile( workingDir.toString() + "/childParentOrg/")
- .map(item -> OBJECT_MAPPER.readValue(item, KeyValueSet.class));
+ .textFile(workingDir.toString() + "/childParentOrg/")
+ .map(item -> OBJECT_MAPPER.readValue(item, KeyValueSet.class));
Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(KeyValueSet.class));
Assertions.assertEquals(5, verificationDs.count());
- Assertions.assertEquals(0, verificationDs.filter("key = '20|dedup_wf_001::2899e571609779168222fdeb59cb916d'").count());
+ Assertions
+ .assertEquals(
+ 0, verificationDs.filter("key = '20|dedup_wf_001::2899e571609779168222fdeb59cb916d'").count());
- Assertions.assertEquals(1, verificationDs.filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertEquals("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f",
- verificationDs.filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
- .collectAsList().get(0).getValueSet().get(0));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertEquals(
+ "20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f",
+ verificationDs
+ .filter("key = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .get(0));
- Assertions.assertEquals(1, verificationDs.filter("key = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
- .collectAsList().get(0).getValueSet().contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
- Assertions.assertEquals(1, verificationDs.filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
- .collectAsList().get(0).getValueSet().contains("20|doajarticles::03748bcb5d754c951efec9700e18a56d"));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::03748bcb5d754c951efec9700e18a56d"));
- Assertions.assertEquals(1, verificationDs.filter("key = '20|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
- .collectAsList().get(0).getValueSet().contains("20|openaire____::ec653e804967133b9436fdd30d3ff51d"));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|openaire____::ec653e804967133b9436fdd30d3ff51d"));
- Assertions.assertEquals(1, verificationDs.filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
- .collectAsList().get(0).getValueSet().size());
- Assertions.assertTrue(verificationDs.filter("key = '20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1'")
- .collectAsList().get(0).getValueSet().contains("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
}
-
@Test
- public void resultOrganizationTest1(){
+ public void resultOrganizationTest1() throws Exception {
- }
-
- /**
- * All the possible updates will produce a new relation. No relations are already linked in the grpha
- *
- * @throws Exception
- */
- @Test
- void UpdateTenTest() throws Exception {
- final String potentialUpdatePath = getClass()
- .getResource(
- "/eu/dnetlib/dhp/projecttoresult/preparedInfo/tenupdates/potentialUpdates")
- .getPath();
- final String alreadyLinkedPath = getClass()
- .getResource(
- "/eu/dnetlib/dhp/projecttoresult/preparedInfo/alreadyLinked")
- .getPath();
- SparkResultToProjectThroughSemRelJob
+ PrepareInfo
.main(
new String[] {
- "-isTest", Boolean.TRUE.toString(),
"-isSparkSessionManaged", Boolean.FALSE.toString(),
+ "-graphPath", getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/resultorganizationtest")
+ .getPath(),
"-hive_metastore_uris", "",
- "-saveGraph", "true",
- "-outputPath", workingDir.toString() + "/relation",
- "-potentialUpdatePath", potentialUpdatePath,
- "-alreadyLinkedPath", alreadyLinkedPath,
+ "-leavesPath", workingDir.toString() + "/currentIteration/",
+ "-resultOrgPath", workingDir.toString() + "/resultOrganization/",
+ "-childParentPath", workingDir.toString() + "/childParentOrg/",
+
});
+ final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
+
+ JavaRDD tmp = sc
+ .textFile(workingDir.toString() + "/resultOrganization/")
+ .map(item -> OBJECT_MAPPER.readValue(item, KeyValueSet.class));
+
+ Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(KeyValueSet.class));
+
+ Assertions.assertEquals(5, verificationDs.count());
+
+ Assertions
+ .assertEquals(
+ 2, verificationDs
+ .filter("key = '50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|pippo_wf_001::2899e571609779168222fdeb59cb916d"));
+
+ Assertions
+ .assertEquals(
+ 2, verificationDs
+ .filter("key = '50|dedup_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '50|dedup_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"));
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '50|dedup_wf_001::2899e571609779168222fdeb59cb916d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|pippo_wf_001::2899e571609779168222fdeb59cb916d"));
+
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '50|doajarticles::03748bcb5d754c951efec9700e18a56d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '50|doajarticles::03748bcb5d754c951efec9700e18a56d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
+
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '50|openaire____::ec653e804967133b9436fdd30d3ff51d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '50|openaire____::ec653e804967133b9436fdd30d3ff51d'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
+
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("key = '50|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ verificationDs
+ .filter("key = '50|doajarticles::1cae0b82b56ccd97c2db1f698def7074'")
+ .collectAsList()
+ .get(0)
+ .getValueSet()
+ .contains("20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"));
+
+ verificationDs
+ .foreach((ForeachFunction) v -> System.out.println(OBJECT_MAPPER.writeValueAsString(v)));
+
+ }
+
+ @Test
+ public void foundLeavesTest1() throws Exception {
+// PrepareInfo.prepareInfo(spark, getClass()
+// .getResource(
+// "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/resultorganizationtest")
+// .getPath(), workingDir.toString() + "/childParentOrg/", workingDir.toString() + "/currentIteration/",workingDir.toString() + "/resultOrganization/");
+
+ PrepareInfo
+ .main(
+ new String[] {
+ "-isSparkSessionManaged", Boolean.FALSE.toString(),
+ "-graphPath", getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/resultorganizationtest")
+ .getPath(),
+ "-hive_metastore_uris", "",
+ "-leavesPath", workingDir.toString() + "/currentIteration/",
+ "-resultOrgPath", workingDir.toString() + "/resultOrganization/",
+ "-childParentPath", workingDir.toString() + "/childParentOrg/",
+
+ });
+ final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
+
+ JavaRDD tmp = sc
+ .textFile(workingDir.toString() + "/currentIteration/")
+ .map(item -> OBJECT_MAPPER.readValue(item, String.class));
+
+ Assertions.assertEquals(0, tmp.count());
+
+ }
+
+ @Test
+ public void foundLeavesTest2() throws Exception {
+ PrepareInfo
+ .main(
+ new String[] {
+ "-isSparkSessionManaged", Boolean.FALSE.toString(),
+ "-graphPath", getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1")
+ .getPath(),
+ "-hive_metastore_uris", "",
+ "-leavesPath", workingDir.toString() + "/currentIteration/",
+ "-resultOrgPath", workingDir.toString() + "/resultOrganization/",
+ "-childParentPath", workingDir.toString() + "/childParentOrg/",
+
+ });
+// PrepareInfo.prepareInfo(spark, getClass()
+// .getResource(
+// "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1")
+// .getPath(), workingDir.toString() + "/childParentOrg/", workingDir.toString() + "/currentIteration/",workingDir.toString() + "/resultOrganization/");
final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
- JavaRDD tmp = sc
- .textFile(workingDir.toString() + "/relation")
- .map(item -> OBJECT_MAPPER.readValue(item, Relation.class));
+ JavaRDD tmp = sc
+ .textFile(workingDir.toString() + "/currentIteration/")
+ .map(item -> OBJECT_MAPPER.readValue(item, Leaves.class));
- // got 20 new relations because "produces" and "isProducedBy" are added
- Assertions.assertEquals(10, tmp.count());
+ Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(Leaves.class));
- Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(Relation.class));
-
- Assertions.assertEquals(5, verificationDs.filter("relClass = 'produces'").count());
- Assertions.assertEquals(5, verificationDs.filter("relClass = 'isProducedBy'").count());
+ Assertions.assertEquals(3, verificationDs.count());
Assertions
.assertEquals(
- 5,
- verificationDs
- .filter(
- (FilterFunction) r -> r.getSource().startsWith("50")
- && r.getTarget().startsWith("40")
- && r.getRelClass().equals("isProducedBy"))
+ 1, verificationDs
+ .filter("value = '20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0'")
.count());
- Assertions
- .assertEquals(
- 5,
- verificationDs
- .filter(
- (FilterFunction) r -> r.getSource().startsWith("40")
- && r.getTarget().startsWith("50")
- && r.getRelClass().equals("produces"))
- .count());
-
- verificationDs.createOrReplaceTempView("temporary");
Assertions
.assertEquals(
- 10,
- spark
- .sql(
- "Select * from temporary where datainfo.inferenceprovenance = 'propagation'")
+ 1, verificationDs
+ .filter("value = '20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1'")
.count());
+
+ Assertions
+ .assertEquals(
+ 1, verificationDs
+ .filter("value = '20|pippo_wf_001::2899e571609779168222fdeb59cb916d'")
+ .count());
+
+ verificationDs.foreach((ForeachFunction) l -> System.out.println(OBJECT_MAPPER.writeValueAsString(l)));
+
}
- /**
- * One of the relations in the possible updates is already linked to the project in the graph. All the others are
- * not. There will be 9 new associations leading to 18 new relations
- *
- * @throws Exception
- */
- @Test
- void UpdateMixTest() throws Exception {
- final String potentialUpdatepath = getClass()
- .getResource(
- "/eu/dnetlib/dhp/projecttoresult/preparedInfo/updatesmixed/potentialUpdates")
- .getPath();
- final String alreadyLinkedPath = getClass()
- .getResource(
- "/eu/dnetlib/dhp/projecttoresult/preparedInfo/alreadyLinked")
- .getPath();
- SparkResultToProjectThroughSemRelJob
- .main(
- new String[] {
- "-isTest", Boolean.TRUE.toString(),
- "-isSparkSessionManaged", Boolean.FALSE.toString(),
- "-hive_metastore_uris", "",
- "-saveGraph", "true",
- "-outputPath", workingDir.toString() + "/relation",
- "-potentialUpdatePath", potentialUpdatepath,
- "-alreadyLinkedPath", alreadyLinkedPath,
- });
-
- final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
-
- JavaRDD tmp = sc
- .textFile(workingDir.toString() + "/relation")
- .map(item -> OBJECT_MAPPER.readValue(item, Relation.class));
-
- // JavaRDD tmp = sc.textFile("/tmp/relation")
- // .map(item -> OBJECT_MAPPER.readValue(item, Relation.class));
-
- // got 20 new relations because "produces" and "isProducedBy" are added
- Assertions.assertEquals(8, tmp.count());
-
- Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(Relation.class));
-
- Assertions.assertEquals(4, verificationDs.filter("relClass = 'produces'").count());
- Assertions.assertEquals(4, verificationDs.filter("relClass = 'isProducedBy'").count());
-
- Assertions
- .assertEquals(
- 4,
- verificationDs
- .filter(
- (FilterFunction) r -> r.getSource().startsWith("50")
- && r.getTarget().startsWith("40")
- && r.getRelClass().equals("isProducedBy"))
- .count());
- Assertions
- .assertEquals(
- 4,
- verificationDs
- .filter(
- (FilterFunction) r -> r.getSource().startsWith("40")
- && r.getTarget().startsWith("50")
- && r.getRelClass().equals("produces"))
- .count());
-
- verificationDs.createOrReplaceTempView("temporary");
-
- Assertions
- .assertEquals(
- 8,
- spark
- .sql(
- "Select * from temporary where datainfo.inferenceprovenance = 'propagation'")
- .count());
- }
}
diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkJobTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkJobTest.java
new file mode 100644
index 0000000000..5a4b19a24f
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkJobTest.java
@@ -0,0 +1,323 @@
+
+package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
+
+import static eu.dnetlib.dhp.PropagationConstant.isSparkSessionManaged;
+import static eu.dnetlib.dhp.PropagationConstant.readPath;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.spark.SparkConf;
+import org.apache.spark.api.java.JavaRDD;
+import org.apache.spark.api.java.JavaSparkContext;
+import org.apache.spark.api.java.function.ForeachFunction;
+import org.apache.spark.sql.SparkSession;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import eu.dnetlib.dhp.KeyValueSet;
+import eu.dnetlib.dhp.PropagationConstant;
+import eu.dnetlib.dhp.schema.common.ModelConstants;
+import eu.dnetlib.dhp.schema.oaf.Relation;
+
+public class SparkJobTest {
+
+ private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+
+ private static SparkSession spark;
+
+ private static Path workingDir;
+
+ private static final Logger log = LoggerFactory.getLogger(SparkJobTest.class);
+
+ @BeforeAll
+ public static void beforeAll() throws IOException {
+ workingDir = Files.createTempDirectory(StepActionsTest.class.getSimpleName());
+ log.info("using work dir {}", workingDir);
+
+ SparkConf conf = new SparkConf();
+ conf.setAppName(PrepareInfoJobTest.class.getSimpleName());
+
+ conf.setMaster("local[*]");
+ conf.set("spark.driver.host", "localhost");
+ conf.set("hive.metastore.local", "true");
+ conf.set("spark.ui.enabled", "false");
+ conf.set("spark.sql.warehouse.dir", workingDir.toString());
+ conf.set("hive.metastore.warehouse.dir", workingDir.resolve("warehouse").toString());
+
+ spark = SparkSession
+ .builder()
+ .appName(PrepareInfoJobTest.class.getSimpleName())
+ .config(conf)
+ .getOrCreate();
+ }
+
+ @AfterAll
+ public static void afterAll() throws IOException {
+ FileUtils.deleteDirectory(workingDir.toFile());
+ spark.stop();
+ }
+
+ @Test
+ public void completeExecution() throws Exception {
+
+ final String graphPath = getClass()
+ .getResource("/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep")
+ .getPath();
+ final String leavesPath = getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/currentIteration/")
+ .getPath();
+ final String childParentPath = getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/childParentOrg/")
+ .getPath();
+
+ final String resultOrgPath = getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/resultOrganization/")
+ .getPath();
+
+ readPath(spark, leavesPath, Leaves.class)
+ .write()
+ .option("compression", "gzip")
+ .json(workingDir.toString() + "/leavesInput");
+
+ readPath(spark, resultOrgPath, KeyValueSet.class)
+ .write()
+ .option("compression", "gzip")
+ .json(workingDir.toString() + "/orgsInput");
+
+ SparkResultToOrganizationFromSemRel
+
+ .main(
+ new String[] {
+ "-isSparkSessionManaged", Boolean.FALSE.toString(),
+ "-graphPath", graphPath,
+ "-hive_metastore_uris", "",
+ "-outputPath", workingDir.toString() + "/relation",
+ "-leavesPath", workingDir.toString() + "/leavesInput",
+ "-resultOrgPath", workingDir.toString() + "/orgsInput",
+ "-childParentPath", childParentPath,
+ "-workingDir", workingDir.toString()
+ });
+
+ final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
+
+ JavaRDD tmp = sc
+ .textFile(workingDir.toString() + "/relation")
+ .map(item -> OBJECT_MAPPER.readValue(item, Relation.class));
+
+ Assertions.assertEquals(18, tmp.count());
+ tmp.foreach(r -> Assertions.assertEquals(ModelConstants.AFFILIATION, r.getSubRelType()));
+ tmp.foreach(r -> Assertions.assertEquals(ModelConstants.RESULT_ORGANIZATION, r.getRelType()));
+ tmp
+ .foreach(
+ r -> Assertions
+ .assertEquals(
+ PropagationConstant.PROPAGATION_DATA_INFO_TYPE, r.getDataInfo().getInferenceprovenance()));
+ tmp
+ .foreach(
+ r -> Assertions
+ .assertEquals(
+ PropagationConstant.PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_ID,
+ r.getDataInfo().getProvenanceaction().getClassid()));
+ tmp
+ .foreach(
+ r -> Assertions
+ .assertEquals(
+ PropagationConstant.PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_NAME,
+ r.getDataInfo().getProvenanceaction().getClassname()));
+ tmp
+ .foreach(
+ r -> Assertions
+ .assertEquals(
+ "0.85",
+ r.getDataInfo().getTrust()));
+
+ Assertions.assertEquals(9, tmp.filter(r -> r.getSource().substring(0, 3).equals("50|")).count());
+ tmp
+ .filter(r -> r.getSource().substring(0, 3).equals("50|"))
+ .foreach(r -> Assertions.assertEquals(ModelConstants.HAS_AUTHOR_INSTITUTION, r.getRelClass()));
+ Assertions
+ .assertEquals(
+ 2, tmp.filter(r -> r.getSource().equals("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074")).count());
+ Assertions
+ .assertEquals(
+ 3, tmp.filter(r -> r.getSource().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d")).count());
+ Assertions
+ .assertEquals(
+ 2, tmp.filter(r -> r.getSource().equals("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f")).count());
+ Assertions
+ .assertEquals(
+ 1, tmp.filter(r -> r.getSource().equals("50|openaire____::ec653e804967133b9436fdd30d3ff51d")).count());
+ Assertions
+ .assertEquals(
+ 1, tmp.filter(r -> r.getSource().equals("50|doajarticles::03748bcb5d754c951efec9700e18a56d")).count());
+
+ Assertions.assertEquals(9, tmp.filter(r -> r.getSource().substring(0, 3).equals("20|")).count());
+ tmp
+ .filter(r -> r.getSource().substring(0, 3).equals("20|"))
+ .foreach(r -> Assertions.assertEquals(ModelConstants.IS_AUTHOR_INSTITUTION_OF, r.getRelClass()));
+ Assertions
+ .assertEquals(
+ 1, tmp.filter(r -> r.getSource().equals("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074")).count());
+ Assertions
+ .assertEquals(
+ 1, tmp.filter(r -> r.getSource().equals("20|dedup_wf_001::2899e571609779168222fdeb59cb916d")).count());
+ Assertions
+ .assertEquals(
+ 2, tmp.filter(r -> r.getSource().equals("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f")).count());
+ Assertions
+ .assertEquals(
+ 2, tmp.filter(r -> r.getSource().equals("20|openaire____::ec653e804967133b9436fdd30d3ff51d")).count());
+ Assertions
+ .assertEquals(
+ 3, tmp.filter(r -> r.getSource().equals("20|doajarticles::03748bcb5d754c951efec9700e18a56d")).count());
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|openaire____::ec653e804967133b9436fdd30d3ff51d"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|doajarticles::03748bcb5d754c951efec9700e18a56d"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|doajarticles::03748bcb5d754c951efec9700e18a56d"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|openaire____::ec653e804967133b9436fdd30d3ff51d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|openaire____::ec653e804967133b9436fdd30d3ff51d"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("50|doajarticles::03748bcb5d754c951efec9700e18a56d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("20|doajarticles::03748bcb5d754c951efec9700e18a56d"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|openaire____::ec653e804967133b9436fdd30d3ff51d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|openaire____::ec653e804967133b9436fdd30d3ff51d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|openaire____::ec653e804967133b9436fdd30d3ff51d"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|doajarticles::03748bcb5d754c951efec9700e18a56d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|doajarticles::03748bcb5d754c951efec9700e18a56d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|doajarticles::03748bcb5d754c951efec9700e18a56d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|doajarticles::03748bcb5d754c951efec9700e18a56d"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(r -> r.getSource().equals("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"))
+ .map(r -> r.getTarget())
+ .collect()
+ .contains("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
+ }
+
+}
diff --git a/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/StepActionsTest.java b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/StepActionsTest.java
new file mode 100644
index 0000000000..5c715f3b92
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/StepActionsTest.java
@@ -0,0 +1,411 @@
+
+package eu.dnetlib.dhp.resulttoorganizationfromsemrel;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.spark.SparkConf;
+import org.apache.spark.api.java.JavaRDD;
+import org.apache.spark.api.java.JavaSparkContext;
+import org.apache.spark.api.java.function.FilterFunction;
+import org.apache.spark.api.java.function.ForeachFunction;
+import org.apache.spark.sql.Dataset;
+import org.apache.spark.sql.Encoders;
+import org.apache.spark.sql.SparkSession;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import eu.dnetlib.dhp.KeyValueSet;
+import eu.dnetlib.dhp.PropagationConstant;
+import eu.dnetlib.dhp.schema.common.ModelConstants;
+import eu.dnetlib.dhp.schema.oaf.Relation;
+
+public class StepActionsTest {
+
+ private static final Logger log = LoggerFactory.getLogger(StepActionsTest.class);
+
+ private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+
+ private static SparkSession spark;
+
+ private static Path workingDir;
+
+ @BeforeAll
+ public static void beforeAll() throws IOException {
+ workingDir = Files.createTempDirectory(StepActionsTest.class.getSimpleName());
+ log.info("using work dir {}", workingDir);
+
+ SparkConf conf = new SparkConf();
+ conf.setAppName(PrepareInfoJobTest.class.getSimpleName());
+
+ conf.setMaster("local[*]");
+ conf.set("spark.driver.host", "localhost");
+ conf.set("hive.metastore.local", "true");
+ conf.set("spark.ui.enabled", "false");
+ conf.set("spark.sql.warehouse.dir", workingDir.toString());
+ conf.set("hive.metastore.warehouse.dir", workingDir.resolve("warehouse").toString());
+
+ spark = SparkSession
+ .builder()
+ .appName(PrepareInfoJobTest.class.getSimpleName())
+ .config(conf)
+ .getOrCreate();
+ }
+
+ @AfterAll
+ public static void afterAll() throws IOException {
+ FileUtils.deleteDirectory(workingDir.toFile());
+ spark.stop();
+ }
+
+ @Test
+ public void execStepTest() {
+
+ StepActions
+ .execStep(
+ spark, getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/")
+ .getPath(),
+ workingDir.toString() + "/newRelationPath",
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/currentIteration/")
+ .getPath(),
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/childParentOrg/")
+ .getPath(),
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/resultOrganization/")
+ .getPath());
+
+ final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
+
+ JavaRDD tmp = sc
+ .textFile(workingDir.toString() + "/newRelationPath")
+ .map(item -> OBJECT_MAPPER.readValue(item, Relation.class));
+
+ Assertions.assertEquals(4, tmp.count());
+
+ Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(Relation.class));
+
+ verificationDs
+ .foreach(
+ (ForeachFunction) r -> Assertions
+ .assertEquals("propagation", r.getDataInfo().getInferenceprovenance()));
+
+ verificationDs
+ .foreach((ForeachFunction) r -> Assertions.assertEquals("0.85", r.getDataInfo().getTrust()));
+
+ verificationDs
+ .foreach((ForeachFunction) r -> Assertions.assertEquals("50|", r.getSource().substring(0, 3)));
+
+ verificationDs
+ .foreach((ForeachFunction) r -> Assertions.assertEquals("20|", r.getTarget().substring(0, 3)));
+
+ verificationDs
+ .foreach(
+ (ForeachFunction) r -> Assertions
+ .assertEquals(ModelConstants.HAS_AUTHOR_INSTITUTION, r.getRelClass()));
+
+ verificationDs
+ .foreach(
+ (ForeachFunction) r -> Assertions
+ .assertEquals(ModelConstants.RESULT_ORGANIZATION, r.getRelType()));
+
+ verificationDs
+ .foreach(
+ (ForeachFunction) r -> Assertions
+ .assertEquals(ModelConstants.AFFILIATION, r.getSubRelType()));
+
+ verificationDs
+ .foreach(
+ (ForeachFunction) r -> Assertions
+ .assertEquals(
+ PropagationConstant.PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_ID,
+ r.getDataInfo().getProvenanceaction().getClassid()));
+
+ verificationDs
+ .foreach(
+ (ForeachFunction) r -> Assertions
+ .assertEquals(
+ PropagationConstant.PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_NAME,
+ r.getDataInfo().getProvenanceaction().getClassname()));
+
+ verificationDs
+ .filter(
+ (FilterFunction) r -> r
+ .getSource()
+ .equals("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074"))
+ .foreach(
+ (ForeachFunction) r -> Assertions
+ .assertEquals("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074", r.getTarget()));
+
+ verificationDs
+ .filter(
+ (FilterFunction) r -> r
+ .getSource()
+ .equals("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .foreach(
+ (ForeachFunction) r -> Assertions
+ .assertEquals("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f", r.getTarget()));
+
+ Assertions
+ .assertEquals(
+ 2,
+ verificationDs
+ .filter(
+ (FilterFunction) r -> r
+ .getSource()
+ .equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .count());
+
+ Assertions
+ .assertEquals(
+ 1,
+ verificationDs
+ .filter(
+ (FilterFunction) r -> r
+ .getSource()
+ .equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d") &&
+ r.getTarget().equals("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .count());
+
+ Assertions
+ .assertEquals(
+ 1,
+ verificationDs
+ .filter(
+ (FilterFunction) r -> r
+ .getSource()
+ .equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d") &&
+ r.getTarget().equals("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .count());
+
+ tmp.foreach(r -> System.out.println(OBJECT_MAPPER.writeValueAsString(r)));
+ }
+
+ @Test
+ public void prepareForNextStepLeavesTest() {
+
+ StepActions
+ .prepareForNextStep(
+ spark,
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relsforiteration1/")
+ .getPath(),
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/resultOrganization/")
+ .getPath(),
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/currentIteration/")
+ .getPath(),
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/childParentOrg/")
+ .getPath(),
+ workingDir.toString() + "/tempLeaves", workingDir.toString() + "/tempOrgs");
+
+ final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
+
+ JavaRDD tmp = sc
+ .textFile(workingDir.toString() + "/tempLeaves")
+ .map(item -> OBJECT_MAPPER.readValue(item, Leaves.class));
+
+ Assertions.assertEquals(3, tmp.count());
+
+ Assertions
+ .assertEquals(
+ 1, tmp.filter(l -> l.getValue().equals("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f")).count());
+
+ Assertions
+ .assertEquals(
+ 1, tmp.filter(l -> l.getValue().equals("20|dedup_wf_001::2899e571609779168222fdeb59cb916d")).count());
+
+ Assertions
+ .assertEquals(
+ 1, tmp.filter(l -> l.getValue().equals("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074")).count());
+
+ }
+
+ @Test
+ public void prepareFonNextStepOrgTest() {
+ StepActions
+ .prepareForNextStep(
+ spark,
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relsforiteration1/")
+ .getPath(),
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/resultOrganization/")
+ .getPath(),
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/currentIteration/")
+ .getPath(),
+ getClass()
+ .getResource(
+ "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/childParentOrg/")
+ .getPath(),
+ workingDir.toString() + "/tempLeaves", workingDir.toString() + "/tempOrgs");
+
+ final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext());
+
+ JavaRDD tmp = sc
+ .textFile(workingDir.toString() + "/tempOrgs")
+ .map(item -> OBJECT_MAPPER.readValue(item, KeyValueSet.class));
+
+ Assertions.assertEquals(5, tmp.count());
+
+ Assertions
+ .assertEquals(
+ 1, tmp
+ .filter(kv -> kv.getKey().equals("50|openaire____::ec653e804967133b9436fdd30d3ff51d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertEquals(
+ "20|doajarticles::1cae0b82b56ccd97c2db1f698def7074",
+ tmp
+ .filter(kv -> kv.getKey().equals("50|openaire____::ec653e804967133b9436fdd30d3ff51d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .get(0));
+
+ Assertions
+ .assertEquals(
+ 1, tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::03748bcb5d754c951efec9700e18a56d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertEquals(
+ "20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f",
+ tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::03748bcb5d754c951efec9700e18a56d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .get(0));
+
+ Assertions
+ .assertEquals(
+ 4, tmp
+ .filter(kv -> kv.getKey().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|pippo_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|dedup_wf_001::2899e571609779168222fdeb59cb916d"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
+
+ Assertions
+ .assertEquals(
+ 2, tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::1cae0b82b56ccd97c2db1f698def7074"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"));
+
+ Assertions
+ .assertEquals(
+ 3, tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .size());
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|dedup_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|pippo_wf_001::2899e571609779168222fdeb59cb916d"));
+ Assertions
+ .assertTrue(
+ tmp
+ .filter(kv -> kv.getKey().equals("50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"))
+ .collect()
+ .get(0)
+ .getValueSet()
+ .contains("20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"));
+
+ }
+}
diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relsforiteration1/relation b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relsforiteration1/relation
new file mode 100644
index 0000000000..32b816ef79
--- /dev/null
+++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relsforiteration1/relation
@@ -0,0 +1,4 @@
+{"collectedfrom":null,"dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"0.85","inferenceprovenance":"propagation","provenanceaction":{"classid":"result:organization:semrel","classname":"Propagation of affiliation to result through sematic relations","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":null,"relType":"resultOrganization","subRelType":"affiliation","relClass":"hasAuthorInstitution","source":"50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","target":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","validated":false,"validationDate":null,"properties":[]}
+{"collectedfrom":null,"dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"0.85","inferenceprovenance":"propagation","provenanceaction":{"classid":"result:organization:semrel","classname":"Propagation of affiliation to result through sematic relations","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":null,"relType":"resultOrganization","subRelType":"affiliation","relClass":"hasAuthorInstitution","source":"50|dedup_wf_001::2899e571609779168222fdeb59cb916d","target":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","validated":false,"validationDate":null,"properties":[]}
+{"collectedfrom":null,"dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"0.85","inferenceprovenance":"propagation","provenanceaction":{"classid":"result:organization:semrel","classname":"Propagation of affiliation to result through sematic relations","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":null,"relType":"resultOrganization","subRelType":"affiliation","relClass":"hasAuthorInstitution","source":"50|dedup_wf_001::2899e571609779168222fdeb59cb916d","target":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d","validated":false,"validationDate":null,"properties":[]}
+{"collectedfrom":null,"dataInfo":{"invisible":false,"inferred":true,"deletedbyinference":false,"trust":"0.85","inferenceprovenance":"propagation","provenanceaction":{"classid":"result:organization:semrel","classname":"Propagation of affiliation to result through sematic relations","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"}},"lastupdatetimestamp":null,"relType":"resultOrganization","subRelType":"affiliation","relClass":"hasAuthorInstitution","source":"50|doajarticles::1cae0b82b56ccd97c2db1f698def7074","target":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074","validated":false,"validationDate":null,"properties":[]}
\ No newline at end of file