From 652114c6419d8ee877b2ce593058ec0b83afd7d3 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 20 Oct 2021 11:44:23 +0200 Subject: [PATCH 01/14] [affiliationPropagation] first try. preparetion --- .../main/java/eu/dnetlib/dhp/KeyValueSet.java | 26 ++ .../PrepareResultInstRepoAssociation.java | 5 +- .../ResultOrganizationSet.java | 26 -- ...arkResultToOrganizationFromIstRepoJob.java | 25 +- .../PrepareInfo.java | 118 +++++++ .../SparkResultToOrganizationFromSemRel.java | 29 ++ .../PrepareInfoJobTest.java | 323 ++++++++++++++++++ .../childparenttest1/relation | 7 + .../childparenttest2/relation | 7 + .../resultorganizationtest/relation | 7 + 10 files changed, 533 insertions(+), 40 deletions(-) create mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/KeyValueSet.java delete mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/ResultOrganizationSet.java create mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfo.java create mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java create mode 100644 dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfoJobTest.java create mode 100644 dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1/relation create mode 100644 dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest2/relation create mode 100644 dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/resultorganizationtest/relation diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/KeyValueSet.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/KeyValueSet.java new file mode 100644 index 0000000000..57ab716b33 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/KeyValueSet.java @@ -0,0 +1,26 @@ + +package eu.dnetlib.dhp; + +import java.io.Serializable; +import java.util.ArrayList; + +public class KeyValueSet implements Serializable { + private String key; + private ArrayList valueSet; + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public ArrayList getValueSet() { + return valueSet; + } + + public void setValueSet(ArrayList valueSet) { + this.valueSet = valueSet; + } +} 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 0ef5ca1810..dbd3bccfb5 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,6 +10,7 @@ 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; @@ -124,7 +125,7 @@ public class PrepareResultInstRepoAssociation { private static void prepareAlreadyLinkedAssociation( SparkSession spark, String alreadyLinkedPath) { - String query = "Select source resultId, collect_set(target) organizationSet " + String query = "Select source key, collect_set(target) valueSet " + "from relation " + "where datainfo.deletedbyinference = false " + "and lower(relClass) = '" @@ -134,7 +135,7 @@ public class PrepareResultInstRepoAssociation { spark .sql(query) - .as(Encoders.bean(ResultOrganizationSet.class)) + .as(Encoders.bean(KeyValueSet.class)) // TODO retry to stick with datasets .toJavaRDD() .map(r -> OBJECT_MAPPER.writeValueAsString(r)) diff --git a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/ResultOrganizationSet.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/ResultOrganizationSet.java deleted file mode 100644 index 3bce14cdbf..0000000000 --- a/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfrominstrepo/ResultOrganizationSet.java +++ /dev/null @@ -1,26 +0,0 @@ - -package eu.dnetlib.dhp.resulttoorganizationfrominstrepo; - -import java.io.Serializable; -import java.util.ArrayList; - -public class ResultOrganizationSet implements Serializable { - private String resultId; - private ArrayList organizationSet; - - public String getResultId() { - return resultId; - } - - public void setResultId(String resultId) { - this.resultId = resultId; - } - - public ArrayList getOrganizationSet() { - return organizationSet; - } - - public void setOrganizationSet(ArrayList organizationSet) { - this.organizationSet = organizationSet; - } -} 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 63824f1a81..be0a4804af 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,6 +8,7 @@ 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; @@ -28,7 +29,7 @@ public class SparkResultToOrganizationFromIstRepoJob { private static final Logger log = LoggerFactory.getLogger(SparkResultToOrganizationFromIstRepoJob.class); - private static final String RESULT_ORGANIZATIONSET_QUERY = "SELECT id resultId, collect_set(organizationId) organizationSet " + private static final String RESULT_ORGANIZATIONSET_QUERY = "SELECT id key, collect_set(organizationId) valueSet " + "FROM ( SELECT id, organizationId " + "FROM rels " + "JOIN cfhb " @@ -107,14 +108,14 @@ public class SparkResultToOrganizationFromIstRepoJob { Dataset dsOrg = readPath(spark, datasourceorganization, DatasourceOrganization.class); - Dataset potentialUpdates = getPotentialRelations(spark, inputPath, clazz, dsOrg); + Dataset potentialUpdates = getPotentialRelations(spark, inputPath, clazz, dsOrg); - Dataset alreadyLinked = readPath(spark, alreadyLinkedPath, ResultOrganizationSet.class); + Dataset alreadyLinked = readPath(spark, alreadyLinkedPath, KeyValueSet.class); potentialUpdates .joinWith( alreadyLinked, - potentialUpdates.col("resultId").equalTo(alreadyLinked.col("resultId")), + potentialUpdates.col("key").equalTo(alreadyLinked.col("key")), "left_outer") .flatMap(createRelationFn(), Encoders.bean(Relation.class)) .write() @@ -123,18 +124,18 @@ public class SparkResultToOrganizationFromIstRepoJob { .json(outputPath); } - private static FlatMapFunction, Relation> createRelationFn() { + private static FlatMapFunction, Relation> createRelationFn() { return value -> { List newRelations = new ArrayList<>(); - ResultOrganizationSet potentialUpdate = value._1(); - Optional alreadyLinked = Optional.ofNullable(value._2()); - List organizations = potentialUpdate.getOrganizationSet(); + KeyValueSet potentialUpdate = value._1(); + Optional alreadyLinked = Optional.ofNullable(value._2()); + List organizations = potentialUpdate.getValueSet(); alreadyLinked .ifPresent( resOrg -> resOrg - .getOrganizationSet() + .getValueSet() .forEach(organizations::remove)); - String resultId = potentialUpdate.getResultId(); + String resultId = potentialUpdate.getKey(); organizations .forEach( orgId -> { @@ -165,7 +166,7 @@ public class SparkResultToOrganizationFromIstRepoJob { }; } - private static Dataset getPotentialRelations( + private static Dataset getPotentialRelations( SparkSession spark, String inputPath, Class resultClazz, @@ -179,7 +180,7 @@ public class SparkResultToOrganizationFromIstRepoJob { return spark .sql(RESULT_ORGANIZATIONSET_QUERY) - .as(Encoders.bean(ResultOrganizationSet.class)); + .as(Encoders.bean(KeyValueSet.class)); } } 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 new file mode 100644 index 0000000000..34817d9a9e --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfo.java @@ -0,0 +1,118 @@ +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 java.io.Serializable; +import java.util.*; + +import static eu.dnetlib.dhp.PropagationConstant.*; + +/** + * Searches for all the association between result and organization already existing in the graph + * Creates also the parenthood hierarchy from the organizations + */ + +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 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); + + //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"; + + 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 prepareChildrenParent(SparkSession spark, String inputPath, String childParentOrganizationPath){ + 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); + } + + 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); + } + + 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 from relation where relclass='IsParentOf' and datainfo.deletedbyinference = false").as(Encoders.STRING()); + + Dataset parent = spark.sql("Select distinct source from relation where relclass='IsParentOf' 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("_1").equalTo(parent.col("_1")), "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/SparkResultToOrganizationFromSemRel.java b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java new file mode 100644 index 0000000000..bd1b7803f8 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkResultToOrganizationFromSemRel.java @@ -0,0 +1,29 @@ +package eu.dnetlib.dhp.resulttoorganizationfromsemrel; + +public class SparkResultToOrganizationFromSemRel { + + //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 + +} 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 new file mode 100644 index 0000000000..1d3498d042 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PrepareInfoJobTest.java @@ -0,0 +1,323 @@ + +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 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.Row; +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 java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; + +public class PrepareInfoJobTest { + + private static final Logger log = LoggerFactory.getLogger(PrepareInfoJobTest.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(PrepareInfoJobTest.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 childParentTest1() { + + PrepareInfo.prepareChildrenParent(spark, getClass() + .getResource( + "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1") + .getPath(), 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)); + + 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(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::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::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 childParentTest2() { + + PrepareInfo.prepareChildrenParent(spark, getClass() + .getResource( + "/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest2") + .getPath(), 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)); + + 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(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::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::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(){ + + } + + /** + * 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 + .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)); + + // got 20 new relations because "produces" and "isProducedBy" are added + Assertions.assertEquals(10, tmp.count()); + + 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( + 5, + verificationDs + .filter( + (FilterFunction) r -> r.getSource().startsWith("50") + && r.getTarget().startsWith("40") + && r.getRelClass().equals("isProducedBy")) + .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'") + .count()); + } + + /** + * 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/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1/relation b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1/relation new file mode 100644 index 0000000000..c63a2e0acf --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest1/relation @@ -0,0 +1,7 @@ +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::03748bcb5d754c951efec9700e18a56d","subRelType":"provision","target":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|openaire____::ec653e804967133b9436fdd30d3ff51d","subRelType":"provision","target":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074","subRelType":"provision","target":"20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest2/relation b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest2/relation new file mode 100644 index 0000000000..54589de329 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/childparenttest2/relation @@ -0,0 +1,7 @@ +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":true,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":true,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::03748bcb5d754c951efec9700e18a56d","subRelType":"provision","target":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|openaire____::ec653e804967133b9436fdd30d3ff51d","subRelType":"provision","target":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074","subRelType":"provision","target":"20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/resultorganizationtest/relation b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/resultorganizationtest/relation new file mode 100644 index 0000000000..5aeabb71b3 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/resultorganizationtest/relation @@ -0,0 +1,7 @@ +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|doajarticles::03748bcb5d754c951efec9700e18a56d","subRelType":"provision","target":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|openaire____::ec653e804967133b9436fdd30d3ff51d","subRelType":"provision","target":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|doajarticles::1cae0b82b56ccd97c2db1f698def7074","subRelType":"provision","target":"20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"} \ No newline at end of file From d0ef7d91c519e3ed6f12f82dc94aac46dd211812 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 26 Oct 2021 17:34:11 +0200 Subject: [PATCH 02/14] adding test resource --- .../resulttoorganizationfromsemrel/ExecStep.java | 4 ++++ .../dhp/resulttoorganizationfromsemrel/Leaves.java | 4 ++++ .../ExecStepTest.java | 4 ++++ .../execstep/childParentOrg/childparent | 6 ++++++ .../execstep/currentIteration/leaves | 3 +++ .../execstep/relation | 14 ++++++++++++++ .../execstep/resultOrganization/resultorganization | 5 +++++ 7 files changed, 40 insertions(+) create mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStep.java create mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/Leaves.java create mode 100644 dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStepTest.java create mode 100644 dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/childParentOrg/childparent create mode 100644 dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/currentIteration/leaves create mode 100644 dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relation create mode 100644 dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/resultOrganization/resultorganization 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 new file mode 100644 index 0000000000..ed33a6297a --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStep.java @@ -0,0 +1,4 @@ +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 new file mode 100644 index 0000000000..602dc1aaa7 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/Leaves.java @@ -0,0 +1,4 @@ +package eu.dnetlib.dhp.resulttoorganizationfromsemrel; + +public class Leaves { +} 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 new file mode 100644 index 0000000000..cd55a0688e --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStepTest.java @@ -0,0 +1,4 @@ +package eu.dnetlib.dhp.resulttoorganizationfromsemrel; + +public class ExecStepTest { +} diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/childParentOrg/childparent b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/childParentOrg/childparent new file mode 100644 index 0000000000..7d9ea588b3 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/childParentOrg/childparent @@ -0,0 +1,6 @@ +{"key":"20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1","valueSet":["20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"]} +{"key":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d","valueSet":["20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","20|dedup_wf_001::2899e571609779168222fdeb59cb916d"]} +{"key":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074","valueSet":["20|openaire____::ec653e804967133b9436fdd30d3ff51d"]} +{"key":"20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0","valueSet":["20|dedup_wf_001::2899e571609779168222fdeb59cb916d"]} +{"key":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d","valueSet":["20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"]} +{"key":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","valueSet":["20|doajarticles::03748bcb5d754c951efec9700e18a56d"]} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/currentIteration/leaves b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/currentIteration/leaves new file mode 100644 index 0000000000..3be9cae3bf --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/currentIteration/leaves @@ -0,0 +1,3 @@ +{"value":"20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"} +{"value":"20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"} +{"value":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relation b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relation new file mode 100644 index 0000000000..db7db8fdd1 --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relation @@ -0,0 +1,14 @@ +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::03748bcb5d754c951efec9700e18a56d","subRelType":"provision","target":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|openaire____::ec653e804967133b9436fdd30d3ff51d","subRelType":"provision","target":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"isparentof","relType":"datasourceOrganization","source":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074","subRelType":"provision","target":"20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|dedup_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|pippo_wf_001::2899e571609779168222fdeb59cb916d"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|dedup_wf_001::2899e571609779168222fdeb59cb916d","subRelType":"provision","target":"20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|doajarticles::03748bcb5d754c951efec9700e18a56d","subRelType":"provision","target":"20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|openaire____::ec653e804967133b9436fdd30d3ff51d","subRelType":"provision","target":"20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"} +{"collectedfrom":[{"key":"10|driver______::bee53aa31dc2cbb538c10c2b65fa5824","value":"DOAJ-Articles"}],"dataInfo":{"deletedbyinference":false,"inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:entityregistry","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"lastupdatetimestamp":1592688952862,"properties":[],"relClass":"hasAuthorInstitution","relType":"datasourceOrganization","source":"50|doajarticles::1cae0b82b56ccd97c2db1f698def7074","subRelType":"provision","target":"20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"} \ No newline at end of file diff --git a/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/resultOrganization/resultorganization b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/resultOrganization/resultorganization new file mode 100644 index 0000000000..b4e227227d --- /dev/null +++ b/dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/resultOrganization/resultorganization @@ -0,0 +1,5 @@ +{"key":"50|doajarticles::2baa9032dc058d3c8ff780c426b0c19f","valueSet":["20|pippo_wf_001::2899e571609779168222fdeb59cb916d","20|dedup_wf_001::2899e571609779168222fdeb59cb916d"]} +{"key":"50|doajarticles::1cae0b82b56ccd97c2db1f698def7074","valueSet":["20|opendoar____::a5fcb8eb25ebd6f7cd219e0fa1e6ddc1"]} +{"key":"50|dedup_wf_001::2899e571609779168222fdeb59cb916d","valueSet":["20|pippo_wf_001::2899e571609779168222fdeb59cb916d","20|doajarticles::396262ee936f3d3e26ff0e60bea6cae0"]} +{"key":"50|openaire____::ec653e804967133b9436fdd30d3ff51d","valueSet":["20|doajarticles::1cae0b82b56ccd97c2db1f698def7074"]} +{"key":"50|doajarticles::03748bcb5d754c951efec9700e18a56d","valueSet":["20|doajarticles::2baa9032dc058d3c8ff780c426b0c19f"]} \ No newline at end of file From 09f36cffb8712b2e6dc63cf9523ab240bb4d9348 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 29 Oct 2021 11:20:03 +0200 Subject: [PATCH 03/14] [Enrichment: Propagation through parent-child relationships] First implementation, testing, and wf for propagation of result to organization through semantic relation --- .../dhp-enrichment/null/leaves/._SUCCESS.crc | Bin 0 -> 8 bytes ...38-4761-a051-bb601aecc3f0-c000.json.gz.crc | Bin 0 -> 12 bytes .../dhp-enrichment/null/leaves/_SUCCESS | 0 ...9-ad38-4761-a051-bb601aecc3f0-c000.json.gz | Bin 0 -> 20 bytes .../null/newRelation/._SUCCESS.crc | Bin 0 -> 8 bytes ...4a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 0 -> 12 bytes ...95-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 0 -> 12 bytes ...11-4513-a719-beee952de6ee-c000.json.gz.crc | Bin 0 -> 12 bytes ...90-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 0 -> 12 bytes ...b1-48ae-951b-6febe9db8857-c000.json.gz.crc | Bin 0 -> 12 bytes ...3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 0 -> 12 bytes ...12-4f0b-9f3b-f29a7a51b646-c000.json.gz.crc | Bin 0 -> 12 bytes ...d9-46e5-891f-958f2f029ac5-c000.json.gz.crc | Bin 0 -> 12 bytes ...50-47d3-90a8-5854c6c07c5e-c000.json.gz.crc | Bin 0 -> 12 bytes ...cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 0 -> 12 bytes ...48-4164-aba1-1e45fbadda99-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-415b-9aff-34ddc7257b59-c000.json.gz.crc | Bin 0 -> 12 bytes ...88-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc | Bin 0 -> 12 bytes ...e3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 0 -> 12 bytes ...8b-4774-8782-b9e7c25f989f-c000.json.gz.crc | Bin 0 -> 12 bytes ...d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 0 -> 12 bytes ...5f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 0 -> 12 bytes ...9a-4ecc-aafa-ceb787179fe5-c000.json.gz.crc | Bin 0 -> 12 bytes ...f0-419a-bef1-d30e052ca15a-c000.json.gz.crc | Bin 0 -> 12 bytes ...16-4607-a98d-ae6ad338fccb-c000.json.gz.crc | Bin 0 -> 12 bytes ...83-4d37-97e4-124125abfca5-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 0 -> 12 bytes ...74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 0 -> 12 bytes ...d5-4381-a03b-9f2ed0830707-c000.json.gz.crc | Bin 0 -> 12 bytes ...58-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 0 -> 12 bytes ...30-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 0 -> 12 bytes ...a4-46a7-a736-feb6d779b206-c000.json.gz.crc | Bin 0 -> 12 bytes ...8a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 0 -> 12 bytes ...02-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 0 -> 12 bytes ...44-41e4-963b-5f602891de01-c000.json.gz.crc | Bin 0 -> 12 bytes ...13-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 0 -> 12 bytes ...f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 0 -> 12 bytes ...4a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 0 -> 12 bytes ...90-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 0 -> 12 bytes ...3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 0 -> 12 bytes ...d9-46e5-891f-958f2f029ac5-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-415b-9aff-34ddc7257b59-c000.json.gz.crc | Bin 0 -> 12 bytes ...88-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc | Bin 0 -> 12 bytes ...e3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 0 -> 12 bytes ...8b-4774-8782-b9e7c25f989f-c000.json.gz.crc | Bin 0 -> 12 bytes ...f0-419a-bef1-d30e052ca15a-c000.json.gz.crc | Bin 0 -> 12 bytes ...16-4607-a98d-ae6ad338fccb-c000.json.gz.crc | Bin 0 -> 12 bytes ...74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 0 -> 12 bytes ...30-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 0 -> 12 bytes ...a4-46a7-a736-feb6d779b206-c000.json.gz.crc | Bin 0 -> 12 bytes ...44-41e4-963b-5f602891de01-c000.json.gz.crc | Bin 0 -> 12 bytes ...13-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 0 -> 12 bytes ...f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 0 -> 12 bytes ...95-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 0 -> 12 bytes ...cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 0 -> 12 bytes ...d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 0 -> 12 bytes ...5f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 0 -> 12 bytes ...58-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 0 -> 12 bytes ...8a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 0 -> 12 bytes ...02-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 0 -> 12 bytes ...95-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 0 -> 12 bytes ...cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 0 -> 12 bytes ...d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 0 -> 12 bytes ...5f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 0 -> 12 bytes ...58-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 0 -> 12 bytes ...8a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 0 -> 12 bytes ...02-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 0 -> 12 bytes ...4a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 0 -> 12 bytes ...95-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 0 -> 12 bytes ...90-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 0 -> 12 bytes ...3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 0 -> 12 bytes ...cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 0 -> 12 bytes ...e3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 0 -> 12 bytes ...d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 0 -> 12 bytes ...5f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 0 -> 12 bytes ...74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 0 -> 12 bytes ...58-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 0 -> 12 bytes ...30-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 0 -> 12 bytes ...8a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 0 -> 12 bytes ...02-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 0 -> 12 bytes ...13-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 0 -> 12 bytes ...f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 0 -> 12 bytes ...4a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 0 -> 12 bytes ...90-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 0 -> 12 bytes ...3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 0 -> 12 bytes ...d9-46e5-891f-958f2f029ac5-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-415b-9aff-34ddc7257b59-c000.json.gz.crc | Bin 0 -> 12 bytes ...88-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc | Bin 0 -> 12 bytes ...e3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 0 -> 12 bytes ...8b-4774-8782-b9e7c25f989f-c000.json.gz.crc | Bin 0 -> 12 bytes ...f0-419a-bef1-d30e052ca15a-c000.json.gz.crc | Bin 0 -> 12 bytes ...16-4607-a98d-ae6ad338fccb-c000.json.gz.crc | Bin 0 -> 12 bytes ...74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 0 -> 12 bytes ...30-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 0 -> 12 bytes ...a4-46a7-a736-feb6d779b206-c000.json.gz.crc | Bin 0 -> 12 bytes ...44-41e4-963b-5f602891de01-c000.json.gz.crc | Bin 0 -> 12 bytes ...13-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 0 -> 12 bytes ...f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 0 -> 12 bytes ...4a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 0 -> 12 bytes ...95-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 0 -> 12 bytes ...90-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 0 -> 12 bytes ...3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 0 -> 12 bytes ...cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 0 -> 12 bytes ...e3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 0 -> 12 bytes ...d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 0 -> 12 bytes ...5f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 0 -> 12 bytes ...74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 0 -> 12 bytes ...58-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 0 -> 12 bytes ...30-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 0 -> 12 bytes ...8a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 0 -> 12 bytes ...02-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 0 -> 12 bytes ...13-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 0 -> 12 bytes ...f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 0 -> 12 bytes ...4a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 0 -> 12 bytes ...90-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 0 -> 12 bytes ...3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 0 -> 12 bytes ...d9-46e5-891f-958f2f029ac5-c000.json.gz.crc | Bin 0 -> 12 bytes ...5e-415b-9aff-34ddc7257b59-c000.json.gz.crc | Bin 0 -> 12 bytes ...88-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc | Bin 0 -> 12 bytes ...e3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 0 -> 12 bytes ...8b-4774-8782-b9e7c25f989f-c000.json.gz.crc | Bin 0 -> 12 bytes ...f0-419a-bef1-d30e052ca15a-c000.json.gz.crc | Bin 0 -> 12 bytes ...16-4607-a98d-ae6ad338fccb-c000.json.gz.crc | Bin 0 -> 12 bytes ...74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 0 -> 12 bytes ...30-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 0 -> 12 bytes ...a4-46a7-a736-feb6d779b206-c000.json.gz.crc | Bin 0 -> 12 bytes ...44-41e4-963b-5f602891de01-c000.json.gz.crc | Bin 0 -> 12 bytes ...13-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 0 -> 12 bytes ...f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 0 -> 12 bytes ...4a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 0 -> 12 bytes ...90-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 0 -> 12 bytes ...3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 0 -> 12 bytes ...e3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 0 -> 12 bytes ...74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 0 -> 12 bytes ...30-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 0 -> 12 bytes ...13-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 0 -> 12 bytes ...f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 0 -> 12 bytes .../dhp-enrichment/null/newRelation/_SUCCESS | 0 ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 0 -> 20 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 0 -> 20 bytes ...4-8e11-4513-a719-beee952de6ee-c000.json.gz | Bin 0 -> 20 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 0 -> 20 bytes ...2-49b1-48ae-951b-6febe9db8857-c000.json.gz | Bin 0 -> 20 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 0 -> 20 bytes ...f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz | Bin 0 -> 20 bytes ...4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz | Bin 0 -> 20 bytes ...a-e550-47d3-90a8-5854c6c07c5e-c000.json.gz | Bin 0 -> 20 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 0 -> 20 bytes ...7-c748-4164-aba1-1e45fbadda99-c000.json.gz | Bin 0 -> 20 bytes ...a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz | Bin 0 -> 20 bytes ...e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz | Bin 0 -> 20 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 0 -> 20 bytes ...5-f58b-4774-8782-b9e7c25f989f-c000.json.gz | Bin 0 -> 20 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 0 -> 20 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 0 -> 20 bytes ...7-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz | Bin 0 -> 20 bytes ...3-41f0-419a-bef1-d30e052ca15a-c000.json.gz | Bin 0 -> 20 bytes ...a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz | Bin 0 -> 20 bytes ...e-6383-4d37-97e4-124125abfca5-c000.json.gz | Bin 0 -> 20 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 0 -> 20 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 0 -> 20 bytes ...a-16d5-4381-a03b-9f2ed0830707-c000.json.gz | Bin 0 -> 20 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 0 -> 20 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 0 -> 20 bytes ...0-30a4-46a7-a736-feb6d779b206-c000.json.gz | Bin 0 -> 20 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 0 -> 20 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 0 -> 20 bytes ...2-3a44-41e4-963b-5f602891de01-c000.json.gz | Bin 0 -> 20 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 0 -> 20 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 0 -> 20 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 0 -> 356 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 0 -> 356 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 0 -> 356 bytes ...4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz | Bin 0 -> 356 bytes ...a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz | Bin 0 -> 356 bytes ...e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz | Bin 0 -> 356 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 0 -> 356 bytes ...5-f58b-4774-8782-b9e7c25f989f-c000.json.gz | Bin 0 -> 356 bytes ...3-41f0-419a-bef1-d30e052ca15a-c000.json.gz | Bin 0 -> 356 bytes ...a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz | Bin 0 -> 356 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 0 -> 356 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 0 -> 356 bytes ...0-30a4-46a7-a736-feb6d779b206-c000.json.gz | Bin 0 -> 356 bytes ...2-3a44-41e4-963b-5f602891de01-c000.json.gz | Bin 0 -> 356 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 0 -> 356 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 0 -> 356 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 0 -> 323 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 0 -> 323 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 0 -> 323 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 0 -> 323 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 0 -> 323 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 0 -> 323 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 0 -> 323 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 0 -> 323 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 0 -> 326 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 0 -> 326 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 0 -> 326 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 0 -> 326 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 0 -> 326 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 0 -> 326 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 0 -> 326 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 0 -> 326 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 0 -> 357 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 0 -> 357 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 0 -> 357 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 0 -> 357 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 0 -> 357 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 0 -> 357 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 0 -> 357 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 0 -> 357 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 0 -> 357 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 0 -> 357 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 0 -> 357 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 0 -> 357 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 0 -> 357 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 0 -> 357 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 0 -> 357 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 0 -> 357 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 0 -> 398 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 0 -> 398 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 0 -> 398 bytes ...4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz | Bin 0 -> 324 bytes ...a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz | Bin 0 -> 324 bytes ...e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz | Bin 0 -> 324 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 0 -> 398 bytes ...5-f58b-4774-8782-b9e7c25f989f-c000.json.gz | Bin 0 -> 324 bytes ...3-41f0-419a-bef1-d30e052ca15a-c000.json.gz | Bin 0 -> 324 bytes ...a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz | Bin 0 -> 324 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 0 -> 398 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 0 -> 398 bytes ...0-30a4-46a7-a736-feb6d779b206-c000.json.gz | Bin 0 -> 324 bytes ...2-3a44-41e4-963b-5f602891de01-c000.json.gz | Bin 0 -> 324 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 0 -> 398 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 0 -> 398 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 0 -> 323 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 0 -> 323 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 0 -> 323 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 0 -> 323 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 0 -> 323 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 0 -> 323 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 0 -> 323 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 0 -> 323 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 0 -> 323 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 0 -> 323 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 0 -> 323 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 0 -> 323 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 0 -> 323 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 0 -> 323 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 0 -> 323 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 0 -> 323 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 0 -> 348 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 0 -> 348 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 0 -> 348 bytes ...4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz | Bin 0 -> 348 bytes ...a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz | Bin 0 -> 348 bytes ...e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz | Bin 0 -> 348 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 0 -> 348 bytes ...5-f58b-4774-8782-b9e7c25f989f-c000.json.gz | Bin 0 -> 348 bytes ...3-41f0-419a-bef1-d30e052ca15a-c000.json.gz | Bin 0 -> 348 bytes ...a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz | Bin 0 -> 348 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 0 -> 348 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 0 -> 348 bytes ...0-30a4-46a7-a736-feb6d779b206-c000.json.gz | Bin 0 -> 348 bytes ...2-3a44-41e4-963b-5f602891de01-c000.json.gz | Bin 0 -> 348 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 0 -> 348 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 0 -> 348 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 0 -> 324 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 0 -> 324 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 0 -> 324 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 0 -> 324 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 0 -> 324 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 0 -> 324 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 0 -> 324 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 0 -> 324 bytes .../dhp-enrichment/null/resOrg/._SUCCESS.crc | Bin 0 -> 8 bytes ...63-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 0 -> 12 bytes ...63-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 0 -> 12 bytes ...63-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 0 -> 12 bytes ...63-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 0 -> 12 bytes ...63-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 0 -> 12 bytes ...63-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 0 -> 12 bytes .../dhp-enrichment/null/resOrg/_SUCCESS | 0 ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 0 -> 20 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 0 -> 169 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 0 -> 137 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 0 -> 184 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 0 -> 126 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 0 -> 164 bytes dhp-workflows/dhp-enrichment/pom.xml | 6 + .../eu/dnetlib/dhp/PropagationConstant.java | 44 ++ .../PrepareResultInstRepoAssociation.java | 2 +- ...arkResultToOrganizationFromIstRepoJob.java | 35 +- .../ExecStep.java | 4 - .../Leaves.java | 14 +- .../PrepareInfo.java | 210 +++--- .../PropagationCounter.java | 77 +++ .../SparkResultToOrganizationFromSemRel.java | 239 ++++++- .../StepActions.java | 213 ++++++ .../input_preparation_parameter.json | 38 ++ .../input_propagation_parameter.json | 50 ++ .../oozie_app/config-default.xml | 58 ++ .../oozie_app/workflow.xml | 192 ++++++ .../ExecStepTest.java | 4 - .../PrepareInfoJobTest.java | 635 ++++++++++++------ .../SparkJobTest.java | 323 +++++++++ .../StepActionsTest.java | 411 ++++++++++++ .../execstep/relsforiteration1/relation | 4 + 311 files changed, 2214 insertions(+), 345 deletions(-) create mode 100644 dhp-workflows/dhp-enrichment/null/leaves/._SUCCESS.crc create mode 100644 dhp-workflows/dhp-enrichment/null/leaves/.part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/leaves/_SUCCESS create mode 100644 dhp-workflows/dhp-enrichment/null/leaves/part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/._SUCCESS.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/_SUCCESS create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/._SUCCESS.crc create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/_SUCCESS create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz create mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStep.java create mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/PropagationCounter.java create mode 100644 dhp-workflows/dhp-enrichment/src/main/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/StepActions.java create mode 100644 dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_preparation_parameter.json create mode 100644 dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/input_propagation_parameter.json create mode 100644 dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/oozie_app/config-default.xml create mode 100644 dhp-workflows/dhp-enrichment/src/main/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/oozie_app/workflow.xml delete mode 100644 dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/ExecStepTest.java create mode 100644 dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/SparkJobTest.java create mode 100644 dhp-workflows/dhp-enrichment/src/test/java/eu/dnetlib/dhp/resulttoorganizationfromsemrel/StepActionsTest.java create mode 100644 dhp-workflows/dhp-enrichment/src/test/resources/eu/dnetlib/dhp/resulttoorganizationfromsemrel/execstep/relsforiteration1/relation 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 0000000000000000000000000000000000000000..3b7b044936a890cd8d651d349a752d819d71d22c GIT binary patch literal 8 PcmYc;N@ieSU}69O2$TUk literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3b7b044936a890cd8d651d349a752d819d71d22c GIT binary patch literal 8 PcmYc;N@ieSU}69O2$TUk literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..444ebf0e34af16d32e663373a50f0161b9d62839 GIT binary patch literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883 GIT binary patch literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9690bbf5222c463c882b01ad99b0f5b07868ab7a GIT binary patch literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9690bbf5222c463c882b01ad99b0f5b07868ab7a GIT binary patch literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9690bbf5222c463c882b01ad99b0f5b07868ab7a GIT binary patch literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9690bbf5222c463c882b01ad99b0f5b07868ab7a GIT binary patch literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9690bbf5222c463c882b01ad99b0f5b07868ab7a GIT binary patch literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9690bbf5222c463c882b01ad99b0f5b07868ab7a GIT binary patch literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9690bbf5222c463c882b01ad99b0f5b07868ab7a GIT binary patch literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9690bbf5222c463c882b01ad99b0f5b07868ab7a GIT binary patch literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..557a5a816fd1f6ace1abdac1bdaf029130766219 GIT binary patch literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..557a5a816fd1f6ace1abdac1bdaf029130766219 GIT binary patch literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..557a5a816fd1f6ace1abdac1bdaf029130766219 GIT binary patch literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..557a5a816fd1f6ace1abdac1bdaf029130766219 GIT binary patch literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..557a5a816fd1f6ace1abdac1bdaf029130766219 GIT binary patch literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..557a5a816fd1f6ace1abdac1bdaf029130766219 GIT binary patch literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..557a5a816fd1f6ace1abdac1bdaf029130766219 GIT binary patch literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..557a5a816fd1f6ace1abdac1bdaf029130766219 GIT binary patch literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b3370486fb295f23b42e0034756726538c75d20c GIT binary patch literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba9dc02f200333afbab6d6d41e643ee3829765cd GIT binary patch literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba9dc02f200333afbab6d6d41e643ee3829765cd GIT binary patch literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba9dc02f200333afbab6d6d41e643ee3829765cd GIT binary patch literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0e5dc3160176fc74b43c74a92873202cf6f48e3 GIT binary patch literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0e5dc3160176fc74b43c74a92873202cf6f48e3 GIT binary patch literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0e5dc3160176fc74b43c74a92873202cf6f48e3 GIT binary patch literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba9dc02f200333afbab6d6d41e643ee3829765cd GIT binary patch literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0e5dc3160176fc74b43c74a92873202cf6f48e3 GIT binary patch literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0e5dc3160176fc74b43c74a92873202cf6f48e3 GIT binary patch literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0e5dc3160176fc74b43c74a92873202cf6f48e3 GIT binary patch literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba9dc02f200333afbab6d6d41e643ee3829765cd GIT binary patch literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba9dc02f200333afbab6d6d41e643ee3829765cd GIT binary patch literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0e5dc3160176fc74b43c74a92873202cf6f48e3 GIT binary patch literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c0e5dc3160176fc74b43c74a92873202cf6f48e3 GIT binary patch literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba9dc02f200333afbab6d6d41e643ee3829765cd GIT binary patch literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba9dc02f200333afbab6d6d41e643ee3829765cd GIT binary patch literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f GIT binary patch literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ea578242fce12608d5ad0076d5368e5ab1e5ce3 GIT binary patch literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fcf53cc925f084a3da1796db662c25862b516e87 GIT binary patch literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fcf53cc925f084a3da1796db662c25862b516e87 GIT binary patch literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fcf53cc925f084a3da1796db662c25862b516e87 GIT binary patch literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fcf53cc925f084a3da1796db662c25862b516e87 GIT binary patch literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fcf53cc925f084a3da1796db662c25862b516e87 GIT binary patch literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fcf53cc925f084a3da1796db662c25862b516e87 GIT binary patch literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fcf53cc925f084a3da1796db662c25862b516e87 GIT binary patch literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fcf53cc925f084a3da1796db662c25862b516e87 GIT binary patch literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..001322f84b053326cd87d0b2f1df13fddaa4da35 GIT binary patch literal 20 Rcmb2|=3syTW+=_T000et0JZ=C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a92a574363a35b56952a13cd4f2d141e75662967 GIT binary patch literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2298c84f35b5aa39d6f4462670bb5e978eb563d1 GIT binary patch literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2298c84f35b5aa39d6f4462670bb5e978eb563d1 GIT binary patch literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2298c84f35b5aa39d6f4462670bb5e978eb563d1 GIT binary patch literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2298c84f35b5aa39d6f4462670bb5e978eb563d1 GIT binary patch literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2298c84f35b5aa39d6f4462670bb5e978eb563d1 GIT binary patch literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2298c84f35b5aa39d6f4462670bb5e978eb563d1 GIT binary patch literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2298c84f35b5aa39d6f4462670bb5e978eb563d1 GIT binary patch literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2298c84f35b5aa39d6f4462670bb5e978eb563d1 GIT binary patch literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fe56417e97d74ab67f9276c2107723cc38754721 GIT binary patch literal 326 zcmV-M0lEGkiwFP!000000G(1jYr`-Q-TNzy=1?4ilUQ5ml&Ph3D<#O*$ri|xkxnUT zn*ZLD65@2|((!cf(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5DyNy0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63538ede2100ae5998b99b4d0bc4cba57fae99 GIT binary patch literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6f7008b990668e5684da12efdc23ea58cd6df210 GIT binary patch literal 398 zcmV;90df8xiwFP!000000PRvuYa1~Tz4uovI-8>PuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdI6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&m}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cfe02812d5b9e72b8204dbc970edbd359d679c4 GIT binary patch literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9e0f1691ec6b977af3514ba3758ef6fa23058a6b GIT binary patch literal 324 zcmV-K0lWSmiwFP!000000G(1hPs1<}-uV@g=L)5yDXq7PsS^mXA%rgWIkDu}l^>N# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxy zurM&b;nT18Fekm6U3W zus2w}=5_9Gr3bLpduAnPJ7DM7b{-K+)4#F@DK;fNZcxG_o{Q4S<2%#i)q(VheDM*NNcX|ch z{^@<-s&8QMxK4Mym0{NN7PGeCNfWvpq9Ll;QRpIsLcMz8sYqHgc)+EPfrJ5dc673PA+r0hzdHU{tq0(29u>b%7J`q7k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7ee2b282a26fcda1d29218e128be371dd41765e5 GIT binary patch literal 184 zcmV;p07w5HiwFP!000000Hw}34ni>uMbVyRq^5A3A1BT>C=o)5V@nJYUyMS)-hqOS z3d&a;y?b*Ty}IHe+`IPExV+dBz?XuVS!419oDzG=h-h6~WNEM2-PE1y_M|gCx-xh8 zgMXV{UDy3_C0jj|5}1%sl>=GmL6OWr37S@ts_@M~NJDPYVoz}pj$TcL6M*_$fp|8zcuby8TUty_0RRB=jZ(A# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0389977c081f89118b6305eefb5a039bdd116635 GIT binary patch literal 126 zcmb2|=3sz;xu>o94jJ$;T$r0&kyc=rHz%f9u(Tk@ok>g4(b1`OcQJ$6y?s2R@a`gHR!{`DDFk;2v+i3Xdv dCV8Jq7I8aU_-e&Mz8Utr_4ge7WwQ}zEdbLjG)Djc literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..57f1fb89852e4d92e02b9ed0fef7e3e68e292b12 GIT binary patch literal 164 zcmV;V09*ebiwFP!000000G-WC3c@fHh2go&xMK%5N%P!>LlH^t1FFSJt%6whZb4Vz zng8c|!C9VAz~jPWJ=JOMX^>kfhN@sow)sHBIg;gOG~~ph5n~5ic+}x8JDH*E!QwJr z<+6TE$91Jtuhfz>>!oqfNNi0O)M_L!lUaNFhxv1AKgrh-3f@V=E{ABGYq@hlnH{oI S^@ic_-h2RjRboHo0002)#82M< literal 0 HcmV?d00001 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 From b9d124bb7cac298304fa37a4e7a74afe30646a53 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 3 Nov 2021 13:55:37 +0100 Subject: [PATCH 04/14] [Enrichment: Propagation through parent-child relationships] Added counters, and changed constraint to verify if filtering out the relation (from classname = harvested to classid != propagation) --- .../PrepareInfo.java | 5 --- .../SparkResultToOrganizationFromSemRel.java | 31 +++---------------- .../StepActions.java | 6 ++-- .../oozie_app/workflow.xml | 2 +- 4 files changed, 8 insertions(+), 36 deletions(-) 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 71b032b2bd..732ba2c2de 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 @@ -6,9 +6,7 @@ import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; import java.io.Serializable; import java.util.*; -import java.util.stream.Collectors; -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.*; @@ -17,15 +15,12 @@ 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; /** 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 e716f8d86a..a900fe0d86 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 @@ -2,7 +2,7 @@ package eu.dnetlib.dhp.resulttoorganizationfromsemrel; import static eu.dnetlib.dhp.PropagationConstant.*; -import static eu.dnetlib.dhp.common.Constants.*; + import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; import java.io.Serializable; @@ -22,12 +22,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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; @@ -113,7 +114,7 @@ public class SparkResultToOrganizationFromSemRel implements Serializable { String resultOrganizationPath, String graphPath, String workingPath, String outputPath, PropagationCounter propagationCounter) { int iteration = 0; - long leavesCount = 0; + long leavesCount; do { iteration++; @@ -199,30 +200,6 @@ public class SparkResultToOrganizationFromSemRel implements Serializable { .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 index 2d2fd866de..affe1f56f8 100644 --- 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 @@ -131,11 +131,11 @@ public class StepActions implements Serializable { if (relationList .stream() .filter( - rel -> rel + rel -> !rel .getDataInfo() .getProvenanceaction() - .getClassname() - .equals(ModelConstants.HARVESTED)) + .getClassid() + .equals(PROPAGATION_RELATION_RESULT_ORGANIZATION_SEM_REL_CLASS_ID)) .count() > 0) { return null; } 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 index 32307e13da..e62ce0f5ac 100644 --- 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 @@ -176,7 +176,7 @@ --graphPath${sourcePath} --outputPath${outputPath}/relation --leavesPath${workingDir}/preparedInfo/leavesPath - --leavesPath${workingDir}/preparedInfo/childParentPath + --childParentPath${workingDir}/preparedInfo/childParentPath --resultOrgPath${workingDir}/preparedInfo/resultOrgPath --hive_metastore_uris${hive_metastore_uris} --workingDir${workingDir}/working From c7c0c3187b73c7ac9cbf3b26e9b70f9dc77281f9 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 16 Nov 2021 13:56:32 +0100 Subject: [PATCH 05/14] [AFFILIATION PROPAGATION] Applied some SonarLint suggestions --- .../PrepareInfo.java | 20 ++++++------------- .../SparkResultToOrganizationFromSemRel.java | 7 ++++--- .../StepActions.java | 10 ++++------ 3 files changed, 14 insertions(+), 23 deletions(-) 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 732ba2c2de..d853f3858a 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 @@ -30,25 +30,17 @@ import scala.Tuple2; 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 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); // associate orgs with all their parent - private static final String relOrgQuery = "SELECT target key, collect_set(source) as valueSet " + + private static final String ORGANIZATION_ORGANIZATION_QUERY = "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 " + + //associates results with all the orgs they are affiliated to + private static final String RESULT_ORGANIZATION_QUERY = "SELECT source key, collect_set(target) as valueSet " + "FROM relation " + "WHERE lower(relclass) = '" + ModelConstants.HAS_AUTHOR_INSTITUTION.toLowerCase() + "' and datainfo.deletedbyinference = false " + @@ -101,7 +93,7 @@ public class PrepareInfo implements Serializable { relation.createOrReplaceTempView("relation"); spark - .sql(relOrgQuery) + .sql(ORGANIZATION_ORGANIZATION_QUERY) .as(Encoders.bean(KeyValueSet.class)) .write() .mode(SaveMode.Overwrite) @@ -109,7 +101,7 @@ public class PrepareInfo implements Serializable { .json(childParentOrganizationPath); spark - .sql(relResQuery) + .sql(RESULT_ORGANIZATION_QUERY) .as(Encoders.bean(KeyValueSet.class)) .write() .mode(SaveMode.Overwrite) @@ -130,7 +122,7 @@ public class PrepareInfo implements Serializable { "' and datainfo.deletedbyinference = false") .as(Encoders.STRING()); - // prendo dalla join i risultati che hanno solo il lato sinistro: sono foglie + // takes from the join the entities having only the left hand side: the leaves. Saves them children .joinWith(parent, children.col("child").equalTo(parent.col("parent")), "left") .map((MapFunction, String>) value -> { 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 a900fe0d86..f5d8361d75 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 @@ -32,6 +32,7 @@ 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; + public static final String NEW_RELATION_PATH = "/newRelation"; public static void main(String[] args) throws Exception { @@ -120,11 +121,11 @@ public class SparkResultToOrganizationFromSemRel implements Serializable { iteration++; StepActions .execStep( - spark, graphPath, workingPath + "/newRelation", + spark, graphPath, workingPath + NEW_RELATION_PATH, leavesPath, childParentPath, resultOrganizationPath); StepActions .prepareForNextStep( - spark, workingPath + "/newRelation", resultOrganizationPath, leavesPath, + spark, workingPath + NEW_RELATION_PATH, resultOrganizationPath, leavesPath, childParentPath, workingPath + "/leaves", workingPath + "/resOrg"); moveOutput(spark, workingPath, leavesPath, resultOrganizationPath); leavesCount = readPath(spark, leavesPath, Leaves.class).count(); @@ -154,7 +155,7 @@ public class SparkResultToOrganizationFromSemRel implements Serializable { propagationCounter.getNotReachedFirstParent().add(1); } - addNewRelations(spark, workingPath + "/newRelation", outputPath); + addNewRelations(spark, workingPath + NEW_RELATION_PATH, outputPath); } private static void moveOutput(SparkSession spark, String workingPath, String leavesPath, 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 index affe1f56f8..d190e53423 100644 --- 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 @@ -27,7 +27,6 @@ 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, @@ -185,10 +184,9 @@ public class StepActions implements Serializable { "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 + return resultParent .flatMap( (FlatMapFunction) v -> v .getValueSet() @@ -206,8 +204,8 @@ public class StepActions implements Serializable { .collect(Collectors.toList()) .iterator(), Encoders.bean(Relation.class)); - tmp.foreach((ForeachFunction) r -> System.out.println(OBJECT_MAPPER.writeValueAsString(r))); - return tmp; + + } } From 7c96e3fd461db7a7f04ccf2d04a6534f3fd82348 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 16 Nov 2021 13:57:26 +0100 Subject: [PATCH 06/14] removed not useful dir --- .../dhp-enrichment/null/leaves/._SUCCESS.crc | Bin 8 -> 0 bytes ...9-ad38-4761-a051-bb601aecc3f0-c000.json.gz.crc | Bin 12 -> 0 bytes dhp-workflows/dhp-enrichment/null/leaves/_SUCCESS | 0 ...e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz | Bin 20 -> 0 bytes .../dhp-enrichment/null/newRelation/._SUCCESS.crc | Bin 8 -> 0 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 12 -> 0 bytes ...4-8e11-4513-a719-beee952de6ee-c000.json.gz.crc | Bin 12 -> 0 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-49b1-48ae-951b-6febe9db8857-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 12 -> 0 bytes ...f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz.crc | Bin 12 -> 0 bytes ...4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-e550-47d3-90a8-5854c6c07c5e-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 12 -> 0 bytes ...7-c748-4164-aba1-1e45fbadda99-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc | Bin 12 -> 0 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 12 -> 0 bytes ...7-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-6383-4d37-97e4-124125abfca5-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 12 -> 0 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-16d5-4381-a03b-9f2ed0830707-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-3a44-41e4-963b-5f602891de01-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 12 -> 0 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 12 -> 0 bytes ...4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc | Bin 12 -> 0 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-3a44-41e4-963b-5f602891de01-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 12 -> 0 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 12 -> 0 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 12 -> 0 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 12 -> 0 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 12 -> 0 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 12 -> 0 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 12 -> 0 bytes ...4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc | Bin 12 -> 0 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-3a44-41e4-963b-5f602891de01-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc | Bin 12 -> 0 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 12 -> 0 bytes ...6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc | Bin 12 -> 0 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 12 -> 0 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 12 -> 0 bytes ...4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc | Bin 12 -> 0 bytes ...3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc | Bin 12 -> 0 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 12 -> 0 bytes ...0-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-3a44-41e4-963b-5f602891de01-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 12 -> 0 bytes ...e-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc | Bin 12 -> 0 bytes ...9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc | Bin 12 -> 0 bytes ...c-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc | Bin 12 -> 0 bytes ...8-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc | Bin 12 -> 0 bytes ...2-f830-4638-984b-becff6aa4587-c000.json.gz.crc | Bin 12 -> 0 bytes ...b-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc | Bin 12 -> 0 bytes ...a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc | Bin 12 -> 0 bytes .../dhp-enrichment/null/newRelation/_SUCCESS | 0 ...d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 20 -> 0 bytes ...487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 20 -> 0 bytes ...52c24-8e11-4513-a719-beee952de6ee-c000.json.gz | Bin 20 -> 0 bytes ...192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 20 -> 0 bytes ...8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz | Bin 20 -> 0 bytes ...fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 20 -> 0 bytes ...1fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz | Bin 20 -> 0 bytes ...125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz | Bin 20 -> 0 bytes ...369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz | Bin 20 -> 0 bytes ...a0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 20 -> 0 bytes ...2f647-c748-4164-aba1-1e45fbadda99-c000.json.gz | Bin 20 -> 0 bytes ...5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz | Bin 20 -> 0 bytes ...63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz | Bin 20 -> 0 bytes ...97392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 20 -> 0 bytes ...24405-f58b-4774-8782-b9e7c25f989f-c000.json.gz | Bin 20 -> 0 bytes ...06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 20 -> 0 bytes ...8cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 20 -> 0 bytes ...d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz | Bin 20 -> 0 bytes ...dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz | Bin 20 -> 0 bytes ...4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz | Bin 20 -> 0 bytes ...7934e-6383-4d37-97e4-124125abfca5-c000.json.gz | Bin 20 -> 0 bytes ...a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 20 -> 0 bytes ...e3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 20 -> 0 bytes ...4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz | Bin 20 -> 0 bytes ...70332-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 20 -> 0 bytes ...8af72-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 20 -> 0 bytes ...5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz | Bin 20 -> 0 bytes ...5d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 20 -> 0 bytes ...4cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 20 -> 0 bytes ...e3882-3a44-41e4-963b-5f602891de01-c000.json.gz | Bin 20 -> 0 bytes ...2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 20 -> 0 bytes ...9bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 20 -> 0 bytes ...d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 356 -> 0 bytes ...192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 356 -> 0 bytes ...fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 356 -> 0 bytes ...125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz | Bin 356 -> 0 bytes ...5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz | Bin 356 -> 0 bytes ...63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz | Bin 356 -> 0 bytes ...97392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 356 -> 0 bytes ...24405-f58b-4774-8782-b9e7c25f989f-c000.json.gz | Bin 356 -> 0 bytes ...dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz | Bin 356 -> 0 bytes ...4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz | Bin 356 -> 0 bytes ...e3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 356 -> 0 bytes ...8af72-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 356 -> 0 bytes ...5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz | Bin 356 -> 0 bytes ...e3882-3a44-41e4-963b-5f602891de01-c000.json.gz | Bin 356 -> 0 bytes ...2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 356 -> 0 bytes ...9bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 356 -> 0 bytes ...487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 323 -> 0 bytes ...a0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 323 -> 0 bytes ...06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 323 -> 0 bytes ...8cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 323 -> 0 bytes ...a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 323 -> 0 bytes ...70332-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 323 -> 0 bytes ...5d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 323 -> 0 bytes ...4cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 323 -> 0 bytes ...487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 326 -> 0 bytes ...a0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 326 -> 0 bytes ...06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 326 -> 0 bytes ...8cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 326 -> 0 bytes ...a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 326 -> 0 bytes ...70332-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 326 -> 0 bytes ...5d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 326 -> 0 bytes ...4cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 326 -> 0 bytes ...d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 357 -> 0 bytes ...487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 357 -> 0 bytes ...192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 357 -> 0 bytes ...fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 357 -> 0 bytes ...a0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 357 -> 0 bytes ...97392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 357 -> 0 bytes ...06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 357 -> 0 bytes ...8cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 357 -> 0 bytes ...a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 357 -> 0 bytes ...e3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 357 -> 0 bytes ...70332-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 357 -> 0 bytes ...8af72-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 357 -> 0 bytes ...5d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 357 -> 0 bytes ...4cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 357 -> 0 bytes ...2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 357 -> 0 bytes ...9bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 357 -> 0 bytes ...d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 398 -> 0 bytes ...192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 398 -> 0 bytes ...fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 398 -> 0 bytes ...125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz | Bin 324 -> 0 bytes ...5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz | Bin 324 -> 0 bytes ...63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz | Bin 324 -> 0 bytes ...97392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 398 -> 0 bytes ...24405-f58b-4774-8782-b9e7c25f989f-c000.json.gz | Bin 324 -> 0 bytes ...dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz | Bin 324 -> 0 bytes ...4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz | Bin 324 -> 0 bytes ...e3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 398 -> 0 bytes ...8af72-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 398 -> 0 bytes ...5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz | Bin 324 -> 0 bytes ...e3882-3a44-41e4-963b-5f602891de01-c000.json.gz | Bin 324 -> 0 bytes ...2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 398 -> 0 bytes ...9bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 398 -> 0 bytes ...d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 323 -> 0 bytes ...487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz | Bin 323 -> 0 bytes ...192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 323 -> 0 bytes ...fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 323 -> 0 bytes ...a0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz | Bin 323 -> 0 bytes ...97392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 323 -> 0 bytes ...06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz | Bin 323 -> 0 bytes ...8cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz | Bin 323 -> 0 bytes ...a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz | Bin 323 -> 0 bytes ...e3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 323 -> 0 bytes ...70332-a058-44b8-962c-4350e0e108a7-c000.json.gz | Bin 323 -> 0 bytes ...8af72-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 323 -> 0 bytes ...5d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz | Bin 323 -> 0 bytes ...4cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz | Bin 323 -> 0 bytes ...2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 323 -> 0 bytes ...9bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 323 -> 0 bytes ...d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 348 -> 0 bytes ...192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 348 -> 0 bytes ...fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 348 -> 0 bytes ...125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz | Bin 348 -> 0 bytes ...5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz | Bin 348 -> 0 bytes ...63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz | Bin 348 -> 0 bytes ...97392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 348 -> 0 bytes ...24405-f58b-4774-8782-b9e7c25f989f-c000.json.gz | Bin 348 -> 0 bytes ...dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz | Bin 348 -> 0 bytes ...4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz | Bin 348 -> 0 bytes ...e3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 348 -> 0 bytes ...8af72-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 348 -> 0 bytes ...5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz | Bin 348 -> 0 bytes ...e3882-3a44-41e4-963b-5f602891de01-c000.json.gz | Bin 348 -> 0 bytes ...2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 348 -> 0 bytes ...9bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 348 -> 0 bytes ...d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz | Bin 324 -> 0 bytes ...192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz | Bin 324 -> 0 bytes ...fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz | Bin 324 -> 0 bytes ...97392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz | Bin 324 -> 0 bytes ...e3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz | Bin 324 -> 0 bytes ...8af72-f830-4638-984b-becff6aa4587-c000.json.gz | Bin 324 -> 0 bytes ...2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz | Bin 324 -> 0 bytes ...9bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz | Bin 324 -> 0 bytes .../dhp-enrichment/null/resOrg/._SUCCESS.crc | Bin 8 -> 0 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 12 -> 0 bytes ...5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc | Bin 12 -> 0 bytes dhp-workflows/dhp-enrichment/null/resOrg/_SUCCESS | 0 ...35ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 20 -> 0 bytes ...35ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 169 -> 0 bytes ...35ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 137 -> 0 bytes ...35ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 184 -> 0 bytes ...35ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 126 -> 0 bytes ...35ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz | Bin 164 -> 0 bytes 292 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dhp-workflows/dhp-enrichment/null/leaves/._SUCCESS.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/leaves/.part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/leaves/_SUCCESS delete mode 100644 dhp-workflows/dhp-enrichment/null/leaves/part-00000-366e33b9-ad38-4761-a051-bb601aecc3f0-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/._SUCCESS.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/.part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/_SUCCESS delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-08f52c24-8e11-4513-a719-beee952de6ee-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-2dc8bfd2-49b1-48ae-951b-6febe9db8857-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3611fa1f-4b12-4f0b-9f3b-f29a7a51b646-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-3c4369da-e550-47d3-90a8-5854c6c07c5e-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4332f647-c748-4164-aba1-1e45fbadda99-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-810d7e27-1b9a-4ecc-aafa-ceb787179fe5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a127934e-6383-4d37-97e4-124125abfca5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-beb4081a-16d5-4381-a03b-9f2ed0830707-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00000-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00006-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00048-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00049-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00077-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00115-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-07f487a3-f095-44a3-972a-a16a4be763dc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-40ca0d2a-e8cd-4e7b-aca5-771b6ad3de55-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-59d06ec6-72d5-432a-bf9c-444d99f2c7db-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-7888cb4e-b25f-4d29-b277-ac25b25142cb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a52a9e1b-465e-4d14-905a-1c0027db70f8-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-c7870332-a058-44b8-962c-4350e0e108a7-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-e405d44c-758a-4019-a3a4-55ca75b6d857-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-ef74cb50-c002-43f9-b2e8-65c57158af28-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00166-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-362125c4-4bd9-46e5-891f-958f2f029ac5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-45b5160a-ee5e-415b-9aff-34ddc7257b59-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-4de63a5e-c388-4b7c-8a8a-d39f75dc61e9-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-57224405-f58b-4774-8782-b9e7c25f989f-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-8a8dfab3-41f0-419a-bef1-d30e052ca15a-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-9ae4c66a-fe16-4607-a98d-ae6ad338fccb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-e1d5ac50-30a4-46a7-a736-feb6d779b206-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f15e3882-3a44-41e4-963b-5f602891de01-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00187-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-044d64fe-f14a-4909-8047-ea2fb018bd87-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-102192a9-b290-4b46-a1b2-71d347c94003-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-311fa8dc-bf3e-4d9a-934b-50ec40b310c5-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-52897392-1ce3-49b8-b6e4-16726cef4aeb-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-a8be3668-cc74-4849-a47d-1fc7646acedc-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-da88af72-f830-4638-984b-becff6aa4587-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-f2b2d6cb-1513-43b5-a5f9-3c62e202eef1-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/newRelation/part-00192-fc39bc8a-c1f9-4998-95af-290f0f7a57d6-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/._SUCCESS.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/.part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz.crc delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/_SUCCESS delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00000-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00047-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00055-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00096-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00117-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz delete mode 100644 dhp-workflows/dhp-enrichment/null/resOrg/part-00140-af835ec5-a763-44f1-ad60-c02307951b8e-c000.json.gz diff --git a/dhp-workflows/dhp-enrichment/null/leaves/._SUCCESS.crc b/dhp-workflows/dhp-enrichment/null/leaves/._SUCCESS.crc deleted file mode 100644 index 3b7b044936a890cd8d651d349a752d819d71d22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmYc;N@ieSU}69O2$TUk 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F diff --git a/dhp-workflows/dhp-enrichment/null/leaves/_SUCCESS b/dhp-workflows/dhp-enrichment/null/leaves/_SUCCESS deleted file mode 100644 index e69de29bb2..0000000000 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/._SUCCESS.crc b/dhp-workflows/dhp-enrichment/null/newRelation/._SUCCESS.crc deleted file mode 100644 index 3b7b044936a890cd8d651d349a752d819d71d22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmYc;N@ieSU}69O2$TUk 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 444ebf0e34af16d32e663373a50f0161b9d62839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}A{p5&H!I5Jm#F 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 3c70b3ca0bb0105e1a1d3e2d4b87dffc34279883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D&!rRfa-5o-dC 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 deleted file mode 100644 index 9690bbf5222c463c882b01ad99b0f5b07868ab7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ 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 deleted file mode 100644 index 9690bbf5222c463c882b01ad99b0f5b07868ab7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ 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 deleted file mode 100644 index 9690bbf5222c463c882b01ad99b0f5b07868ab7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ 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 deleted file mode 100644 index 9690bbf5222c463c882b01ad99b0f5b07868ab7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ 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 deleted file mode 100644 index 9690bbf5222c463c882b01ad99b0f5b07868ab7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ 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 deleted file mode 100644 index 9690bbf5222c463c882b01ad99b0f5b07868ab7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ 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 deleted file mode 100644 index 9690bbf5222c463c882b01ad99b0f5b07868ab7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ 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 deleted file mode 100644 index 9690bbf5222c463c882b01ad99b0f5b07868ab7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DgHF=YV&60`$^ 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 deleted file mode 100644 index 557a5a816fd1f6ace1abdac1bdaf029130766219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 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 deleted file mode 100644 index 557a5a816fd1f6ace1abdac1bdaf029130766219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 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 deleted file mode 100644 index 557a5a816fd1f6ace1abdac1bdaf029130766219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 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 deleted file mode 100644 index 557a5a816fd1f6ace1abdac1bdaf029130766219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 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 deleted file mode 100644 index 557a5a816fd1f6ace1abdac1bdaf029130766219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 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 deleted file mode 100644 index 557a5a816fd1f6ace1abdac1bdaf029130766219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 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 deleted file mode 100644 index 557a5a816fd1f6ace1abdac1bdaf029130766219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 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 deleted file mode 100644 index 557a5a816fd1f6ace1abdac1bdaf029130766219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}DhNd+!|p69EJ4 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index b3370486fb295f23b42e0034756726538c75d20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}Df%`Sc3_64?Xg 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 deleted file mode 100644 index ba9dc02f200333afbab6d6d41e643ee3829765cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE 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 deleted file mode 100644 index ba9dc02f200333afbab6d6d41e643ee3829765cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE 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 deleted file mode 100644 index ba9dc02f200333afbab6d6d41e643ee3829765cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE 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 deleted file mode 100644 index c0e5dc3160176fc74b43c74a92873202cf6f48e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN 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 deleted file mode 100644 index c0e5dc3160176fc74b43c74a92873202cf6f48e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN 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 deleted file mode 100644 index c0e5dc3160176fc74b43c74a92873202cf6f48e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN 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 deleted file mode 100644 index ba9dc02f200333afbab6d6d41e643ee3829765cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE 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 deleted file mode 100644 index c0e5dc3160176fc74b43c74a92873202cf6f48e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN 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 deleted file mode 100644 index c0e5dc3160176fc74b43c74a92873202cf6f48e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN 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 deleted file mode 100644 index c0e5dc3160176fc74b43c74a92873202cf6f48e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN 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 deleted file mode 100644 index ba9dc02f200333afbab6d6d41e643ee3829765cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE 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 deleted file mode 100644 index ba9dc02f200333afbab6d6d41e643ee3829765cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE 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 deleted file mode 100644 index c0e5dc3160176fc74b43c74a92873202cf6f48e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN 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 deleted file mode 100644 index c0e5dc3160176fc74b43c74a92873202cf6f48e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(d`C>T$6OseN 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 deleted file mode 100644 index ba9dc02f200333afbab6d6d41e643ee3829765cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE 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 deleted file mode 100644 index ba9dc02f200333afbab6d6d41e643ee3829765cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E5~FHQmg52XTE 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 2f7fbb2e7d7779ad00d319091cc6ec02c3032d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}D(N^Z6bC6sQD9 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index 5ea578242fce12608d5ad0076d5368e5ab1e5ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}E?yp{fZ05-$Rt 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 deleted file mode 100644 index fcf53cc925f084a3da1796db662c25862b516e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH 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 deleted file mode 100644 index fcf53cc925f084a3da1796db662c25862b516e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH 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 deleted file mode 100644 index fcf53cc925f084a3da1796db662c25862b516e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH 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 deleted file mode 100644 index fcf53cc925f084a3da1796db662c25862b516e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH 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 deleted file mode 100644 index fcf53cc925f084a3da1796db662c25862b516e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH 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 deleted file mode 100644 index fcf53cc925f084a3da1796db662c25862b516e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH 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 deleted file mode 100644 index fcf53cc925f084a3da1796db662c25862b516e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH 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 deleted file mode 100644 index fcf53cc925f084a3da1796db662c25862b516e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}88fsLBWc5gGzH diff --git a/dhp-workflows/dhp-enrichment/null/newRelation/_SUCCESS b/dhp-workflows/dhp-enrichment/null/newRelation/_SUCCESS deleted file mode 100644 index e69de29bb2..0000000000 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index 001322f84b053326cd87d0b2f1df13fddaa4da35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 Rcmb2|=3syTW+=_T000et0JZ=C 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index a92a574363a35b56952a13cd4f2d141e75662967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmV-q0h|6GiwFP!000000CiHaPQx$|-T8{hbA^)7G>Ny0sS^mXAyi%Lb7JJ$k?jwnyLUb^2@y6{ImVAnqQQu=J7}xWqZP=w0uyk-t}ml^d$f>xjEWI@ zh}v0p!FZI6M?WRbUI*Qoo63z0B9UmQFc5+!67v`)6S?y}SpAh$dBB}VL*fZ$VK zhDeC~zNzMVjs$(w7#M$hU(izKakfs70m6EUgYz33qK?xgHbT4}M!W{_^lSgwhnsu~ zyUM>M%4ytws%@SZoR>}8VpSKbyshiDST$u?Dv4dyijGP-lc(}01Do~+l>paJzfhy_l!D#w9^R3fqPj^2&;{s$#0ssJb CKdVy! 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 deleted file mode 100644 index 2298c84f35b5aa39d6f4462670bb5e978eb563d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI 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 deleted file mode 100644 index 2298c84f35b5aa39d6f4462670bb5e978eb563d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI 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 deleted file mode 100644 index 2298c84f35b5aa39d6f4462670bb5e978eb563d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI 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 deleted file mode 100644 index 2298c84f35b5aa39d6f4462670bb5e978eb563d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI 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 deleted file mode 100644 index 2298c84f35b5aa39d6f4462670bb5e978eb563d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI 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 deleted file mode 100644 index 2298c84f35b5aa39d6f4462670bb5e978eb563d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI 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 deleted file mode 100644 index 2298c84f35b5aa39d6f4462670bb5e978eb563d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI 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 deleted file mode 100644 index 2298c84f35b5aa39d6f4462670bb5e978eb563d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmV-J0lfYniwFP!000000G(1hPXjRw-uV@$%oRE+`pQ-@bpjza#NbPuyP!0w5~orr z{qHzw)hh!FqvP*kf6h^8AlP^lgggq34heO4u-;%quTV$>F5yI6Uv@F<(L?PCE_ToZ z+2F+m6HyCEF;~vsCfm7DWh8^DBsNtJQnE}E5mR;~L+ruZuc|5&ZX-GtuP_hWV*4`M zHo-JtjCJ;0QfSUH4Gl5merQ;MTZ*4ug(MbBYQQa4Q|*!DIM-VJ##|i#K%FLnS53r- z_I^1lb%_KcSxiE{e@u8O_f$q_$N*`bX$W!S6Isfa*ckD4*x@yR=bQb@93jUV_N@KZ z0X~7nmBS?Eg92>3<+Pj4mC~z)n(FSs%vVc|X3;Jl3psbMSNWTqxJ3|qER#?Fp}PlX V`R9~d*VCTvegKR-kKalH000qVk}3cI 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 deleted file mode 100644 index fe56417e97d74ab67f9276c2107723cc38754721..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmV-M0lEGkiwFP!000000G(1jYr`-Q-TNzy=1?4ilUQ5ml&Ph3D<#O*$ri|xkxnUT zn*ZLD65@2|((!cf(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5Dy(P1@L)S&TnQ6k!EP^;cL%T{_ZStE z=mlzL*%jkKGLAlG&Ory=nptHgi!PJMv@;?EO(fLzzEq?T0lO}we5amu8x18&I?AX z1|&rJxT#Z}A_0#Y0^{!=3tGxNrO^p8h_H<~IKQ(2HO6afgm^nna0}r1ZvQlgi#~^4 zm){a(oc5n;UzSVGt4-5DyNy0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 5e63538ede2100ae5998b99b4d0bc4cba57fae99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmV-r0h<0FiwFP!000000CiHaPQx$|-T8{hbA{ZLG>Ny0sS^mXAyi%Lb7SP%mF*Oj z(tqdTRt*e{=X>wnyLUb@1qs$pdnQgyp~Zx%I~u1kpp(di1{-n4ZZG@b59lEG7!`Zi zLNea5D<+^~B84Gy4knt;PAU@_WG2y2X(2{KBo;6ZHVGfL;LKN66%ls_lS#uhHbT4}_jn87>DT_F4?lz) zcE!IHs$swR)Emy{LX=J0VpY$VyshhYzHG{})C#+*l^vC8BoE!oP5xI-)JhPxI65y$ z*TV;pX=yQ%ZU@lvMX4mO8nuv()^)?>L%Hm@oVS|D2e5{I&Uov5+VkBHTh#5|N&)}? Dx;?59 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 deleted file mode 100644 index 6f7008b990668e5684da12efdc23ea58cd6df210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df8xiwFP!000000PRvuYa1~Tz4uovI-8>PuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQFD@<*v~l%4Fqe~c_EKNqeVj99*pZSpi?Mh2R7nFTwiv<@6kc&2`+Zf z0~znc1rtyUNg)-^-bB;dQDr29DkL^l7Gg9^5&>hfBz@??nXjTMBW?p)7B4Ud+id$f z+E%`+pzDk^=aPJNmZ@k6KJ`Pz3fxlsYzri^SX2XUv6yOyB*(c{>Nn=%_y_7V5xi<7 zM%4FP ztvzgj#g)Y`vYBFsYB{fKoGzew(wUsvx2yb3PTV30J?6l}m0ssIHQPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdPuJ%K>&{IwcA-7V>tTghf$dZw? zhSbe}@2q0%6j~^`1)|$%-g`6iW=>2)hFfm}lP9LpVMaYYS#L0+SIDFRmvF-_KZh8O z=%M5o1qawcw!yPACZc9C$E9$NHrdHtRjy=Eg+xV_gOn_hSj4orEJNIZw?B)jOt_Ee zNW8#2?ANmQ*RoYG6&PckeF<}@USz5~$FS_?iWDfN=-U-YBC(`q++!)KJ!X0B>qh;F zIamA#>UqOx)RYOqKM!J!S4%Kvi;2mv-!?Rq`?9u9kQvg=lIIX_eabd3XWIzz_;kRF z0e7$FU;7A4EM^P-O9%J?B(5ALDS6Yk!=xsmd(o;<)M!wRJ?B^tAUeI0m+9dm|H>yy zWr#amJKw%R_Xy6?<*d6dt9|}-`naU`dr7qdI6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&I6b;h~Z+N6C>BI>`SFm z`rkRbRZ|8Q#`C?8yLUba4Fqd%f{+KH(IKJk_SPGW=oJcSz$KiC%gZ)~9eOA|!NnGO zARD|mV%w% zi2Al&m}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 6cfe02812d5b9e72b8204dbc970edbd359d679c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmV-i0i*sOiwFP!000000CiG5Z^AGT-TNyd&!{qikl+nm}pu%sZ3;$nM9`2LX3t;EMOdL5ybRPuQ&O-oT!x`bU034{?+A+ udfBwHtyEnt<+_@qM!Bvz$9V(QN)h=0*3i!xZ=Fwje)s`+sm?P>0ssJmIi^(r 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 deleted file mode 100644 index 9e0f1691ec6b977af3514ba3758ef6fa23058a6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWSmiwFP!000000G(1hPs1<}-uV@g=L)5yDXq7PsS^mXA%rgWIkDu}l^>N# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxyN# z>3`?!R!tdL@OHlMarfCrCLzMsD#!SdNi-Nyb_Z=0db9!=S6~9p*!5=T-5xEJ9;0Fh zJw)v+yI?#@#-mS#v)4g)W>T5RAPR|0g@F(>k(kGjOyth@VD(o~JhQtfZ!kBGe zCfmxX3Y5}DpUdc~vrH8S?@~Whq(Ch}*QP)Mi3Ks>h{aS|jC`7FBYtBpj(?y|Ge)b1 zNQnA=)#f@!f<9^tjK6=(XeslQM<>VtVUyzE{MLr3W4gpfh_}NIuK_&Y?4Rdw$(OL( z`kSOJXpf(CI7hK;8(h_k_40AvG~Ig9ER~c^EgPlUxy zurM&b;nT18Fekm6U3W zus2w}=5_9Gr3bLpduAnPJ7DM7b{-K+)4#F@DK;fNZcxG_o{Q4S<2%#i)q(VheDM*NNcX|ch z{^@<-s&8QMxK4Mym0{NN7PGeCNfWvpq9Ll;QRpIsLcMz8sYqHgc)+EPfrJ5dc673PA+r0hzdHU{tq0(29u>b%7J`q7k 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 deleted file mode 100644 index 7ee2b282a26fcda1d29218e128be371dd41765e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmV;p07w5HiwFP!000000Hw}34ni>uMbVyRq^5A3A1BT>C=o)5V@nJYUyMS)-hqOS z3d&a;y?b*Ty}IHe+`IPExV+dBz?XuVS!419oDzG=h-h6~WNEM2-PE1y_M|gCx-xh8 zgMXV{UDy3_C0jj|5}1%sl>=GmL6OWr37S@ts_@M~NJDPYVoz}pj$TcL6M*_$fp|8zcuby8TUty_0RRB=jZ(A# 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 deleted file mode 100644 index 0389977c081f89118b6305eefb5a039bdd116635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmb2|=3sz;xu>o94jJ$;T$r0&kyc=rHz%f9u(Tk@ok>g4(b1`OcQJ$6y?s2R@a`gHR!{`DDFk;2v+i3Xdv dCV8Jq7I8aU_-e&Mz8Utr_4ge7WwQ}zEdbLjG)Djc 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 deleted file mode 100644 index 57f1fb89852e4d92e02b9ed0fef7e3e68e292b12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmV;V09*ebiwFP!000000G-WC3c@fHh2go&xMK%5N%P!>LlH^t1FFSJt%6whZb4Vz zng8c|!C9VAz~jPWJ=JOMX^>kfhN@sow)sHBIg;gOG~~ph5n~5ic+}x8JDH*E!QwJr z<+6TE$91Jtuhfz>>!oqfNNi0O)M_L!lUaNFhxv1AKgrh-3f@V=E{ABGYq@hlnH{oI S^@ic_-h2RjRboHo0002)#82M< From 28ea532ecefeac266b425ce770958b0fd195a75c Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 16 Nov 2021 15:24:19 +0100 Subject: [PATCH 07/14] [Affilaition Propagation] moved the selection of graph relation as a preparation step --- .../PrepareInfo.java | 17 +++++++- .../SparkResultToOrganizationFromSemRel.java | 6 +-- .../StepActions.java | 13 ++---- .../input_preparation_parameter.json | 6 +++ .../input_propagation_parameter.json | 4 +- .../oozie_app/workflow.xml | 3 +- .../PrepareInfoJobTest.java | 42 +++++++++++++++---- .../SparkJobTest.java | 8 ++-- 8 files changed, 71 insertions(+), 28 deletions(-) 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 d853f3858a..707462f24e 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 @@ -73,6 +73,9 @@ public class PrepareInfo implements Serializable { final String resultOrganizationPath = parser.get("resultOrgPath"); log.info("resultOrganizationPath: {}", resultOrganizationPath); + final String relationPath = parser.get("relationPath"); + log.info("relationPath: {}", relationPath); + SparkConf conf = new SparkConf(); conf.set("hive.metastore.uris", parser.get("hive_metastore_uris")); @@ -84,11 +87,12 @@ public class PrepareInfo implements Serializable { graphPath, childParentPath, leavesPath, - resultOrganizationPath)); + resultOrganizationPath, + relationPath)); } private static void prepareInfo(SparkSession spark, String inputPath, String childParentOrganizationPath, - String currentIterationPath, String resultOrganizationPath) { + String currentIterationPath, String resultOrganizationPath, String relationPath) { Dataset relation = readPath(spark, inputPath + "/relation", Relation.class); relation.createOrReplaceTempView("relation"); @@ -108,6 +112,15 @@ public class PrepareInfo implements Serializable { .option("compression", "gzip") .json(resultOrganizationPath); + relation + .filter( + (FilterFunction) r -> !r.getDataInfo().getDeletedbyinference() && + r.getRelClass().equals(ModelConstants.HAS_AUTHOR_INSTITUTION)) + .write() + .mode(SaveMode.Overwrite) + .option("compression","gzip") + .json(relationPath); + Dataset children = spark .sql( "Select distinct target as child from relation where " + 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 f5d8361d75..e26276f53f 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 @@ -49,8 +49,8 @@ public class SparkResultToOrganizationFromSemRel implements Serializable { Boolean isSparkSessionManaged = isSparkSessionManaged(parser); log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - String graphPath = parser.get("graphPath"); - log.info("graphPath: {}", graphPath); + String relationPath = parser.get("relationPath"); + log.info("relationPath: {}", relationPath); final String outputPath = parser.get("outputPath"); log.info("outputPath: {}", outputPath); @@ -78,7 +78,7 @@ public class SparkResultToOrganizationFromSemRel implements Serializable { leavesPath, childParentPath, resultOrganizationPath, - graphPath, + relationPath, workingPath, outputPath)); } 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 index d190e53423..02444cb152 100644 --- 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 @@ -26,16 +26,11 @@ import scala.Tuple2; public class StepActions implements Serializable { - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - 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)); + Dataset relationGraph = readPath(spark, graphPath, Relation.class); // select only the relation source target among those proposed by propagation that are not already existent getNewRels( newRelationPath, relationGraph, @@ -80,8 +75,8 @@ public class StepActions implements Serializable { ret.setValueSet(orgs); return ret; }, Encoders.bean(KeyValueSet.class)) - .write() - .mode(SaveMode.Overwrite) + .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(outputPath); } @@ -116,7 +111,7 @@ public class StepActions implements Serializable { // 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 + // if at least one relation in the set was not produced by propagation no new relation will be returned relationDataset .union(newRels) 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 index baa8ba333c..c79bfe05d8 100644 --- 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 @@ -34,5 +34,11 @@ "paramLongName": "isSparkSessionManaged", "paramDescription": "the path where prepared info have been stored", "paramRequired": false + }, + { + "paramName": "rep", + "paramLongName": "relationPath", + "paramDescription": "the path where to store the selected subset of relations", + "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 index bd7bb50f9a..f73cc221ef 100644 --- 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 @@ -1,7 +1,7 @@ [ { - "paramName":"gp", - "paramLongName":"graphPath", + "paramName":"rep", + "paramLongName":"relationPath", "paramDescription": "the path of the sequencial file to read", "paramRequired": true }, 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 index e62ce0f5ac..17502abea0 100644 --- 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 @@ -150,6 +150,7 @@ --leavesPath${workingDir}/preparedInfo/leavesPath --childParentPath${workingDir}/preparedInfo/childParentPath --resultOrgPath${workingDir}/preparedInfo/resultOrgPath + --relationPath${workingDir}/preparedInfo/relation @@ -173,7 +174,7 @@ --conf spark.dynamicAllocation.enabled=true --conf spark.dynamicAllocation.maxExecutors=${spark2MaxExecutors} - --graphPath${sourcePath} + --relationPath${workingDir}/preparedInfo/relation --outputPath${outputPath}/relation --leavesPath${workingDir}/preparedInfo/leavesPath --childParentPath${workingDir}/preparedInfo/childParentPath 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 973c663b92..21d99321bf 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 @@ -84,6 +84,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", + "-relationPath", workingDir.toString() + "/relation" }); @@ -228,6 +229,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", + "-relationPath", workingDir.toString() + "/relation" }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); @@ -332,6 +334,35 @@ public class PrepareInfoJobTest { } + @Test + public void relationTest()throws Exception { + + 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/", + "-relationPath", workingDir.toString() + "/relation" + + }); + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/relation") + .map(item -> OBJECT_MAPPER.readValue(item, Relation.class)); + + Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(Relation.class)); + + Assertions.assertEquals(7, verificationDs.count()); + + } @Test public void resultOrganizationTest1() throws Exception { @@ -347,6 +378,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", + "-relationPath", workingDir.toString() + "/relation" }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); @@ -467,10 +499,6 @@ public class PrepareInfoJobTest { @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( @@ -484,6 +512,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", + "-relationPath", workingDir.toString() + "/relation" }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); @@ -510,12 +539,9 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", + "-relationPath", workingDir.toString() + "/relation" }); -// 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()); 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 index 5a4b19a24f..7dd575b660 100644 --- 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 @@ -101,9 +101,9 @@ public class SparkJobTest { .main( new String[] { "-isSparkSessionManaged", Boolean.FALSE.toString(), - "-graphPath", graphPath, + "-relationPath", graphPath, "-hive_metastore_uris", "", - "-outputPath", workingDir.toString() + "/relation", + "-outputPath", workingDir.toString() + "/finalrelation", "-leavesPath", workingDir.toString() + "/leavesInput", "-resultOrgPath", workingDir.toString() + "/orgsInput", "-childParentPath", childParentPath, @@ -113,9 +113,11 @@ public class SparkJobTest { final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); JavaRDD tmp = sc - .textFile(workingDir.toString() + "/relation") + .textFile(workingDir.toString() + "/finalrelation") .map(item -> OBJECT_MAPPER.readValue(item, Relation.class)); + tmp.foreach(r -> System.out.println(OBJECT_MAPPER.writeValueAsString(r))); + Assertions.assertEquals(18, tmp.count()); tmp.foreach(r -> Assertions.assertEquals(ModelConstants.AFFILIATION, r.getSubRelType())); tmp.foreach(r -> Assertions.assertEquals(ModelConstants.RESULT_ORGANIZATION, r.getRelType())); From 5e17247bb658de3d7b5fb0db39d3337cbeaa6fd1 Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Mon, 13 Dec 2021 11:48:40 +0100 Subject: [PATCH 08/14] avoid NPEs merging XMLInstance(s) --- .../oa/provision/utils/XmlRecordFactory.java | 89 +++++++++---------- 1 file changed, 40 insertions(+), 49 deletions(-) diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java index 66827af67f..8bf2a41850 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java @@ -1,50 +1,6 @@ package eu.dnetlib.dhp.oa.provision.utils; -import static eu.dnetlib.dhp.oa.provision.utils.GraphMappingUtils.authorPidTypes; -import static eu.dnetlib.dhp.oa.provision.utils.GraphMappingUtils.getRelDescriptor; -import static org.apache.commons.lang3.StringUtils.isNotBlank; -import static org.apache.commons.lang3.StringUtils.substringBefore; - -import java.io.IOException; -import java.io.Serializable; -import java.io.StringReader; -import java.io.StringWriter; -import java.net.URL; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collector; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; -import org.apache.solr.common.util.URLUtil; -import org.apache.spark.util.LongAccumulator; -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.Element; -import org.dom4j.Node; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.SAXReader; -import org.dom4j.io.XMLWriter; - import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Joiner; import com.google.common.base.Splitter; @@ -53,14 +9,42 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.mycila.xmltool.XMLDoc; import com.mycila.xmltool.XMLTag; - import eu.dnetlib.dhp.oa.provision.model.JoinedEntity; import eu.dnetlib.dhp.oa.provision.model.RelatedEntity; import eu.dnetlib.dhp.oa.provision.model.RelatedEntityWrapper; import eu.dnetlib.dhp.oa.provision.model.XmlInstance; import eu.dnetlib.dhp.schema.common.*; +import eu.dnetlib.dhp.schema.oaf.Result; import eu.dnetlib.dhp.schema.oaf.*; import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; +import org.apache.spark.util.LongAccumulator; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.Node; +import org.dom4j.io.OutputFormat; +import org.dom4j.io.SAXReader; +import org.dom4j.io.XMLWriter; + +import javax.xml.transform.*; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.IOException; +import java.io.Serializable; +import java.io.StringReader; +import java.io.StringWriter; +import java.net.URL; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static eu.dnetlib.dhp.oa.provision.utils.GraphMappingUtils.authorPidTypes; +import static eu.dnetlib.dhp.oa.provision.utils.GraphMappingUtils.getRelDescriptor; +import static org.apache.commons.lang3.StringUtils.isNotBlank; +import static org.apache.commons.lang3.StringUtils.substringBefore; public class XmlRecordFactory implements Serializable { @@ -1274,6 +1258,7 @@ public class XmlRecordFactory implements Serializable { private Stream groupInstancesByUrl(List instance) { return instance .stream() + .filter(i -> Objects.nonNull(i.getUrl())) .map(i -> { i .setUrl( @@ -1329,18 +1314,24 @@ public class XmlRecordFactory implements Serializable { instance.getCollectedfrom().add(i.getCollectedfrom()); instance.getHostedby().add(i.getHostedby()); instance.getInstancetype().add(i.getInstancetype()); - instance.getLicense().add(i.getLicense().getValue()); - instance.getDistributionlocation().add(i.getDistributionlocation()); instance.getPid().addAll(i.getPid()); instance.getAlternateIdentifier().addAll(i.getAlternateIdentifier()); - instance.getDateofacceptance().add(i.getDateofacceptance().getValue()); + instance.getRefereed().add(i.getRefereed()); instance .setProcessingchargeamount( Optional.ofNullable(i.getProcessingchargeamount()).map(apc -> apc.getValue()).orElse(null)); instance .setProcessingchargecurrency( Optional.ofNullable(i.getProcessingchargecurrency()).map(c -> c.getValue()).orElse(null)); - instance.getRefereed().add(i.getRefereed()); + Optional + .ofNullable(i.getDateofacceptance()) + .ifPresent(d -> instance.getDateofacceptance().add(d.getValue())); + Optional + .ofNullable(i.getLicense()) + .ifPresent(license -> instance.getLicense().add(license.getValue())); + Optional + .ofNullable(i.getDistributionlocation()) + .ifPresent(dl -> instance.getDistributionlocation().add(dl)); }); if (instance.getHostedby().size() > 1 From 98eb292c5971e90cbd67d7e833f720879d9dff5e Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Mon, 13 Dec 2021 13:27:20 +0100 Subject: [PATCH 09/14] avoid NPEs merging XMLInstance(s) --- .../oa/provision/utils/XmlRecordFactory.java | 73 ++++++++++--------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java index 8bf2a41850..af7c7b7c33 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/utils/XmlRecordFactory.java @@ -1,22 +1,24 @@ package eu.dnetlib.dhp.oa.provision.utils; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import com.mycila.xmltool.XMLDoc; -import com.mycila.xmltool.XMLTag; -import eu.dnetlib.dhp.oa.provision.model.JoinedEntity; -import eu.dnetlib.dhp.oa.provision.model.RelatedEntity; -import eu.dnetlib.dhp.oa.provision.model.RelatedEntityWrapper; -import eu.dnetlib.dhp.oa.provision.model.XmlInstance; -import eu.dnetlib.dhp.schema.common.*; -import eu.dnetlib.dhp.schema.oaf.Result; -import eu.dnetlib.dhp.schema.oaf.*; -import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; +import static eu.dnetlib.dhp.oa.provision.utils.GraphMappingUtils.authorPidTypes; +import static eu.dnetlib.dhp.oa.provision.utils.GraphMappingUtils.getRelDescriptor; +import static org.apache.commons.lang3.StringUtils.isNotBlank; +import static org.apache.commons.lang3.StringUtils.substringBefore; + +import java.io.IOException; +import java.io.Serializable; +import java.io.StringReader; +import java.io.StringWriter; +import java.net.URL; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import javax.xml.transform.*; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; @@ -29,22 +31,23 @@ import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; -import javax.xml.transform.*; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import java.io.IOException; -import java.io.Serializable; -import java.io.StringReader; -import java.io.StringWriter; -import java.net.URL; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Joiner; +import com.google.common.base.Splitter; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import com.mycila.xmltool.XMLDoc; +import com.mycila.xmltool.XMLTag; -import static eu.dnetlib.dhp.oa.provision.utils.GraphMappingUtils.authorPidTypes; -import static eu.dnetlib.dhp.oa.provision.utils.GraphMappingUtils.getRelDescriptor; -import static org.apache.commons.lang3.StringUtils.isNotBlank; -import static org.apache.commons.lang3.StringUtils.substringBefore; +import eu.dnetlib.dhp.oa.provision.model.JoinedEntity; +import eu.dnetlib.dhp.oa.provision.model.RelatedEntity; +import eu.dnetlib.dhp.oa.provision.model.RelatedEntityWrapper; +import eu.dnetlib.dhp.oa.provision.model.XmlInstance; +import eu.dnetlib.dhp.schema.common.*; +import eu.dnetlib.dhp.schema.oaf.*; +import eu.dnetlib.dhp.schema.oaf.Result; +import eu.dnetlib.dhp.schema.oaf.utils.IdentifierFactory; public class XmlRecordFactory implements Serializable { @@ -1314,8 +1317,6 @@ public class XmlRecordFactory implements Serializable { instance.getCollectedfrom().add(i.getCollectedfrom()); instance.getHostedby().add(i.getHostedby()); instance.getInstancetype().add(i.getInstancetype()); - instance.getPid().addAll(i.getPid()); - instance.getAlternateIdentifier().addAll(i.getAlternateIdentifier()); instance.getRefereed().add(i.getRefereed()); instance .setProcessingchargeamount( @@ -1323,6 +1324,12 @@ public class XmlRecordFactory implements Serializable { instance .setProcessingchargecurrency( Optional.ofNullable(i.getProcessingchargecurrency()).map(c -> c.getValue()).orElse(null)); + Optional + .ofNullable(i.getPid()) + .ifPresent(pid -> instance.getPid().addAll(pid)); + Optional + .ofNullable(i.getAlternateIdentifier()) + .ifPresent(altId -> instance.getAlternateIdentifier().addAll(altId)); Optional .ofNullable(i.getDateofacceptance()) .ifPresent(d -> instance.getDateofacceptance().add(d.getValue())); From aff3ddc8d25932f802c1871afa858ecfa20c61d7 Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Tue, 14 Dec 2021 11:41:46 +0100 Subject: [PATCH 10/14] added cleaning for the format field, removing carrige return and tab characters --- .../dhp/schema/oaf/utils/GraphCleaningFunctions.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GraphCleaningFunctions.java b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GraphCleaningFunctions.java index 42e19628c0..37f5573d0e 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GraphCleaningFunctions.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/schema/oaf/utils/GraphCleaningFunctions.java @@ -230,6 +230,15 @@ public class GraphCleaningFunctions extends CleaningFunctions { .map(GraphCleaningFunctions::cleanValue) .collect(Collectors.toList())); } + if (Objects.nonNull(r.getFormat())) { + r + .setFormat( + r + .getFormat() + .stream() + .map(GraphCleaningFunctions::cleanValue) + .collect(Collectors.toList())); + } if (Objects.nonNull(r.getDescription())) { r .setDescription( From e5bff64f2e34355a7e9ce2ba1c3b49b517e8211e Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Tue, 14 Dec 2021 09:56:55 +0100 Subject: [PATCH 11/14] [scholexplorer] - Minor fix on SparkConvertRDDtoDataset -first implementation of retrieve datacite dump --- .../sx/graph/SparkRetrieveDataciteDelta.scala | 54 +++++++++++++++++++ .../graph/finalGraph/oozie_app/workflow.xml | 2 +- .../sx/graph/SparkConvertRDDtoDataset.scala | 28 +++++----- 3 files changed, 69 insertions(+), 15 deletions(-) create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala new file mode 100644 index 0000000000..62f53e4ad0 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala @@ -0,0 +1,54 @@ +package eu.dnetlib.dhp.sx.graph + +import eu.dnetlib.dhp.application.AbstractScalaApplication +import eu.dnetlib.dhp.schema.oaf.{Oaf, Result} +import org.apache.spark.sql.{Encoder, Encoders, SparkSession} +import org.apache.spark.sql.functions.max +import org.slf4j.Logger + +class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:Logger) extends AbstractScalaApplication(propertyPath, args, log:Logger) { + + + def retrieveLastCollectedFrom(spark:SparkSession, entitiesPath:String):String = { + log.info("Retrieve last entities collected From") + + implicit val oafEncoder:Encoder[Result] = Encoders.kryo[Result] + import spark.implicits._ + + val entitiesDS = spark.read.load(s"$entitiesPath/*").as[Result] + + entitiesDS.filter(r => r.getDateofcollection!= null).map(_.getDateofcollection).select(max("value")).first.getString(0) + + + + } + + + /** + * Here all the spark applications runs this method + * where the whole logic of the spark node is defined + */ + override def run(): Unit = { + val sourcePath = parser.get("sourcePath") + log.info(s"SourcePath is '$sourcePath'") + + val datacitePath = parser.get("datacitePath") + log.info(s"DatacitePath is '$datacitePath'") + + + log.info("Retrieve last entities collected From") + + implicit val oafEncoder:Encoder[Result] = Encoders.kryo[Result] + + val lastCollectionDate = retrieveLastCollectedFrom(spark, s"$sourcePath/entities") + + + + + + + + + + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/finalGraph/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/finalGraph/oozie_app/workflow.xml index 17996c82c0..85c0d486d8 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/finalGraph/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/finalGraph/oozie_app/workflow.xml @@ -79,7 +79,7 @@ --executor-cores=${sparkExecutorCores} --driver-memory=${sparkDriverMemory} --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.shuffle.partitions=20000 + --conf spark.sql.shuffle.partitions=30000 --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkConvertRDDtoDataset.scala b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkConvertRDDtoDataset.scala index 23f039c706..2115df1fd2 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkConvertRDDtoDataset.scala +++ b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkConvertRDDtoDataset.scala @@ -2,12 +2,11 @@ package eu.dnetlib.dhp.sx.graph import com.fasterxml.jackson.databind.ObjectMapper import eu.dnetlib.dhp.application.ArgumentApplicationParser -import eu.dnetlib.dhp.schema.oaf.{OtherResearchProduct, Publication, Relation, Software,Dataset => OafDataset} +import eu.dnetlib.dhp.schema.oaf.{OtherResearchProduct, Publication, Relation, Result, Software, Dataset => OafDataset} import org.apache.commons.io.IOUtils import org.apache.spark.SparkConf import org.apache.spark.sql.{Encoder, Encoders, SaveMode, SparkSession} import org.slf4j.{Logger, LoggerFactory} - object SparkConvertRDDtoDataset { def main(args: Array[String]): Unit = { @@ -32,39 +31,40 @@ object SparkConvertRDDtoDataset { val entityPath = s"$t/entities" val relPath = s"$t/relation" val mapper = new ObjectMapper() - implicit val datasetEncoder: Encoder[OafDataset] = Encoders.kryo(classOf[OafDataset]) - implicit val publicationEncoder: Encoder[Publication] = Encoders.kryo(classOf[Publication]) - implicit val relationEncoder: Encoder[Relation] = Encoders.kryo(classOf[Relation]) - implicit val orpEncoder: Encoder[OtherResearchProduct] = Encoders.kryo(classOf[OtherResearchProduct]) - implicit val softwareEncoder: Encoder[Software] = Encoders.kryo(classOf[Software]) + implicit val datasetEncoder: Encoder[OafDataset] = Encoders.kryo(classOf[OafDataset]) + implicit val publicationEncoder: Encoder[Publication] = Encoders.kryo(classOf[Publication]) + implicit val relationEncoder: Encoder[Relation] = Encoders.kryo(classOf[Relation]) + implicit val orpEncoder: Encoder[OtherResearchProduct] = Encoders.kryo(classOf[OtherResearchProduct]) + implicit val softwareEncoder: Encoder[Software] = Encoders.kryo(classOf[Software]) log.info("Converting dataset") - val rddDataset = spark.sparkContext.textFile(s"$sourcePath/dataset").map(s => mapper.readValue(s, classOf[OafDataset])) + val rddDataset =spark.sparkContext.textFile(s"$sourcePath/dataset").map(s => mapper.readValue(s, classOf[OafDataset])).filter(r=> r.getDataInfo!= null && r.getDataInfo.getDeletedbyinference == false) spark.createDataset(rddDataset).as[OafDataset].write.mode(SaveMode.Overwrite).save(s"$entityPath/dataset") log.info("Converting publication") - val rddPublication = spark.sparkContext.textFile(s"$sourcePath/publication").map(s => mapper.readValue(s, classOf[Publication])) + val rddPublication =spark.sparkContext.textFile(s"$sourcePath/publication").map(s => mapper.readValue(s, classOf[Publication])).filter(r=> r.getDataInfo!= null && r.getDataInfo.getDeletedbyinference == false) spark.createDataset(rddPublication).as[Publication].write.mode(SaveMode.Overwrite).save(s"$entityPath/publication") log.info("Converting software") - val rddSoftware = spark.sparkContext.textFile(s"$sourcePath/software").map(s => mapper.readValue(s, classOf[Software])) + val rddSoftware =spark.sparkContext.textFile(s"$sourcePath/software").map(s => mapper.readValue(s, classOf[Software])).filter(r=> r.getDataInfo!= null && r.getDataInfo.getDeletedbyinference == false) spark.createDataset(rddSoftware).as[Software].write.mode(SaveMode.Overwrite).save(s"$entityPath/software") log.info("Converting otherresearchproduct") - val rddOtherResearchProduct = spark.sparkContext.textFile(s"$sourcePath/otherresearchproduct").map(s => mapper.readValue(s, classOf[OtherResearchProduct])) + val rddOtherResearchProduct =spark.sparkContext.textFile(s"$sourcePath/otherresearchproduct").map(s => mapper.readValue(s, classOf[OtherResearchProduct])).filter(r=> r.getDataInfo!= null && r.getDataInfo.getDeletedbyinference == false) spark.createDataset(rddOtherResearchProduct).as[OtherResearchProduct].write.mode(SaveMode.Overwrite).save(s"$entityPath/otherresearchproduct") log.info("Converting Relation") - val relationSemanticFilter = List("cites", "iscitedby", "merges", "ismergedin") + val relationSemanticFilter = List("cites", "iscitedby","merges", "ismergedin", "HasAmongTopNSimilarDocuments","IsAmongTopNSimilarDocuments" ) - val rddRelation = spark.sparkContext.textFile(s"$sourcePath/relation") + val rddRelation =spark.sparkContext.textFile(s"$sourcePath/relation") .map(s => mapper.readValue(s, classOf[Relation])) - .filter(r => r.getSource.startsWith("50") && r.getTarget.startsWith("50")) + .filter(r=> r.getDataInfo!= null && r.getDataInfo.getDeletedbyinference == false) + .filter(r=> r.getSource.startsWith("50") && r.getTarget.startsWith("50")) .filter(r => !relationSemanticFilter.exists(k => k.equalsIgnoreCase(r.getRelClass))) spark.createDataset(rddRelation).as[Relation].write.mode(SaveMode.Overwrite).save(s"$relPath") From 63952018c09dd5f1c43f5a4323b2d3fdb2a7ee17 Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Tue, 14 Dec 2021 09:58:50 +0100 Subject: [PATCH 12/14] [scholexplorer] -moved SparkRetrieveDataciteDelta in scala folder --- .../eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename dhp-workflows/dhp-graph-mapper/src/main/{java => scala}/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala (96%) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala similarity index 96% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala rename to dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala index 62f53e4ad0..8db2719418 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala +++ b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala @@ -1,9 +1,9 @@ package eu.dnetlib.dhp.sx.graph import eu.dnetlib.dhp.application.AbstractScalaApplication -import eu.dnetlib.dhp.schema.oaf.{Oaf, Result} -import org.apache.spark.sql.{Encoder, Encoders, SparkSession} +import eu.dnetlib.dhp.schema.oaf.Result import org.apache.spark.sql.functions.max +import org.apache.spark.sql.{Encoder, Encoders, SparkSession} import org.slf4j.Logger class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:Logger) extends AbstractScalaApplication(propertyPath, args, log:Logger) { From b881ee5ef8b0f12dfaa25e448e34b1f0e6853c54 Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Wed, 15 Dec 2021 11:25:23 +0100 Subject: [PATCH 13/14] [scholexplorer] - implemented generation of scholix of delta update of datacite --- .../dhp/sx/graph/scholix/ScholixUtils.scala | 57 +++- .../sx/graph/SparkRetrieveDataciteDelta.scala | 291 ++++++++++++++++++ .../sx/graph/SparkRetrieveDataciteDelta.scala | 54 ---- .../sx/graph/RetrieveDataciteDeltaTest.scala | 26 ++ 4 files changed, 364 insertions(+), 64 deletions(-) rename {dhp-workflows/dhp-graph-mapper => dhp-common}/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala (88%) create mode 100644 dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/scala/eu/dnetlib/dhp/sx/graph/RetrieveDataciteDeltaTest.scala diff --git a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala b/dhp-common/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala similarity index 88% rename from dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala rename to dhp-common/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala index bf81a26d46..f8010bbd51 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala +++ b/dhp-common/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala @@ -53,8 +53,6 @@ object ScholixUtils { else { summary.getDate.get(0) } - - } def inverseRelationShip(rel: ScholixRelationship): ScholixRelationship = { @@ -68,7 +66,6 @@ object ScholixUtils { override def zero: RelatedEntities = null override def reduce(b: RelatedEntities, a: (String, String, Long)): RelatedEntities = { - val id = a._1 val relatedDataset = if ("dataset".equalsIgnoreCase(a._2)) a._3 else 0 val relatedPublication = if ("publication".equalsIgnoreCase(a._2)) a._3 else 0 @@ -142,6 +139,14 @@ object ScholixUtils { } + def extractCollectedFrom(summary: ScholixResource): List[ScholixEntityId] = { + if (summary.getCollectedFrom != null && !summary.getCollectedFrom.isEmpty) { + val l: List[ScholixEntityId] = summary.getCollectedFrom.asScala.map { + d => new ScholixEntityId(d.getProvider.getName, d.getProvider.getIdentifiers) + }(collection.breakOut) + l + } else List() + } def extractCollectedFrom(summary: ScholixSummary): List[ScholixEntityId] = { if (summary.getDatasources != null && !summary.getDatasources.isEmpty) { @@ -160,7 +165,7 @@ object ScholixUtils { c => new ScholixEntityId(c.getValue, List(new ScholixIdentifier(c.getKey, DNET_IDENTIFIER_SCHEMA, null)).asJava) - }(collection breakOut) + }.toList l } else List() } @@ -222,6 +227,38 @@ object ScholixUtils { } + + def scholixFromSource(relation: Relation, source: ScholixResource):Scholix = { + if (relation == null || source == null) + return null + val s = new Scholix + var l: List[ScholixEntityId] = extractCollectedFrom(relation) + if (l.isEmpty) + l = extractCollectedFrom(source) + if (l.isEmpty) + return null + s.setLinkprovider(l.asJava) + var d = extractRelationDate(relation) + if (d == null) + d = source.getPublicationDate + + s.setPublicationDate(d) + + + if (source.getPublisher != null && !source.getPublisher.isEmpty) { + s.setPublisher(source.getPublisher) + } + + val semanticRelation = relations.getOrElse(relation.getRelClass.toLowerCase, null) + if (semanticRelation == null) + return null + s.setRelationship(new ScholixRelationship(semanticRelation.original, "datacite", semanticRelation.inverse)) + s.setSource(source) + + s + } + + def scholixFromSource(relation: Relation, source: ScholixSummary): Scholix = { if (relation == null || source == null) @@ -303,7 +340,7 @@ object ScholixUtils { s.setSubType(r.getInstance().get(0).getInstancetype.getClassname) if (r.getTitle != null && r.getTitle.asScala.nonEmpty) { - val titles: List[String] = r.getTitle.asScala.map(t => t.getValue)(collection breakOut) + val titles: List[String] = r.getTitle.asScala.map(t => t.getValue).toList if (titles.nonEmpty) s.setTitle(titles.asJava) else @@ -311,12 +348,12 @@ object ScholixUtils { } if (r.getAuthor != null && !r.getAuthor.isEmpty) { - val authors: List[String] = r.getAuthor.asScala.map(a => a.getFullname)(collection breakOut) - if (authors nonEmpty) + val authors: List[String] = r.getAuthor.asScala.map(a => a.getFullname).toList + if (authors.nonEmpty) s.setAuthor(authors.asJava) } if (r.getInstance() != null) { - val dt: List[String] = r.getInstance().asScala.filter(i => i.getDateofacceptance != null).map(i => i.getDateofacceptance.getValue)(collection.breakOut) + val dt: List[String] = r.getInstance().asScala.filter(i => i.getDateofacceptance != null).map(i => i.getDateofacceptance.getValue).toList if (dt.nonEmpty) s.setDate(dt.distinct.asJava) } @@ -327,7 +364,7 @@ object ScholixUtils { } if (r.getSubject != null && !r.getSubject.isEmpty) { - val subjects: List[SchemeValue] = r.getSubject.asScala.map(s => new SchemeValue(s.getQualifier.getClassname, s.getValue))(collection breakOut) + val subjects: List[SchemeValue] = r.getSubject.asScala.map(s => new SchemeValue(s.getQualifier.getClassname, s.getValue)).toList if (subjects.nonEmpty) s.setSubject(subjects.asJava) } @@ -336,7 +373,7 @@ object ScholixUtils { s.setPublisher(List(r.getPublisher.getValue).asJava) if (r.getCollectedfrom != null && !r.getCollectedfrom.isEmpty) { - val cf: List[CollectedFromType] = r.getCollectedfrom.asScala.map(c => new CollectedFromType(c.getValue, c.getKey, "complete"))(collection breakOut) + val cf: List[CollectedFromType] = r.getCollectedfrom.asScala.map(c => new CollectedFromType(c.getValue, c.getKey, "complete")).toList if (cf.nonEmpty) s.setDatasources(cf.distinct.asJava) } diff --git a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala new file mode 100644 index 0000000000..7f37829eef --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala @@ -0,0 +1,291 @@ +package eu.dnetlib.dhp.sx.graph + +import eu.dnetlib.dhp.application.AbstractScalaApplication +import eu.dnetlib.dhp.collection.CollectionUtils.fixRelations +import eu.dnetlib.dhp.common.vocabulary.VocabularyGroup +import eu.dnetlib.dhp.datacite.{DataciteToOAFTransformation, DataciteType} +import eu.dnetlib.dhp.schema.oaf.{Oaf, Relation, Result} +import eu.dnetlib.dhp.schema.sx.scholix.{Scholix, ScholixResource} +import eu.dnetlib.dhp.schema.sx.summary.ScholixSummary +import eu.dnetlib.dhp.sx.graph.scholix.ScholixUtils +import eu.dnetlib.dhp.utils.{DHPUtils, ISLookupClientFactory} +import org.apache.spark.sql.functions.max +import org.apache.spark.sql.{Dataset, Encoder, Encoders, SaveMode, SparkSession} +import org.slf4j.Logger + +import scala.collection.JavaConverters._ +import java.text.SimpleDateFormat + +class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:Logger) extends AbstractScalaApplication(propertyPath, args, log:Logger) { + + val ISO_DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ssZ" + val simpleFormatter = new SimpleDateFormat(ISO_DATE_PATTERN) + + val SCHOLIX_RESOURCE_PATH_NAME = "scholixResource" + val DATACITE_OAF_PATH_NAME = "dataciteOAFUpdate" + val PID_MAP_PATH_NAME = "pidMap" + val RESOLVED_REL_PATH_NAME ="resolvedRelation" + val SCHOLIX_PATH_NAME = "scholix" + + + def scholixResourcePath(workingPath:String) = s"$workingPath/$SCHOLIX_RESOURCE_PATH_NAME" + def dataciteOAFPath(workingPath:String) = s"$workingPath/$DATACITE_OAF_PATH_NAME" + def pidMapPath(workingPath:String) = s"$workingPath/$PID_MAP_PATH_NAME" + def resolvedRelationPath(workingPath:String) = s"$workingPath/$RESOLVED_REL_PATH_NAME" + def scholixPath(workingPath:String) = s"$workingPath/$SCHOLIX_PATH_NAME" + + + /** + * Utility to parse Date in ISO8601 to epochMillis + * @param inputDate The String represents an input date in ISO8601 + * @return The relative epochMillis of parsed date + */ + def ISO8601toEpochMillis(inputDate:String):Long = { + simpleFormatter.parse(inputDate).getTime + } + + + /** + * This method tries to retrieve the last collection date from all datacite + * records in HDFS. + * This method should be called before indexing scholexplorer to retrieve + * the delta of Datacite record to download, since from the generation of + * raw graph to the generation of Scholexplorer sometimes it takes 20 days + * @param spark + * @param entitiesPath + * @return the last collection date from the current scholexplorer Graph of the datacite records + */ + def retrieveLastCollectedFrom(spark:SparkSession, entitiesPath:String):Long = { + log.info("Retrieve last entities collected From") + + implicit val oafEncoder:Encoder[Result] = Encoders.kryo[Result] + import spark.implicits._ + + val entitiesDS = spark.read.load(s"$entitiesPath/*").as[Result] + + val date = entitiesDS.filter(r => r.getDateofcollection!= null).map(_.getDateofcollection).select(max("value")).first.getString(0) + + ISO8601toEpochMillis(date) + } + + + /** + * The method of update Datacite relationships on Scholexplorer + * needs some utilities data structures + * One is the scholixResource DS that stores all the nodes in the Scholix Graph + * in format (dnetID, ScholixResource ) + * @param summaryPath the path of the summary in Scholix + * @param workingPath the working path + * @param spark the spark session + */ + def generateScholixResource(summaryPath:String, workingPath: String, spark:SparkSession) :Unit = { + implicit val summaryEncoder:Encoder[ScholixSummary] = Encoders.kryo[ScholixSummary] + implicit val scholixResourceEncoder:Encoder[ScholixResource] = Encoders.kryo[ScholixResource] + + log.info("Convert All summary to ScholixResource") + spark.read.load(summaryPath).as[ScholixSummary] + .map(ScholixUtils.generateScholixResourceFromSummary) + .filter(r => r.getIdentifier!= null && r.getIdentifier.size>0) + .map(r=> (r.getIdentifier,r))(Encoders.tuple(Encoders.STRING, scholixResourceEncoder)) + .write.mode(SaveMode.Overwrite).save(scholixResourcePath(workingPath)) + + } + + + /** + * This method get and Transform only datacite records with + * timestamp greater than timestamp + * @param datacitePath the datacite input Path + * @param timestamp the timestamp + * @param workingPath the working path where save the generated Dataset + * @param spark SparkSession + * @param vocabularies Vocabularies needed for transformation + */ + + def getDataciteUpdate(datacitePath:String, timestamp:Long, workingPath:String, spark:SparkSession,vocabularies: VocabularyGroup): Unit = { + import spark.implicits._ + val ds = spark.read.load(datacitePath).as[DataciteType] + implicit val oafEncoder:Encoder[Oaf] = Encoders.kryo[Oaf] + ds.filter(_.timestamp>=timestamp) + .flatMap(d => DataciteToOAFTransformation.generateOAF(d.json, d.timestamp, d.timestamp, vocabularies, exportLinks = true)) + .flatMap(i => fixRelations(i)).filter(i => i != null) + .write.mode(SaveMode.Overwrite).save(dataciteOAFPath(workingPath)) + + } + + + /** + * This method convert an Instance of OAF Result into + * Scholix Resource + * @param r The input Result + * @return The Scholix Resource + */ + def resultToScholixResource(r:Result):ScholixResource = { + ScholixUtils.generateScholixResourceFromSummary(ScholixUtils.resultToSummary(r)) + } + + + /** + * After added the new ScholixResource, we need to update the scholix Pid Map + * to intersected with the new Datacite Relations + + * @param workingPath The working Path starting from save the new Map + * @param spark the spark session + */ + def generatePidMap(workingPath:String, spark:SparkSession ) :Unit = { + implicit val scholixResourceEncoder:Encoder[ScholixResource] = Encoders.kryo[ScholixResource] + import spark.implicits._ + spark.read.load(scholixResourcePath(workingPath)).as[(String,ScholixResource)] + .flatMap(r=> + r._2.getIdentifier.asScala + .map(i =>DHPUtils.generateUnresolvedIdentifier(i.getIdentifier, i.getSchema)) + .map((_, r._1)) + )(Encoders.tuple(Encoders.STRING, Encoders.STRING)) + .groupByKey(_._1) + .reduceGroups((a,b) => if (a!= null && a._2!= null) a else b) + .map(_._2)(Encoders.tuple(Encoders.STRING, Encoders.STRING)) + .write.mode(SaveMode.Overwrite).save(pidMapPath(workingPath)) + } + + /** + * This method convert the new Datacite Resource into Scholix Resource + * Needed to fill the source and the type of Scholix Relationships + * @param workingPath the Working Path + * @param spark The spark Session + */ + def addMissingScholixResource(workingPath:String, spark:SparkSession ) :Unit = { + implicit val oafEncoder:Encoder[Oaf] = Encoders.kryo[Oaf] + implicit val scholixResourceEncoder:Encoder[ScholixResource] = Encoders.kryo[ScholixResource] + implicit val resultEncoder:Encoder[Result] = Encoders.kryo[Result] + + spark.read.load(dataciteOAFPath(workingPath)).as[Oaf] + .filter(_.isInstanceOf[Result]) + .map(_.asInstanceOf[Result]) + .map(resultToScholixResource) + .filter(r => r.getIdentifier!= null && r.getIdentifier.size>0) + .map(r=> (r.getIdentifier,r))(Encoders.tuple(Encoders.STRING, scholixResourceEncoder)) + .write.mode(SaveMode.Append).save(scholixResourcePath(workingPath)) + } + + + /** + * This method resolve the datacite relation and filter the resolved + * relation + * @param workingPath the working path + * @param spark the spark session + */ + + def resolveUpdateRelation(workingPath:String, spark:SparkSession) :Unit = { + implicit val oafEncoder:Encoder[Oaf] = Encoders.kryo[Oaf] + implicit val relationEncoder:Encoder[Relation] = Encoders.kryo[Relation] + import spark.implicits._ + + val pidMap = spark.read.load(pidMapPath(workingPath)).as[(String,String)] + + val unresolvedRelations:Dataset[(String,Relation)] = spark.read.load(dataciteOAFPath(workingPath)).as[Oaf] + .filter(_.isInstanceOf[Relation]) + .map(_.asInstanceOf[Relation]) + .map { r => + if (r.getSource.startsWith("unresolved")) + (r.getSource, r) + else + (r.getTarget, r) + }(Encoders.tuple(Encoders.STRING, relationEncoder)) + + unresolvedRelations + .joinWith(pidMap, unresolvedRelations("_1").equalTo(pidMap("_1"))) + .map(t => { + val r =t._1._2 + val resolvedIdentifier = t._2._2 + if (r.getSource.startsWith("unresolved")) + r.setSource(resolvedIdentifier) + else + r.setTarget(resolvedIdentifier) + r + })(relationEncoder) + .filter(r => !(r.getSource.startsWith("unresolved") || r.getTarget.startsWith("unresolved") )) + .write.mode(SaveMode.Overwrite) + .save(resolvedRelationPath(workingPath)) + } + + + + /** + * This method generate scholix starting from resolved relation + * + * + * @param workingPath + * @param spark + */ + def generateScholixUpdate(workingPath:String, spark:SparkSession) :Unit = { + implicit val oafEncoder:Encoder[Oaf] = Encoders.kryo[Oaf] + implicit val scholixEncoder:Encoder[Scholix] = Encoders.kryo[Scholix] + implicit val scholixResourceEncoder:Encoder[ScholixResource] = Encoders.kryo[ScholixResource] + implicit val relationEncoder:Encoder[Relation] = Encoders.kryo[Relation] + import spark.implicits._ + + val relationss:Dataset[(String, Relation)] = spark.read.load(s"$workingPath/ResolvedRelation").as[Relation].map(r =>(r.getSource,r))(Encoders.tuple(Encoders.STRING, relationEncoder)) + + val id_summary:Dataset[(String,ScholixResource)] = spark.read.load(scholixResourcePath(workingPath)).as[(String,ScholixResource)] + + relationss.joinWith(id_summary, relationss("_1").equalTo(id_summary("_1")),"inner") + .map(t => (t._1._2.getTarget,ScholixUtils.scholixFromSource(t._1._2, t._2._2)))(Encoders.tuple(Encoders.STRING, scholixEncoder)) + .write.mode(SaveMode.Overwrite) + .save(s"$workingPath/scholix_one_verse") + + val source_scholix:Dataset[(String,Scholix)] = spark.read.load(s"$workingPath/scholix_one_verse").as[(String,Scholix)] + + source_scholix.joinWith(id_summary, source_scholix("_1").equalTo(id_summary("_1")),"inner") + .map(t => { + val target = t._2._2 + val scholix = t._1._2 + scholix.setTarget(target) + scholix + })(scholixEncoder).write.mode(SaveMode.Overwrite).save(s"$workingPath/scholix") + } + + + + + + /** + * Here all the spark applications runs this method + * where the whole logic of the spark node is defined + */ + override def run(): Unit = { + val sourcePath = parser.get("sourcePath") + log.info(s"SourcePath is '$sourcePath'") + + val datacitePath = parser.get("datacitePath") + log.info(s"DatacitePath is '$datacitePath'") + + val workingPath = parser.get("workingPath") + log.info(s"workingPath is '$workingPath'") + + val isLookupUrl: String = parser.get("isLookupUrl") + log.info("isLookupUrl: {}", isLookupUrl) + + val isLookupService = ISLookupClientFactory.getLookUpService(isLookupUrl) + val vocabularies = VocabularyGroup.loadVocsFromIS(isLookupService) + require(vocabularies != null) + + + val updateDS:Boolean = "true".equalsIgnoreCase(parser.get("updateDS")) + log.info(s"updateDS is '$updateDS'") + + var lastCollectionDate = 0L + if (updateDS) { + generateScholixResource(s"$sourcePath/provision/summaries", workingPath, spark) + log.info("Retrieve last entities collected From starting from scholix Graph") + lastCollectionDate = retrieveLastCollectedFrom(spark, s"$sourcePath/entities") + } + + getDataciteUpdate(datacitePath, lastCollectionDate, workingPath, spark, vocabularies) + addMissingScholixResource(workingPath,spark) + generatePidMap(workingPath, spark) + resolveUpdateRelation(workingPath,spark) + generateScholixUpdate(workingPath, spark) + + + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala deleted file mode 100644 index 8db2719418..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala +++ /dev/null @@ -1,54 +0,0 @@ -package eu.dnetlib.dhp.sx.graph - -import eu.dnetlib.dhp.application.AbstractScalaApplication -import eu.dnetlib.dhp.schema.oaf.Result -import org.apache.spark.sql.functions.max -import org.apache.spark.sql.{Encoder, Encoders, SparkSession} -import org.slf4j.Logger - -class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:Logger) extends AbstractScalaApplication(propertyPath, args, log:Logger) { - - - def retrieveLastCollectedFrom(spark:SparkSession, entitiesPath:String):String = { - log.info("Retrieve last entities collected From") - - implicit val oafEncoder:Encoder[Result] = Encoders.kryo[Result] - import spark.implicits._ - - val entitiesDS = spark.read.load(s"$entitiesPath/*").as[Result] - - entitiesDS.filter(r => r.getDateofcollection!= null).map(_.getDateofcollection).select(max("value")).first.getString(0) - - - - } - - - /** - * Here all the spark applications runs this method - * where the whole logic of the spark node is defined - */ - override def run(): Unit = { - val sourcePath = parser.get("sourcePath") - log.info(s"SourcePath is '$sourcePath'") - - val datacitePath = parser.get("datacitePath") - log.info(s"DatacitePath is '$datacitePath'") - - - log.info("Retrieve last entities collected From") - - implicit val oafEncoder:Encoder[Result] = Encoders.kryo[Result] - - val lastCollectionDate = retrieveLastCollectedFrom(spark, s"$sourcePath/entities") - - - - - - - - - - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/scala/eu/dnetlib/dhp/sx/graph/RetrieveDataciteDeltaTest.scala b/dhp-workflows/dhp-graph-mapper/src/test/scala/eu/dnetlib/dhp/sx/graph/RetrieveDataciteDeltaTest.scala new file mode 100644 index 0000000000..c277b0aa13 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/scala/eu/dnetlib/dhp/sx/graph/RetrieveDataciteDeltaTest.scala @@ -0,0 +1,26 @@ +package eu.dnetlib.dhp.sx.graph +import org.junit.jupiter.api.Test + +import java.text.SimpleDateFormat + + + +class RetrieveDataciteDeltaTest { + + @Test + def testParsingDate(): Unit = { + + + val inputDate = "2021-12-02T11:17:36+0000" + + val t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(inputDate).getTime + + + println(t) + + + + } + + +} From 3920d68992b1d7f8a67afec5cf8dd3b03037cd29 Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Tue, 21 Dec 2021 11:41:49 +0100 Subject: [PATCH 14/14] Fixed workflow generation of delta in datacite --- .../dhp/sx/graph/scholix/ScholixUtils.scala | 22 ++- .../datacite/oozie_app/config-default.xml | 19 +++ .../sx/graph/datacite/oozie_app/workflow.xml | 62 +++++++ .../graph/retrieve_datacite_delta_params.json | 41 +++++ .../sx/graph/SparkRetrieveDataciteDelta.scala | 154 +++++++++-------- .../PrepareInfo.java | 21 +-- .../SparkResultToOrganizationFromSemRel.java | 5 - .../StepActions.java | 6 +- .../PrepareInfoJobTest.java | 43 ++--- .../sx/graph/convert_object_json_params.json | 9 +- .../graph/finalGraph/oozie_app/workflow.xml | 62 ------- .../eu/dnetlib/dhp/sx/graph/relations.json | 158 ------------------ .../oozie_app/config-default.xml | 10 ++ .../serializeGraph/oozie_app/workflow.xml | 83 +++++++++ .../sx/graph/SparkConvertObjectToJson.scala | 6 +- 15 files changed, 364 insertions(+), 337 deletions(-) create mode 100644 dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/datacite/oozie_app/config-default.xml create mode 100644 dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/datacite/oozie_app/workflow.xml create mode 100644 dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/retrieve_datacite_delta_params.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/relations.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/serializeGraph/oozie_app/config-default.xml create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/serializeGraph/oozie_app/workflow.xml diff --git a/dhp-common/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala b/dhp-common/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala index f8010bbd51..f35af09056 100644 --- a/dhp-common/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala +++ b/dhp-common/src/main/scala/eu/dnetlib/dhp/sx/graph/scholix/ScholixUtils.scala @@ -12,7 +12,7 @@ import org.json4s.jackson.JsonMethods.parse import scala.collection.JavaConverters._ import scala.io.Source -object ScholixUtils { +object ScholixUtils extends Serializable { val DNET_IDENTIFIER_SCHEMA: String = "DNET Identifier" @@ -24,7 +24,7 @@ object ScholixUtils { case class RelatedEntities(id: String, relatedDataset: Long, relatedPublication: Long) {} val relations: Map[String, RelationVocabulary] = { - val input = Source.fromInputStream(getClass.getResourceAsStream("/eu/dnetlib/dhp/sx/graph/relations.json")).mkString + val input = Source.fromInputStream(getClass.getResourceAsStream("/eu/dnetlib/scholexplorer/relation/relations.json")).mkString implicit lazy val formats: DefaultFormats.type = org.json4s.DefaultFormats lazy val json: json4s.JValue = parse(input) @@ -62,6 +62,11 @@ object ScholixUtils { } + def generateScholixResourceFromResult(r:Result) :ScholixResource = { + generateScholixResourceFromSummary(ScholixUtils.resultToSummary(r)) + } + + val statsAggregator: Aggregator[(String, String, Long), RelatedEntities, RelatedEntities] = new Aggregator[(String, String, Long), RelatedEntities, RelatedEntities] with Serializable { override def zero: RelatedEntities = null @@ -184,6 +189,19 @@ object ScholixUtils { } + def generateCompleteScholix(scholix: Scholix, target: ScholixResource): Scholix = { + val s = new Scholix + s.setPublicationDate(scholix.getPublicationDate) + s.setPublisher(scholix.getPublisher) + s.setLinkprovider(scholix.getLinkprovider) + s.setRelationship(scholix.getRelationship) + s.setSource(scholix.getSource) + s.setTarget(target) + s.setIdentifier(DHPUtils.md5(s"${s.getSource.getIdentifier}::${s.getRelationship.getName}::${s.getTarget.getIdentifier}")) + s + } + + def generateScholixResourceFromSummary(summaryObject: ScholixSummary): ScholixResource = { val r = new ScholixResource r.setIdentifier(summaryObject.getLocalIdentifier) diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/datacite/oozie_app/config-default.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/datacite/oozie_app/config-default.xml new file mode 100644 index 0000000000..bdd48b0ab2 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/datacite/oozie_app/config-default.xml @@ -0,0 +1,19 @@ + + + jobTracker + yarnRM + + + nameNode + hdfs://nameservice1 + + + oozie.use.system.libpath + true + + + oozie.action.sharelib.for.spark + spark2 + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/datacite/oozie_app/workflow.xml b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/datacite/oozie_app/workflow.xml new file mode 100644 index 0000000000..751b124cfd --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/datacite/oozie_app/workflow.xml @@ -0,0 +1,62 @@ + + + + sourcePath + the source path of scholix graph + + + datacitePath + the datacite native path + + + workingSupportPath + the working Support path + + + isLookupUrl + The IS lookUp service endopoint + + + updateDS + false + The transformation Rule to apply + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + yarn + cluster + New Update from Datacite to Scholix + eu.dnetlib.dhp.sx.graph.SparkRetrieveDataciteDelta + dhp-aggregation-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.shuffle.partitions=6000 + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --sourcePath${sourcePath} + --datacitePath${datacitePath} + --masteryarn + --workingSupportPath${workingSupportPath} + --isLookupUrl${isLookupUrl} + --updateDS${updateDS} + + + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/retrieve_datacite_delta_params.json b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/retrieve_datacite_delta_params.json new file mode 100644 index 0000000000..78777ffff2 --- /dev/null +++ b/dhp-workflows/dhp-aggregation/src/main/resources/eu/dnetlib/dhp/sx/graph/retrieve_datacite_delta_params.json @@ -0,0 +1,41 @@ +[ + { + "paramName": "s", + "paramLongName": "sourcePath", + "paramDescription": "the source mdstore path", + "paramRequired": true + }, + + { + "paramName": "d", + "paramLongName": "datacitePath", + "paramDescription": "the datacite native path", + "paramRequired": true + }, + + { + "paramName": "w", + "paramLongName": "workingSupportPath", + "paramDescription": "the working Support path", + "paramRequired": true + }, + { + "paramName": "i", + "paramLongName": "isLookupUrl", + "paramDescription": "the isLookup URL", + "paramRequired": true + }, + { + "paramName": "m", + "paramLongName": "master", + "paramDescription": "the master name", + "paramRequired": true + }, + { + "paramName": "u", + "paramLongName": "updateDS", + "paramDescription": "Need to regenerate all support Dataset", + "paramRequired": false + } + +] \ No newline at end of file diff --git a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala index 7f37829eef..45a6cfc89f 100644 --- a/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala +++ b/dhp-workflows/dhp-aggregation/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkRetrieveDataciteDelta.scala @@ -9,9 +9,10 @@ import eu.dnetlib.dhp.schema.sx.scholix.{Scholix, ScholixResource} import eu.dnetlib.dhp.schema.sx.summary.ScholixSummary import eu.dnetlib.dhp.sx.graph.scholix.ScholixUtils import eu.dnetlib.dhp.utils.{DHPUtils, ISLookupClientFactory} +import org.apache.hadoop.fs.{FileSystem, Path} import org.apache.spark.sql.functions.max import org.apache.spark.sql.{Dataset, Encoder, Encoders, SaveMode, SparkSession} -import org.slf4j.Logger +import org.slf4j.{Logger, LoggerFactory} import scala.collection.JavaConverters._ import java.text.SimpleDateFormat @@ -58,14 +59,15 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L def retrieveLastCollectedFrom(spark:SparkSession, entitiesPath:String):Long = { log.info("Retrieve last entities collected From") - implicit val oafEncoder:Encoder[Result] = Encoders.kryo[Result] + implicit val oafEncoder:Encoder[Oaf] = Encoders.kryo[Oaf] + implicit val resultEncoder:Encoder[Result] = Encoders.kryo[Result] import spark.implicits._ - val entitiesDS = spark.read.load(s"$entitiesPath/*").as[Result] + val entitiesDS = spark.read.load(s"$entitiesPath/*").as[Oaf].filter(o =>o.isInstanceOf[Result]).map(r => r.asInstanceOf[Result]) val date = entitiesDS.filter(r => r.getDateofcollection!= null).map(_.getDateofcollection).select(max("value")).first.getString(0) - ISO8601toEpochMillis(date) + ISO8601toEpochMillis(date) / 1000 } @@ -73,7 +75,7 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L * The method of update Datacite relationships on Scholexplorer * needs some utilities data structures * One is the scholixResource DS that stores all the nodes in the Scholix Graph - * in format (dnetID, ScholixResource ) + * in format ScholixResource * @param summaryPath the path of the summary in Scholix * @param workingPath the working path * @param spark the spark session @@ -84,11 +86,37 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L log.info("Convert All summary to ScholixResource") spark.read.load(summaryPath).as[ScholixSummary] - .map(ScholixUtils.generateScholixResourceFromSummary) + .map(ScholixUtils.generateScholixResourceFromSummary)(scholixResourceEncoder) .filter(r => r.getIdentifier!= null && r.getIdentifier.size>0) - .map(r=> (r.getIdentifier,r))(Encoders.tuple(Encoders.STRING, scholixResourceEncoder)) - .write.mode(SaveMode.Overwrite).save(scholixResourcePath(workingPath)) + .write.mode(SaveMode.Overwrite).save(s"${scholixResourcePath(workingPath)}_native") + } + /** + * This method convert the new Datacite Resource into Scholix Resource + * Needed to fill the source and the type of Scholix Relationships + * @param workingPath the Working Path + * @param spark The spark Session + */ + def addMissingScholixResource(workingPath:String, spark:SparkSession ) :Unit = { + implicit val oafEncoder:Encoder[Oaf] = Encoders.kryo[Oaf] + implicit val scholixResourceEncoder:Encoder[ScholixResource] = Encoders.kryo[ScholixResource] + implicit val resultEncoder:Encoder[Result] = Encoders.kryo[Result] + import spark.implicits._ + + spark.read.load(dataciteOAFPath(workingPath)).as[Oaf] + .filter(_.isInstanceOf[Result]) + .map(_.asInstanceOf[Result]) + .map(ScholixUtils.generateScholixResourceFromResult) + .filter(r => r.getIdentifier!= null && r.getIdentifier.size>0) + .write.mode(SaveMode.Overwrite).save(s"${scholixResourcePath(workingPath)}_update") + + val update = spark.read.load(s"${scholixResourcePath(workingPath)}_update").as[ScholixResource] + val native = spark.read.load(s"${scholixResourcePath(workingPath)}_native").as[ScholixResource] + val graph = update.union(native) + .groupByKey(_.getDnetIdentifier) + .reduceGroups((a,b) => if (a!= null && a.getDnetIdentifier!= null) a else b) + .map(_._2) + graph.write.mode(SaveMode.Overwrite).save(s"${scholixResourcePath(workingPath)}_graph") } @@ -102,29 +130,20 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L * @param vocabularies Vocabularies needed for transformation */ - def getDataciteUpdate(datacitePath:String, timestamp:Long, workingPath:String, spark:SparkSession,vocabularies: VocabularyGroup): Unit = { + def getDataciteUpdate(datacitePath:String, timestamp:Long, workingPath:String, spark:SparkSession,vocabularies: VocabularyGroup): Long = { import spark.implicits._ val ds = spark.read.load(datacitePath).as[DataciteType] implicit val oafEncoder:Encoder[Oaf] = Encoders.kryo[Oaf] - ds.filter(_.timestamp>=timestamp) - .flatMap(d => DataciteToOAFTransformation.generateOAF(d.json, d.timestamp, d.timestamp, vocabularies, exportLinks = true)) - .flatMap(i => fixRelations(i)).filter(i => i != null) - .write.mode(SaveMode.Overwrite).save(dataciteOAFPath(workingPath)) - + val total = ds.filter(_.timestamp>=timestamp).count() + if (total >0) { + ds.filter(_.timestamp >= timestamp) + .flatMap(d => DataciteToOAFTransformation.generateOAF(d.json, d.timestamp, d.timestamp, vocabularies, exportLinks = true)) + .flatMap(i => fixRelations(i)).filter(i => i != null) + .write.mode(SaveMode.Overwrite).save(dataciteOAFPath(workingPath)) + } + total } - - /** - * This method convert an Instance of OAF Result into - * Scholix Resource - * @param r The input Result - * @return The Scholix Resource - */ - def resultToScholixResource(r:Result):ScholixResource = { - ScholixUtils.generateScholixResourceFromSummary(ScholixUtils.resultToSummary(r)) - } - - /** * After added the new ScholixResource, we need to update the scholix Pid Map * to intersected with the new Datacite Relations @@ -135,11 +154,11 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L def generatePidMap(workingPath:String, spark:SparkSession ) :Unit = { implicit val scholixResourceEncoder:Encoder[ScholixResource] = Encoders.kryo[ScholixResource] import spark.implicits._ - spark.read.load(scholixResourcePath(workingPath)).as[(String,ScholixResource)] + spark.read.load(s"${scholixResourcePath(workingPath)}_graph").as[ScholixResource] .flatMap(r=> - r._2.getIdentifier.asScala + r.getIdentifier.asScala .map(i =>DHPUtils.generateUnresolvedIdentifier(i.getIdentifier, i.getSchema)) - .map((_, r._1)) + .map(t =>(t, r.getDnetIdentifier)) )(Encoders.tuple(Encoders.STRING, Encoders.STRING)) .groupByKey(_._1) .reduceGroups((a,b) => if (a!= null && a._2!= null) a else b) @@ -147,27 +166,6 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L .write.mode(SaveMode.Overwrite).save(pidMapPath(workingPath)) } - /** - * This method convert the new Datacite Resource into Scholix Resource - * Needed to fill the source and the type of Scholix Relationships - * @param workingPath the Working Path - * @param spark The spark Session - */ - def addMissingScholixResource(workingPath:String, spark:SparkSession ) :Unit = { - implicit val oafEncoder:Encoder[Oaf] = Encoders.kryo[Oaf] - implicit val scholixResourceEncoder:Encoder[ScholixResource] = Encoders.kryo[ScholixResource] - implicit val resultEncoder:Encoder[Result] = Encoders.kryo[Result] - - spark.read.load(dataciteOAFPath(workingPath)).as[Oaf] - .filter(_.isInstanceOf[Result]) - .map(_.asInstanceOf[Result]) - .map(resultToScholixResource) - .filter(r => r.getIdentifier!= null && r.getIdentifier.size>0) - .map(r=> (r.getIdentifier,r))(Encoders.tuple(Encoders.STRING, scholixResourceEncoder)) - .write.mode(SaveMode.Append).save(scholixResourcePath(workingPath)) - } - - /** * This method resolve the datacite relation and filter the resolved * relation @@ -222,25 +220,26 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L implicit val scholixEncoder:Encoder[Scholix] = Encoders.kryo[Scholix] implicit val scholixResourceEncoder:Encoder[ScholixResource] = Encoders.kryo[ScholixResource] implicit val relationEncoder:Encoder[Relation] = Encoders.kryo[Relation] - import spark.implicits._ + implicit val intermediateEncoder :Encoder[(String,Scholix)] = Encoders.tuple(Encoders.STRING, scholixEncoder) - val relationss:Dataset[(String, Relation)] = spark.read.load(s"$workingPath/ResolvedRelation").as[Relation].map(r =>(r.getSource,r))(Encoders.tuple(Encoders.STRING, relationEncoder)) - val id_summary:Dataset[(String,ScholixResource)] = spark.read.load(scholixResourcePath(workingPath)).as[(String,ScholixResource)] + val relations:Dataset[(String, Relation)] = spark.read.load(resolvedRelationPath(workingPath)).as[Relation].map(r =>(r.getSource,r))(Encoders.tuple(Encoders.STRING, relationEncoder)) - relationss.joinWith(id_summary, relationss("_1").equalTo(id_summary("_1")),"inner") - .map(t => (t._1._2.getTarget,ScholixUtils.scholixFromSource(t._1._2, t._2._2)))(Encoders.tuple(Encoders.STRING, scholixEncoder)) - .write.mode(SaveMode.Overwrite) - .save(s"$workingPath/scholix_one_verse") + val id_summary:Dataset[(String,ScholixResource)] = spark.read.load(s"${scholixResourcePath(workingPath)}_graph").as[ScholixResource].map(r => (r.getDnetIdentifier,r))(Encoders.tuple(Encoders.STRING, scholixResourceEncoder)) - val source_scholix:Dataset[(String,Scholix)] = spark.read.load(s"$workingPath/scholix_one_verse").as[(String,Scholix)] + id_summary.cache() + + relations.joinWith(id_summary, relations("_1").equalTo(id_summary("_1")),"inner") + .map(t => (t._1._2.getTarget,ScholixUtils.scholixFromSource(t._1._2, t._2._2))) + .write.mode(SaveMode.Overwrite).save(s"$workingPath/scholix_one_verse") + + val source_scholix:Dataset[(String, Scholix)] =spark.read.load(s"$workingPath/scholix_one_verse").as[(String,Scholix)] source_scholix.joinWith(id_summary, source_scholix("_1").equalTo(id_summary("_1")),"inner") .map(t => { - val target = t._2._2 - val scholix = t._1._2 - scholix.setTarget(target) - scholix + val target:ScholixResource =t._2._2 + val scholix:Scholix = t._1._2 + ScholixUtils.generateCompleteScholix(scholix,target) })(scholixEncoder).write.mode(SaveMode.Overwrite).save(s"$workingPath/scholix") } @@ -259,7 +258,7 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L val datacitePath = parser.get("datacitePath") log.info(s"DatacitePath is '$datacitePath'") - val workingPath = parser.get("workingPath") + val workingPath = parser.get("workingSupportPath") log.info(s"workingPath is '$workingPath'") val isLookupUrl: String = parser.get("isLookupUrl") @@ -279,13 +278,28 @@ class SparkRetrieveDataciteDelta (propertyPath:String, args:Array[String], log:L log.info("Retrieve last entities collected From starting from scholix Graph") lastCollectionDate = retrieveLastCollectedFrom(spark, s"$sourcePath/entities") } + else { + val fs = FileSystem.get(spark.sparkContext.hadoopConfiguration) + fs.delete(new Path(s"${scholixResourcePath(workingPath)}_native"), true) + fs.rename(new Path(s"${scholixResourcePath(workingPath)}_graph"), new Path(s"${scholixResourcePath(workingPath)}_native")) + lastCollectionDate = retrieveLastCollectedFrom(spark, dataciteOAFPath(workingPath)) + } - getDataciteUpdate(datacitePath, lastCollectionDate, workingPath, spark, vocabularies) - addMissingScholixResource(workingPath,spark) - generatePidMap(workingPath, spark) - resolveUpdateRelation(workingPath,spark) - generateScholixUpdate(workingPath, spark) - - + val numRecords = getDataciteUpdate(datacitePath, lastCollectionDate, workingPath, spark, vocabularies) + if (numRecords>0) { + addMissingScholixResource(workingPath,spark) + generatePidMap(workingPath, spark) + resolveUpdateRelation(workingPath,spark) + generateScholixUpdate(workingPath, spark) + } + } +} + + +object SparkRetrieveDataciteDelta { + val log: Logger = LoggerFactory.getLogger(SparkRetrieveDataciteDelta.getClass) + + def main(args: Array[String]): Unit = { + new SparkRetrieveDataciteDelta("/eu/dnetlib/dhp/sx/graph/retrieve_datacite_delta_params.json", args, log).initialize().run() } } 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 707462f24e..23909fd9a7 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 @@ -33,13 +33,14 @@ public class PrepareInfo implements Serializable { private static final Logger log = LoggerFactory.getLogger(PrepareInfo.class); // associate orgs with all their parent - private static final String ORGANIZATION_ORGANIZATION_QUERY = "SELECT target key, collect_set(source) as valueSet " + + private static final String ORGANIZATION_ORGANIZATION_QUERY = "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"; - //associates results with all the orgs they are affiliated to + // associates results with all the orgs they are affiliated to private static final String RESULT_ORGANIZATION_QUERY = "SELECT source key, collect_set(target) as valueSet " + "FROM relation " + "WHERE lower(relclass) = '" + ModelConstants.HAS_AUTHOR_INSTITUTION.toLowerCase() + @@ -88,7 +89,7 @@ public class PrepareInfo implements Serializable { childParentPath, leavesPath, resultOrganizationPath, - relationPath)); + relationPath)); } private static void prepareInfo(SparkSession spark, String inputPath, String childParentOrganizationPath, @@ -113,13 +114,13 @@ public class PrepareInfo implements Serializable { .json(resultOrganizationPath); relation - .filter( - (FilterFunction) r -> !r.getDataInfo().getDeletedbyinference() && - r.getRelClass().equals(ModelConstants.HAS_AUTHOR_INSTITUTION)) - .write() - .mode(SaveMode.Overwrite) - .option("compression","gzip") - .json(relationPath); + .filter( + (FilterFunction) r -> !r.getDataInfo().getDeletedbyinference() && + r.getRelClass().equals(ModelConstants.HAS_AUTHOR_INSTITUTION)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(relationPath); Dataset children = spark .sql( 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 e26276f53f..9ceebf222b 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 @@ -2,7 +2,6 @@ package eu.dnetlib.dhp.resulttoorganizationfromsemrel; import static eu.dnetlib.dhp.PropagationConstant.*; - import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; import java.io.Serializable; @@ -22,13 +21,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import eu.dnetlib.dhp.KeyValueSet; - 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; @@ -201,6 +198,4 @@ public class SparkResultToOrganizationFromSemRel implements Serializable { .json(outputPath); } - - } 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 index 02444cb152..1adbbe60ea 100644 --- 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 @@ -75,8 +75,8 @@ public class StepActions implements Serializable { ret.setValueSet(orgs); return ret; }, Encoders.bean(KeyValueSet.class)) - .write() - .mode(SaveMode.Overwrite) + .write() + .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(outputPath); } @@ -179,7 +179,6 @@ public class StepActions implements Serializable { "GROUP BY resId") .as(Encoders.bean(KeyValueSet.class)); - // create new relations from result to organization for each result linked to a leaf return resultParent .flatMap( @@ -200,7 +199,6 @@ public class StepActions implements Serializable { .iterator(), Encoders.bean(Relation.class)); - } } 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 21d99321bf..2d2668db34 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 @@ -84,7 +84,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", - "-relationPath", workingDir.toString() + "/relation" + "-relationPath", workingDir.toString() + "/relation" }); @@ -229,7 +229,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", - "-relationPath", workingDir.toString() + "/relation" + "-relationPath", workingDir.toString() + "/relation" }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); @@ -335,34 +335,35 @@ public class PrepareInfoJobTest { } @Test - public void relationTest()throws Exception { + public void relationTest() throws Exception { 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/", - "-relationPath", workingDir.toString() + "/relation" + .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/", + "-relationPath", workingDir.toString() + "/relation" - }); + }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); JavaRDD tmp = sc - .textFile(workingDir.toString() + "/relation") - .map(item -> OBJECT_MAPPER.readValue(item, Relation.class)); + .textFile(workingDir.toString() + "/relation") + .map(item -> OBJECT_MAPPER.readValue(item, Relation.class)); Dataset verificationDs = spark.createDataset(tmp.rdd(), Encoders.bean(Relation.class)); Assertions.assertEquals(7, verificationDs.count()); } + @Test public void resultOrganizationTest1() throws Exception { @@ -378,7 +379,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", - "-relationPath", workingDir.toString() + "/relation" + "-relationPath", workingDir.toString() + "/relation" }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); @@ -512,7 +513,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", - "-relationPath", workingDir.toString() + "/relation" + "-relationPath", workingDir.toString() + "/relation" }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); @@ -539,7 +540,7 @@ public class PrepareInfoJobTest { "-leavesPath", workingDir.toString() + "/currentIteration/", "-resultOrgPath", workingDir.toString() + "/resultOrganization/", "-childParentPath", workingDir.toString() + "/childParentOrg/", - "-relationPath", workingDir.toString() + "/relation" + "-relationPath", workingDir.toString() + "/relation" }); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/convert_object_json_params.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/convert_object_json_params.json index 4b15da6232..890570a0bd 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/convert_object_json_params.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/convert_object_json_params.json @@ -1,6 +1,7 @@ [ - {"paramName":"mt", "paramLongName":"master", "paramDescription": "should be local or yarn", "paramRequired": true}, - {"paramName":"s", "paramLongName":"sourcePath", "paramDescription": "the source Path", "paramRequired": true}, - {"paramName":"t", "paramLongName":"targetPath", "paramDescription": "the path of the raw graph", "paramRequired": true}, - {"paramName":"o", "paramLongName":"objectType", "paramDescription": "should be scholix or Summary", "paramRequired": true} + {"paramName":"mt", "paramLongName":"master", "paramDescription": "should be local or yarn", "paramRequired": true}, + {"paramName":"s", "paramLongName":"sourcePath", "paramDescription": "the source Path", "paramRequired": true}, + {"paramName":"su", "paramLongName":"scholixUpdatePath", "paramDescription": "the scholix updated Path", "paramRequired": false}, + {"paramName":"t", "paramLongName":"targetPath", "paramDescription": "the path of the raw graph", "paramRequired": true}, + {"paramName":"o", "paramLongName":"objectType", "paramDescription": "should be scholix or Summary", "paramRequired": true} ] \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/finalGraph/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/finalGraph/oozie_app/workflow.xml index 85c0d486d8..e46e59cc00 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/finalGraph/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/finalGraph/oozie_app/workflow.xml @@ -90,68 +90,6 @@ --relationPath${targetPath}/relation - - - - - - - - - - - - - - - - yarn - cluster - Serialize scholix to JSON - eu.dnetlib.dhp.sx.graph.SparkConvertObjectToJson - dhp-graph-mapper-${projectVersion}.jar - - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.shuffle.partitions=6000 - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --masteryarn - --sourcePath${targetPath}/provision/scholix/scholix - --targetPath${targetPath}/index/scholix_json - --objectTypescholix - - - - - - - - - yarn - cluster - Serialize summary to JSON - eu.dnetlib.dhp.sx.graph.SparkConvertObjectToJson - dhp-graph-mapper-${projectVersion}.jar - - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --driver-memory=${sparkDriverMemory} - --conf spark.extraListeners=${spark2ExtraListeners} - --conf spark.sql.shuffle.partitions=6000 - --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} - --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} - --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} - - --masteryarn - --sourcePath${targetPath}/provision/summaries_filtered - --targetPath${targetPath}/index/summaries_json - --objectTypesummary - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/relations.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/relations.json deleted file mode 100644 index 98e8daa18c..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/relations.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "cites":{ - "original":"Cites", - "inverse":"IsCitedBy" - }, - "compiles":{ - "original":"Compiles", - "inverse":"IsCompiledBy" - }, - "continues":{ - "original":"Continues", - "inverse":"IsContinuedBy" - }, - "derives":{ - "original":"IsSourceOf", - "inverse":"IsDerivedFrom" - }, - "describes":{ - "original":"Describes", - "inverse":"IsDescribedBy" - }, - "documents":{ - "original":"Documents", - "inverse":"IsDocumentedBy" - }, - "hasmetadata":{ - "original":"HasMetadata", - "inverse":"IsMetadataOf" - }, - "hasassociationwith":{ - "original":"HasAssociationWith", - "inverse":"HasAssociationWith" - }, - "haspart":{ - "original":"HasPart", - "inverse":"IsPartOf" - }, - "hasversion":{ - "original":"HasVersion", - "inverse":"IsVersionOf" - }, - "iscitedby":{ - "original":"IsCitedBy", - "inverse":"Cites" - }, - "iscompiledby":{ - "original":"IsCompiledBy", - "inverse":"Compiles" - }, - "iscontinuedby":{ - "original":"IsContinuedBy", - "inverse":"Continues" - }, - "isderivedfrom":{ - "original":"IsDerivedFrom", - "inverse":"IsSourceOf" - }, - "isdescribedby":{ - "original":"IsDescribedBy", - "inverse":"Describes" - }, - "isdocumentedby":{ - "original":"IsDocumentedBy", - "inverse":"Documents" - }, - "isidenticalto":{ - "original":"IsIdenticalTo", - "inverse":"IsIdenticalTo" - }, - "ismetadatafor":{ - "original":"IsMetadataFor", - "inverse":"IsMetadataOf" - }, - "ismetadataof":{ - "original":"IsMetadataOf", - "inverse":"IsMetadataFor" - }, - "isnewversionof":{ - "original":"IsNewVersionOf", - "inverse":"IsPreviousVersionOf" - }, - "isobsoletedby":{ - "original":"IsObsoletedBy", - "inverse":"Obsoletes" - }, - "isoriginalformof":{ - "original":"IsOriginalFormOf", - "inverse":"IsVariantFormOf" - }, - "ispartof":{ - "original":"IsPartOf", - "inverse":"HasPart" - }, - "ispreviousversionof":{ - "original":"IsPreviousVersionOf", - "inverse":"IsNewVersionOf" - }, - "isreferencedby":{ - "original":"IsReferencedBy", - "inverse":"References" - }, - "isrelatedto":{ - "original":"IsRelatedTo", - "inverse":"IsRelatedTo" - }, - "isrequiredby":{ - "original":"IsRequiredBy", - "inverse":"Requires" - }, - "isreviewedby":{ - "original":"IsReviewedBy", - "inverse":"Reviews" - }, - "issourceof":{ - "original":"IsSourceOf", - "inverse":"IsDerivedFrom" - }, - "issupplementedby":{ - "original":"IsSupplementedBy", - "inverse":"IsSupplementTo" - }, - "issupplementto":{ - "original":"IsSupplementTo", - "inverse":"IsSupplementedBy" - }, - "isvariantformof":{ - "original":"IsVariantFormOf", - "inverse":"IsOriginalFormOf" - }, - "isversionof":{ - "original":"IsVersionOf", - "inverse":"HasVersion" - }, - "obsoletes":{ - "original":"Obsoletes", - "inverse":"IsObsoletedBy" - }, - "references":{ - "original":"References", - "inverse":"IsReferencedBy" - }, - "requires":{ - "original":"Requires", - "inverse":"IsRequiredBy" - }, - "related":{ - "original":"IsRelatedTo", - "inverse":"IsRelatedTo" - }, - "reviews":{ - "original":"Reviews", - "inverse":"IsReviewedBy" - }, - "unknown":{ - "original":"Unknown", - "inverse":"Unknown" - } -} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/serializeGraph/oozie_app/config-default.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/serializeGraph/oozie_app/config-default.xml new file mode 100644 index 0000000000..6fb2a1253c --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/serializeGraph/oozie_app/config-default.xml @@ -0,0 +1,10 @@ + + + oozie.use.system.libpath + true + + + oozie.action.sharelib.for.spark + spark2 + + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/serializeGraph/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/serializeGraph/oozie_app/workflow.xml new file mode 100644 index 0000000000..2844d7baa8 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/serializeGraph/oozie_app/workflow.xml @@ -0,0 +1,83 @@ + + + + scholixUpdatePath + the working dir base path of the scholix updated + + + targetPath + the final graph path + + + + + + + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + + + + + + + + + + + + yarn + cluster + Serialize scholix to JSON + eu.dnetlib.dhp.sx.graph.SparkConvertObjectToJson + dhp-graph-mapper-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.shuffle.partitions=6000 + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --masteryarn + --sourcePath${targetPath}/provision/scholix/scholix + --targetPath${targetPath}/index/scholix_json + --scholixUpdatePath${scholixUpdatePath} + --objectTypescholix + + + + + + + + + yarn + cluster + Serialize summary to JSON + eu.dnetlib.dhp.sx.graph.SparkConvertObjectToJson + dhp-graph-mapper-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.extraListeners=${spark2ExtraListeners} + --conf spark.sql.shuffle.partitions=6000 + --conf spark.sql.queryExecutionListeners=${spark2SqlQueryExecutionListeners} + --conf spark.yarn.historyServer.address=${spark2YarnHistoryServerAddress} + --conf spark.eventLog.dir=${nameNode}${spark2EventLogDir} + + --masteryarn + --sourcePath${targetPath}/provision/summaries_filtered + --targetPath${targetPath}/index/summaries_json + --objectTypesummary + + + + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkConvertObjectToJson.scala b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkConvertObjectToJson.scala index cc1b97fd6e..0c54de7c8f 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkConvertObjectToJson.scala +++ b/dhp-workflows/dhp-graph-mapper/src/main/scala/eu/dnetlib/dhp/sx/graph/SparkConvertObjectToJson.scala @@ -30,6 +30,9 @@ object SparkConvertObjectToJson { log.info(s"targetPath -> $targetPath") val objectType = parser.get("objectType") log.info(s"objectType -> $objectType") + val scholixUpdatePath = parser.get("scholixUpdatePath") + log.info(s"scholixUpdatePath -> $scholixUpdatePath") + implicit val scholixEncoder: Encoder[Scholix] = Encoders.kryo[Scholix] @@ -42,7 +45,8 @@ object SparkConvertObjectToJson { case "scholix" => log.info("Serialize Scholix") val d: Dataset[Scholix] = spark.read.load(sourcePath).as[Scholix] - d.map(s => mapper.writeValueAsString(s))(Encoders.STRING).rdd.repartition(6000).saveAsTextFile(targetPath, classOf[GzipCodec]) + val u :Dataset[Scholix]= spark.read.load(s"$scholixUpdatePath/scholix").as[Scholix] + d.union(u).repartition(8000).map(s => mapper.writeValueAsString(s))(Encoders.STRING).rdd.saveAsTextFile(targetPath, classOf[GzipCodec]) case "summary" => log.info("Serialize Summary") val d: Dataset[ScholixSummary] = spark.read.load(sourcePath).as[ScholixSummary]