From c7f944a53347762ad4f7f9a36b4e98c31e5c8a96 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 10:01:26 +0200 Subject: [PATCH 001/103] refactoring due to compilation --- .../api/MissingConceptDoiException.java | 7 ++- .../dhp/common/api/ZenodoAPIClient.java | 57 ++++++++++--------- .../common/api/zenodo/ZenodoModelList.java | 1 + .../dump/oaf/community/CommunityInstance.java | 4 ++ .../schema/dump/oaf/graph/GraphResult.java | 4 ++ 5 files changed, 43 insertions(+), 30 deletions(-) create mode 100644 dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java create mode 100644 dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/MissingConceptDoiException.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/MissingConceptDoiException.java index f2160d4f23..b75872eb48 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/MissingConceptDoiException.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/MissingConceptDoiException.java @@ -1,7 +1,8 @@ + package eu.dnetlib.dhp.common.api; public class MissingConceptDoiException extends Throwable { - public MissingConceptDoiException(String message) { - super(message); - } + public MissingConceptDoiException(String message) { + super(message); + } } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java index eebb14b177..2eec1eea9a 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java @@ -12,14 +12,12 @@ import okhttp3.*; public class ZenodoAPIClient implements Serializable { - String urlString; String bucket; String deposition_id; String access_token; - public static final MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json; charset=utf-8"); private static final MediaType MEDIA_TYPE_ZIP = MediaType.parse("application/zip"); @@ -40,7 +38,9 @@ public class ZenodoAPIClient implements Serializable { this.bucket = bucket; } - public void setDeposition_id(String deposition_id){this.deposition_id = deposition_id;} + public void setDeposition_id(String deposition_id) { + this.deposition_id = deposition_id; + } public ZenodoAPIClient(String urlString, String access_token) throws IOException { @@ -50,6 +50,7 @@ public class ZenodoAPIClient implements Serializable { /** * Brand new deposition in Zenodo. It sets the deposition_id and the bucket where to store the files to upload + * * @return response code * @throws IOException */ @@ -86,6 +87,7 @@ public class ZenodoAPIClient implements Serializable { /** * Upload files in Zenodo. + * * @param is the inputStream for the file to upload * @param file_name the name of the file as it will appear on Zenodo * @param len the size of the file @@ -110,6 +112,7 @@ public class ZenodoAPIClient implements Serializable { /** * Associates metadata information to the current deposition + * * @param metadata the metadata * @return response code * @throws IOException @@ -140,6 +143,7 @@ public class ZenodoAPIClient implements Serializable { /** * To publish the current deposition. It works for both new deposition or new version of an old deposition + * * @return response code * @throws IOException */ @@ -166,11 +170,12 @@ public class ZenodoAPIClient implements Serializable { } /** - * To create a new version of an already published deposition. - * It sets the deposition_id and the bucket to be used for the new version. - * @param concept_rec_id the concept record id of the deposition for which to create a new version. It is - * the last part of the url for the DOI Zenodo suggests to use to cite all versions: - * DOI: 10.xxx/zenodo.656930 concept_rec_id = 656930 + * To create a new version of an already published deposition. It sets the deposition_id and the bucket to be used + * for the new version. + * + * @param concept_rec_id the concept record id of the deposition for which to create a new version. It is the last + * part of the url for the DOI Zenodo suggests to use to cite all versions: DOI: 10.xxx/zenodo.656930 + * concept_rec_id = 656930 * @return response code * @throws IOException * @throws MissingConceptDoiException @@ -182,10 +187,10 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient(); Request request = new Request.Builder() - .url(urlString + "/" + deposition_id + "/actions/newversion") - .addHeader("Authorization", "Bearer " + access_token) - .post(RequestBody.create(MEDIA_TYPE_JSON, json)) - .build(); + .url(urlString + "/" + deposition_id + "/actions/newversion") + .addHeader("Authorization", "Bearer " + access_token) + .post(RequestBody.create(MEDIA_TYPE_JSON, json)) + .build(); try (Response response = httpClient.newCall(request).execute()) { @@ -205,9 +210,9 @@ public class ZenodoAPIClient implements Serializable { ZenodoModelList zenodoModelList = new Gson().fromJson(getPrevDepositions(), ZenodoModelList.class); - for(ZenodoModel zm : zenodoModelList){ - if (zm.getConceptrecid().equals(concept_rec_id)){ - deposition_id = zm.getId(); + for (ZenodoModel zm : zenodoModelList) { + if (zm.getConceptrecid().equals(concept_rec_id)) { + deposition_id = zm.getId(); return; } } @@ -220,11 +225,11 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient(); Request request = new Request.Builder() - .url(urlString) - .addHeader("Content-Type", "application/json") // add request headers - .addHeader("Authorization", "Bearer " + access_token) - .get() - .build(); + .url(urlString) + .addHeader("Content-Type", "application/json") // add request headers + .addHeader("Authorization", "Bearer " + access_token) + .get() + .build(); try (Response response = httpClient.newCall(request).execute()) { @@ -241,11 +246,11 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient(); Request request = new Request.Builder() - .url(url) - .addHeader("Content-Type", "application/json") // add request headers - .addHeader("Authorization", "Bearer " + access_token) - .get() - .build(); + .url(url) + .addHeader("Content-Type", "application/json") // add request headers + .addHeader("Authorization", "Bearer " + access_token) + .get() + .build(); try (Response response = httpClient.newCall(request).execute()) { @@ -255,12 +260,10 @@ public class ZenodoAPIClient implements Serializable { // Get response body ZenodoModel zenodoModel = new Gson().fromJson(response.body().string(), ZenodoModel.class); - return zenodoModel.getLinks().getBucket(); } } - } diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/zenodo/ZenodoModelList.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/zenodo/ZenodoModelList.java index f2e02d6b70..b3b1507143 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/zenodo/ZenodoModelList.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/zenodo/ZenodoModelList.java @@ -1,3 +1,4 @@ + package eu.dnetlib.dhp.common.api.zenodo; import java.util.ArrayList; diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java new file mode 100644 index 0000000000..03c770e848 --- /dev/null +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java @@ -0,0 +1,4 @@ +package eu.dnetlib.dhp.schema.dump.oaf.community; + +public class CommunityInstance { +} diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java new file mode 100644 index 0000000000..9b8fa08013 --- /dev/null +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java @@ -0,0 +1,4 @@ +package eu.dnetlib.dhp.schema.dump.oaf.graph; + +public class GraphResult { +} From 1791cf2e7809873c85b10b22925bebcd1b89ed91 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 10:14:41 +0200 Subject: [PATCH 002/103] refactoring due to compilation --- .../dnetlib/dhp/schema/dump/oaf/Funder.java | 43 +++++++------- .../dnetlib/dhp/schema/dump/oaf/Project.java | 57 ++++++++++--------- .../dhp/schema/dump/oaf/graph/Granted.java | 7 +-- .../dhp/schema/dump/oaf/graph/Node.java | 11 ++-- .../schema/dump/oaf/graph/Organization.java | 15 ++--- .../dhp/schema/dump/oaf/graph/Programme.java | 5 +- .../dhp/schema/dump/oaf/graph/RelType.java | 11 ++-- .../dhp/schema/dump/oaf/graph/Relation.java | 9 ++- .../dump/oaf/graph/ResearchInitiative.java | 15 +++-- 9 files changed, 82 insertions(+), 91 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Funder.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Funder.java index a49ca7aa49..16cab22cc5 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Funder.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Funder.java @@ -1,35 +1,36 @@ + package eu.dnetlib.dhp.schema.dump.oaf; import java.io.Serializable; public class Funder implements Serializable { - private String shortName; + private String shortName; - private String name; + private String name; - private String jurisdiction; + private String jurisdiction; - public String getJurisdiction() { - return jurisdiction; - } + public String getJurisdiction() { + return jurisdiction; + } - public void setJurisdiction(String jurisdiction) { - this.jurisdiction = jurisdiction; - } + public void setJurisdiction(String jurisdiction) { + this.jurisdiction = jurisdiction; + } - public String getShortName() { - return shortName; - } + public String getShortName() { + return shortName; + } - public void setShortName(String shortName) { - this.shortName = shortName; - } + public void setShortName(String shortName) { + this.shortName = shortName; + } - public String getName() { - return name; - } + public String getName() { + return name; + } - public void setName(String name) { - this.name = name; - } + public void setName(String name) { + this.name = name; + } } diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java index 70a3fbfbd1..f23d5a6703 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java @@ -1,44 +1,45 @@ + package eu.dnetlib.dhp.schema.dump.oaf; import java.io.Serializable; public class Project implements Serializable { - protected String id;// OpenAIRE id - protected String code; + protected String id;// OpenAIRE id + protected String code; - protected String acronym; + protected String acronym; - protected String title; + protected String title; - public String getId() { - return id; - } + public String getId() { + return id; + } - public void setId(String id) { - this.id = id; - } + public void setId(String id) { + this.id = id; + } - public String getCode() { - return code; - } + public String getCode() { + return code; + } - public void setCode(String code) { - this.code = code; - } + public void setCode(String code) { + this.code = code; + } - public String getAcronym() { - return acronym; - } + public String getAcronym() { + return acronym; + } - public void setAcronym(String acronym) { - this.acronym = acronym; - } + public void setAcronym(String acronym) { + this.acronym = acronym; + } - public String getTitle() { - return title; - } + public String getTitle() { + return title; + } - public void setTitle(String title) { - this.title = title; - } + public void setTitle(String title) { + this.title = title; + } } diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Granted.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Granted.java index 1ac27ddf11..94ace55aac 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Granted.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Granted.java @@ -5,10 +5,9 @@ import java.io.Serializable; import java.util.Optional; /** - * To describe the funded amount. It has the following parameters: - * - private String currency to store the currency of the fund - * - private float totalcost to store the total cost of the project - * - private float fundedamount to store the funded amount by the funder + * To describe the funded amount. It has the following parameters: - private String currency to store the currency of + * the fund - private float totalcost to store the total cost of the project - private float fundedamount to store the + * funded amount by the funder */ public class Granted implements Serializable { private String currency; diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Node.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Node.java index dac594451a..00f1a29bca 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Node.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Node.java @@ -4,13 +4,10 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; /** - * To represent the generic node in a relation. It has the following parameters: - * - private String id the openaire id of the entity in the relation - * - private String type the type of the entity in the relation. - * - * Consider the generic relation between a Result R and a Project P, the node representing R will have - * as id the id of R and as type result, while the node representing the project will have as id the id of the project - * and as type project + * To represent the generic node in a relation. It has the following parameters: - private String id the openaire id of + * the entity in the relation - private String type the type of the entity in the relation. Consider the generic + * relation between a Result R and a Project P, the node representing R will have as id the id of R and as type result, + * while the node representing the project will have as id the id of the project and as type project */ public class Node implements Serializable { private String id; diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Organization.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Organization.java index 317e66b856..2407c9cfc8 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Organization.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Organization.java @@ -10,16 +10,13 @@ import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; import eu.dnetlib.dhp.schema.dump.oaf.Qualifier; import eu.dnetlib.dhp.schema.dump.oaf.community.Project; - /** - * To represent the generic organizaiton. It has the following parameters: - * - private String legalshortname to store the legalshortname of the organizaiton - * - private String legalname to store the legal name of the organization - * - private String websiteurl to store the websiteurl of the organization - * - private List alternativenames to store the alternative names of the organization - * - private Qualifier country to store the country of the organization - * - private String id to store the id of the organization - * - private List pid to store the list of pids for the organization + * To represent the generic organizaiton. It has the following parameters: - private String legalshortname to store the + * legalshortname of the organizaiton - private String legalname to store the legal name of the organization - private + * String websiteurl to store the websiteurl of the organization - private List alternativenames to store the + * alternative names of the organization - private Qualifier country to store the country of the organization - private + * String id to store the id of the organization - private List pid to store the list of pids for the + * organization */ public class Organization implements Serializable { private String legalshortname; diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Programme.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Programme.java index 663ca25bc4..9892790e31 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Programme.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Programme.java @@ -4,9 +4,8 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; /** - * To store information about the ec programme for the project. It has the following parameters: - * - private String code to store the code of the programme - * - private String description to store the description of the programme + * To store information about the ec programme for the project. It has the following parameters: - private String code + * to store the code of the programme - private String description to store the description of the programme */ public class Programme implements Serializable { private String code; diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/RelType.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/RelType.java index 83ae2dda6f..629b30ee44 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/RelType.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/RelType.java @@ -4,12 +4,11 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; /** - * To represent the semantics of the generic relation between two entities. It has the following parameters: - * - private String name to store the semantics of the relation (i.e. isAuthorInstitutionOf). It corresponds to the - * relclass parameter in the relation represented in the internal model - * represented in the internal model - * - private String type to store the type of the relation (i.e. affiliation). It corresponds to the subreltype parameter - * of the relation represented in theinternal model + * To represent the semantics of the generic relation between two entities. It has the following parameters: - private + * String name to store the semantics of the relation (i.e. isAuthorInstitutionOf). It corresponds to the relclass + * parameter in the relation represented in the internal model represented in the internal model - private String type + * to store the type of the relation (i.e. affiliation). It corresponds to the subreltype parameter of the relation + * represented in theinternal model */ public class RelType implements Serializable { private String name; // relclass diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Relation.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Relation.java index 4b88eb6c27..e2b126e63b 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Relation.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Relation.java @@ -7,11 +7,10 @@ import java.util.Objects; import eu.dnetlib.dhp.schema.dump.oaf.Provenance; /** - * To represent the gereric relation between two entities. It has the following parameters: - * - private Node source to represent the entity source of the relation - * - private Node target to represent the entity target of the relation - * - private RelType reltype to represent the semantics of the relation - * - private Provenance provenance to represent the provenance of the relation + * To represent the gereric relation between two entities. It has the following parameters: - private Node source to + * represent the entity source of the relation - private Node target to represent the entity target of the relation - + * private RelType reltype to represent the semantics of the relation - private Provenance provenance to represent the + * provenance of the relation */ public class Relation implements Serializable { private Node source; diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/ResearchInitiative.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/ResearchInitiative.java index 6646fd541e..ed690acdff 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/ResearchInitiative.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/ResearchInitiative.java @@ -4,14 +4,13 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; /** - * To represent entity of type RC/RI. It has the following parameters, which are mostly derived by the profile - * - private String id to store the openaire id for the entity. Is has as code 00 and will be created as - * 00|context_____::md5(originalId) - * private String originalId to store the id of the context as provided in the profile (i.e. mes) - * private String name to store the name of the context (got from the label attribute in the context definition) - * private String type to store the type of the context (i.e.: research initiative or research community) - * private String description to store the description of the context as given in the profile - * private String zenodo_community to store the zenodo community associated to the context (main zenodo community) + * To represent entity of type RC/RI. It has the following parameters, which are mostly derived by the profile - private + * String id to store the openaire id for the entity. Is has as code 00 and will be created as + * 00|context_____::md5(originalId) private String originalId to store the id of the context as provided in the profile + * (i.e. mes) private String name to store the name of the context (got from the label attribute in the context + * definition) private String type to store the type of the context (i.e.: research initiative or research community) + * private String description to store the description of the context as given in the profile private String + * zenodo_community to store the zenodo community associated to the context (main zenodo community) */ public class ResearchInitiative implements Serializable { private String id; // openaireId From dc5096a327d903e533f4f02931f01c5499926abc Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 10:57:36 +0200 Subject: [PATCH 003/103] refactoring due to compilation --- .../dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java | 2 ++ .../dnetlib/dhp/oa/graph/dump/graph/Extractor.java | 12 +++++------- .../eu/dnetlib/dhp/oa/graph/dump/graph/Process.java | 5 ++--- .../graph/dump/graph/SparkOrganizationRelation.java | 5 ++--- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java index 9ffc313990..23784cd66c 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java @@ -3,11 +3,13 @@ package eu.dnetlib.dhp.oa.graph.dump; import java.io.Serializable; import java.util.Optional; + import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; + import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.common.api.MissingConceptDoiException; import eu.dnetlib.dhp.common.api.ZenodoAPIClient; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java index 3daaed47f4..73957e41db 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java @@ -23,13 +23,11 @@ import eu.dnetlib.dhp.schema.oaf.KeyValue; import eu.dnetlib.dhp.schema.oaf.Result; /** - * Creates new Relations (as in eu.dnetlib.dhp.schema.dump.oaf.graph.Relation) from the information in the Entity. - * The new Relations are created for the datasource in the collectedfrom and hostedby elements and for the context - * related to communities and research initiative/infrastructures. - * - * For collectedfrom elements it creates: datasource -> provides -> result and result -> isProvidedBy -> datasource - * For hostedby elements it creates: datasource -> hosts -> result and result -> isHostedBy -> datasource - * For context elements it creates: context <-> isRelatedTo <-> result + * Creates new Relations (as in eu.dnetlib.dhp.schema.dump.oaf.graph.Relation) from the information in the Entity. The + * new Relations are created for the datasource in the collectedfrom and hostedby elements and for the context related + * to communities and research initiative/infrastructures. For collectedfrom elements it creates: datasource -> provides + * -> result and result -> isProvidedBy -> datasource For hostedby elements it creates: datasource -> hosts -> result + * and result -> isHostedBy -> datasource For context elements it creates: context <-> isRelatedTo <-> result */ public class Extractor implements Serializable { diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java index 7b7dafdf37..5fc8fad250 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java @@ -16,9 +16,8 @@ import eu.dnetlib.dhp.schema.dump.oaf.Provenance; import eu.dnetlib.dhp.schema.dump.oaf.graph.*; /** - * It process the ContextInfo information to produce a new Context Entity or a set of Relations between the - * generic context entity and datasource/projects related to the context. - * + * It process the ContextInfo information to produce a new Context Entity or a set of Relations between the generic + * context entity and datasource/projects related to the context. */ public class Process implements Serializable { private static final Logger log = LoggerFactory.getLogger(Process.class); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java index 50b5771e4e..e597bc2f6d 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java @@ -1,5 +1,4 @@ - package eu.dnetlib.dhp.oa.graph.dump.graph; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; @@ -28,8 +27,8 @@ import eu.dnetlib.dhp.schema.dump.oaf.graph.RelType; import eu.dnetlib.dhp.schema.oaf.Relation; /** - * Create new Relations between Context Entities and Organizations whose products are associated to the context. - * It produces relation such as: organization <-> isRelatedTo <-> context + * Create new Relations between Context Entities and Organizations whose products are associated to the context. It + * produces relation such as: organization <-> isRelatedTo <-> context */ public class SparkOrganizationRelation implements Serializable { private static final Logger log = LoggerFactory.getLogger(SparkOrganizationRelation.class); From 5570678c65d70ff6b9a8700aad69ebe14288da0c Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 10:59:26 +0200 Subject: [PATCH 004/103] changed parameter name from hfdsNameNode to nameNode --- .../eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml | 2 +- .../resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json | 4 ++-- .../dhp/oa/graph/dump_whole/input_entity_parameter.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml index d5b6747152..7321fd0764 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml @@ -412,7 +412,7 @@ eu.dnetlib.dhp.oa.graph.dump.SendToZenodoHDFS --hdfsPath${outputPath} - --hdfsNameNode${nameNode} + --nameNode${nameNode} --accessToken${accessToken} --connectionUrl${connectionUrl} --metadata${metadata} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json index 9cf5d98941..4c3ec06e1b 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json @@ -25,8 +25,8 @@ "paramRequired": true }, { -"paramName": "hdfsnn", -"paramLongName": "hdfsNameNode", +"paramName": "nn", +"paramLongName": "nameNode", "paramDescription": "the name node", "paramRequired": true }, diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_entity_parameter.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_entity_parameter.json index 8d03d90a8e..87de13d63b 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_entity_parameter.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_entity_parameter.json @@ -14,7 +14,7 @@ }, { "paramName": "nn", - "paramLongName": "hdfsNameNode", + "paramLongName": "nameNode", "paramDescription": "the name node", "paramRequired": true } From 47c21a89612f1a63ccdf95d4160a967ca9f444c2 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:11:57 +0200 Subject: [PATCH 005/103] refactoring due to compilation --- .../eu/dnetlib/dhp/oa/graph/dump/SplitForCommunityTest.java | 3 +++ .../dhp/oa/graph/dump/graph/ExtractRelationFromEntityTest.java | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/SplitForCommunityTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/SplitForCommunityTest.java index c1478d6439..42ad5634a7 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/SplitForCommunityTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/SplitForCommunityTest.java @@ -4,6 +4,7 @@ package eu.dnetlib.dhp.oa.graph.dump; 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; @@ -16,7 +17,9 @@ 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.oa.graph.dump.community.CommunitySplit; import eu.dnetlib.dhp.schema.dump.oaf.community.CommunityResult; diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/ExtractRelationFromEntityTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/ExtractRelationFromEntityTest.java index 109458355d..820a899ce0 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/ExtractRelationFromEntityTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/ExtractRelationFromEntityTest.java @@ -38,7 +38,6 @@ public class ExtractRelationFromEntityTest { private static final Logger log = LoggerFactory .getLogger(ExtractRelationFromEntityTest.class); - @BeforeAll public static void beforeAll() throws IOException { workingDir = Files From d407852ac20fb4c6f095d9416b514d7a213cbeac Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:15:05 +0200 Subject: [PATCH 006/103] changed to reflect the changed in the model --- .../dhp/oa/graph/dump/DumpJobTest.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/DumpJobTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/DumpJobTest.java index d261320d4c..a93a25be23 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/DumpJobTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/DumpJobTest.java @@ -7,10 +7,13 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.List; +import eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult; import org.apache.commons.io.FileUtils; +import org.apache.hadoop.yarn.webapp.hamlet.Hamlet; 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.Encoders; import org.apache.spark.sql.SparkSession; import org.junit.jupiter.api.*; @@ -28,7 +31,7 @@ import eu.dnetlib.dhp.schema.oaf.OtherResearchProduct; import eu.dnetlib.dhp.schema.oaf.Publication; import eu.dnetlib.dhp.schema.oaf.Software; -@Disabled +//@Disabled public class DumpJobTest { private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); @@ -165,6 +168,10 @@ public class DumpJobTest { Assertions.assertEquals(90, verificationDataset.count()); +// verificationDataset +// .filter("id = '50|DansKnawCris::1a960e20087cb46b93588e4e184e8a58'") +// .foreach((ForeachFunction) rec -> System.out.println(OBJECT_MAPPER.writeValueAsString(rec))); + Assertions .assertTrue( verificationDataset.filter("bestAccessright.code = 'c_abf2'").count() == verificationDataset @@ -213,20 +220,20 @@ public class DumpJobTest { .run( // false, sourcePath, workingDir.toString() + "/result", communityMapPath, Dataset.class, false, sourcePath, workingDir.toString() + "/result", communityMapPath, Dataset.class, - Result.class, true); + GraphResult.class, true); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - JavaRDD tmp = sc + JavaRDD tmp = sc .textFile(workingDir.toString() + "/result") - .map(item -> OBJECT_MAPPER.readValue(item, eu.dnetlib.dhp.schema.dump.oaf.Result.class)); + .map(item -> OBJECT_MAPPER.readValue(item, eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult.class)); - org.apache.spark.sql.Dataset verificationDataset = spark - .createDataset(tmp.rdd(), Encoders.bean(eu.dnetlib.dhp.schema.dump.oaf.Result.class)); + org.apache.spark.sql.Dataset verificationDataset = spark + .createDataset(tmp.rdd(), Encoders.bean(eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult.class)); Assertions.assertEquals(5, verificationDataset.count()); - verificationDataset.show(false); + verificationDataset.foreach((ForeachFunction) res -> System.out.println(OBJECT_MAPPER.writeValueAsString(res))); } @Test From c5858afb883ce902144b22426c953a981596c092 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:24:14 +0200 Subject: [PATCH 007/103] added parameter to guide the dump for the result (resultAggregation). true if all the result types should be dump together, false otherwise. --- .../oa/graph/dump_whole/input_collect_and_save.json | 8 +++++++- .../dhp/oa/graph/dump_whole/oozie_app/workflow.xml | 12 +++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_collect_and_save.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_collect_and_save.json index e1130c4f60..2b422176ce 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_collect_and_save.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_collect_and_save.json @@ -17,7 +17,13 @@ "paramLongName": "isSparkSessionManaged", "paramDescription": "true if the spark session is managed, false otherwise", "paramRequired": false - } + }, + { + "paramName": "ra", + "paramLongName": "resultAggregation", + "paramDescription": "true if all the result type should be saved under the generic result name. false to get a different dump for each result type", + "paramRequired": true +} ] diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml index a1b984f9c7..a9f6112b12 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml @@ -13,6 +13,10 @@ outputPath the output path + + resultAggregation + true if all the result type have to be dumped under result. false otherwise + accessToken the access token used for the deposition in Zenodo @@ -268,7 +272,6 @@ --resultTableNameeu.dnetlib.dhp.schema.oaf.Organization --outputPath${workingDir}/collect/organization --communityMapPath${workingDir}/communityMap - @@ -295,7 +298,6 @@ --resultTableNameeu.dnetlib.dhp.schema.oaf.Project --outputPath${workingDir}/collect/project --communityMapPath${workingDir}/communityMap - @@ -322,7 +324,6 @@ --resultTableNameeu.dnetlib.dhp.schema.oaf.Datasource --outputPath${workingDir}/collect/datasource --communityMapPath${workingDir}/communityMap - @@ -441,7 +442,6 @@ --resultTableNameeu.dnetlib.dhp.schema.oaf.Publication --outputPath${workingDir}/relation/publication --communityMapPath${workingDir}/communityMap - @@ -468,7 +468,6 @@ --resultTableNameeu.dnetlib.dhp.schema.oaf.Dataset --outputPath${workingDir}/relation/dataset --communityMapPath${workingDir}/communityMap - @@ -495,7 +494,6 @@ --resultTableNameeu.dnetlib.dhp.schema.oaf.OtherResearchProduct --outputPath${workingDir}/relation/orp --communityMapPath${workingDir}/communityMap - @@ -522,7 +520,6 @@ --resultTableNameeu.dnetlib.dhp.schema.oaf.Software --outputPath${workingDir}/relation/software --communityMapPath${workingDir}/communityMap - @@ -561,6 +558,7 @@ --hdfsPath${outputPath} --nameNode${nameNode} --sourcePath${workingDir}/collect + --resultAggregation${resultAggregation} From 387be43fd4ce861e009aca83a6e0d07ae687f961 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:25:27 +0200 Subject: [PATCH 008/103] changed to discriminate if dumping all the results type together or each one in its own archive --- .../graph/dump/graph/SparkCollectAndSave.java | 57 +++++++++++++++---- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java index cb150210ab..1ae351dbf7 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java @@ -8,6 +8,7 @@ import java.util.Optional; import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; +import org.apache.spark.sql.Dataset; import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.SparkSession; import org.slf4j.Logger; @@ -20,7 +21,6 @@ import eu.dnetlib.dhp.schema.dump.oaf.graph.Relation; /** * Reads all the entities of the same type (Relation / Results) and saves them in the same folder - * */ public class SparkCollectAndSave implements Serializable { @@ -48,6 +48,11 @@ public class SparkCollectAndSave implements Serializable { final String outputPath = parser.get("outputPath"); log.info("outputPath: {}", outputPath); + final Boolean aggregateResult = Optional + .ofNullable(parser.get("resultAggregation")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + SparkConf conf = new SparkConf(); runWithSparkSession( @@ -55,22 +60,42 @@ public class SparkCollectAndSave implements Serializable { isSparkSessionManaged, spark -> { Utils.removeOutputDir(spark, outputPath + "/result"); - run(spark, inputPath, outputPath); + run(spark, inputPath, outputPath, aggregateResult); }); } - private static void run(SparkSession spark, String inputPath, String outputPath) { - Utils - .readPath(spark, inputPath + "/result/publication", Result.class) - .union(Utils.readPath(spark, inputPath + "/result/dataset", Result.class)) - .union(Utils.readPath(spark, inputPath + "/result/otherresearchproduct", Result.class)) - .union(Utils.readPath(spark, inputPath + "/result/software", Result.class)) - .write() - .option("compression", "gzip") - .mode(SaveMode.Overwrite) - .json(outputPath + "/result"); + private static void run(SparkSession spark, String inputPath, String outputPath, boolean aggregate) { + if (aggregate) { + Utils + .readPath(spark, inputPath + "/result/publication", Result.class) + .union(Utils.readPath(spark, inputPath + "/result/dataset", Result.class)) + .union(Utils.readPath(spark, inputPath + "/result/otherresearchproduct", Result.class)) + .union(Utils.readPath(spark, inputPath + "/result/software", Result.class)) + .write() + .option("compression", "gzip") + .mode(SaveMode.Overwrite) + .json(outputPath + "/result"); + } else { + write( + Utils + .readPath(spark, inputPath + "/result/publication", Result.class), + outputPath + "/publication"); + write( + Utils + .readPath(spark, inputPath + "/result/dataset", Result.class), + outputPath + "/dataset"); + write( + Utils + .readPath(spark, inputPath + "/result/otherresearchproduct", Result.class), + outputPath + "/otheresearchproduct"); + write( + Utils + .readPath(spark, inputPath + "/result/software", Result.class), + outputPath + "/software"); + + } Utils .readPath(spark, inputPath + "/relation/publication", Relation.class) @@ -86,4 +111,12 @@ public class SparkCollectAndSave implements Serializable { .json(outputPath + "/relation"); } + + private static void write(Dataset dataSet, String outputPath) { + dataSet + .write() + .option("compression", "gzip") + .mode(SaveMode.Overwrite) + .json(outputPath); + } } From f81ee22418c57bd9888924ec61fbf3aa51fe1e51 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:28:26 +0200 Subject: [PATCH 009/103] changed to mirror the changes in the model (Instance, CommunityInstance, GraphResult) --- .../dhp/oa/graph/dump/ResultMapper.java | 132 ++++++++++-------- 1 file changed, 77 insertions(+), 55 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java index 32fa65bb7e..1d20eb36af 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java @@ -5,6 +5,8 @@ import java.io.Serializable; import java.util.*; import java.util.stream.Collectors; +import eu.dnetlib.dhp.schema.dump.oaf.community.CommunityInstance; +import eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult; import org.apache.commons.lang3.StringUtils; import eu.dnetlib.dhp.schema.common.ModelConstants; @@ -18,12 +20,12 @@ import eu.dnetlib.dhp.schema.oaf.StructuredProperty; public class ResultMapper implements Serializable { - public static Result map( - I in, Map communityMap, boolean graph) { + public static Result map( + E in, Map communityMap, boolean graph) { Result out; if (graph) { - out = new Result(); + out = new GraphResult(); } else { out = new CommunityResult(); } @@ -214,15 +216,18 @@ public class ResultMapper implements Serializable { out.setId(input.getId()); out.setOriginalId(input.getOriginalId()); - final List instanceList = new ArrayList<>(); - Optional - .ofNullable(input.getInstance()) - .ifPresent( - inst -> inst - .stream() - .forEach(i -> instanceList.add(getInstance(i, graph)))); - out - .setInstance(instanceList); + + Optional> oInst = Optional + .ofNullable(input.getInstance()); + + if(oInst.isPresent()){ + if (graph){ + ((GraphResult)out).setInstance(oInst.get().stream().map(i -> getGraphInstance(i)).collect(Collectors.toList())); + } + else{ + ((CommunityResult)out).setInstance(oInst.get().stream().map(i -> getCommunityInstance(i)).collect(Collectors.toList())); + } + } Optional oL = Optional.ofNullable(input.getLanguage()); if (oL.isPresent()) { @@ -364,52 +369,69 @@ public class ResultMapper implements Serializable { } - private static Instance getInstance(eu.dnetlib.dhp.schema.oaf.Instance i, boolean graph) { + private static Instance getGraphInstance (eu.dnetlib.dhp.schema.oaf.Instance i){ + Instance instance = new Instance(); - Instance instance = new Instance(); - - if(!graph){ - instance - .setCollectedfrom( - KeyValue - .newInstance(i.getCollectedfrom().getKey(), i.getCollectedfrom().getValue())); - instance - .setHostedby( - KeyValue.newInstance(i.getHostedby().getKey(), i.getHostedby().getValue())); - } - - Optional opAr = Optional - .ofNullable(i.getAccessright()); - if (opAr.isPresent()) { - if (Constants.accessRightsCoarMap.containsKey(opAr.get().getClassid())) { - String code = Constants.accessRightsCoarMap.get(opAr.get().getClassid()); - instance - .setAccessright( - AccessRight - .newInstance( - code, - Constants.coarCodeLabelMap.get(code), - Constants.COAR_ACCESS_RIGHT_SCHEMA)); - } - } - - - Optional - .ofNullable(i.getLicense()) - .ifPresent(value -> instance.setLicense(value.getValue())); - Optional - .ofNullable(i.getDateofacceptance()) - .ifPresent(value -> instance.setPublicationdate(value.getValue())); - Optional - .ofNullable(i.getRefereed()) - .ifPresent(value -> instance.setRefereed(value.getClassname())); - // .ifPresent(value -> instance.setRefereed(value.getValue())); - Optional - .ofNullable(i.getInstancetype()) - .ifPresent(value -> instance.setType(value.getClassname())); - Optional.ofNullable(i.getUrl()).ifPresent(value -> instance.setUrl(value)); + setCommonValue(i, instance); return instance; + + } + + + private static CommunityInstance getCommunityInstance (eu.dnetlib.dhp.schema.oaf.Instance i){ + CommunityInstance instance = new CommunityInstance(); + + setCommonValue(i, instance); + + instance.setCollectedfrom(KeyValue + .newInstance(i.getCollectedfrom().getKey(), i.getCollectedfrom().getValue())); + + + instance + .setHostedby( + KeyValue.newInstance(i.getHostedby().getKey(), i.getHostedby().getValue())); + + return instance; + + } + + + private static void setCommonValue(eu.dnetlib.dhp.schema.oaf.Instance i, I instance) {// I + // getInstance(eu.dnetlib.dhp.schema.oaf.Instance + // i, boolean graph) { + Optional opAr = Optional + .ofNullable(i.getAccessright()); + if (opAr.isPresent()) { + if (Constants.accessRightsCoarMap.containsKey(opAr.get().getClassid())) { + String code = Constants.accessRightsCoarMap.get(opAr.get().getClassid()); + instance + .setAccessright( + AccessRight + .newInstance( + code, + Constants.coarCodeLabelMap.get(code), + Constants.COAR_ACCESS_RIGHT_SCHEMA)); + } + } + + Optional + .ofNullable(i.getLicense()) + .ifPresent(value -> instance.setLicense(value.getValue())); + Optional + .ofNullable(i.getDateofacceptance()) + .ifPresent(value -> instance.setPublicationdate(value.getValue())); + Optional + .ofNullable(i.getRefereed()) + .ifPresent(value -> instance.setRefereed(value.getClassname())); + // .ifPresent(value -> instance.setRefereed(value.getValue())); + Optional + .ofNullable(i.getInstancetype()) + .ifPresent(value -> instance.setType(value.getClassname())); + Optional.ofNullable(i.getUrl()).ifPresent(value -> instance.setUrl(value)); + + + } private static List getUniqueProvenance(List provenance) { From e42b2f5ae293605791b8dd4196ddf1e6d59edfbb Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:29:09 +0200 Subject: [PATCH 010/103] - --- .../main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java index c97d2d72ae..345f274d39 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java @@ -11,6 +11,7 @@ import java.util.Set; import java.util.stream.Collectors; import org.apache.spark.SparkConf; +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; @@ -57,7 +58,7 @@ public class DumpProducts implements Serializable { Utils .readPath(spark, inputPath, inputClazz) - .map(value -> execMap(value, communityMap, graph), Encoders.bean(outputClazz)) + .map((MapFunction) value -> execMap(value, communityMap, graph), Encoders.bean(outputClazz)) .filter(Objects::nonNull) .write() .mode(SaveMode.Overwrite) From 1c593a9cfee8ee45138491b74cc33cdc467a2f7d Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:29:51 +0200 Subject: [PATCH 011/103] - --- .../dhp/oa/graph/dump/graph/DumpGraphEntities.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java index 59e068c3f5..573be6de2e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java @@ -9,6 +9,7 @@ import java.util.*; import java.util.stream.Collectors; import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.SparkSession; @@ -22,6 +23,8 @@ import eu.dnetlib.dhp.oa.graph.dump.Utils; import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.dump.oaf.*; import eu.dnetlib.dhp.schema.dump.oaf.graph.*; +import eu.dnetlib.dhp.schema.dump.oaf.graph.Funder; +import eu.dnetlib.dhp.schema.dump.oaf.graph.Project; import eu.dnetlib.dhp.schema.oaf.Field; import eu.dnetlib.dhp.schema.oaf.Journal; import eu.dnetlib.dhp.schema.oaf.OafEntity; @@ -45,7 +48,7 @@ public class DumpGraphEntities implements Serializable { DumpProducts d = new DumpProducts(); d .run( - isSparkSessionManaged, inputPath, outputPath, communityMapPath, inputClazz, Result.class, + isSparkSessionManaged, inputPath, outputPath, communityMapPath, inputClazz, GraphResult.class, true); break; case "40": @@ -86,7 +89,7 @@ public class DumpGraphEntities implements Serializable { Class inputClazz) { Utils .readPath(spark, inputPath, inputClazz) - .map(d -> mapDatasource((eu.dnetlib.dhp.schema.oaf.Datasource) d), Encoders.bean(Datasource.class)) + .map((MapFunction) d -> mapDatasource((eu.dnetlib.dhp.schema.oaf.Datasource) d), Encoders.bean(Datasource.class)) .filter(Objects::nonNull) .write() .mode(SaveMode.Overwrite) @@ -98,7 +101,7 @@ public class DumpGraphEntities implements Serializable { Class inputClazz) { Utils .readPath(spark, inputPath, inputClazz) - .map(p -> mapProject((eu.dnetlib.dhp.schema.oaf.Project) p), Encoders.bean(Project.class)) + .map((MapFunction) p -> mapProject((eu.dnetlib.dhp.schema.oaf.Project) p), Encoders.bean(Project.class)) .write() .mode(SaveMode.Overwrite) .option("compression", "gzip") @@ -440,7 +443,7 @@ public class DumpGraphEntities implements Serializable { Class inputClazz) { Utils .readPath(spark, inputPath, inputClazz) - .map(o -> mapOrganization((eu.dnetlib.dhp.schema.oaf.Organization) o), Encoders.bean(Organization.class)) + .map((MapFunction) o -> mapOrganization((eu.dnetlib.dhp.schema.oaf.Organization) o), Encoders.bean(Organization.class)) .write() .mode(SaveMode.Overwrite) .option("compression", "gzip") From 66d0e0d3f29a95d4b699e82ffa74b4c857397118 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:31:50 +0200 Subject: [PATCH 012/103] - --- .../dump/graph/DumpOrganizationProjectDatasourceTest.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java index d855f279d2..e6d6449986 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java @@ -10,6 +10,7 @@ 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.Encoders; import org.apache.spark.sql.SparkSession; import org.junit.jupiter.api.AfterAll; @@ -89,7 +90,7 @@ public class DumpOrganizationProjectDatasourceTest { Assertions.assertEquals(34, verificationDataset.count()); - verificationDataset.foreach(o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); + verificationDataset.foreach((ForeachFunction) o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); } @@ -115,7 +116,7 @@ public class DumpOrganizationProjectDatasourceTest { Assertions.assertEquals(12, verificationDataset.count()); - verificationDataset.foreach(o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); + verificationDataset.foreach((ForeachFunction) o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); } @@ -140,7 +141,7 @@ public class DumpOrganizationProjectDatasourceTest { Assertions.assertEquals(5, verificationDataset.count()); - verificationDataset.foreach(o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); + verificationDataset.foreach((ForeachFunction) o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); } } From f6bf88801652ada41b4ceb3b155da8ff8d0bf8de Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:41:41 +0200 Subject: [PATCH 013/103] removed affiliation from author to mirror the changes in the model --- .../oa/graph/dump/splitForCommunity/dataset | 20 +++++++++---------- .../dhp/oa/graph/dump/splitForCommunity/orp | 6 +++--- .../graph/dump/splitForCommunity/publication | 4 ++-- .../oa/graph/dump/splitForCommunity/software | 10 +++++----- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/dataset b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/dataset index 52b69e2224..3bd42c46d2 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/dataset +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/dataset @@ -1,10 +1,10 @@ -{"author":[{"affiliation":[],"fullname":"Kooi, M.","name":"M.","rank":1,"surname":"Kooi"}],"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["APP"],"format":[],"geolocation":[],"id":"50|dedup_wf_001::51b88f272ba9c3bb181af64e70255a80","instance":[{"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["http://dx.doi.org/10.17026/dans-zcb-g65a"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591283023064,"maintitle":"Sportlaan","originalId":["DansKnawCris::1a960e20087cb46b93588e4e184e8a58"],"pid":[{"scheme":"doi","value":"10.17026/dans-zcb-g65a"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-v3-nws7"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"iis","trust":"0.891"},"subject":{"scheme":"mesheuropmc","value":"mental disorders"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Beckers, I.S.J.","name":"I.S.J.","rank":1,"surname":"Beckers"}],"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["In april 2016 is een archeologisch vooronderzoek uitgevoerd in een gepland leidingtracé langs de Schaapsdrift in De Bilt (gemeente De Bilt). De aanleiding voor het onderzoek vormt de aanleg van een nieuwe waterleiding en een beluchtingstoren op het pompstation Beerschoten. In het kader van deze ontwikkeling dient een omgevingsvergunning te worden aangevraagd. Het plangebied bestaat uit het deel van het leidingtracé waar op basis van het vigerend bestemmingsplan een dubbelbestemming ‘Waarde Archeologie’ geldt. Op basis van het bureauonderzoek werd in het plangebied een podzolgrond in de top van het dekzand verwacht, waar bovenop mogelijk een circa één-meter dikke laag stuifzand ligt. Het archeologisch niveau bevindt zich hierbij direct onder de bouwvoor c.q. humeuze bovengrond of in de top van een al dan niet begraven podzolbodem. De resten, die hierin te verwachten zijn, dateren naar verwachting in het Laat-Paleolithicum tot en met de Middeleeuwen en betreffen sporen van nederzetting en/of landgebruik uit die periode. De verwachting hierop is middelhoog. Voor wat betreft resten uit de Nieuwe tijd is de verwachting laag. In de Nieuwe tijd is het plangebied waarschijnlijk altijd heidegebied geweest. Ondanks dit verwachtingspatroon zijn in het plangebied wel diepe verstoringen te verwachten als gevolg van de aanleg van het waterpompstation. Op basis van de resultaten van het veldonderzoek blijkt dat het plangebied diep verstoord is geraakt tot tenminste 85 cm –Mv. In de meeste gevallen reikt de verstoring zelfs dieper dan 1,0 m –Mv. Er zijn tevens in het plangebied geen sporen gevonden van stuifzand of resten van oorspronkelijke bodemvorming. Ook archeologische indicatoren ontbreken. De mate van verstoring en het ontbreken van indicatoren leiden ertoe dat de archeologische verwachting voor alle archeologische perioden naar laag is bij te stellen. Er zijn namelijk geen (intacte) resten meer te verwachten."],"format":[],"geolocation":[],"id":"50|DansKnawCris::454801f4bde7f3da9bf519c3ced15f64","instance":[{"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["http://dx.doi.org/10.17026/dans-zqb-kvsa"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282863412,"maintitle":"De Bilt, Schaapsdrift (ong.) Gemeente De Bilt","originalId":["DansKnawCris::454801f4bde7f3da9bf519c3ced15f64"],"pid":[{"scheme":"doi","value":"10.17026/dans-zqb-kvsa"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-n8-lg50"},{"scheme":"doi","value":"10.17026/dans-zqb-kvsa"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-n8-lg50"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Gunawan, A.","name":"A.","rank":1,"surname":"Gunawan"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["N/A"],"format":[],"geolocation":[],"id":"50|DansKnawCris::64e5f4fdca8a51b9de769f61b304a12c","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["https://www.narcis.nl/publication/RecordID/hdl%3A10411%2F10268"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282599634,"maintitle":"Information access for SME's in Indonesia: A study on the business performance of garment manufacturers [Dataset]","originalId":["DansKnawCris::64e5f4fdca8a51b9de769f61b304a12c"],"pid":[],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Humanities"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Tilburg University"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Winslow, Sean M.","name":"Sean M.","rank":1,"surname":"Winslow"},{"affiliation":[],"fullname":"Schneider, Gerlinde","name":"Gerlinde","rank":2,"surname":"Schneider"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Abstract and poster of paper 0555 presented at the Digital Humanities Conference 2019 (DH2019), Utrecht , the Netherlands 9-12 July, 2019."],"format":[],"geolocation":[],"id":"50|DansKnawCris::a3378d960091a2f6c04ccd13410fb9b3","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["https://www.narcis.nl/publication/RecordID/hdl%3A10411%2FE7PZSQ"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282617163,"maintitle":"Madgwas: a Database of Ethiopian Binding Decoration","originalId":["DansKnawCris::a3378d960091a2f6c04ccd13410fb9b3"],"pid":[],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Arts and Humanities"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Boer, E. de","name":"E. de","rank":1,"surname":"Boer"}],"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["BOK"],"format":[],"geolocation":[],"id":"50|DansKnawCris::c49ecb710a817a28cec40cb0acaca444","instance":[{"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["http://dx.doi.org/10.17026/dans-xs6-d4nr"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282882937,"maintitle":"Groenstraat 25","originalId":["DansKnawCris::c49ecb710a817a28cec40cb0acaca444"],"pid":[{"scheme":"doi","value":"10.17026/dans-xs6-d4nr"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-3i-17yr"},{"scheme":"doi","value":"10.17026/dans-xs6-d4nr"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-3i-17yr"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Lil, R. van","name":"R. van","rank":1,"surname":"Lil"},{"affiliation":[],"fullname":"Brenk, S. van den","name":"S. van den","rank":2,"surname":"Brenk"}],"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["In opdracht van Aquifer Advies B.V. heeft Periplus Archeomare B.V. in samenwerking met Geotron Drilling Company B.V. een archeologisch inventariserend veldonderzoek door middel van boringen uitgevoerd voor het plangebied vaarweg Molenrak in het IJsselmeer. Het onderzoek richt zich op de archeologische niveaus die worden verwacht binnen van het dekzand- en rivierduinenlandschap en het holocene getijdenlandschap. Doel van het booronderzoek was: a) het vaststellen van de aard, morfologie en intactheid van het door jongere sedimenten afgedekte dekzand- en rivierduinenlandschap en het onderzoeken van de mogelijkheden die dit landschap heeft geboden voor bewoning, en b) ter plaatse van de magnetische anomalieën vaststellen van: * de aard van de bemonsterde sedimenten, * het milieu waarin deze sedimenten zijn afgezet, * fenomenen die wijzen op bodemvorming, rijping en bioturbatie, * de aanwezigheid van een cultuurlaag, en * het vaststellen of de aangetroffen afzettingen correleren met het patroon van magnetische anomalieën. Om aan de doelstelling te beantwoorden zijn twintig boringen uitgevoerd, waarvan tien gericht op het dekzand-/rivierduinlandschap en tien gericht op het getijdenlandschap. Op basis van de grootschalige natuurlijke en antropogene verstoringen die in het gebied hebben plaatsgevonden en het versnipperde voorkomen van een intacte dekzandlandschap wordt geadviseerd om het plangebied vrij te geven voor de geplande zandwinning. Tijdens de geplande werkzaamheden kunnen nog resten aan het licht komen die tot heden volledig werden afgedekt in de waterbodem of niet als archeologisch object zijn herkend tijdens het geofysisch onderzoek. De uitvoerder is conform de Erfgoedwet (2016) verplicht om dergelijke vondsten te melden bij de bevoegde overheid. Deze meldingsplicht dient in het bestek of Plan van Aanpak van het werk te worden opgenomen."],"format":[],"geolocation":[],"id":"50|DansKnawCris::d6d0a2f52afdf01dfbc8daccc7237d17","instance":[{"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["http://dx.doi.org/10.17026/dans-znd-7mjh"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282551996,"maintitle":"Vaarweg Molenrak, IJsselmeer. Inventariserend veldonderzoek door middel van Aqyalock boringen","originalId":["DansKnawCris::d6d0a2f52afdf01dfbc8daccc7237d17"],"pid":[{"scheme":"doi","value":"10.17026/dans-znd-7mjh"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-m0-v356"},{"scheme":"doi","value":"10.17026/dans-znd-7mjh"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-m0-v356"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Huijnen, Pim","name":"Pim","rank":1,"surname":"Huijnen"},{"affiliation":[],"fullname":"Wevers, Melvin","name":"Melvin","rank":2,"surname":"Wevers"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Abstract and poster of paper 0575 presented at the Digital Humanities Conference 2019 (DH2019), Utrecht , the Netherlands 9-12 July, 2019."],"format":[],"geolocation":[],"id":"50|DansKnawCris::da4eb1e96712bb8f2c51e2eb680118ed","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["https://www.narcis.nl/publication/RecordID/hdl%3A10411%2FPLGBWF"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282581458,"maintitle":"Buy Healthy, Tasty, Pure! A Digital Text Analysis of Neoliberal Trends in Dutch Food Culture","originalId":["DansKnawCris::da4eb1e96712bb8f2c51e2eb680118ed"],"pid":[],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Arts and Humanities"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Klackl, Johannes","name":"Johannes","rank":1,"surname":"Klackl"},{"affiliation":[],"fullname":"Jonas, Eva","name":"Eva","rank":2,"surname":"Jonas"},{"affiliation":[],"fullname":"Fritsche, Immo","name":"Immo","rank":3,"surname":"Fritsche"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},{"provenance":"Bulktagging for Community - Subject"},{"provenance":"Bulktagging for Community - Datasource"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"format":[],"geolocation":[],"id":"50|NeuroVault__::0a1bf96b7165e962e90cb14648c9462d","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"hostedby":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"license":"https://creativecommons.org/publicdomain/zero/1.0/","publicationdate":"2017-05-08","type":"Image","url":["https://neurovault.org/api/collections/1455/"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591283207779,"maintitle":"Neural evidence that the behavioral inhibition system is involved in existential threat processing","originalId":["NeuroVault__::0a1bf96b7165e962e90cb14648c9462d"],"pid":[],"publicationdate":"2017-05-08","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Brain"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Clare Kelly, A. M.","name":"A. M.","rank":1,"surname":"Clare Kelly"},{"affiliation":[],"fullname":"Uddin, Lucina Q.","name":"Lucina Q.","rank":2,"surname":"Uddin"},{"affiliation":[],"fullname":"Biswal, Bharat B.","name":"Bharat B.","rank":3,"surname":"Biswal"},{"affiliation":[],"fullname":"Xavier Castellanos, F.","name":"F.","rank":4,"surname":"Xavier Castellanos"},{"affiliation":[],"fullname":"Milham, Michael P.","name":"Michael P.","rank":5,"surname":"Milham"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"Bulktagging for Community - Datasource"},{"provenance":"Bulktagging for Community - Subject"},{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["OpenfMRI ds000102"],"format":[],"geolocation":[],"id":"50|NeuroVault__::6c8349cc7260ae62e3b1396831a8398f","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"hostedby":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"license":"https://creativecommons.org/publicdomain/zero/1.0/","publicationdate":"2014-06-04","type":"Image","url":["https://neurovault.org/api/collections/45/"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591283209523,"maintitle":"Competition between functional brain networks mediates behavioral variability","originalId":["NeuroVault__::6c8349cc7260ae62e3b1396831a8398f"],"pid":[],"publicationdate":"2014-06-04","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Brain"}}],"type":"dataset"} -{"author":[{"affiliation":[],"fullname":"Shine, James M.","name":"James M.","rank":1,"surname":"Shine"},{"affiliation":[],"fullname":"Matar, Elie","name":"Elie","rank":2,"surname":"Matar"},{"affiliation":[],"fullname":"Ward, Philip B.","name":"Philip B.","rank":3,"surname":"Ward"},{"affiliation":[],"fullname":"Bolitho, Samuel J.","name":"Samuel J.","rank":4,"surname":"Bolitho"},{"affiliation":[],"fullname":"Pearson, Mark","name":"Mark","rank":5,"surname":"Pearson"},{"affiliation":[],"fullname":"Naismith, Sharon L.","name":"Sharon L.","rank":6,"surname":"Naismith"},{"affiliation":[],"fullname":"Lewis, Simon J. G.","name":"Simon J. G.","rank":7,"surname":"Lewis"},{"affiliation":[],"fullname":"Chen, Robert","name":"Robert","rank":8,"surname":"Chen"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},{"provenance":"Bulktagging for Community - Subject"},{"provenance":"Bulktagging for Community - Datasource"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"format":[],"geolocation":[],"id":"50|NeuroVault__::e0c641195b27425bb056ac56f8953d24","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"hostedby":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"license":"https://creativecommons.org/publicdomain/zero/1.0/","publicationdate":"2015-03-05","type":"Image","url":["https://neurovault.org/api/collections/421/"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591283211447,"maintitle":"Differential Neural Activation Patterns in Patients with Parkinsons Disease and Freezing of Gait in Response to Concurrent Cognitive and Motor Load","originalId":["NeuroVault__::e0c641195b27425bb056ac56f8953d24"],"pid":[],"publicationdate":"2015-03-05","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Brain"}}],"type":"dataset"} \ No newline at end of file +{"author":[{"fullname":"Kooi, M.","name":"M.","rank":1,"surname":"Kooi"}],"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["APP"],"format":[],"geolocation":[],"id":"50|dedup_wf_001::51b88f272ba9c3bb181af64e70255a80","instance":[{"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["http://dx.doi.org/10.17026/dans-zcb-g65a"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591283023064,"maintitle":"Sportlaan","originalId":["DansKnawCris::1a960e20087cb46b93588e4e184e8a58"],"pid":[{"scheme":"doi","value":"10.17026/dans-zcb-g65a"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-v3-nws7"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"iis","trust":"0.891"},"subject":{"scheme":"mesheuropmc","value":"mental disorders"}}],"type":"dataset"} +{"author":[{"fullname":"Beckers, I.S.J.","name":"I.S.J.","rank":1,"surname":"Beckers"}],"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["In april 2016 is een archeologisch vooronderzoek uitgevoerd in een gepland leidingtracé langs de Schaapsdrift in De Bilt (gemeente De Bilt). De aanleiding voor het onderzoek vormt de aanleg van een nieuwe waterleiding en een beluchtingstoren op het pompstation Beerschoten. In het kader van deze ontwikkeling dient een omgevingsvergunning te worden aangevraagd. Het plangebied bestaat uit het deel van het leidingtracé waar op basis van het vigerend bestemmingsplan een dubbelbestemming ‘Waarde Archeologie’ geldt. Op basis van het bureauonderzoek werd in het plangebied een podzolgrond in de top van het dekzand verwacht, waar bovenop mogelijk een circa één-meter dikke laag stuifzand ligt. Het archeologisch niveau bevindt zich hierbij direct onder de bouwvoor c.q. humeuze bovengrond of in de top van een al dan niet begraven podzolbodem. De resten, die hierin te verwachten zijn, dateren naar verwachting in het Laat-Paleolithicum tot en met de Middeleeuwen en betreffen sporen van nederzetting en/of landgebruik uit die periode. De verwachting hierop is middelhoog. Voor wat betreft resten uit de Nieuwe tijd is de verwachting laag. In de Nieuwe tijd is het plangebied waarschijnlijk altijd heidegebied geweest. Ondanks dit verwachtingspatroon zijn in het plangebied wel diepe verstoringen te verwachten als gevolg van de aanleg van het waterpompstation. Op basis van de resultaten van het veldonderzoek blijkt dat het plangebied diep verstoord is geraakt tot tenminste 85 cm –Mv. In de meeste gevallen reikt de verstoring zelfs dieper dan 1,0 m –Mv. Er zijn tevens in het plangebied geen sporen gevonden van stuifzand of resten van oorspronkelijke bodemvorming. Ook archeologische indicatoren ontbreken. De mate van verstoring en het ontbreken van indicatoren leiden ertoe dat de archeologische verwachting voor alle archeologische perioden naar laag is bij te stellen. Er zijn namelijk geen (intacte) resten meer te verwachten."],"format":[],"geolocation":[],"id":"50|DansKnawCris::454801f4bde7f3da9bf519c3ced15f64","instance":[{"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["http://dx.doi.org/10.17026/dans-zqb-kvsa"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282863412,"maintitle":"De Bilt, Schaapsdrift (ong.) Gemeente De Bilt","originalId":["DansKnawCris::454801f4bde7f3da9bf519c3ced15f64"],"pid":[{"scheme":"doi","value":"10.17026/dans-zqb-kvsa"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-n8-lg50"},{"scheme":"doi","value":"10.17026/dans-zqb-kvsa"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-n8-lg50"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"dataset"} +{"author":[{"fullname":"Gunawan, A.","name":"A.","rank":1,"surname":"Gunawan"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["N/A"],"format":[],"geolocation":[],"id":"50|DansKnawCris::64e5f4fdca8a51b9de769f61b304a12c","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["https://www.narcis.nl/publication/RecordID/hdl%3A10411%2F10268"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282599634,"maintitle":"Information access for SME's in Indonesia: A study on the business performance of garment manufacturers [Dataset]","originalId":["DansKnawCris::64e5f4fdca8a51b9de769f61b304a12c"],"pid":[],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Humanities"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Tilburg University"}}],"type":"dataset"} +{"author":[{"fullname":"Winslow, Sean M.","name":"Sean M.","rank":1,"surname":"Winslow"},{"fullname":"Schneider, Gerlinde","name":"Gerlinde","rank":2,"surname":"Schneider"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Abstract and poster of paper 0555 presented at the Digital Humanities Conference 2019 (DH2019), Utrecht , the Netherlands 9-12 July, 2019."],"format":[],"geolocation":[],"id":"50|DansKnawCris::a3378d960091a2f6c04ccd13410fb9b3","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["https://www.narcis.nl/publication/RecordID/hdl%3A10411%2FE7PZSQ"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282617163,"maintitle":"Madgwas: a Database of Ethiopian Binding Decoration","originalId":["DansKnawCris::a3378d960091a2f6c04ccd13410fb9b3"],"pid":[],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Arts and Humanities"}}],"type":"dataset"} +{"author":[{"fullname":"Boer, E. de","name":"E. de","rank":1,"surname":"Boer"}],"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["BOK"],"format":[],"geolocation":[],"id":"50|DansKnawCris::c49ecb710a817a28cec40cb0acaca444","instance":[{"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["http://dx.doi.org/10.17026/dans-xs6-d4nr"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282882937,"maintitle":"Groenstraat 25","originalId":["DansKnawCris::c49ecb710a817a28cec40cb0acaca444"],"pid":[{"scheme":"doi","value":"10.17026/dans-xs6-d4nr"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-3i-17yr"},{"scheme":"doi","value":"10.17026/dans-xs6-d4nr"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-3i-17yr"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"dataset"} +{"author":[{"fullname":"Lil, R. van","name":"R. van","rank":1,"surname":"Lil"},{"fullname":"Brenk, S. van den","name":"S. van den","rank":2,"surname":"Brenk"}],"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["In opdracht van Aquifer Advies B.V. heeft Periplus Archeomare B.V. in samenwerking met Geotron Drilling Company B.V. een archeologisch inventariserend veldonderzoek door middel van boringen uitgevoerd voor het plangebied vaarweg Molenrak in het IJsselmeer. Het onderzoek richt zich op de archeologische niveaus die worden verwacht binnen van het dekzand- en rivierduinenlandschap en het holocene getijdenlandschap. Doel van het booronderzoek was: a) het vaststellen van de aard, morfologie en intactheid van het door jongere sedimenten afgedekte dekzand- en rivierduinenlandschap en het onderzoeken van de mogelijkheden die dit landschap heeft geboden voor bewoning, en b) ter plaatse van de magnetische anomalieën vaststellen van: * de aard van de bemonsterde sedimenten, * het milieu waarin deze sedimenten zijn afgezet, * fenomenen die wijzen op bodemvorming, rijping en bioturbatie, * de aanwezigheid van een cultuurlaag, en * het vaststellen of de aangetroffen afzettingen correleren met het patroon van magnetische anomalieën. Om aan de doelstelling te beantwoorden zijn twintig boringen uitgevoerd, waarvan tien gericht op het dekzand-/rivierduinlandschap en tien gericht op het getijdenlandschap. Op basis van de grootschalige natuurlijke en antropogene verstoringen die in het gebied hebben plaatsgevonden en het versnipperde voorkomen van een intacte dekzandlandschap wordt geadviseerd om het plangebied vrij te geven voor de geplande zandwinning. Tijdens de geplande werkzaamheden kunnen nog resten aan het licht komen die tot heden volledig werden afgedekt in de waterbodem of niet als archeologisch object zijn herkend tijdens het geofysisch onderzoek. De uitvoerder is conform de Erfgoedwet (2016) verplicht om dergelijke vondsten te melden bij de bevoegde overheid. Deze meldingsplicht dient in het bestek of Plan van Aanpak van het werk te worden opgenomen."],"format":[],"geolocation":[],"id":"50|DansKnawCris::d6d0a2f52afdf01dfbc8daccc7237d17","instance":[{"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["http://dx.doi.org/10.17026/dans-znd-7mjh"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282551996,"maintitle":"Vaarweg Molenrak, IJsselmeer. Inventariserend veldonderzoek door middel van Aqyalock boringen","originalId":["DansKnawCris::d6d0a2f52afdf01dfbc8daccc7237d17"],"pid":[{"scheme":"doi","value":"10.17026/dans-znd-7mjh"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-m0-v356"},{"scheme":"doi","value":"10.17026/dans-znd-7mjh"},{"scheme":"urn","value":"urn:nbn:nl:ui:13-m0-v356"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"dataset"} +{"author":[{"fullname":"Huijnen, Pim","name":"Pim","rank":1,"surname":"Huijnen"},{"fullname":"Wevers, Melvin","name":"Melvin","rank":2,"surname":"Wevers"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Abstract and poster of paper 0575 presented at the Digital Humanities Conference 2019 (DH2019), Utrecht , the Netherlands 9-12 July, 2019."],"format":[],"geolocation":[],"id":"50|DansKnawCris::da4eb1e96712bb8f2c51e2eb680118ed","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Dataset","url":["https://www.narcis.nl/publication/RecordID/hdl%3A10411%2FPLGBWF"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282581458,"maintitle":"Buy Healthy, Tasty, Pure! A Digital Text Analysis of Neoliberal Trends in Dutch Food Culture","originalId":["DansKnawCris::da4eb1e96712bb8f2c51e2eb680118ed"],"pid":[],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Arts and Humanities"}}],"type":"dataset"} +{"author":[{"fullname":"Klackl, Johannes","name":"Johannes","rank":1,"surname":"Klackl"},{"fullname":"Jonas, Eva","name":"Eva","rank":2,"surname":"Jonas"},{"fullname":"Fritsche, Immo","name":"Immo","rank":3,"surname":"Fritsche"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},{"provenance":"Bulktagging for Community - Subject"},{"provenance":"Bulktagging for Community - Datasource"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"format":[],"geolocation":[],"id":"50|NeuroVault__::0a1bf96b7165e962e90cb14648c9462d","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"hostedby":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"license":"https://creativecommons.org/publicdomain/zero/1.0/","publicationdate":"2017-05-08","type":"Image","url":["https://neurovault.org/api/collections/1455/"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591283207779,"maintitle":"Neural evidence that the behavioral inhibition system is involved in existential threat processing","originalId":["NeuroVault__::0a1bf96b7165e962e90cb14648c9462d"],"pid":[],"publicationdate":"2017-05-08","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Brain"}}],"type":"dataset"} +{"author":[{"fullname":"Clare Kelly, A. M.","name":"A. M.","rank":1,"surname":"Clare Kelly"},{"fullname":"Uddin, Lucina Q.","name":"Lucina Q.","rank":2,"surname":"Uddin"},{"fullname":"Biswal, Bharat B.","name":"Bharat B.","rank":3,"surname":"Biswal"},{"fullname":"Xavier Castellanos, F.","name":"F.","rank":4,"surname":"Xavier Castellanos"},{"fullname":"Milham, Michael P.","name":"Michael P.","rank":5,"surname":"Milham"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"Bulktagging for Community - Datasource"},{"provenance":"Bulktagging for Community - Subject"},{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["OpenfMRI ds000102"],"format":[],"geolocation":[],"id":"50|NeuroVault__::6c8349cc7260ae62e3b1396831a8398f","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"hostedby":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"license":"https://creativecommons.org/publicdomain/zero/1.0/","publicationdate":"2014-06-04","type":"Image","url":["https://neurovault.org/api/collections/45/"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591283209523,"maintitle":"Competition between functional brain networks mediates behavioral variability","originalId":["NeuroVault__::6c8349cc7260ae62e3b1396831a8398f"],"pid":[],"publicationdate":"2014-06-04","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Brain"}}],"type":"dataset"} +{"author":[{"fullname":"Shine, James M.","name":"James M.","rank":1,"surname":"Shine"},{"fullname":"Matar, Elie","name":"Elie","rank":2,"surname":"Matar"},{"fullname":"Ward, Philip B.","name":"Philip B.","rank":3,"surname":"Ward"},{"fullname":"Bolitho, Samuel J.","name":"Samuel J.","rank":4,"surname":"Bolitho"},{"fullname":"Pearson, Mark","name":"Mark","rank":5,"surname":"Pearson"},{"fullname":"Naismith, Sharon L.","name":"Sharon L.","rank":6,"surname":"Naismith"},{"fullname":"Lewis, Simon J. G.","name":"Simon J. G.","rank":7,"surname":"Lewis"},{"fullname":"Chen, Robert","name":"Robert","rank":8,"surname":"Chen"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},{"provenance":"Bulktagging for Community - Subject"},{"provenance":"Bulktagging for Community - Datasource"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"format":[],"geolocation":[],"id":"50|NeuroVault__::e0c641195b27425bb056ac56f8953d24","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"hostedby":{"key":"10|rest________::fb1a3d4523c95e63496e3bc7ba36244b","value":"NeuroVault"},"license":"https://creativecommons.org/publicdomain/zero/1.0/","publicationdate":"2015-03-05","type":"Image","url":["https://neurovault.org/api/collections/421/"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591283211447,"maintitle":"Differential Neural Activation Patterns in Patients with Parkinsons Disease and Freezing of Gait in Response to Concurrent Cognitive and Motor Load","originalId":["NeuroVault__::e0c641195b27425bb056ac56f8953d24"],"pid":[],"publicationdate":"2015-03-05","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Brain"}}],"type":"dataset"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/orp b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/orp index 780e5f171c..db22d74e56 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/orp +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/orp @@ -1,3 +1,3 @@ -{"author":[{"affiliation":[],"fullname":"(:Unkn) Unknown","name":"","rank":1,"surname":""}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"contactgroup":[],"contactperson":[],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":["Technische Universität Berlin","Technische Universität Berlin","Leibinger, Regine","Bonauer, Markus","Kneer, Florian","Strugar, Bogdan"],"country":[],"coverage":[],"dateofcollection":"","description":["In den Workshops zum „digitalen Handwerk“ wurden unter dem Motto „Inspiration statt Imitation“ tektonische Modelle anhand von ausgewählten Vorbildern aus der Natur entwickelt. Ziel des Seminars war das Verständnis komplexer räumlicher Strukturen und die präzise Fertigung entsprechender digitaler und physischer Artefakte mit konstruktiven Methoden des rechnerbasierten Modellbaus."],"embargoenddate":"2013-06-18","format":[],"id":"50|datacite____::23f1352bc917eaee7a6f714a104af457","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::55045bd2a65019fd8e6741a755395c8c","value":"Unknown Repository"},"publicationdate":"2013-01-01","type":"UNKNOWN","url":["http://dx.doi.org/10.14279/depositonce-1958"]}],"language":{"code":"de","label":"de"},"lastupdatetimestamp":1591283033042,"maintitle":"Natur und Artefakt","originalId":["datacite____::23f1352bc917eaee7a6f714a104af457"],"pid":[{"scheme":"doi","value":"10.14279/depositonce-1958"}],"publicationdate":"2013-01-01","publisher":"Fachgebiet Baukonstruktion und Entwerfen der Techn. Univ. Berlin","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"720 Architektur"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Architektur"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Berlin"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Tierpark Berlin"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Architecture"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Berlin"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Zoo"}}],"tool":[],"type":"other"} -{"author":[{"affiliation":[],"fullname":"Pilavaki, Andrea","name":"Andrea","rank":1,"surname":"Pilavaki"}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"contactgroup":[],"contactperson":[],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":["National Technological University Of Athens","National Technological University Of Athens"],"country":[],"coverage":[],"dateofcollection":"","description":[],"embargoenddate":"2017-03-23","format":[],"id":"50|datacite____::3104dd40f9f245a7ccec3a7eedec0677","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::55045bd2a65019fd8e6741a755395c8c","value":"Unknown Repository"},"license":"http://creativecommons.org/licenses/by-nc-nd/3.0/gr","publicationdate":"2017-01-01","type":"UNKNOWN","url":["http://dx.doi.org/10.26240/heal.ntua.1869"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282610325,"maintitle":"Περπατώντας: χωρική εμπειρία και αντίληψη εν κινήσει","originalId":["datacite____::3104dd40f9f245a7ccec3a7eedec0677"],"pid":[{"scheme":"doi","value":"10.26240/heal.ntua.1869"}],"publicationdate":"2017-01-01","publisher":"National Technological University of Athens","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Περπάτημα"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Walking"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Περιπλάνηση"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Εγκέφαλος"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Σκέψη"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Στοχασμός"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Χωρική αντίληψη"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Wandering"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Brain"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Thinking"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Contemplation"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Spatial perception"}}],"tool":[],"type":"other"} -{"author":[{"affiliation":[],"fullname":"British Market Research Bureau","name":"","rank":1,"surname":""}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"contactgroup":[],"contactperson":[],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Datasource"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["These are a series of surveys containing questions asked of a monthly representative sample of 1000 adults about their financial well-being and expectations by the British Market Research Bureau."],"format":[],"id":"50|datacite____::375aca0856010caaae89abe57f442c31","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::9ebe127e5f3a0bf401875690f3bb6b81","value":"UK Data Archive"},"publicationdate":"1982-01-01","type":"Other ORP type","url":["http://dx.doi.org/10.5255/ukda-sn-1698-1"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591283267206,"maintitle":"Financial Expectations, 1970-1981","originalId":["datacite____::375aca0856010caaae89abe57f442c31"],"pid":[{"scheme":"doi","value":"10.5255/ukda-sn-1698-1"}],"publicationdate":"1982-01-01","publisher":"UK Data Service","subjects":[{"provenance":{"provenance":"iis","trust":"0.891"},"subject":{"scheme":"mesheuropmc","value":"health care economics and organizations"}}],"tool":["fake"],"type":"other"} \ No newline at end of file +{"author":[{"fullname":"(:Unkn) Unknown","name":"","rank":1,"surname":""}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"contactgroup":[],"contactperson":[],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":["Technische Universität Berlin","Technische Universität Berlin","Leibinger, Regine","Bonauer, Markus","Kneer, Florian","Strugar, Bogdan"],"country":[],"coverage":[],"dateofcollection":"","description":["In den Workshops zum „digitalen Handwerk“ wurden unter dem Motto „Inspiration statt Imitation“ tektonische Modelle anhand von ausgewählten Vorbildern aus der Natur entwickelt. Ziel des Seminars war das Verständnis komplexer räumlicher Strukturen und die präzise Fertigung entsprechender digitaler und physischer Artefakte mit konstruktiven Methoden des rechnerbasierten Modellbaus."],"embargoenddate":"2013-06-18","format":[],"id":"50|datacite____::23f1352bc917eaee7a6f714a104af457","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::55045bd2a65019fd8e6741a755395c8c","value":"Unknown Repository"},"publicationdate":"2013-01-01","type":"UNKNOWN","url":["http://dx.doi.org/10.14279/depositonce-1958"]}],"language":{"code":"de","label":"de"},"lastupdatetimestamp":1591283033042,"maintitle":"Natur und Artefakt","originalId":["datacite____::23f1352bc917eaee7a6f714a104af457"],"pid":[{"scheme":"doi","value":"10.14279/depositonce-1958"}],"publicationdate":"2013-01-01","publisher":"Fachgebiet Baukonstruktion und Entwerfen der Techn. Univ. Berlin","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"720 Architektur"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Architektur"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Berlin"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Tierpark Berlin"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Architecture"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Berlin"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Zoo"}}],"tool":[],"type":"other"} +{"author":[{"fullname":"Pilavaki, Andrea","name":"Andrea","rank":1,"surname":"Pilavaki"}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"contactgroup":[],"contactperson":[],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":["National Technological University Of Athens","National Technological University Of Athens"],"country":[],"coverage":[],"dateofcollection":"","description":[],"embargoenddate":"2017-03-23","format":[],"id":"50|datacite____::3104dd40f9f245a7ccec3a7eedec0677","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::55045bd2a65019fd8e6741a755395c8c","value":"Unknown Repository"},"license":"http://creativecommons.org/licenses/by-nc-nd/3.0/gr","publicationdate":"2017-01-01","type":"UNKNOWN","url":["http://dx.doi.org/10.26240/heal.ntua.1869"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282610325,"maintitle":"Περπατώντας: χωρική εμπειρία και αντίληψη εν κινήσει","originalId":["datacite____::3104dd40f9f245a7ccec3a7eedec0677"],"pid":[{"scheme":"doi","value":"10.26240/heal.ntua.1869"}],"publicationdate":"2017-01-01","publisher":"National Technological University of Athens","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Περπάτημα"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Walking"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Περιπλάνηση"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Εγκέφαλος"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Σκέψη"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Στοχασμός"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Χωρική αντίληψη"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Wandering"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Brain"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Thinking"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Contemplation"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Spatial perception"}}],"tool":[],"type":"other"} +{"author":[{"fullname":"British Market Research Bureau","name":"","rank":1,"surname":""}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"contactgroup":[],"contactperson":[],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Datasource"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["These are a series of surveys containing questions asked of a monthly representative sample of 1000 adults about their financial well-being and expectations by the British Market Research Bureau."],"format":[],"id":"50|datacite____::375aca0856010caaae89abe57f442c31","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::9ebe127e5f3a0bf401875690f3bb6b81","value":"UK Data Archive"},"publicationdate":"1982-01-01","type":"Other ORP type","url":["http://dx.doi.org/10.5255/ukda-sn-1698-1"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591283267206,"maintitle":"Financial Expectations, 1970-1981","originalId":["datacite____::375aca0856010caaae89abe57f442c31"],"pid":[{"scheme":"doi","value":"10.5255/ukda-sn-1698-1"}],"publicationdate":"1982-01-01","publisher":"UK Data Service","subjects":[{"provenance":{"provenance":"iis","trust":"0.891"},"subject":{"scheme":"mesheuropmc","value":"health care economics and organizations"}}],"tool":["fake"],"type":"other"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/publication b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/publication index c454815fb0..3184c26635 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/publication +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/publication @@ -1,5 +1,5 @@ {"author":[],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"format":[],"id":"50|DansKnawCris::26780065282e607306372abd0d808245","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Report"}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282897527,"maintitle":"None","originalId":["DansKnawCris::26780065282e607306372abd0d808245"],"pid":[{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550053196"},{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550053196"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"publication"} -{"author":[{"affiliation":[],"fullname":"van Someren, Christian","name":"Christian","rank":1,"surname":"van Someren"}],"bestaccessright":{"code":"c_16ec","label":"RESTRICTED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Over het Energieakkoord. In het energieakkoord voor duurzame groei is afgesproken dat in 2020 14 procent van de opwek hernieuwbaar moet zijn en in 2023 16 procent. De doelstelling is een uitdagende opgave waarbij de eerste vraag is: \"Hoeveel hernieuwbare energie wordt er op dit moment opgewekt in Nederland?\" Deze website geeft antwoord op de vraag voor de actueel opgewekte windenergie, zonne-energie en biogas."],"format":[],"id":"50|dedup_wf_001::51b88f272ba9c3bb181af64e70255a80","instance":[{"accessright":{"code":"c_16ec","label":"RESTRICTED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"publicationdate":"2016-11-01","type":"Other literature type","url":["http://energieopwek.nl/"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282663379,"maintitle":"Energie opwek","originalId":["DansKnawCris::3c81248c335f0aa07e06817ece6fa6af"],"pid":[{"scheme":"urn","value":"urn:nbn:nl:hs:18-813a5dfa-4fd0-44c4-8cbf-310324dc724d"},{"scheme":"urn","value":"urn:nbn:nl:hs:18-813a5dfa-4fd0-44c4-8cbf-310324dc724d"}],"publicationdate":"2016-11-01","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"energieproductie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Management"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Monitoring"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Policy and Law"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Energie interventies en gedrag"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"publieke ondersteuning en communicatie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Professional practice & society"}}],"type":"publication"} +{"author":[{"fullname":"van Someren, Christian","name":"Christian","rank":1,"surname":"van Someren"}],"bestaccessright":{"code":"c_16ec","label":"RESTRICTED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Over het Energieakkoord. In het energieakkoord voor duurzame groei is afgesproken dat in 2020 14 procent van de opwek hernieuwbaar moet zijn en in 2023 16 procent. De doelstelling is een uitdagende opgave waarbij de eerste vraag is: \"Hoeveel hernieuwbare energie wordt er op dit moment opgewekt in Nederland?\" Deze website geeft antwoord op de vraag voor de actueel opgewekte windenergie, zonne-energie en biogas."],"format":[],"id":"50|dedup_wf_001::51b88f272ba9c3bb181af64e70255a80","instance":[{"accessright":{"code":"c_16ec","label":"RESTRICTED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"publicationdate":"2016-11-01","type":"Other literature type","url":["http://energieopwek.nl/"]}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282663379,"maintitle":"Energie opwek","originalId":["DansKnawCris::3c81248c335f0aa07e06817ece6fa6af"],"pid":[{"scheme":"urn","value":"urn:nbn:nl:hs:18-813a5dfa-4fd0-44c4-8cbf-310324dc724d"},{"scheme":"urn","value":"urn:nbn:nl:hs:18-813a5dfa-4fd0-44c4-8cbf-310324dc724d"}],"publicationdate":"2016-11-01","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"energieproductie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Management"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Monitoring"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Policy and Law"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Energie interventies en gedrag"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"publieke ondersteuning en communicatie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Professional practice & society"}}],"type":"publication"} {"author":[],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"format":[],"id":"50|DansKnawCris::3c9f068ddc930360bec6925488a9a97f","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Report"}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282670417,"maintitle":"None","originalId":["DansKnawCris::3c9f068ddc930360bec6925488a9a97f"],"pid":[{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550052278"},{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550052278"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"publication"} {"author":[],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Met lit. opg"],"format":[],"id":"50|DansKnawCris::4669a378a73661417182c208e6fdab53","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"publicationdate":"2010-01-01","type":"Report"}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591282758835,"maintitle":"Plangebied Het Hof en Oranjepark : gemeente Vlaardingen : archeologisch vooronderzoek: een inventariserend veldonderzoek (verkennende fase)","originalId":["DansKnawCris::4669a378a73661417182c208e6fdab53"],"pid":[{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceFullCatalogue&search=priref=800007467"},{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceFullCatalogue&search=priref=800007467"}],"publicationdate":"2010-01-01","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Vlaardingen"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"publication"} {"author":[],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Met literatuuropgave"],"format":[],"id":"50|DansKnawCris::4a9152e80f860eab99072e921d74a0ff","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Report"}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591283010899,"maintitle":"Proefsleuvenonderzoek aan de Bredasebaan 8 te Bladel","originalId":["DansKnawCris::4a9152e80f860eab99072e921d74a0ff"],"pid":[{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceFullCatalogue&search=priref=800014509"},{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceFullCatalogue&search=priref=800014509"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Bladel"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"publication"} @@ -7,4 +7,4 @@ {"author":[],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"format":[],"id":"50|DansKnawCris::53842d77ea8c021a3ad5b401a8c7458b","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"type":"Report"}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282538754,"maintitle":"None","originalId":["DansKnawCris::53842d77ea8c021a3ad5b401a8c7458b"],"pid":[{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550039885"},{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550039885"}],"subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"publication"} {"author":[],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"format":[],"id":"50|DansKnawCris::794d07c2e66f1fbf07d61b9bfca36dc2","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"publicationdate":"2012-01-01","type":"Report"}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282847497,"maintitle":"Archeologisch onderzoek plangebied Akker-Boekenderweg te Thorn","originalId":["DansKnawCris::794d07c2e66f1fbf07d61b9bfca36dc2"],"pid":[{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550028404"},{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceRapporten&search=priref=550028404"}],"publicationdate":"2012-01-01","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"publication"} {"author":[],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Met lit. opg"],"format":[],"id":"50|DansKnawCris::7b844ee57dcf7d57148ab8ef6dc5ff88","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"publicationdate":"2006-01-01","type":"Report"}],"language":{"code":"nl","label":"nl"},"lastupdatetimestamp":1591283003396,"maintitle":"Archeologisch onderzoek tracé drukriolering Abcoude : bureauonderzoek","originalId":["DansKnawCris::7b844ee57dcf7d57148ab8ef6dc5ff88"],"pid":[{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceFullCatalogue&search=priref=800002012"},{"scheme":"urn","value":"http://cultureelerfgoed.adlibsoft.com/dispatcher.aspx?action=search&database=ChoiceFullCatalogue&search=priref=800002012"}],"publicationdate":"2006-01-01","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"archeologie"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Abcoude"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Archaeology"}}],"type":"publication"} -{"author":[{"affiliation":[],"fullname":"Zwieten, van, P.A.M.","name":"van, P.A.M.","rank":1,"surname":"Zwieten"},{"affiliation":[],"fullname":"Banda, M.","name":"M.","rank":2,"surname":"Banda"},{"affiliation":[],"fullname":"Kolding, J.","name":"J.","rank":3,"surname":"Kolding"}],"bestaccessright":{"code":"c_16ec","label":"RESTRICTED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"container":{"edition":"","ep":"44","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0380-1330","name":"Journal of Great Lakes Research","sp":"26","vol":"37"},"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["The provision of management information on the fisheries of Lakes Malawi and Malombe has been characterised by top–down controlled single species steady-state assessment techniques originating from single gear industrial fisheries but applied to an open access highly diverse and adaptive small-scale multispecies and multi-gear fishery. The result has largely been an unhappy marriage with uncertainties blamed more on the data than the process, although the data collection generally is detailed and comprehensive on catch and effort parameters. An extensive literature review of primary and grey literature on ecosystem drivers, exploitation pressures, and fish population and community states shows that Malawi has the necessary knowledge base for expanding their assessment into multi-causal and exploratory indicator-based methods that can assist in better understanding and more disciplined use of existing data and monitoring systems. Selection and ranking of a suite of indicators focusing on the major fisheries in the Southeast arm of Lake Malawi and Lake Malombe were done by a group of Malawian fisheries researchers and management advisers, thereby testing a framework of scoring criteria assessing an indicator's acceptability, observability, and relatedness to management. Indicators that are close to raw observational data and that require limited permutations and few assumptions appear to be preferable in the Malawian context. CPUE-based assessments can improve the utility of data and information in communicating developments and processes and evaluate fisheries management policies"],"format":[],"id":"50|DansKnawCris::b90247718304c409331edb82fd0e8d56","instance":[{"accessright":{"code":"c_16ec","label":"RESTRICTED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"publicationdate":"2011-01-01","type":"Article"}],"language":{"code":"en","label":"en"},"lastupdatetimestamp":1591282621858,"maintitle":"Selecting indicators to assess the fisheries of Lake Malawi and Lake Malombe: Knowledge base and evaluative capacity","originalId":["DansKnawCris::b90247718304c409331edb82fd0e8d56"],"pid":[{"scheme":"urn","value":"urn:nbn:nl:ui:32-401847"},{"scheme":"urn","value":"urn:nbn:nl:ui:32-401847"}],"publicationdate":"2011-01-01","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"african great-lakes"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"cichlid fishes"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"reference points"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"east-africa"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"management"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"perspective"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"tanganyika"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"diversity"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"history"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"nyasa"}}],"type":"publication"} \ No newline at end of file +{"author":[{"fullname":"Zwieten, van, P.A.M.","name":"van, P.A.M.","rank":1,"surname":"Zwieten"},{"fullname":"Banda, M.","name":"M.","rank":2,"surname":"Banda"},{"fullname":"Kolding, J.","name":"J.","rank":3,"surname":"Kolding"}],"bestaccessright":{"code":"c_16ec","label":"RESTRICTED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"}],"container":{"edition":"","ep":"44","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0380-1330","name":"Journal of Great Lakes Research","sp":"26","vol":"37"},"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["The provision of management information on the fisheries of Lakes Malawi and Malombe has been characterised by top–down controlled single species steady-state assessment techniques originating from single gear industrial fisheries but applied to an open access highly diverse and adaptive small-scale multispecies and multi-gear fishery. The result has largely been an unhappy marriage with uncertainties blamed more on the data than the process, although the data collection generally is detailed and comprehensive on catch and effort parameters. An extensive literature review of primary and grey literature on ecosystem drivers, exploitation pressures, and fish population and community states shows that Malawi has the necessary knowledge base for expanding their assessment into multi-causal and exploratory indicator-based methods that can assist in better understanding and more disciplined use of existing data and monitoring systems. Selection and ranking of a suite of indicators focusing on the major fisheries in the Southeast arm of Lake Malawi and Lake Malombe were done by a group of Malawian fisheries researchers and management advisers, thereby testing a framework of scoring criteria assessing an indicator's acceptability, observability, and relatedness to management. Indicators that are close to raw observational data and that require limited permutations and few assumptions appear to be preferable in the Malawian context. CPUE-based assessments can improve the utility of data and information in communicating developments and processes and evaluate fisheries management policies"],"format":[],"id":"50|DansKnawCris::b90247718304c409331edb82fd0e8d56","instance":[{"accessright":{"code":"c_16ec","label":"RESTRICTED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"hostedby":{"key":"10|openaire____::c6df70599aa984f16ee52b4b86d2e89f","value":"DANS (Data Archiving and Networked Services)"},"publicationdate":"2011-01-01","type":"Article"}],"language":{"code":"en","label":"en"},"lastupdatetimestamp":1591282621858,"maintitle":"Selecting indicators to assess the fisheries of Lake Malawi and Lake Malombe: Knowledge base and evaluative capacity","originalId":["DansKnawCris::b90247718304c409331edb82fd0e8d56"],"pid":[{"scheme":"urn","value":"urn:nbn:nl:ui:32-401847"},{"scheme":"urn","value":"urn:nbn:nl:ui:32-401847"}],"publicationdate":"2011-01-01","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"african great-lakes"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"cichlid fishes"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"reference points"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"east-africa"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"management"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"perspective"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"tanganyika"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"diversity"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"history"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"nyasa"}}],"type":"publication"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/software b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/software index e58b45c02d..7deda50e49 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/software +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/splitForCommunity/software @@ -1,6 +1,6 @@ {"author":[],"collectedfrom":[{"key":"10|rest________::b8e502674c3c3499d5374e9b2ea6d8d5","value":"bio.tools"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Chilibot searches the PubMed literature database based on specific relationships between proteins, genes, or keywords. The results are returned as a graph."],"documentationUrl":["http://www.chilibot.net"],"format":[],"id":"50|__bioTools__::c17ebaca97f287b181090c9b4cba766e","instance":[{"collectedfrom":{"key":"10|rest________::b8e502674c3c3499d5374e9b2ea6d8d5","value":"bio.tools"},"hostedby":{"key":"10|rest________::b8e502674c3c3499d5374e9b2ea6d8d5","value":"bio.tools"},"publicationdate":"2017-05-01","type":"Software","url":["https://bio.tools/chilibot"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282924188,"maintitle":"Chilibot","originalId":["__bioTools__::c17ebaca97f287b181090c9b4cba766e"],"pid":[],"programmingLanguage":"UNKNOWN","publicationdate":"2017-05-01","publisher":"bio.tools","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Natural language processing"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Molecular interactions, pathways and networks"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Proteins"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Literature and language"}},{"provenance":{"provenance":"iis","trust":"0.8739"},"subject":{"scheme":"mesheuropmc","value":"human activities"}}],"type":"software"} -{"author":[{"affiliation":[],"fullname":"Agustoni, Marco","name":"Marco","rank":1,"surname":"Agustoni"},{"affiliation":[],"fullname":"Marti, Lukas","name":"Lukas","rank":2,"surname":"Marti"},{"affiliation":[],"fullname":"ATLAS, Collaboration","name":"Collaboration","rank":3,"surname":"Atlas"},{"affiliation":[],"fullname":"Schneider, Basil","name":"Basil","rank":4,"surname":"Schneider"},{"affiliation":[],"fullname":"Gallo, Valentina","name":"Valentina","rank":5,"surname":"Gallo"},{"affiliation":[],"fullname":"Ereditato, Antonio","name":"Antonio","rank":6,"surname":"Ereditato"},{"affiliation":[],"fullname":"Sciacca, Gianfranco","name":"Gianfranco","rank":7,"surname":"Sciacca"},{"affiliation":[],"fullname":"Haug, Sigve","name":"Sigve","rank":8,"surname":"Haug"},{"affiliation":[],"fullname":"Kabana, Sonja","name":"Sonja","rank":9,"surname":"Kabana"},{"affiliation":[],"fullname":"Kruker, Tobias","name":"Tobias","rank":10,"surname":"Kruker"},{"affiliation":[],"fullname":"Ancu, Lucian","name":"Lucian","rank":11,"surname":"Ancu"},{"affiliation":[],"fullname":"Battaglia, Andreas","name":"Andreas","rank":12,"surname":"Battaglia"},{"affiliation":[],"fullname":"Beck, Hans Peter","name":"Hans Peter","rank":13,"surname":"Beck"},{"affiliation":[],"fullname":"Pretzl, Klaus-Peter","name":"Klaus-Peter","rank":14,"surname":"Pretzl"},{"affiliation":[],"fullname":"Borer, Claudia","name":"Claudia","rank":15,"surname":"Borer"},{"affiliation":[],"fullname":"Weber, Michael","name":"Michael","rank":16,"surname":"Weber"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[{"code":"egi","label":"EGI Federation","provenance":[{"provenance":"iis","trust":"0.9"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"documentationUrl":[],"embargoenddate":"2013-01-01","format":["application/pdf"],"id":"50|dedup_wf_001::e4805d005bfab0cd39a1642cbf477fdb","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::55045bd2a65019fd8e6741a755395c8c","value":"Unknown Repository"},"publicationdate":"2013-01-01","type":"Software","url":["http://dx.doi.org/10.7892/boris.58468"]}],"language":{"code":"eng","label":"English"},"lastupdatetimestamp":1591283098072,"maintitle":"Search for pair-produced massive coloured scalars in four-jet final states with the ATLAS detector in proton-proton collisions at sqrts=7 TeV","originalId":["datacite____::04dd1f84f3a429ecf1e838afcd94cb3f"],"pid":[{"scheme":"doi","value":"10.7892/boris.58468"}],"programmingLanguage":"application/pdf","publicationdate":"2013-01-01","publisher":"EDP Sciences","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"530 Physics"}}],"type":"software"} -{"author":[{"affiliation":["[u'McGill University']"],"fullname":"Regev, Mor","name":"Mor","rank":1,"surname":"Regev"},{"affiliation":["[u'Holon Institute of Technology']"],"fullname":"Simony, Erez","name":"Erez","rank":2,"surname":"Simony"},{"affiliation":["[u'Princeton University']"],"fullname":"Lee, Katherine","name":"Katherine","rank":3,"surname":"Lee"},{"affiliation":["[u'University of Minnesota']"],"fullname":"Tan, Kean Ming","name":"Kean Ming","rank":4,"surname":"Tan"},{"affiliation":["[u'Johns Hopkins University']"],"fullname":"Chen, Janice","name":"Janice","rank":5,"surname":"Chen"},{"affiliation":["[u'Princeton University']"],"fullname":"Hasson, Uri","name":"Uri","rank":6,"surname":"Hasson"}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":["Regev, Mor"],"country":[],"coverage":[],"dateofcollection":"","description":["This capsule demonstrates the inter-subject functional correlation (ISFC) analysis described in \"Propagation of information along the cortical hierarchy as a function of attention while reading and listening to stories \" by Regev, Simony, Lee, Tan, Chen and Hasson."],"documentationUrl":[],"format":[],"id":"50|datacite____::6b1e3a2fa60ed8c27317a66d6357f795","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::c52707e6a6b63c5aeac022e62cc8cee7","value":"Code Ocean"},"license":"https://opensource.org/licenses/MIT","publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.24433/co.12957bc5-fa2b-488f-ae72-52e3fe362b5c","https://codeocean.com/2018/10/30/intersubject-functional-correlation-lpar-isfc-rpar-as-a-function-of-attention"]}],"language":{"code":"en-us","label":"en-us"},"lastupdatetimestamp":1591282729250,"maintitle":"Intersubject functional correlation (ISFC) as a function of attention","originalId":["datacite____::6b1e3a2fa60ed8c27317a66d6357f795"],"pid":[{"scheme":"doi","value":"10.24433/co.12957bc5-fa2b-488f-ae72-52e3fe362b5c"}],"programmingLanguage":"UNKNOWN","publicationdate":"2018-01-01","publisher":"Code Ocean","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Capsule"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Biology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"fmri"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"neuroscience"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"language"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"attention"}}],"type":"software"} -{"author":[{"affiliation":["University of Washington"],"fullname":"Winebrenner, Dale","name":"Dale","pid":{"id":{"scheme":"ORCID","value":"0000-0003-2341-1083"},"provenance":{"provenance":"sysimport:crosswalk:repository","trust":"0.9"}},"rank":1,"surname":"Winebrenner"},{"affiliation":["NASA Goddard Spaceflight Center"],"fullname":"MacGregor, Joseph","name":"Joseph","rank":2,"surname":"Macgregor"},{"affiliation":["University of Washington"],"fullname":"Kintner, Paul","name":"Paul","rank":3,"surname":"Kintner"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

Collection of Matlab scripts and data files to implement and exercise data analysis and modeling in support of the paper "New Estimates of Ice and Oxygen Fluxes Across the Entire Lid of Lake Vostok from Observations of Englacial Radiowave Attenuation", in review at the Journal of Geophysical Research - Earth Surface, October 2018. 

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::0347b1cd516fc59e41ba92e0d74e4e9f","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"https://creativecommons.org/licenses/by/4.0","publicationdate":"2018-01-01","type":"Software","url":["https://zenodo.org/record/1467433","http://dx.doi.org/10.5281/zenodo.1467432"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2018-01-01","type":"Software","url":["https://figshare.com/articles/Lake_Vostok_radar_attenuation_and_basal_accretion_data_models_and_computations/7246043","http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"https://creativecommons.org/licenses/by/4.0","publicationdate":"2018-01-01","type":"Software","url":["https://zenodo.org/record/1467433","http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.1467433"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"Lake Vostok Radar Attenuation And Basal Accretion Data, Models And Computations","originalId":["datacite____::6ad543d8217b00d3c6e96f0b0a310d9f","r37980778c78::1a67aade293d5f0c985073a3470fdd9c","datacite____::51f29f85c008323ab696ef1c51ab242c","r37b0ad08687::213cee42e7f14a78806470a35a09f87a","od______2659::213cee42e7f14a78806470a35a09f87a"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.1467432"},{"scheme":"doi","value":"10.5281/zenodo.1467433"}],"programmingLanguage":"UNKNOWN","publicationdate":"2018-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Lake Vostok, radioglaciology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Cancer"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Inorganic Chemistry"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"59999 Environmental Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"69999 Biological Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"80699 Information Systems not elsewhere classified"}}],"type":"software"} -{"author":[{"affiliation":["Laboratory of Psychology and NeuroCognition – CNRS/UGA, Grenoble, France"],"fullname":"Laboissière, Rafael","name":"Rafael","rank":1,"surname":"Laboissière"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

This release contains the raw data, as well as the pre-processing and statistical analysis scripts (in R) for the experiments of perception of object stability under vection (illusion of self movement).

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::1432beb6171baa5da8a85a7f99545d69","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400","https://zenodo.org/record/801400"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400","https://figshare.com/articles/rlaboiss_vextab-data_Raw_data_and_statistical_analysis_code_for_the_vextab_study/11470608"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801399","https://zenodo.org/record/801400"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"rlaboiss/vextab-data: Raw data and statistical analysis code for the vextab study","originalId":["r37b0ad08687::25acd09277dae71c80810366a599421c","datacite____::b353952b541b80dfed37f4e48b86e4c2","od______2659::25acd09277dae71c80810366a599421c","r37980778c78::a02038e6624d01df9cf22cb709d7fe92","datacite____::c2c7b341f563b61294ec4c7396a3f984"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.801400"},{"scheme":"doi","value":"10.5281/zenodo.801399"}],"programmingLanguage":"UNKNOWN","publicationdate":"2017-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"perceived object stability, vection, gravity perception, illusory body tilt, frames of reference"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Sociology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Immunology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Inorganic Chemistry"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"69999 Biological Sciences not elsewhere classified"}}],"type":"software"} -{"author":[{"affiliation":["George Washington University"],"fullname":"Gaberial Campese","name":"","rank":1,"surname":""}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

A visualization project that researches trends in military, healthcare, and education expenditures by government. This project uses the Google Charts API.

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::1c8bd19e633976e314b88ce5c3f92d69","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["https://zenodo.org/record/3490231","http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2019-01-01","type":"Software","url":["https://figshare.com/articles/Military_Healthcare_and_Education_Visualization_Project/11451567","http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167","https://zenodo.org/record/3490167"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["https://zenodo.org/record/3490231","http://dx.doi.org/10.5281/zenodo.3490166"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167","https://figshare.com/articles/Military_Healthcare_and_Education_Visualization_Project/11536080"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"Military, Healthcare, and Education Visualization Project","originalId":["datacite____::fc293ea8b1058dc6adaa87ad19a01123","od______2659::ea8c041f18c6201e4f7cd2764b408d20","r37980778c78::a1412e0bb17acd68cd6604c22386a988","datacite____::d8408df60f8d9b703e500ca210de53cb","datacite____::42607e67f94a1d82aebb02eeb7a69d7d","r37980778c78::2dd6d1ca777a3ca6e5f253362dcf1968","od______2659::c27f64126331e6a4a0a82a17aef4b48e"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.3490231"},{"scheme":"doi","value":"10.5281/zenodo.3490167"},{"scheme":"doi","value":"10.5281/zenodo.3490166"}],"programmingLanguage":"UNKNOWN","publicationdate":"2019-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Medicine"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Neuroscience"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Cancer"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"111714 Mental Health"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"19999 Mathematical Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"80699 Information Systems not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"trend"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"healthcare"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Education Visualization Project"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Google Charts API"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"education expenditures"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Military"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"visualization project"}},{"provenance":{"provenance":"iis","trust":"0.7542"},"subject":{"scheme":"acm","value":"ComputingMilieux_LEGALASPECTSOFCOMPUTING"}}],"type":"software"} \ No newline at end of file +{"author":[{"fullname":"Agustoni, Marco","name":"Marco","rank":1,"surname":"Agustoni"},{"fullname":"Marti, Lukas","name":"Lukas","rank":2,"surname":"Marti"},{"fullname":"ATLAS, Collaboration","name":"Collaboration","rank":3,"surname":"Atlas"},{"fullname":"Schneider, Basil","name":"Basil","rank":4,"surname":"Schneider"},{"fullname":"Gallo, Valentina","name":"Valentina","rank":5,"surname":"Gallo"},{"fullname":"Ereditato, Antonio","name":"Antonio","rank":6,"surname":"Ereditato"},{"fullname":"Sciacca, Gianfranco","name":"Gianfranco","rank":7,"surname":"Sciacca"},{"fullname":"Haug, Sigve","name":"Sigve","rank":8,"surname":"Haug"},{"fullname":"Kabana, Sonja","name":"Sonja","rank":9,"surname":"Kabana"},{"fullname":"Kruker, Tobias","name":"Tobias","rank":10,"surname":"Kruker"},{"fullname":"Ancu, Lucian","name":"Lucian","rank":11,"surname":"Ancu"},{"fullname":"Battaglia, Andreas","name":"Andreas","rank":12,"surname":"Battaglia"},{"fullname":"Beck, Hans Peter","name":"Hans Peter","rank":13,"surname":"Beck"},{"fullname":"Pretzl, Klaus-Peter","name":"Klaus-Peter","rank":14,"surname":"Pretzl"},{"fullname":"Borer, Claudia","name":"Claudia","rank":15,"surname":"Borer"},{"fullname":"Weber, Michael","name":"Michael","rank":16,"surname":"Weber"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[{"code":"egi","label":"EGI Federation","provenance":[{"provenance":"iis","trust":"0.9"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"documentationUrl":[],"embargoenddate":"2013-01-01","format":["application/pdf"],"id":"50|dedup_wf_001::e4805d005bfab0cd39a1642cbf477fdb","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::55045bd2a65019fd8e6741a755395c8c","value":"Unknown Repository"},"publicationdate":"2013-01-01","type":"Software","url":["http://dx.doi.org/10.7892/boris.58468"]}],"language":{"code":"eng","label":"English"},"lastupdatetimestamp":1591283098072,"maintitle":"Search for pair-produced massive coloured scalars in four-jet final states with the ATLAS detector in proton-proton collisions at sqrts=7 TeV","originalId":["datacite____::04dd1f84f3a429ecf1e838afcd94cb3f"],"pid":[{"scheme":"doi","value":"10.7892/boris.58468"}],"programmingLanguage":"application/pdf","publicationdate":"2013-01-01","publisher":"EDP Sciences","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"530 Physics"}}],"type":"software"} +{"author":[{"fullname":"Regev, Mor","name":"Mor","rank":1,"surname":"Regev"},{"fullname":"Simony, Erez","name":"Erez","rank":2,"surname":"Simony"},{"fullname":"Lee, Katherine","name":"Katherine","rank":3,"surname":"Lee"},{"fullname":"Tan, Kean Ming","name":"Kean Ming","rank":4,"surname":"Tan"},{"fullname":"Chen, Janice","name":"Janice","rank":5,"surname":"Chen"},{"fullname":"Hasson, Uri","name":"Uri","rank":6,"surname":"Hasson"}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":["Regev, Mor"],"country":[],"coverage":[],"dateofcollection":"","description":["This capsule demonstrates the inter-subject functional correlation (ISFC) analysis described in \"Propagation of information along the cortical hierarchy as a function of attention while reading and listening to stories \" by Regev, Simony, Lee, Tan, Chen and Hasson."],"documentationUrl":[],"format":[],"id":"50|datacite____::6b1e3a2fa60ed8c27317a66d6357f795","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::c52707e6a6b63c5aeac022e62cc8cee7","value":"Code Ocean"},"license":"https://opensource.org/licenses/MIT","publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.24433/co.12957bc5-fa2b-488f-ae72-52e3fe362b5c","https://codeocean.com/2018/10/30/intersubject-functional-correlation-lpar-isfc-rpar-as-a-function-of-attention"]}],"language":{"code":"en-us","label":"en-us"},"lastupdatetimestamp":1591282729250,"maintitle":"Intersubject functional correlation (ISFC) as a function of attention","originalId":["datacite____::6b1e3a2fa60ed8c27317a66d6357f795"],"pid":[{"scheme":"doi","value":"10.24433/co.12957bc5-fa2b-488f-ae72-52e3fe362b5c"}],"programmingLanguage":"UNKNOWN","publicationdate":"2018-01-01","publisher":"Code Ocean","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Capsule"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Biology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"fmri"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"neuroscience"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"language"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"attention"}}],"type":"software"} +{"author":[{"fullname":"Winebrenner, Dale","name":"Dale","pid":{"id":{"scheme":"ORCID","value":"0000-0003-2341-1083"},"provenance":{"provenance":"sysimport:crosswalk:repository","trust":"0.9"}},"rank":1,"surname":"Winebrenner"},{"fullname":"MacGregor, Joseph","name":"Joseph","rank":2,"surname":"Macgregor"},{"fullname":"Kintner, Paul","name":"Paul","rank":3,"surname":"Kintner"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

Collection of Matlab scripts and data files to implement and exercise data analysis and modeling in support of the paper "New Estimates of Ice and Oxygen Fluxes Across the Entire Lid of Lake Vostok from Observations of Englacial Radiowave Attenuation", in review at the Journal of Geophysical Research - Earth Surface, October 2018. 

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::0347b1cd516fc59e41ba92e0d74e4e9f","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"https://creativecommons.org/licenses/by/4.0","publicationdate":"2018-01-01","type":"Software","url":["https://zenodo.org/record/1467433","http://dx.doi.org/10.5281/zenodo.1467432"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2018-01-01","type":"Software","url":["https://figshare.com/articles/Lake_Vostok_radar_attenuation_and_basal_accretion_data_models_and_computations/7246043","http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"https://creativecommons.org/licenses/by/4.0","publicationdate":"2018-01-01","type":"Software","url":["https://zenodo.org/record/1467433","http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.1467433"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"Lake Vostok Radar Attenuation And Basal Accretion Data, Models And Computations","originalId":["datacite____::6ad543d8217b00d3c6e96f0b0a310d9f","r37980778c78::1a67aade293d5f0c985073a3470fdd9c","datacite____::51f29f85c008323ab696ef1c51ab242c","r37b0ad08687::213cee42e7f14a78806470a35a09f87a","od______2659::213cee42e7f14a78806470a35a09f87a"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.1467432"},{"scheme":"doi","value":"10.5281/zenodo.1467433"}],"programmingLanguage":"UNKNOWN","publicationdate":"2018-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Lake Vostok, radioglaciology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Cancer"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Inorganic Chemistry"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"59999 Environmental Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"69999 Biological Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"80699 Information Systems not elsewhere classified"}}],"type":"software"} +{"author":[{"fullname":"Laboissière, Rafael","name":"Rafael","rank":1,"surname":"Laboissière"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

This release contains the raw data, as well as the pre-processing and statistical analysis scripts (in R) for the experiments of perception of object stability under vection (illusion of self movement).

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::1432beb6171baa5da8a85a7f99545d69","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400","https://zenodo.org/record/801400"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400","https://figshare.com/articles/rlaboiss_vextab-data_Raw_data_and_statistical_analysis_code_for_the_vextab_study/11470608"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801399","https://zenodo.org/record/801400"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"rlaboiss/vextab-data: Raw data and statistical analysis code for the vextab study","originalId":["r37b0ad08687::25acd09277dae71c80810366a599421c","datacite____::b353952b541b80dfed37f4e48b86e4c2","od______2659::25acd09277dae71c80810366a599421c","r37980778c78::a02038e6624d01df9cf22cb709d7fe92","datacite____::c2c7b341f563b61294ec4c7396a3f984"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.801400"},{"scheme":"doi","value":"10.5281/zenodo.801399"}],"programmingLanguage":"UNKNOWN","publicationdate":"2017-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"perceived object stability, vection, gravity perception, illusory body tilt, frames of reference"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Sociology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Immunology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Inorganic Chemistry"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"69999 Biological Sciences not elsewhere classified"}}],"type":"software"} +{"author":[{"fullname":"Gaberial Campese","name":"","rank":1,"surname":""}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

A visualization project that researches trends in military, healthcare, and education expenditures by government. This project uses the Google Charts API.

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::1c8bd19e633976e314b88ce5c3f92d69","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["https://zenodo.org/record/3490231","http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2019-01-01","type":"Software","url":["https://figshare.com/articles/Military_Healthcare_and_Education_Visualization_Project/11451567","http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167","https://zenodo.org/record/3490167"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["https://zenodo.org/record/3490231","http://dx.doi.org/10.5281/zenodo.3490166"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167","https://figshare.com/articles/Military_Healthcare_and_Education_Visualization_Project/11536080"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"Military, Healthcare, and Education Visualization Project","originalId":["datacite____::fc293ea8b1058dc6adaa87ad19a01123","od______2659::ea8c041f18c6201e4f7cd2764b408d20","r37980778c78::a1412e0bb17acd68cd6604c22386a988","datacite____::d8408df60f8d9b703e500ca210de53cb","datacite____::42607e67f94a1d82aebb02eeb7a69d7d","r37980778c78::2dd6d1ca777a3ca6e5f253362dcf1968","od______2659::c27f64126331e6a4a0a82a17aef4b48e"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.3490231"},{"scheme":"doi","value":"10.5281/zenodo.3490167"},{"scheme":"doi","value":"10.5281/zenodo.3490166"}],"programmingLanguage":"UNKNOWN","publicationdate":"2019-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Medicine"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Neuroscience"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Cancer"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"111714 Mental Health"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"19999 Mathematical Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"80699 Information Systems not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"trend"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"healthcare"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Education Visualization Project"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Google Charts API"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"education expenditures"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Military"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"visualization project"}},{"provenance":{"provenance":"iis","trust":"0.7542"},"subject":{"scheme":"acm","value":"ComputingMilieux_LEGALASPECTSOFCOMPUTING"}}],"type":"software"} \ No newline at end of file From 11b80899d76d6c7b4212837a94e7bbc18801f6f3 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:43:18 +0200 Subject: [PATCH 014/103] added to store information concerning to project common to both the dumps for community and the whole graph --- .../main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java index f23d5a6703..9b4f556bba 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java @@ -3,6 +3,13 @@ package eu.dnetlib.dhp.schema.dump.oaf; import java.io.Serializable; +/** + * This class to store the common information about the project that will be dumped for community and for the whole graph + * - private String id to store the id of the project (OpenAIRE id) + * - private String code to store the grant agreement of the project + * - private String acronym to store the acronym of the project + * - private String title to store the tile of the project + */ public class Project implements Serializable { protected String id;// OpenAIRE id protected String code; From f5bae426f70cebe4f6c65dfc271eec78cfc7b7b8 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:43:44 +0200 Subject: [PATCH 015/103] modified to store information concerning to instance and result common to both the dumps for community and the whole graph --- .../dnetlib/dhp/schema/dump/oaf/Instance.java | 40 +++++-------------- .../dnetlib/dhp/schema/dump/oaf/Result.java | 15 +------ 2 files changed, 11 insertions(+), 44 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java index 3db9cbe919..2837ea5f39 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java @@ -6,18 +6,16 @@ import java.util.List; /** * Represents the manifestations (i.e. different versions) of the result. For example: the pre-print and the published - * versions are two manifestations of the same research result. It has the following parameters: - license of type + * versions are two manifestations of the same research result. It has the following parameters: + * - license of type * String to store the license applied to the instance. It corresponds to the value of the licence in the instance to be - * dumped - accessright of type eu.dnetlib.dhp.schema.dump.oaf.AccessRight to store the accessright of the instance. - - * type of type String to store the type of the instance as defined in the corresponding dnet vocabulary - * (dnet:pubication_resource). It corresponds to the instancetype.classname of the instance to be mapped - hostedby of - * type eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the instance can be - * viewed or downloaded. It is mapped against the hostedby parameter of the instance to be dumped and - key corresponds - * to hostedby.key - value corresponds to hostedby.value - url of type List list of locations where the instance - * is accessible. It corresponds to url of the instance to be dumped - collectedfrom of type - * eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the instance has been - * collected. It is mapped against the collectedfrom parameter of the instance to be dumped and - key corresponds to - * collectedfrom.key - value corresponds to collectedfrom.value - publicationdate of type String to store the + * dumped + * - accessright of type eu.dnetlib.dhp.schema.dump.oaf.AccessRight to store the accessright of the instance. + * - type of type String to store the type of the instance as defined in the corresponding dnet vocabulary + * (dnet:pubication_resource). It corresponds to the instancetype.classname of the instance to be mapped + * - url of type List list of locations where the instance + * is accessible. It corresponds to url of the instance to be dumped + * - publicationdate of type String to store the * publication date of the instance ;// dateofacceptance; - refereed of type String to store information abour tthe * review status of the instance. Possible values are 'Unknown', 'nonPeerReviewed', 'peerReviewed'. It corresponds to * refereed.classname of the instance to be dumped @@ -30,12 +28,8 @@ public class Instance implements Serializable { private String type; - private KeyValue hostedby; - private List url; - private KeyValue collectedfrom; - private String publicationdate;// dateofacceptance; private String refereed; // peer-review status @@ -64,14 +58,6 @@ public class Instance implements Serializable { this.type = type; } - public KeyValue getHostedby() { - return hostedby; - } - - public void setHostedby(KeyValue hostedby) { - this.hostedby = hostedby; - } - public List getUrl() { return url; } @@ -80,14 +66,6 @@ public class Instance implements Serializable { this.url = url; } - public KeyValue getCollectedfrom() { - return collectedfrom; - } - - public void setCollectedfrom(KeyValue collectedfrom) { - this.collectedfrom = collectedfrom; - } - public String getPublicationdate() { return publicationdate; } diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java index 97ee722595..acd7c6258a 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java @@ -34,8 +34,7 @@ import eu.dnetlib.dhp.schema.dump.oaf.community.Project; * to the list of coverage.value in the result represented in the internal model - bestaccessright of type * eu.dnetlib.dhp.schema.dump.oaf.AccessRight to store informatin about the openest access right associated to the * manifestations of this research results. It corresponds to the same parameter in the result represented in the - * internal model - instance of type List to store all the instances associated - * to the result. It corresponds to the same parameter in the result represented in the internal model - container of + * internal model - container of * type eu.dnetlib.dhp.schema/dump.oaf.Container (only for result of type publication). It corresponds to the parameter * journal of the result represented in the internal model - documentationUrl of type List (only for results of * type software) to store the URLs to the software documentation. It corresponds to the list of documentationUrl.value @@ -65,7 +64,7 @@ import eu.dnetlib.dhp.schema.dump.oaf.community.Project; * represented in the internal model - lasteupdatetimestamp of type String to store the timestamp of the last update of * the record. It corresponds to lastupdatetimestamp of the resord represented in the internal model */ -public class Result implements Serializable { +public class Result implements Serializable { private List author; @@ -101,8 +100,6 @@ public class Result implements Serializable { private AccessRight bestaccessright; - private List instance; - private Container container;// Journal private List documentationUrl; // software @@ -309,14 +306,6 @@ public class Result implements Serializable { this.bestaccessright = bestaccessright; } - public List getInstance() { - return instance; - } - - public void setInstance(List instance) { - this.instance = instance; - } - public List getDocumentationUrl() { return documentationUrl; } From 4584cf63340241220307b949abacbd809a3df306 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:44:46 +0200 Subject: [PATCH 016/103] contains the specialized instance parameter for the dump of the result in the whole graph --- .../schema/dump/oaf/graph/GraphResult.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java index 9b8fa08013..b4bee5a3b2 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java @@ -1,4 +1,23 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; -public class GraphResult { +import eu.dnetlib.dhp.schema.dump.oaf.Instance; +import eu.dnetlib.dhp.schema.dump.oaf.Result; + +import java.util.List; + +/** + * It extends the eu.dnetlib.dhp.schema.dump.oaf.Result with + * - instance of type List to store all the instances associated + * to the result. It corresponds to the same parameter in the result represented in the internal model + */ +public class GraphResult extends Result { + private List instance; + + public List getInstance() { + return instance; + } + + public void setInstance(List instance) { + this.instance = instance; + } } From f26382fa5157eacfabdad31f67a9903b7e0dd44e Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:45:23 +0200 Subject: [PATCH 017/103] extends the instance with parameters collectedfrom and hostedby to be dumps only for communities --- .../dump/oaf/community/CommunityInstance.java | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java index 03c770e848..f520ef04f9 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java @@ -1,4 +1,41 @@ package eu.dnetlib.dhp.schema.dump.oaf.community; -public class CommunityInstance { +import eu.dnetlib.dhp.schema.dump.oaf.Instance; +import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; + +/** + * It extends eu.dnetlib.dhp.dump.oaf.Instance with values related to the community dump. In the Result dump this information + * is not present because it is dumped as a set of relations between the result and the datasource. + * - hostedby of type eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the instance can be + * viewed or downloaded. It is mapped against the hostedby parameter of the instance to be dumped and + * - key corresponds to hostedby.key + * - value corresponds to hostedby.value + * - collectedfrom of type eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the instance has been + * collected. It is mapped against the collectedfrom parameter of the instance to be dumped and + * - key corresponds to collectedfrom.key + * - value corresponds to collectedfrom.value + */ +public class CommunityInstance extends Instance { + private KeyValue hostedby; + private KeyValue collectedfrom; + + + public KeyValue getHostedby() { + return hostedby; + } + + + public void setHostedby(KeyValue hostedby) { + this.hostedby = hostedby; + } + + + public KeyValue getCollectedfrom() { + return collectedfrom; + } + + + public void setCollectedfrom(KeyValue collectedfrom) { + this.collectedfrom = collectedfrom; + } } From 6b8c5034fc74c280cd41df23d2a72e5424dd3380 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:46:20 +0200 Subject: [PATCH 018/103] extends the result with parameters specific for the community dump. --- .../dump/oaf/community/CommunityResult.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityResult.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityResult.java index 8c748e103a..a4e9d77c7a 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityResult.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityResult.java @@ -10,11 +10,13 @@ import eu.dnetlib.dhp.schema.dump.oaf.Result; * extends eu.dnetlib.dhp.schema.dump.oaf.Result with the following parameters: - projects of type * List to store the list of projects related to the result. The * information is added after the result is mapped to the external model - context of type - * List to store information about the RC RI related to the result. + * List to store information about the RC RI related to the result. * For each context in the result represented in the internal model one context in the external model is produced - * collectedfrom of type List to store information about the sources from which * the record has been collected. For each collectedfrom in the result represented in the internal model one * collectedfrom in the external model is produced + * - instance of type List to store all the instances associated + * to the result. It corresponds to the same parameter in the result represented in the internal model */ public class CommunityResult extends Result { @@ -24,6 +26,17 @@ public class CommunityResult extends Result { protected List collectedfrom; + private List instance ; + + public List getInstance() { + return instance; + } + + public void setInstance(List instance) { + this.instance = instance; + } + + public List getCollectedfrom() { return collectedfrom; } From c325acef3fd3de7be4e803e98fc6602316056aec Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:47:17 +0200 Subject: [PATCH 019/103] changed as extensions of the classes defining the common parameter --- .../dhp/schema/dump/oaf/community/Funder.java | 56 ++++++------- .../schema/dump/oaf/community/Project.java | 45 +---------- .../dhp/schema/dump/oaf/graph/Funder.java | 41 ++-------- .../dhp/schema/dump/oaf/graph/Project.java | 79 ++++--------------- 4 files changed, 54 insertions(+), 167 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Funder.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Funder.java index b795fd1006..83c2302964 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Funder.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Funder.java @@ -9,38 +9,38 @@ import java.io.Serializable; * (e.c. Akademy of Finland) - fundingStream of type String to store the funding stream - jurisdiction of type String to * store the jurisdiction of the funder */ -public class Funder implements Serializable { - private String shortName; - - private String name; +public class Funder extends eu.dnetlib.dhp.schema.dump.oaf.Funder { +// private String shortName; +// +// private String name; private String fundingStream; - private String jurisdiction; +// private String jurisdiction; - public String getJurisdiction() { - return jurisdiction; - } - - public void setJurisdiction(String jurisdiction) { - this.jurisdiction = jurisdiction; - } - - public String getShortName() { - return shortName; - } - - public void setShortName(String shortName) { - this.shortName = shortName; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } +// public String getJurisdiction() { +// return jurisdiction; +// } +// +// public void setJurisdiction(String jurisdiction) { +// this.jurisdiction = jurisdiction; +// } +// +// public String getShortName() { +// return shortName; +// } +// +// public void setShortName(String shortName) { +// this.shortName = shortName; +// } +// +// public String getName() { +// return name; +// } +// +// public void setName(String name) { +// this.name = name; +// } public String getFundingStream() { return fundingStream; diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Project.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Project.java index 7e23a13114..0530bbb3b8 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Project.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Project.java @@ -8,21 +8,14 @@ import eu.dnetlib.dhp.schema.dump.oaf.Provenance; /** * To store information about the project related to the result. This information is not directly mapped from the result * represented in the internal model because it is not there. The mapped result will be enriched with project - * information derived by relation between results and projects. Project class has the following parameters: - id of - * type String to store the OpenAIRE id for the Project - code of type String to store the grant agreement - acronym of - * type String to store the acronym for the project - title of type String to store the title of the project - funder of + * information derived by relation between results and projects. + * Project extends eu.dnetlib.dhp.schema.dump.oaf.Project with the following parameters: + * - funder of * type eu.dnetlib.dhp.schema.dump.oaf.community.Funder to store information about the funder funding the project - * provenance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance to store information about the. provenance of the * association between the result and the project */ -public class Project implements Serializable { - - private String id;// OpenAIRE id - private String code; - - private String acronym; - - private String title; +public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project { private Funder funder; @@ -36,37 +29,7 @@ public class Project implements Serializable { this.provenance = provenance; } - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getAcronym() { - return acronym; - } - - public void setAcronym(String acronym) { - this.acronym = acronym; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } public Funder getFunder() { return funder; diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Funder.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Funder.java index 57d94f481b..ef054234b6 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Funder.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Funder.java @@ -4,46 +4,15 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; /** - * To store information about the funder funding the project related to the result. It has the following parameters: - * - private String shortName to store the short name of the funder (e.g. AKA) - * - private String name to store information about the name of the funder (e.g. Akademy of Finland) - * - private Fundings funding_stream to store the fundingstream - * - private String jurisdiction to store information about the jurisdiction of the funder + * To store information about the funder funding the project related to the result. It extends eu.dnetlib.dhp.schema.dump.oaf.Funder + * with the following parameter: - + * + * - private eu.dnetdlib.dhp.schema.dump.oaf.graph.Fundings funding_stream to store the fundingstream */ -public class Funder implements Serializable { - - private String shortName; - - private String name; +public class Funder extends eu.dnetlib.dhp.schema.dump.oaf.Funder { private Fundings funding_stream; - private String jurisdiction; - - public String getShortName() { - return shortName; - } - - public void setShortName(String shortName) { - this.shortName = shortName; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getJurisdiction() { - return jurisdiction; - } - - public void setJurisdiction(String jurisdiction) { - this.jurisdiction = jurisdiction; - } - public Fundings getFunding_stream() { return funding_stream; } diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java index 25f106da52..166e3e8127 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java @@ -9,40 +9,27 @@ import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; /** * This is the class representing the Project in the model used for the dumps of the whole graph. At the moment the dump * of the Projects differs from the other dumps because we do not create relations between Funders (Organization) and - * Projects but we put the information about the Funder within the Project representation. We also removed the - * collected from element from the Project. No relation between the Project and the Datasource entity from which it is - * collected will be created. We will never create relations between Project and Datasource. In case some relation will - * be extracted from the Project they will refer the Funder and will be of type ( organization -> funds -> project, - * project -> isFundedBy -> organization) We also removed the duration parameter because the most of times it is set to - * 0. It has the following parameters: - * - private String id to store the id of the project (OpenAIRE id) - * - private String websiteurl to store the websiteurl of the project - * - private String code to store the grant agreement of the project - * - private String acronym to store the acronym of the project - * - private String title to store the tile of the project - * - private String startdate to store the start date - * - private String enddate to store the end date - * - private String callidentifier to store the call indentifier - * - private String keywords to store the keywords - * - private boolean openaccessmandateforpublications to store if the project must accomplish to the open access mandate - * for publications. This value will be set to true if one of the field in the project represented in the internal model - * is set to true - * - private boolean openaccessmandatefordataset to store if the project must accomplish to the open access mandate for - * dataset. It is set to the value in the corresponding filed of the project represented in the internal model - * - private List subject to store the list of subjects of the project - * - private List funding to store the list of funder of the project - * - private String summary to store the summary of the project - * - private Granted granted to store the granted amount - * - private List programme to store the list of programmes the project is related to + * Projects but we put the information about the Funder within the Project representation. We also removed the collected + * from element from the Project. No relation between the Project and the Datasource entity from which it is collected + * will be created. We will never create relations between Project and Datasource. In case some relation will be + * extracted from the Project they will refer the Funder and will be of type ( organization -> funds -> project, project + * -> isFundedBy -> organization) We also removed the duration parameter because the most of times it is set to 0. It extends + * eu.dnetlib.dhp.schema.dump.oaf.Project with the following parameters: - private String + * websiteurl to store the websiteurl of the project - + * private String startdate to store the start date - private String enddate to store the end date - private String + * callidentifier to store the call indentifier - private String keywords to store the keywords - private boolean + * openaccessmandateforpublications to store if the project must accomplish to the open access mandate for publications. + * This value will be set to true if one of the field in the project represented in the internal model is set to true - + * private boolean openaccessmandatefordataset to store if the project must accomplish to the open access mandate for + * dataset. It is set to the value in the corresponding filed of the project represented in the internal model - private + * List subject to store the list of subjects of the project - private List funding to store the list of + * funder of the project - private String summary to store the summary of the project - private Granted granted to store + * the granted amount - private List programme to store the list of programmes the project is related to */ -public class Project implements Serializable { - private String id; +public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project { private String websiteurl; - private String code; - private String acronym; - private String title; private String startdate; private String enddate; @@ -64,14 +51,6 @@ public class Project implements Serializable { private List programme; - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - public String getWebsiteurl() { return websiteurl; } @@ -80,30 +59,6 @@ public class Project implements Serializable { this.websiteurl = websiteurl; } - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getAcronym() { - return acronym; - } - - public void setAcronym(String acronym) { - this.acronym = acronym; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - public String getStartdate() { return startdate; } From 2c783793baec008258e2878923ce1d07f57eed46 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 19 Aug 2020 11:48:12 +0200 Subject: [PATCH 020/103] removed the affiliation from the author to mirror the changes in the model --- .../dhp/oa/graph/dump/addProjectInfo/software.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/addProjectInfo/software.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/addProjectInfo/software.json index 9d0c1d2e39..1e5ed663c8 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/addProjectInfo/software.json +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/addProjectInfo/software.json @@ -1,6 +1,6 @@ {"author":[],"collectedfrom":[{"key":"10|rest________::b8e502674c3c3499d5374e9b2ea6d8d5","value":"bio.tools"}],"context":[{"code":"dh-ch","label":"Digital Humanities and Cultural Heritage","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["Chilibot searches the PubMed literature database based on specific relationships between proteins, genes, or keywords. The results are returned as a graph."],"documentationUrl":["http://www.chilibot.net"],"format":[],"id":"50|dedup_wf_001::51b88f272ba9c3bb181af64e70255a80","instance":[{"collectedfrom":{"key":"10|rest________::b8e502674c3c3499d5374e9b2ea6d8d5","value":"bio.tools"},"hostedby":{"key":"10|rest________::b8e502674c3c3499d5374e9b2ea6d8d5","value":"bio.tools"},"publicationdate":"2017-05-01","type":"Software","url":["https://bio.tools/chilibot"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591282924188,"maintitle":"Chilibot","originalId":["__bioTools__::c17ebaca97f287b181090c9b4cba766e"],"pid":[],"programmingLanguage":"UNKNOWN","publicationdate":"2017-05-01","publisher":"bio.tools","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Natural language processing"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Molecular interactions, pathways and networks"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Proteins"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Literature and language"}},{"provenance":{"provenance":"iis","trust":"0.8739"},"subject":{"scheme":"mesheuropmc","value":"human activities"}}],"type":"software"} -{"author":[{"affiliation":[],"fullname":"Agustoni, Marco","name":"Marco","rank":1,"surname":"Agustoni"},{"affiliation":[],"fullname":"Marti, Lukas","name":"Lukas","rank":2,"surname":"Marti"},{"affiliation":[],"fullname":"ATLAS, Collaboration","name":"Collaboration","rank":3,"surname":"Atlas"},{"affiliation":[],"fullname":"Schneider, Basil","name":"Basil","rank":4,"surname":"Schneider"},{"affiliation":[],"fullname":"Gallo, Valentina","name":"Valentina","rank":5,"surname":"Gallo"},{"affiliation":[],"fullname":"Ereditato, Antonio","name":"Antonio","rank":6,"surname":"Ereditato"},{"affiliation":[],"fullname":"Sciacca, Gianfranco","name":"Gianfranco","rank":7,"surname":"Sciacca"},{"affiliation":[],"fullname":"Haug, Sigve","name":"Sigve","rank":8,"surname":"Haug"},{"affiliation":[],"fullname":"Kabana, Sonja","name":"Sonja","rank":9,"surname":"Kabana"},{"affiliation":[],"fullname":"Kruker, Tobias","name":"Tobias","rank":10,"surname":"Kruker"},{"affiliation":[],"fullname":"Ancu, Lucian","name":"Lucian","rank":11,"surname":"Ancu"},{"affiliation":[],"fullname":"Battaglia, Andreas","name":"Andreas","rank":12,"surname":"Battaglia"},{"affiliation":[],"fullname":"Beck, Hans Peter","name":"Hans Peter","rank":13,"surname":"Beck"},{"affiliation":[],"fullname":"Pretzl, Klaus-Peter","name":"Klaus-Peter","rank":14,"surname":"Pretzl"},{"affiliation":[],"fullname":"Borer, Claudia","name":"Claudia","rank":15,"surname":"Borer"},{"affiliation":[],"fullname":"Weber, Michael","name":"Michael","rank":16,"surname":"Weber"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[{"code":"egi","label":"EGI Federation","provenance":[{"provenance":"iis","trust":"0.9"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"documentationUrl":[],"embargoenddate":"2013-01-01","format":["application/pdf"],"id":"50|dedup_wf_001::e4805d005bfab0cd39a1642cbf477fdb","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::55045bd2a65019fd8e6741a755395c8c","value":"Unknown Repository"},"publicationdate":"2013-01-01","type":"Software","url":["http://dx.doi.org/10.7892/boris.58468"]}],"language":{"code":"eng","label":"English"},"lastupdatetimestamp":1591283098072,"maintitle":"Search for pair-produced massive coloured scalars in four-jet final states with the ATLAS detector in proton-proton collisions at sqrts=7 TeV","originalId":["datacite____::04dd1f84f3a429ecf1e838afcd94cb3f"],"pid":[{"scheme":"doi","value":"10.7892/boris.58468"}],"programmingLanguage":"application/pdf","publicationdate":"2013-01-01","publisher":"EDP Sciences","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"530 Physics"}}],"type":"software"} -{"author":[{"affiliation":["[u'McGill University']"],"fullname":"Regev, Mor","name":"Mor","rank":1,"surname":"Regev"},{"affiliation":["[u'Holon Institute of Technology']"],"fullname":"Simony, Erez","name":"Erez","rank":2,"surname":"Simony"},{"affiliation":["[u'Princeton University']"],"fullname":"Lee, Katherine","name":"Katherine","rank":3,"surname":"Lee"},{"affiliation":["[u'University of Minnesota']"],"fullname":"Tan, Kean Ming","name":"Kean Ming","rank":4,"surname":"Tan"},{"affiliation":["[u'Johns Hopkins University']"],"fullname":"Chen, Janice","name":"Janice","rank":5,"surname":"Chen"},{"affiliation":["[u'Princeton University']"],"fullname":"Hasson, Uri","name":"Uri","rank":6,"surname":"Hasson"}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":["Regev, Mor"],"country":[],"coverage":[],"dateofcollection":"","description":["This capsule demonstrates the inter-subject functional correlation (ISFC) analysis described in \"Propagation of information along the cortical hierarchy as a function of attention while reading and listening to stories \" by Regev, Simony, Lee, Tan, Chen and Hasson."],"documentationUrl":[],"format":[],"id":"50|datacite____::6b1e3a2fa60ed8c27317a66d6357f795","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::c52707e6a6b63c5aeac022e62cc8cee7","value":"Code Ocean"},"license":"https://opensource.org/licenses/MIT","publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.24433/co.12957bc5-fa2b-488f-ae72-52e3fe362b5c","https://codeocean.com/2018/10/30/intersubject-functional-correlation-lpar-isfc-rpar-as-a-function-of-attention"]}],"language":{"code":"en-us","label":"en-us"},"lastupdatetimestamp":1591282729250,"maintitle":"Intersubject functional correlation (ISFC) as a function of attention","originalId":["datacite____::6b1e3a2fa60ed8c27317a66d6357f795"],"pid":[{"scheme":"doi","value":"10.24433/co.12957bc5-fa2b-488f-ae72-52e3fe362b5c"}],"programmingLanguage":"UNKNOWN","publicationdate":"2018-01-01","publisher":"Code Ocean","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Capsule"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Biology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"fmri"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"neuroscience"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"language"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"attention"}}],"type":"software"} -{"author":[{"affiliation":["University of Washington"],"fullname":"Winebrenner, Dale","name":"Dale","pid":{"id":{"scheme":"ORCID","value":"0000-0003-2341-1083"},"provenance":{"provenance":"sysimport:crosswalk:repository","trust":"0.9"}},"rank":1,"surname":"Winebrenner"},{"affiliation":["NASA Goddard Spaceflight Center"],"fullname":"MacGregor, Joseph","name":"Joseph","rank":2,"surname":"Macgregor"},{"affiliation":["University of Washington"],"fullname":"Kintner, Paul","name":"Paul","rank":3,"surname":"Kintner"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

Collection of Matlab scripts and data files to implement and exercise data analysis and modeling in support of the paper "New Estimates of Ice and Oxygen Fluxes Across the Entire Lid of Lake Vostok from Observations of Englacial Radiowave Attenuation", in review at the Journal of Geophysical Research - Earth Surface, October 2018. 

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::0347b1cd516fc59e41ba92e0d74e4e9f","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"https://creativecommons.org/licenses/by/4.0","publicationdate":"2018-01-01","type":"Software","url":["https://zenodo.org/record/1467433","http://dx.doi.org/10.5281/zenodo.1467432"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2018-01-01","type":"Software","url":["https://figshare.com/articles/Lake_Vostok_radar_attenuation_and_basal_accretion_data_models_and_computations/7246043","http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"https://creativecommons.org/licenses/by/4.0","publicationdate":"2018-01-01","type":"Software","url":["https://zenodo.org/record/1467433","http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.1467433"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"Lake Vostok Radar Attenuation And Basal Accretion Data, Models And Computations","originalId":["datacite____::6ad543d8217b00d3c6e96f0b0a310d9f","r37980778c78::1a67aade293d5f0c985073a3470fdd9c","datacite____::51f29f85c008323ab696ef1c51ab242c","r37b0ad08687::213cee42e7f14a78806470a35a09f87a","od______2659::213cee42e7f14a78806470a35a09f87a"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.1467432"},{"scheme":"doi","value":"10.5281/zenodo.1467433"}],"programmingLanguage":"UNKNOWN","publicationdate":"2018-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Lake Vostok, radioglaciology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Cancer"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Inorganic Chemistry"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"59999 Environmental Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"69999 Biological Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"80699 Information Systems not elsewhere classified"}}],"type":"software"} -{"author":[{"affiliation":["Laboratory of Psychology and NeuroCognition – CNRS/UGA, Grenoble, France"],"fullname":"Laboissière, Rafael","name":"Rafael","rank":1,"surname":"Laboissière"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

This release contains the raw data, as well as the pre-processing and statistical analysis scripts (in R) for the experiments of perception of object stability under vection (illusion of self movement).

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::1432beb6171baa5da8a85a7f99545d69","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400","https://zenodo.org/record/801400"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400","https://figshare.com/articles/rlaboiss_vextab-data_Raw_data_and_statistical_analysis_code_for_the_vextab_study/11470608"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801399","https://zenodo.org/record/801400"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"rlaboiss/vextab-data: Raw data and statistical analysis code for the vextab study","originalId":["r37b0ad08687::25acd09277dae71c80810366a599421c","datacite____::b353952b541b80dfed37f4e48b86e4c2","od______2659::25acd09277dae71c80810366a599421c","r37980778c78::a02038e6624d01df9cf22cb709d7fe92","datacite____::c2c7b341f563b61294ec4c7396a3f984"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.801400"},{"scheme":"doi","value":"10.5281/zenodo.801399"}],"programmingLanguage":"UNKNOWN","publicationdate":"2017-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"perceived object stability, vection, gravity perception, illusory body tilt, frames of reference"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Sociology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Immunology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Inorganic Chemistry"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"69999 Biological Sciences not elsewhere classified"}}],"type":"software"} -{"author":[{"affiliation":["George Washington University"],"fullname":"Gaberial Campese","name":"","rank":1,"surname":""}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

A visualization project that researches trends in military, healthcare, and education expenditures by government. This project uses the Google Charts API.

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::1c8bd19e633976e314b88ce5c3f92d69","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["https://zenodo.org/record/3490231","http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2019-01-01","type":"Software","url":["https://figshare.com/articles/Military_Healthcare_and_Education_Visualization_Project/11451567","http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167","https://zenodo.org/record/3490167"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["https://zenodo.org/record/3490231","http://dx.doi.org/10.5281/zenodo.3490166"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167","https://figshare.com/articles/Military_Healthcare_and_Education_Visualization_Project/11536080"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"Military, Healthcare, and Education Visualization Project","originalId":["datacite____::fc293ea8b1058dc6adaa87ad19a01123","od______2659::ea8c041f18c6201e4f7cd2764b408d20","r37980778c78::a1412e0bb17acd68cd6604c22386a988","datacite____::d8408df60f8d9b703e500ca210de53cb","datacite____::42607e67f94a1d82aebb02eeb7a69d7d","r37980778c78::2dd6d1ca777a3ca6e5f253362dcf1968","od______2659::c27f64126331e6a4a0a82a17aef4b48e"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.3490231"},{"scheme":"doi","value":"10.5281/zenodo.3490167"},{"scheme":"doi","value":"10.5281/zenodo.3490166"}],"programmingLanguage":"UNKNOWN","publicationdate":"2019-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Medicine"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Neuroscience"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Cancer"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"111714 Mental Health"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"19999 Mathematical Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"80699 Information Systems not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"trend"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"healthcare"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Education Visualization Project"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Google Charts API"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"education expenditures"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Military"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"visualization project"}},{"provenance":{"provenance":"iis","trust":"0.7542"},"subject":{"scheme":"acm","value":"ComputingMilieux_LEGALASPECTSOFCOMPUTING"}}],"type":"software"} \ No newline at end of file +{"author":[{"fullname":"Agustoni, Marco","name":"Marco","rank":1,"surname":"Agustoni"},{"fullname":"Marti, Lukas","name":"Lukas","rank":2,"surname":"Marti"},{"fullname":"ATLAS, Collaboration","name":"Collaboration","rank":3,"surname":"Atlas"},{"fullname":"Schneider, Basil","name":"Basil","rank":4,"surname":"Schneider"},{"fullname":"Gallo, Valentina","name":"Valentina","rank":5,"surname":"Gallo"},{"fullname":"Ereditato, Antonio","name":"Antonio","rank":6,"surname":"Ereditato"},{"fullname":"Sciacca, Gianfranco","name":"Gianfranco","rank":7,"surname":"Sciacca"},{"fullname":"Haug, Sigve","name":"Sigve","rank":8,"surname":"Haug"},{"fullname":"Kabana, Sonja","name":"Sonja","rank":9,"surname":"Kabana"},{"fullname":"Kruker, Tobias","name":"Tobias","rank":10,"surname":"Kruker"},{"fullname":"Ancu, Lucian","name":"Lucian","rank":11,"surname":"Ancu"},{"fullname":"Battaglia, Andreas","name":"Andreas","rank":12,"surname":"Battaglia"},{"fullname":"Beck, Hans Peter","name":"Hans Peter","rank":13,"surname":"Beck"},{"fullname":"Pretzl, Klaus-Peter","name":"Klaus-Peter","rank":14,"surname":"Pretzl"},{"fullname":"Borer, Claudia","name":"Claudia","rank":15,"surname":"Borer"},{"fullname":"Weber, Michael","name":"Michael","rank":16,"surname":"Weber"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[{"code":"egi","label":"EGI Federation","provenance":[{"provenance":"iis","trust":"0.9"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":[],"documentationUrl":[],"embargoenddate":"2013-01-01","format":["application/pdf"],"id":"50|dedup_wf_001::e4805d005bfab0cd39a1642cbf477fdb","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|openaire____::55045bd2a65019fd8e6741a755395c8c","value":"Unknown Repository"},"publicationdate":"2013-01-01","type":"Software","url":["http://dx.doi.org/10.7892/boris.58468"]}],"language":{"code":"eng","label":"English"},"lastupdatetimestamp":1591283098072,"maintitle":"Search for pair-produced massive coloured scalars in four-jet final states with the ATLAS detector in proton-proton collisions at sqrts=7 TeV","originalId":["datacite____::04dd1f84f3a429ecf1e838afcd94cb3f"],"pid":[{"scheme":"doi","value":"10.7892/boris.58468"}],"programmingLanguage":"application/pdf","publicationdate":"2013-01-01","publisher":"EDP Sciences","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"530 Physics"}}],"type":"software"} +{"author":[{"fullname":"Regev, Mor","name":"Mor","rank":1,"surname":"Regev"},{"fullname":"Simony, Erez","name":"Erez","rank":2,"surname":"Simony"},{"fullname":"Lee, Katherine","name":"Katherine","rank":3,"surname":"Lee"},{"fullname":"Tan, Kean Ming","name":"Kean Ming","rank":4,"surname":"Tan"},{"fullname":"Chen, Janice","name":"Janice","rank":5,"surname":"Chen"},{"fullname":"Hasson, Uri","name":"Uri","rank":6,"surname":"Hasson"}],"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"}],"context":[{"code":"ni","label":"Neuroinformatics","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":["Regev, Mor"],"country":[],"coverage":[],"dateofcollection":"","description":["This capsule demonstrates the inter-subject functional correlation (ISFC) analysis described in \"Propagation of information along the cortical hierarchy as a function of attention while reading and listening to stories \" by Regev, Simony, Lee, Tan, Chen and Hasson."],"documentationUrl":[],"format":[],"id":"50|datacite____::6b1e3a2fa60ed8c27317a66d6357f795","instance":[{"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::c52707e6a6b63c5aeac022e62cc8cee7","value":"Code Ocean"},"license":"https://opensource.org/licenses/MIT","publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.24433/co.12957bc5-fa2b-488f-ae72-52e3fe362b5c","https://codeocean.com/2018/10/30/intersubject-functional-correlation-lpar-isfc-rpar-as-a-function-of-attention"]}],"language":{"code":"en-us","label":"en-us"},"lastupdatetimestamp":1591282729250,"maintitle":"Intersubject functional correlation (ISFC) as a function of attention","originalId":["datacite____::6b1e3a2fa60ed8c27317a66d6357f795"],"pid":[{"scheme":"doi","value":"10.24433/co.12957bc5-fa2b-488f-ae72-52e3fe362b5c"}],"programmingLanguage":"UNKNOWN","publicationdate":"2018-01-01","publisher":"Code Ocean","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Capsule"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Biology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"fmri"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"neuroscience"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"language"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"attention"}}],"type":"software"} +{"author":[{"fullname":"Winebrenner, Dale","name":"Dale","pid":{"id":{"scheme":"ORCID","value":"0000-0003-2341-1083"},"provenance":{"provenance":"sysimport:crosswalk:repository","trust":"0.9"}},"rank":1,"surname":"Winebrenner"},{"fullname":"MacGregor, Joseph","name":"Joseph","rank":2,"surname":"Macgregor"},{"fullname":"Kintner, Paul","name":"Paul","rank":3,"surname":"Kintner"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

Collection of Matlab scripts and data files to implement and exercise data analysis and modeling in support of the paper "New Estimates of Ice and Oxygen Fluxes Across the Entire Lid of Lake Vostok from Observations of Englacial Radiowave Attenuation", in review at the Journal of Geophysical Research - Earth Surface, October 2018. 

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::0347b1cd516fc59e41ba92e0d74e4e9f","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"https://creativecommons.org/licenses/by/4.0","publicationdate":"2018-01-01","type":"Software","url":["https://zenodo.org/record/1467433","http://dx.doi.org/10.5281/zenodo.1467432"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2018-01-01","type":"Software","url":["https://figshare.com/articles/Lake_Vostok_radar_attenuation_and_basal_accretion_data_models_and_computations/7246043","http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"https://creativecommons.org/licenses/by/4.0","publicationdate":"2018-01-01","type":"Software","url":["https://zenodo.org/record/1467433","http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.1467433"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2018-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.1467433"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"Lake Vostok Radar Attenuation And Basal Accretion Data, Models And Computations","originalId":["datacite____::6ad543d8217b00d3c6e96f0b0a310d9f","r37980778c78::1a67aade293d5f0c985073a3470fdd9c","datacite____::51f29f85c008323ab696ef1c51ab242c","r37b0ad08687::213cee42e7f14a78806470a35a09f87a","od______2659::213cee42e7f14a78806470a35a09f87a"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.1467432"},{"scheme":"doi","value":"10.5281/zenodo.1467433"}],"programmingLanguage":"UNKNOWN","publicationdate":"2018-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Lake Vostok, radioglaciology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Cancer"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Inorganic Chemistry"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"59999 Environmental Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"69999 Biological Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"80699 Information Systems not elsewhere classified"}}],"type":"software"} +{"author":[{"fullname":"Laboissière, Rafael","name":"Rafael","rank":1,"surname":"Laboissière"}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

This release contains the raw data, as well as the pre-processing and statistical analysis scripts (in R) for the experiments of perception of object stability under vection (illusion of self movement).

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::1432beb6171baa5da8a85a7f99545d69","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400","https://zenodo.org/record/801400"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801400","https://figshare.com/articles/rlaboiss_vextab-data_Raw_data_and_statistical_analysis_code_for_the_vextab_study/11470608"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://www.opensource.org/licenses/GPL-3.0","publicationdate":"2017-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.801399","https://zenodo.org/record/801400"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"rlaboiss/vextab-data: Raw data and statistical analysis code for the vextab study","originalId":["r37b0ad08687::25acd09277dae71c80810366a599421c","datacite____::b353952b541b80dfed37f4e48b86e4c2","od______2659::25acd09277dae71c80810366a599421c","r37980778c78::a02038e6624d01df9cf22cb709d7fe92","datacite____::c2c7b341f563b61294ec4c7396a3f984"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.801400"},{"scheme":"doi","value":"10.5281/zenodo.801399"}],"programmingLanguage":"UNKNOWN","publicationdate":"2017-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"perceived object stability, vection, gravity perception, illusory body tilt, frames of reference"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Sociology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Immunology"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Inorganic Chemistry"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"69999 Biological Sciences not elsewhere classified"}}],"type":"software"} +{"author":[{"fullname":"Gaberial Campese","name":"","rank":1,"surname":""}],"bestaccessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":[{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"}],"context":[{"code":"science-innovation-policy","label":"Science and Innovation Policy Studies","provenance":[{"provenance":"Bulktagging for Community - Subject"}]}],"contributor":[],"country":[],"coverage":[],"dateofcollection":"","description":["

A visualization project that researches trends in military, healthcare, and education expenditures by government. This project uses the Google Charts API.

"],"documentationUrl":[],"format":[],"id":"50|dedup_wf_001::1c8bd19e633976e314b88ce5c3f92d69","instance":[{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["https://zenodo.org/record/3490231","http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2019-01-01","type":"Software","url":["https://figshare.com/articles/Military_Healthcare_and_Education_Visualization_Project/11451567","http://dx.doi.org/10.5281/zenodo.3490231"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167","https://zenodo.org/record/3490167"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|openaire____::9e3be59865b2c1c335d32dae2fe7b254","value":"Datacite"},"hostedby":{"key":"10|re3data_____::7b0ad08687b2c960d5aeef06f811d5e6","value":"Zenodo"},"license":"http://creativecommons.org/licenses/by/4.0/legalcode","publicationdate":"2019-01-01","type":"Software","url":["https://zenodo.org/record/3490231","http://dx.doi.org/10.5281/zenodo.3490166"]},{"accessright":{"code":"c_14cb","label":"CLOSED","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"hostedby":{"key":"10|re3data_____::7980778c78fb4cf0fab13ce2159030dc","value":"figshare"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167","https://figshare.com/articles/Military_Healthcare_and_Education_Visualization_Project/11536080"]},{"accessright":{"code":"c_abf2","label":"OPEN","scheme":"http://vocabularies.coar-repositories.org/documentation/access_rights/"},"collectedfrom":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"hostedby":{"key":"10|opendoar____::358aee4cc897452c00244351e4d91f69","value":"ZENODO"},"publicationdate":"2019-01-01","type":"Software","url":["http://dx.doi.org/10.5281/zenodo.3490167"]}],"language":{"code":"UNKNOWN","label":"UNKNOWN"},"lastupdatetimestamp":1591291157172,"maintitle":"Military, Healthcare, and Education Visualization Project","originalId":["datacite____::fc293ea8b1058dc6adaa87ad19a01123","od______2659::ea8c041f18c6201e4f7cd2764b408d20","r37980778c78::a1412e0bb17acd68cd6604c22386a988","datacite____::d8408df60f8d9b703e500ca210de53cb","datacite____::42607e67f94a1d82aebb02eeb7a69d7d","r37980778c78::2dd6d1ca777a3ca6e5f253362dcf1968","od______2659::c27f64126331e6a4a0a82a17aef4b48e"],"pid":[{"scheme":"doi","value":"10.5281/zenodo.3490231"},{"scheme":"doi","value":"10.5281/zenodo.3490167"},{"scheme":"doi","value":"10.5281/zenodo.3490166"}],"programmingLanguage":"UNKNOWN","publicationdate":"2019-01-01","publisher":"Zenodo","subjects":[{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Medicine"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Neuroscience"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Cancer"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Science Policy"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"111714 Mental Health"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"19999 Mathematical Sciences not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"80699 Information Systems not elsewhere classified"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"trend"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"healthcare"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Education Visualization Project"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Google Charts API"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"education expenditures"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"Military"}},{"provenance":{"provenance":"sysimport:crosswalk:datasetarchive","trust":"0.9"},"subject":{"scheme":"","value":"visualization project"}},{"provenance":{"provenance":"iis","trust":"0.7542"},"subject":{"scheme":"acm","value":"ComputingMilieux_LEGALASPECTSOFCOMPUTING"}}],"type":"software"} \ No newline at end of file From bef79d3bdf919d6958e32cfd4c4d3af6935d97b4 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 16:49:38 +0200 Subject: [PATCH 021/103] first attempt to the dump of pids graph --- .../oa/graph/dump/pid/ResultOrganization.java | 28 +++ .../dhp/oa/graph/dump/pid/ResultPidsList.java | 43 +++++ .../dhp/oa/graph/dump/pid/ResultProject.java | 35 ++++ .../dump/pid/SparkCollectPreparedInfo.java | 80 ++++++++ .../graph/dump/pid/SparkDumpOrganization.java | 87 +++++++++ .../oa/graph/dump/pid/SparkDumpPidAuthor.java | 142 ++++++++++++++ .../oa/graph/dump/pid/SparkDumpPidResult.java | 82 ++++++++ .../oa/graph/dump/pid/SparkDumpProject.java | 90 +++++++++ .../SparkDumpResultOrganizationRelation.java | 132 +++++++++++++ .../pid/SparkDumpResultProjectRelation.java | 129 +++++++++++++ .../dump/pid/SparkDumpResultRelation.java | 175 ++++++++++++++++++ .../dump/pid/SparkPrepareResultPids.java | 127 +++++++++++++ 12 files changed, 1150 insertions(+) create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultOrganization.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultPidsList.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultProject.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkCollectPreparedInfo.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpOrganization.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidAuthor.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidResult.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpProject.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultOrganizationRelation.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultProjectRelation.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultRelation.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkPrepareResultPids.java diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultOrganization.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultOrganization.java new file mode 100644 index 0000000000..7a3129d518 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultOrganization.java @@ -0,0 +1,28 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import java.io.Serializable; +import java.util.List; + +import eu.dnetlib.dhp.schema.oaf.StructuredProperty; + +public class ResultOrganization implements Serializable { + private String resultId; + private List orgPids; + + public String getResultId() { + return resultId; + } + + public void setResultId(String resultId) { + this.resultId = resultId; + } + + public List getOrgPid() { + return orgPids; + } + + public void setOrgPid(List pid) { + this.orgPids = pid; + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultPidsList.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultPidsList.java new file mode 100644 index 0000000000..d66c839b7f --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultPidsList.java @@ -0,0 +1,43 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import java.io.Serializable; +import java.util.List; + +import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; + +/** + * Needed to create relations between pids in the result. The list of resultAllowedPids will produce relation of type + * source hasOtherMaterialization target (and vice-versa) where source will be identified by one of the pids in the list + * and target by another. A couple of relation between every two nodes. The list of authorAllowedPids will produce + * relation of type source hasAuthor target and target isAuthorOf source for every couple of nodes in result and author. + */ +public class ResultPidsList implements Serializable { + private String resultId; + private List resultAllowedPids; + private List> authorAllowedPids; + + public String getResultId() { + return resultId; + } + + public void setResultId(String resultId) { + this.resultId = resultId; + } + + public List getResultAllowedPids() { + return resultAllowedPids; + } + + public void setResultAllowedPids(List resultAllowedPids) { + this.resultAllowedPids = resultAllowedPids; + } + + public List> getAuthorAllowedPids() { + return authorAllowedPids; + } + + public void setAuthorAllowedPids(List> authorAllowedPids) { + this.authorAllowedPids = authorAllowedPids; + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultProject.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultProject.java new file mode 100644 index 0000000000..aff9143aee --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultProject.java @@ -0,0 +1,35 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import java.io.Serializable; +import java.util.List; + +public class ResultProject implements Serializable { + private String resultId; + private String code; + private List fundings; + + public String getResultId() { + return resultId; + } + + public void setResultId(String resultId) { + this.resultId = resultId; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public List getFundings() { + return fundings; + } + + public void setFundings(List fundings) { + this.fundings = fundings; + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkCollectPreparedInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkCollectPreparedInfo.java new file mode 100644 index 0000000000..079e65ebd3 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkCollectPreparedInfo.java @@ -0,0 +1,80 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import javax.rmi.CORBA.Util; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +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 com.google.gson.Gson; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; +import eu.dnetlib.dhp.schema.oaf.Result; + +public class SparkCollectPreparedInfo implements Serializable { + private static final Logger log = LoggerFactory.getLogger(SparkCollectPreparedInfo.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkCollectPreparedInfo.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("preparedInfoPath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + collectAndSave(spark, inputPath, outputPath); + + }); + + } + + private static void collectAndSave(SparkSession spark, String inputPath, String outputPath) { + + Utils + .readPath(spark, inputPath + "/publication", ResultPidsList.class) + .union(Utils.readPath(spark, inputPath + "/dataset", ResultPidsList.class)) + .union(Utils.readPath(spark, inputPath + "/software", ResultPidsList.class)) + .union(Utils.readPath(spark, inputPath + "/otherresearchproduct", ResultPidsList.class)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath); + } + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpOrganization.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpOrganization.java new file mode 100644 index 0000000000..c686e2aaea --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpOrganization.java @@ -0,0 +1,87 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +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.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 com.google.gson.Gson; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; +import eu.dnetlib.dhp.schema.oaf.Organization; + +public class SparkDumpOrganization implements Serializable { + + private static final Logger log = LoggerFactory.getLogger(SparkDumpOrganization.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkDumpOrganization.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + final List allowedOrgPid = new Gson().fromJson(parser.get("allowedOrganizationPids"), List.class); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + dumpPidOrgs(spark, allowedOrgPid, inputPath, outputPath); + + }); + + } + + private static void dumpPidOrgs(SparkSession spark, List allowedOrgPid, String inputPath, + String outputPath) { + Dataset resultPids = Utils.readPath(spark, inputPath, Organization.class); + + resultPids.flatMap((FlatMapFunction) r -> { + List ret = new ArrayList<>(); + r.getPid().forEach(pid -> { + if (allowedOrgPid.contains(pid.getQualifier().getClassid().toLowerCase())) { + ret.add(Entity.newInstance(pid.getQualifier().getClassid() + ":" + pid.getValue())); + } + }); + return ret.iterator(); + }, Encoders.bean(Entity.class)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + "/organization"); + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidAuthor.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidAuthor.java new file mode 100644 index 0000000000..701bb77d5c --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidAuthor.java @@ -0,0 +1,142 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.FilterFunction; +import org.apache.spark.api.java.function.FlatMapFunction; +import org.apache.spark.api.java.function.MapFunction; +import org.apache.spark.sql.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.Gson; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; +import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; +import eu.dnetlib.dhp.schema.oaf.OtherResearchProduct; +import eu.dnetlib.dhp.schema.oaf.Publication; +import eu.dnetlib.dhp.schema.oaf.Software; + +public class SparkDumpPidAuthor implements Serializable { + + private static final Logger log = LoggerFactory.getLogger(SparkDumpPidAuthor.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkDumpPidAuthor.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + final List allowedAuthorPids = new Gson().fromJson(parser.get("allowedAuthorPids"), List.class); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + dumpPidAuthor(spark, inputPath, outputPath, allowedAuthorPids); + + }); + + } + + private static void dumpPidAuthor(SparkSession spark, String inputPath, String outputPath, List aap) { + Dataset publication = Utils.readPath(spark, inputPath + "/publication", Publication.class); + Dataset dataset = Utils + .readPath(spark, inputPath + "/dataset", eu.dnetlib.dhp.schema.oaf.Dataset.class); + Dataset software = Utils.readPath(spark, inputPath + "/software", Software.class); + Dataset other = Utils + .readPath(spark, inputPath + "/otherresearchproduct", OtherResearchProduct.class); + + publication.createOrReplaceTempView("publication"); + dataset.createOrReplaceTempView("dataset"); + software.createOrReplaceTempView("software"); + other.createOrReplaceTempView("other"); + + Dataset pids = spark + .sql( + "SELECT DISTINCT apid.value value , apid.qualifier.classid key " + + "FROM publication " + + "LATERAL VIEW EXPLODE (author) a as auth " + + "LATERAL VIEW EXPLODE (auth.pid) p as apid ") + .as(Encoders.bean(KeyValue.class)) + .union( + spark + .sql( + "SELECT DISTINCT apid.value value , apid.qualifier.classid key " + + "FROM dataset " + + "LATERAL VIEW EXPLODE (author) a as auth " + + "LATERAL VIEW EXPLODE (auth.pid) p as apid ") + .as(Encoders.bean(KeyValue.class))) + .union( + spark + .sql( + "SELECT DISTINCT apid.value value , apid.qualifier.classid key " + + "FROM software " + + "LATERAL VIEW EXPLODE (author) a as auth " + + "LATERAL VIEW EXPLODE (auth.pid) p as apid ") + .as(Encoders.bean(KeyValue.class))) + .union( + spark + .sql( + "SELECT DISTINCT apid.value value , apid.qualifier.classid key " + + "FROM other " + + "LATERAL VIEW EXPLODE (author) a as auth " + + "LATERAL VIEW EXPLODE (auth.pid) p as apid ") + .as(Encoders.bean(KeyValue.class))); + + pids.createOrReplaceTempView("pids"); + + spark + .sql( + "Select distinct key, value " + + "FROM pids") + .as(Encoders.bean(KeyValue.class)) + .filter((FilterFunction) p -> aap.contains(p.getKey())) + .map( + (MapFunction) pid -> Entity.newInstance(pid.getKey() + ":" + pid.getValue()), + Encoders.bean(Entity.class)) + .write() + +// resultPids.flatMap((FlatMapFunction) r-> { +// List ret = new ArrayList<>(); +// r.getAuthorAllowedPids().forEach(pid -> { +// ret.addAll(pid.stream().map(p -> Entity.newInstance(p.getKey() + ":" + p.getValue())).collect(Collectors.toList())); +// +// }); +// return ret.iterator(); +// }, Encoders.bean(Entity.class)) +// .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + "/author"); + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidResult.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidResult.java new file mode 100644 index 0000000000..8195a06958 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidResult.java @@ -0,0 +1,82 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.FlatMapFunction; +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 com.google.gson.Gson; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; +import eu.dnetlib.dhp.schema.oaf.Result; + +public class SparkDumpPidResult implements Serializable { + private static final Logger log = LoggerFactory.getLogger(SparkDumpPidResult.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkDumpPidResult.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("preparedInfoPath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + dumpPidEntities(spark, inputPath, outputPath); + + }); + + } + + private static void dumpPidEntities(SparkSession spark, String inputPath, String outputPath) { + Dataset resultPids = Utils.readPath(spark, inputPath, ResultPidsList.class); + + resultPids.flatMap((FlatMapFunction) r -> { + List ret = new ArrayList<>(); + r.getResultAllowedPids().forEach(pid -> { + if (StringUtils.isNoneEmpty(pid.getKey(), pid.getValue())) + ret.add(Entity.newInstance(pid.getKey() + ":" + pid.getValue())); + }); + return ret.iterator(); + }, Encoders.bean(Entity.class)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + "/result"); + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpProject.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpProject.java new file mode 100644 index 0000000000..f0aac87a61 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpProject.java @@ -0,0 +1,90 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +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.sql.Dataset; +import org.apache.spark.sql.Encoders; +import org.apache.spark.sql.SaveMode; +import org.apache.spark.sql.SparkSession; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.io.SAXReader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.Gson; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; +import eu.dnetlib.dhp.schema.oaf.Organization; +import eu.dnetlib.dhp.schema.oaf.Project; + +public class SparkDumpProject implements Serializable { + private static final Logger log = LoggerFactory.getLogger(SparkDumpOrganization.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkDumpOrganization.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + dumpProjects(spark, inputPath, outputPath); + + }); + } + + private static void dumpProjects(SparkSession spark, String inputPath, String outputPath) { + Dataset projectDataset = Utils.readPath(spark, inputPath, Project.class); + + projectDataset.flatMap((FlatMapFunction) project -> { + List projs = new ArrayList<>(); + project.getFundingtree().forEach(fund -> { + try { + projs.add(Utils.getEntity(fund.getValue(), project.getCode().getValue())); + } catch (DocumentException e) { + e.printStackTrace(); + } + }); + return projs.iterator(); + }, Encoders.bean(Entity.class)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + "/project"); + + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultOrganizationRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultOrganizationRelation.java new file mode 100644 index 0000000000..6f802f875d --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultOrganizationRelation.java @@ -0,0 +1,132 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.FlatMapFunction; +import org.apache.spark.sql.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.Gson; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Constants; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.common.ModelSupport; +import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; +import eu.dnetlib.dhp.schema.oaf.Organization; +import eu.dnetlib.dhp.schema.oaf.Relation; +import scala.Tuple2; + +public class SparkDumpResultOrganizationRelation implements Serializable { + + private static final Logger log = LoggerFactory.getLogger(SparkDumpResultOrganizationRelation.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkDumpResultOrganizationRelation.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + final String resultPidListPath = parser.get("preparedInfoPath"); + + final List allowedPids = new Gson().fromJson(parser.get("allowedOrganizationPids"), List.class); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + dumpResultOrganziationRelations(spark, inputPath, resultPidListPath, allowedPids, outputPath); + + }); + + } + + private static void dumpResultOrganziationRelations(SparkSession spark, String inputPath, String preparedInfoPath, + List allowedPids, String outputPath) { + Dataset relations = Utils.readPath(spark, inputPath + "/relation", Relation.class); + Dataset organizations = Utils.readPath(spark, inputPath + "/organization", Organization.class); + Dataset resultPid = Utils.readPath(spark, preparedInfoPath, ResultPidsList.class); + + relations.createOrReplaceTempView("relation"); + organizations.createOrReplaceTempView("organization"); + + Dataset resultOrg = spark + .sql( + "SELECT source resultId , pid orgPids" + + "FROM relation r " + + "JOIN organization o " + + "ON r.target = o.id " + + "WHERE r.datainfo.deletedbyinference = false " + + "AND o.datainfo.deletedbyinference = false " + + "AND lower(relclass) = '" + ModelConstants.HAS_AUTHOR_INSTITUTION.toLowerCase() + "'") + .as(Encoders.bean(ResultOrganization.class)); + + resultOrg + .joinWith(resultPid, resultOrg.col("resultId").equalTo(resultPid.col("resultId")), "left") + .flatMap( + (FlatMapFunction, eu.dnetlib.dhp.schema.dump.oaf.graph.Relation>) value -> { + List relList = new ArrayList<>(); + Optional orel = Optional.ofNullable(value._2()); + if (orel.isPresent()) { + List orgList = value + ._1() + .getOrgPid() + .stream() + .filter(p -> allowedPids.contains(p.getQualifier().getClassid())) + .map(pid -> pid.getQualifier().getClassid() + ":" + pid.getValue()) + .collect(Collectors.toList()); + if (orgList.size() > 0) { + List resList = orel.get().getResultAllowedPids(); + for (int i = 0; i < resList.size(); i++) { + String pid = resList.get(i).getKey() + ":" + resList.get(i).getValue(); + for (int j = 0; j < orgList.size(); j++) { + relList + .addAll( + Utils + .getRelationPair( + pid, orgList.get(j), Constants.RESULT, Constants.ORGANIZATION, + ModelConstants.AFFILIATION, ModelConstants.HAS_AUTHOR_INSTITUTION, + ModelConstants.IS_AUTHOR_INSTITUTION_OF)); + + } + } + } + } + + return relList.iterator(); + }, Encoders.bean(eu.dnetlib.dhp.schema.dump.oaf.graph.Relation.class)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + "/relationOrganization"); + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultProjectRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultProjectRelation.java new file mode 100644 index 0000000000..73fc88a5c2 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultProjectRelation.java @@ -0,0 +1,129 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.FlatMapFunction; +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.dom4j.DocumentException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Constants; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.common.ModelConstants; +import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; +import eu.dnetlib.dhp.schema.oaf.Project; +import eu.dnetlib.dhp.schema.oaf.Relation; +import scala.Tuple2; + +public class SparkDumpResultProjectRelation implements Serializable { + + private static final Logger log = LoggerFactory.getLogger(SparkDumpResultProjectRelation.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkDumpResultProjectRelation.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + final String resultPidListPath = parser.get("preparedInfoPath"); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + dumpResultProjectRelations(spark, inputPath, resultPidListPath, outputPath); + + }); + + } + + private static void dumpResultProjectRelations(SparkSession spark, String inputPath, String preparedInfoPath, + String outputPath) { + Dataset relations = Utils.readPath(spark, inputPath + "/relation", Relation.class); + Dataset projects = Utils.readPath(spark, inputPath + "/project", Project.class); + Dataset resultPid = Utils.readPath(spark, preparedInfoPath, ResultPidsList.class); + + relations.createOrReplaceTempView("relation"); + projects.createOrReplaceTempView("project"); + + Dataset resultProj = spark + .sql( + "SELECT source resultId , code, fundingtree.value fundings" + + "FROM relation r " + + "JOIN project p " + + "ON r.target = p.id " + + "WHERE r.datainfo.deletedbyinference = false " + + "AND lower(relclass) = '" + ModelConstants.IS_PRODUCED_BY.toLowerCase() + "'") + .as(Encoders.bean(ResultProject.class)); + + resultProj + .joinWith(resultPid, resultProj.col("resultId").equalTo(resultPid.col("resultId")), "left") + .flatMap( + (FlatMapFunction, eu.dnetlib.dhp.schema.dump.oaf.graph.Relation>) value -> { + List relList = new ArrayList<>(); + Optional orel = Optional.ofNullable(value._2()); + if (orel.isPresent()) { + List projList = new ArrayList<>(); + String code = value._1().getCode(); + for (String fund : value._1().getFundings()) { + projList.add(Utils.getEntity(fund, code).getId()); + } + + List resList = orel.get().getResultAllowedPids(); + for (int i = 0; i < resList.size(); i++) { + String pid = resList.get(i).getKey() + ":" + resList.get(i).getValue(); + for (int j = 0; j < projList.size(); j++) { + relList + .addAll( + Utils + .getRelationPair( + pid, projList.get(j), Constants.RESULT, Constants.PROJECT, + ModelConstants.OUTCOME, ModelConstants.IS_PRODUCED_BY, + ModelConstants.PRODUCES)); + + } + } + + } + + return relList.iterator(); + }, Encoders.bean(eu.dnetlib.dhp.schema.dump.oaf.graph.Relation.class)) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + "/relationProject"); + } + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultRelation.java new file mode 100644 index 0000000000..6358df48ba --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultRelation.java @@ -0,0 +1,175 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.*; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.FilterFunction; +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.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Constants; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.oa.graph.dump.community.ResultProject; +import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; +import eu.dnetlib.dhp.schema.dump.oaf.graph.Relation; +import eu.dnetlib.dhp.schema.oaf.Project; + +public class SparkDumpResultRelation implements Serializable { + private static final Logger log = LoggerFactory.getLogger(SparkDumpResultRelation.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkDumpResultRelation.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("preparedInfoPath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + dumpPidRelations(spark, inputPath, outputPath); + + }); + + } + + private static Dataset distinctRelations(Dataset rels) { + return rels + .filter(getRelationFilterFunction()) + .groupByKey( + (MapFunction) r -> String + .join( + r.getSource().getId(), r.getTarget().getId(), r.getReltype().getName(), + r.getReltype().getType()), + Encoders.STRING()) + .mapGroups( + (MapGroupsFunction) (key, relationIterator) -> relationIterator.next(), + Encoders.bean(Relation.class)); + } + + private static FilterFunction getRelationFilterFunction() { + return (FilterFunction) r -> StringUtils.isNotBlank(r.getSource().getId()) || + StringUtils.isNotBlank(r.getTarget().getId()) || + StringUtils.isNotBlank(r.getReltype().getName()) || + StringUtils.isNotBlank(r.getReltype().getType()); + } + + private static void dumpPidRelations(SparkSession spark, String inputPath, String outputPath) { + Dataset resultPids = Utils.readPath(spark, inputPath, ResultPidsList.class); + + distinctRelations(resultPids.flatMap((FlatMapFunction) r -> { + List ret = new ArrayList<>(); + List resPids = r.getResultAllowedPids(); + List> authPids = r.getAuthorAllowedPids(); + + for (int i = 0; i < resPids.size() - 1; i++) { + String pid = resPids.get(i).getKey() + ":" + resPids.get(i).getValue(); + for (int j = i + 1; j < resPids.size(); j++) { + ret + .addAll( + Utils + .getRelationPair( + pid, resPids.get(j).getKey() + ":" + resPids.get(j).getValue(), + Constants.RESULT, Constants.RESULT, Constants.SIMILARITY, + Constants.RESPID_RESPID_RELATION, Constants.RESPID_RESPID_RELATION)); + } + } + + for (int i = 0; i < authPids.size() - 1; i++) { + for (int j = i + 1; j < authPids.size(); j++) { + ret.addAll(getAuthRelations(authPids.get(i), authPids.get(j))); + } + } + + for (int i = 0; i < resPids.size(); i++) { + String pid = resPids.get(i).getKey() + ":" + resPids.get(i).getValue(); + for (int j = 0; j < authPids.size(); j++) { + for (int k = 0; k < authPids.get(j).size(); k++) { + ret + .addAll( + Utils + .getRelationPair( + pid, + authPids.get(j).get(k).getKey() + ":" + authPids.get(j).get(k).getValue(), + Constants.RESULT, Constants.AUTHOR, Constants.AUTHORSHIP, + Constants.RES_AUTHOR_RELATION, Constants.AUTHOR_RES_RELATION)); + } + + } + } + return ret.iterator(); + }, Encoders.bean(Relation.class))) + .write() + .mode(SaveMode.Overwrite) + .option("compression", "gzip") + .json(outputPath + "/relation"); + } + + private static List getAuthRelations(List a1, List a2) { + List ret = new ArrayList<>(); + if (a1.size() > 1) { + ret.addAll(getSameAs(a1)); + } + if (a2.size() > 1) { + ret.addAll(getSameAs(a2)); + } + for (int i = 0; i < a1.size(); i++) { + String pid = a1.get(i).getKey() + ":" + a1.get(i).getValue(); + for (int j = 0; j < a2.size(); j++) { + ret + .addAll( + Utils + .getRelationPair( + pid, a2.get(j).getKey() + ":" + a2.get(j).getValue(), + Constants.AUTHOR, Constants.AUTHOR, Constants.AUTHORSHIP, + Constants.AUTHOR_AUTHOR_RELATION, Constants.AUTHOR_AUTHOR_RELATION)); + } + } + + return ret; + } + + private static List getSameAs(List a1) { + List ret = new ArrayList<>(); + for (int i = 0; i < a1.size() - 1; i++) { + ret + .addAll( + Utils + .getRelationPair( + a1.get(i).getKey() + ":" + a1.get(i).getValue(), + a1.get(i + 1).getKey() + ":" + a1.get(i + 1).getValue(), + Constants.AUTHOR, Constants.AUTHOR, Constants.SIMILARITY, + Constants.SAME_AS, Constants.SAME_AS)); + } + return ret; + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkPrepareResultPids.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkPrepareResultPids.java new file mode 100644 index 0000000000..68adf82573 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkPrepareResultPids.java @@ -0,0 +1,127 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import org.apache.commons.io.IOUtils; +import org.apache.spark.SparkConf; +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 com.google.gson.Gson; + +import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; +import eu.dnetlib.dhp.schema.oaf.Result; + +public class SparkPrepareResultPids implements Serializable { + + private static final Logger log = LoggerFactory.getLogger(SparkPrepareResultPids.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkPrepareResultPids.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + final String resultClassName = parser.get("resultTableName"); + log.info("resultTableName: {}", resultClassName); + + final List allowedResultPid = new Gson().fromJson(parser.get("allowedResultPids"), List.class); + final List allowedAuthorPid = new Gson().fromJson(parser.get("allowedAuthorPids"), List.class); + + final String resultType = resultClassName.substring(resultClassName.lastIndexOf(".") + 1).toLowerCase(); + log.info("resultType: {}", resultType); + + Class inputClazz = (Class) Class.forName(resultClassName); + + SparkConf conf = new SparkConf(); + runWithSparkSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + preparePidEntities( + spark, inputPath, outputPath + "/" + resultType, inputClazz, allowedResultPid, allowedAuthorPid); + + }); + + } + + private static void preparePidEntities(SparkSession spark, String inputPath, String outputPath, + Class inputClazz, List allowedResultPid, + List allowedAuthorPid) { + + Dataset result = Utils.readPath(spark, inputPath, inputClazz); + + result.map((MapFunction) res -> { + ResultPidsList ret = new ResultPidsList(); + ret.setResultId(res.getId()); + List pidList = new ArrayList<>(); + Optional + .ofNullable(res.getPid()) + .ifPresent(pids -> pids.forEach(pid -> { + if (allowedResultPid.contains(pid.getQualifier().getClassid().toLowerCase())) { + pidList.add(KeyValue.newInstance(pid.getQualifier().getClassid(), pid.getValue())); + } + })); + ret.setResultAllowedPids(pidList); + List> authorPidList = new ArrayList<>(); + Optional + .ofNullable(res.getAuthor()) + .ifPresent(authors -> authors.forEach(a -> { + Optional + .ofNullable(a.getPid()) + .ifPresent(pids -> pids.forEach(p -> { + List authorPids = new ArrayList<>(); + if (allowedAuthorPid.contains(p.getQualifier().getClassid().toLowerCase())) { + authorPids.add(KeyValue.newInstance(p.getQualifier().getClassid(), p.getValue())); + } + if (authorPids.size() > 0) { + authorPidList.add(authorPids); + } + })); + })); + ret.setAuthorAllowedPids(authorPidList); + + if (authorPidList.size() == 0 && pidList.size() == 0) { + return null; + } + return ret; + }, Encoders.bean(ResultPidsList.class)) + .filter(Objects::nonNull) + .write() + .mode(SaveMode.Append) + .option("compression", "gzip") + .json(outputPath); + } + +} From 40c8d2de7ba6136ba364cde6b71e1af88bf8745e Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 16:50:39 +0200 Subject: [PATCH 022/103] test resources for the dump of the pids graph --- .../graph/dump_pid/input_collectandsave.json | 22 ++++++++++ .../oa/graph/dump_pid/input_dump_author.json | 28 +++++++++++++ .../dump_pid/input_dump_organization.json | 28 +++++++++++++ .../dump_pid/input_dump_organizationrels.json | 34 ++++++++++++++++ .../oa/graph/dump_pid/input_dump_project.json | 23 +++++++++++ .../dump_pid/input_dump_projectrels.json | 28 +++++++++++++ .../oa/graph/dump_pid/input_dump_result.json | 22 ++++++++++ .../graph/dump_pid/input_dump_resultrels.json | 22 ++++++++++ .../oa/graph/dump_pid/input_parameters.json | 40 +++++++++++++++++++ 9 files changed, 247 insertions(+) create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_resultrels.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json new file mode 100644 index 0000000000..03199f303a --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json @@ -0,0 +1,22 @@ +[ + { + "paramName":"pip", + "paramLongName":"preparedInfoPath", + "paramDescription": "the path of the prepared resultid of allowed pids file to read", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store the entire set of the prepared info", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + } +] + + diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json new file mode 100644 index 0000000000..3a78dd6c26 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json @@ -0,0 +1,28 @@ +[ + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the prepared resultid sequence of allowed pids file to read", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store the dumped entities", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + }, + { + "paramName": "aap", + "paramLongName": "allowedAuthorPids", + "paramDescription": "the allowed list of accepted pids for authors", + "paramRequired": true + } +] + + diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json new file mode 100644 index 0000000000..b35b32bb16 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json @@ -0,0 +1,28 @@ +[ + { + "paramName":"aop", + "paramLongName":"allowedOrganizationPids", + "paramDescription": "the set of pid allowed to be dumped for the organization", + "paramRequired": true + }, + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the information to read", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store the dumped entities", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + } +] + + diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json new file mode 100644 index 0000000000..23d9dbe236 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json @@ -0,0 +1,34 @@ +[ + { + "paramName":"aop", + "paramLongName":"allowedOrganizationPids", + "paramDescription": "the set of pid allowed to be dumped for the organization", + "paramRequired": true + }, + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the information to be dumped", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store the dumped relation", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + }, + { + "paramName":"ppi", + "paramLongName":"preparedInfoPath", + "paramDescription": "the path of the prepared info", + "paramRequired": true + } +] + + diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json new file mode 100644 index 0000000000..2bb9b4b58a --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json @@ -0,0 +1,23 @@ +[ + + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the information to read", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store the dumped entities", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + } +] + + diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json new file mode 100644 index 0000000000..7dd1564c3f --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json @@ -0,0 +1,28 @@ +[ + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the information to be dumped", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store the dumped relation", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + }, + { + "paramName":"ppi", + "paramLongName":"preparedInfoPath", + "paramDescription": "the path of the prepared info", + "paramRequired": true + } +] + + diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json new file mode 100644 index 0000000000..404d8a3129 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json @@ -0,0 +1,22 @@ +[ + { + "paramName":"ppi", + "paramLongName":"preparedInfoPath", + "paramDescription": "the path of the prepared resultid sequence of allowed pids file to read", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store the dumped entities", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + } +] + + diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_resultrels.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_resultrels.json new file mode 100644 index 0000000000..be781c1809 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_resultrels.json @@ -0,0 +1,22 @@ +[ + { + "paramName":"pip", + "paramLongName":"preparedInfoPath", + "paramDescription": "the path of the prepared resultid of allowed pids file to read", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store the dumped relations", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + } +] + + diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json new file mode 100644 index 0000000000..a9c171a4c4 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json @@ -0,0 +1,40 @@ +[ + { + "paramName":"arp", + "paramLongName":"allowedResultPids", + "paramDescription": "the set of pid allowed to be dumped for the result", + "paramRequired": true + }, + { + "paramName":"aap", + "paramLongName":"allowedAuthorPids", + "paramDescription": "the set of pid allowed to be dumped for the author", + "paramRequired": true + }, + { + "paramName":"s", + "paramLongName":"sourcePath", + "paramDescription": "the path of the file to read", + "paramRequired": true + }, + { + "paramName": "out", + "paramLongName": "outputPath", + "paramDescription": "the path used to store temporary output files", + "paramRequired": true + }, + { + "paramName": "ssm", + "paramLongName": "isSparkSessionManaged", + "paramDescription": "true if the spark session is managed, false otherwise", + "paramRequired": false + }, + { + "paramName":"tn", + "paramLongName":"resultTableName", + "paramDescription": "the name of the result table we are currently working on", + "paramRequired": true + } +] + + From 630a6a1fe7e4a762450d638269a6b6c0f615dbb1 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 16:51:26 +0200 Subject: [PATCH 023/103] first tests for the pid graph dump --- .../dhp/oa/graph/dump/pid/DumpAuthorTest.java | 96 +++++++ .../dump/pid/DumpResultRelationTest.java | 161 +++++++++++ .../dhp/oa/graph/dump/pid/DumpResultTest.java | 96 +++++++ .../dump/pid/PreparedInfoCollectTest.java | 168 +++++++++++ .../graph/dump/pid/PreparedInfoPidTest.java | 260 ++++++++++++++++++ 5 files changed, 781 insertions(+) create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpAuthorTest.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultRelationTest.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultTest.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoCollectTest.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoPidTest.java diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpAuthorTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpAuthorTest.java new file mode 100644 index 0000000000..61abd3cdd7 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpAuthorTest.java @@ -0,0 +1,96 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +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.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 com.fasterxml.jackson.databind.ObjectMapper; + +import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; + +public class DumpAuthorTest { + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SparkSession spark; + + private static Path workingDir; + + private static final Logger log = LoggerFactory.getLogger(DumpAuthorTest.class); + + @BeforeAll + public static void beforeAll() throws IOException { + workingDir = Files.createTempDirectory(DumpAuthorTest.class.getSimpleName()); + log.info("using work dir {}", workingDir); + + SparkConf conf = new SparkConf(); + conf.setAppName(DumpAuthorTest.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(DumpAuthorTest.class.getSimpleName()) + .config(conf) + .getOrCreate(); + } + + @AfterAll + public static void afterAll() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + spark.stop(); + } + + @Test + public void testDumpAuthorPids() throws Exception { + + final String sourcePath = getClass() + .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/result") + .getPath(); + + SparkDumpPidAuthor.main(new String[] { + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-outputPath", workingDir.toString(), + "-sourcePath", sourcePath, + "-allowedAuthorPids", "[\"orcid\", \"mag\"]" + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/author") + .map(item -> OBJECT_MAPPER.readValue(item, Entity.class)); + + org.apache.spark.sql.Dataset verificationDataset = spark + .createDataset(tmp.rdd(), Encoders.bean(Entity.class)); + + verificationDataset.show(false); + Assertions.assertEquals(3, verificationDataset.count()); + + Assertions.assertEquals(1, verificationDataset.filter("id = 'mag:fakemag'").count()); + + Assertions.assertEquals(2, verificationDataset.filter("substr(id,1,5) = 'orcid'").count()); + + } + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultRelationTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultRelationTest.java new file mode 100644 index 0000000000..24abdd4159 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultRelationTest.java @@ -0,0 +1,161 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +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.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.schema.dump.oaf.graph.Relation; +import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; + +public class DumpResultRelationTest { + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SparkSession spark; + + private static Path workingDir; + + private static final Logger log = LoggerFactory.getLogger(DumpResultRelationTest.class); + + @BeforeAll + public static void beforeAll() throws IOException { + workingDir = Files.createTempDirectory(DumpResultRelationTest.class.getSimpleName()); + log.info("using work dir {}", workingDir); + + SparkConf conf = new SparkConf(); + conf.setAppName(DumpResultRelationTest.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(DumpAuthorTest.class.getSimpleName()) + .config(conf) + .getOrCreate(); + } + + @AfterAll + public static void afterAll() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + spark.stop(); + } + + @Test + public void testDumpResultRelationPids() throws Exception { + + final String sourcePath = getClass() + .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR") + .getPath(); + + SparkDumpResultRelation.main(new String[] { + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-outputPath", workingDir.toString(), + "-preparedInfoPath", sourcePath + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/relation") + .map(item -> OBJECT_MAPPER.readValue(item, Relation.class)); + + org.apache.spark.sql.Dataset verificationDataset = spark + .createDataset(tmp.rdd(), Encoders.bean(Relation.class)); + + verificationDataset.show(100, false); + Assertions.assertEquals(32, verificationDataset.count()); + + Assertions + .assertEquals( + 1, verificationDataset + .filter( + "source.id = 'orcid:0000-0001-9317-9350' and " + + "relType.name = 'sameAs' and target.id = 'mag:fakeMag'") + .count()); + + Assertions + .assertEquals( + 4, verificationDataset + .filter( + "source.id = 'orcid:0000-0001-9317-9350' and " + + "relType.name = 'isAuthorOf'") + .count()); + + Assertions + .assertEquals( + 4, verificationDataset + .filter( + "target.id = 'orcid:0000-0001-9317-9350' and " + + "relType.name = 'hasAuthor'") + .count()); + + Assertions + .assertEquals( + 1, verificationDataset + .filter( + "source.id = 'orcid:0000-0001-9317-9350' and " + + "relType.name = 'hasCoAuthor'") + .count()); + + Assertions + .assertEquals( + 1, verificationDataset + .filter( + "source.id = 'orcid:0000-0001-9317-9350' and " + + "relType.name = 'hasCoAuthor' and target.id = 'orcid:0000-0002-1114-4216'") + .count()); + + Assertions + .assertEquals( + 2, verificationDataset + .filter( + "source.id = 'orcid:0000-0002-1114-4216' and " + + "relType.name = 'hasCoAuthor'") + .count()); + + Assertions + .assertEquals( + 1, verificationDataset + .filter( + "target.id = 'orcid:0000-0001-9317-9350' and " + + "relType.name = 'hasCoAuthor' and source.id = 'orcid:0000-0002-1114-4216'") + .count()); + + Assertions + .assertEquals( + 1, verificationDataset + .filter( + "target.id = 'mag:fakeMag' and " + + "relType.name = 'hasCoAuthor' and source.id = 'orcid:0000-0002-1114-4216'") + .count()); + + Assertions.assertEquals(4, verificationDataset.filter("relType.name = 'hasOtherManifestation'").count()); + +// +// Assertions.assertEquals(1, verificationDataset.filter("id = 'mag:fakemag'").count()); +// +// Assertions.assertEquals(2, verificationDataset.filter("substr(id,1,5) = 'orcid'").count()); + + } + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultTest.java new file mode 100644 index 0000000000..156c130131 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultTest.java @@ -0,0 +1,96 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +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.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.schema.dump.pidgraph.Entity; + +public class DumpResultTest { + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SparkSession spark; + + private static Path workingDir; + + private static final Logger log = LoggerFactory.getLogger(DumpResultTest.class); + + @BeforeAll + public static void beforeAll() throws IOException { + workingDir = Files.createTempDirectory(DumpResultTest.class.getSimpleName()); + log.info("using work dir {}", workingDir); + + SparkConf conf = new SparkConf(); + conf.setAppName(DumpAuthorTest.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(DumpResultTest.class.getSimpleName()) + .config(conf) + .getOrCreate(); + } + + @AfterAll + public static void afterAll() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + spark.stop(); + } + + @Test + public void testDumpResultPids() throws Exception { + + final String sourcePath = getClass() + .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo") + .getPath(); + + SparkDumpPidResult.main(new String[] { + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-outputPath", workingDir.toString(), + "-preparedInfoPath", sourcePath + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/result") + .map(item -> OBJECT_MAPPER.readValue(item, Entity.class)); + + org.apache.spark.sql.Dataset verificationDataset = spark + .createDataset(tmp.rdd(), Encoders.bean(Entity.class)); + + Assertions.assertEquals(35, verificationDataset.count()); + + Assertions.assertEquals(32, verificationDataset.filter("substr(id,1,3) = 'doi'").count()); + + Assertions.assertEquals(1, verificationDataset.filter("substr(id,1,3) = 'pdb'").count()); + + Assertions.assertEquals(1, verificationDataset.filter("substr(id,1,4) = 'pmid'").count()); + + Assertions.assertEquals(1, verificationDataset.filter("substr(id,1,5) = 'arXiv'").count()); + + } + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoCollectTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoCollectTest.java new file mode 100644 index 0000000000..7952c36f82 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoCollectTest.java @@ -0,0 +1,168 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +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.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 com.fasterxml.jackson.databind.ObjectMapper; + +public class PreparedInfoCollectTest { + + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SparkSession spark; + + private static Path workingDir; + + private static final Logger log = LoggerFactory.getLogger(PreparedInfoCollectTest.class); + + @BeforeAll + public static void beforeAll() throws IOException { + workingDir = Files.createTempDirectory(PreparedInfoCollectTest.class.getSimpleName()); + log.info("using work dir {}", workingDir); + + SparkConf conf = new SparkConf(); + conf.setAppName(PreparedInfoCollectTest.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(PreparedInfoCollectTest.class.getSimpleName()) + .config(conf) + .getOrCreate(); + } + + @AfterAll + public static void afterAll() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + spark.stop(); + } + + @Test + public void testCollectAndSave() throws Exception { +//software and otherresearchproduct associated preparedInfo files intended to be empty + final String sourcePath = getClass() + .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit") + .getPath(); + + SparkCollectPreparedInfo.main(new String[] { + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-outputPath", workingDir.toString() + "/preparedInfo", + "-preparedInfoPath", sourcePath + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/preparedInfo") + .map(item -> OBJECT_MAPPER.readValue(item, ResultPidsList.class)); + + org.apache.spark.sql.Dataset verificationDataset = spark + .createDataset(tmp.rdd(), Encoders.bean(ResultPidsList.class)); + + Assertions.assertEquals(34, verificationDataset.count()); + + verificationDataset.createOrReplaceTempView("check"); + + Assertions + .assertEquals( + 33, spark + .sql( + "Select resultId " + + "from check " + + "lateral view explode (resultAllowedPids) r as resallowed " + + " where resallowed.key = 'doi'") + .count()); + + Assertions + .assertEquals( + 4, spark + .sql( + "SELECT pids.value " + + "FROM check " + + "LATERAL VIEW EXPLODE (authorAllowedPids) a as authallowed " + + "LATERAL VIEW EXPLODE (authallowed) a as pids " + + "WHERE pids.key = 'orcid'") + .count()); + + Assertions + .assertEquals( + 1, spark + .sql( + "SELECT pids.value " + + "FROM check " + + "LATERAL VIEW EXPLODE (authorAllowedPids) a as authallowed " + + "LATERAL VIEW EXPLODE (authallowed) a as pids " + + "WHERE pids.key = 'mag'") + .count()); + + Dataset check = spark + .sql( + "Select resultId, pids.value orcid, resallowed.key pid_type, resallowed.value pid " + + "from check" + + " lateral view explode(authorAllowedPids) a as authallowed " + + " lateral view explode(authallowed) p as pids " + + " lateral view explode (resultAllowedPids) r as resallowed " + + "where pids.key = 'orcid'"); + + Assertions.assertEquals(6, check.count()); + + Assertions + .assertEquals(1, check.filter("resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e'").count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e' " + + "and orcid = '0000-0002-1114-4216'") + .count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e' " + + "and pid = '10.1016/j.jrmge.2016.11.005'") + .count()); + + Assertions + .assertEquals(1, check.filter("resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f'").count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f' " + + "and orcid = '0000-0001-9317-9350'") + .count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f' " + + "and pid = '10.1016/j.jotr.2014.10.003'") + .count()); + + } + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoPidTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoPidTest.java new file mode 100644 index 0000000000..3b6bec7338 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoPidTest.java @@ -0,0 +1,260 @@ + +package eu.dnetlib.dhp.oa.graph.dump.pid; + +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.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 com.fasterxml.jackson.databind.ObjectMapper; + +public class PreparedInfoPidTest { + + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + + private static SparkSession spark; + + private static Path workingDir; + + private static final Logger log = LoggerFactory.getLogger(PreparedInfoPidTest.class); + + @BeforeAll + public static void beforeAll() throws IOException { + workingDir = Files.createTempDirectory(PreparedInfoPidTest.class.getSimpleName()); + log.info("using work dir {}", workingDir); + + SparkConf conf = new SparkConf(); + conf.setAppName(PreparedInfoPidTest.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(PreparedInfoPidTest.class.getSimpleName()) + .config(conf) + .getOrCreate(); + } + + @AfterAll + public static void afterAll() throws IOException { + FileUtils.deleteDirectory(workingDir.toFile()); + spark.stop(); + } + + @Test + public void testPublication() throws Exception { + + final String sourcePath = getClass() + .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication") + .getPath(); + + SparkPrepareResultPids.main(new String[] { + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-outputPath", workingDir.toString() + "/preparedInfo", + "-sourcePath", sourcePath, + "-allowedResultPids", "[\"doi\",\"arxiv\",\"pmc\",\"pmid\",\"pdb\"]", + "-allowedAuthorPids", "[\"orcid\"]", + "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Publication" + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/preparedInfo/publication") + .map(item -> OBJECT_MAPPER.readValue(item, ResultPidsList.class)); + + org.apache.spark.sql.Dataset verificationDataset = spark + .createDataset(tmp.rdd(), Encoders.bean(ResultPidsList.class)); + + Assertions.assertEquals(31, verificationDataset.count()); + + verificationDataset.createOrReplaceTempView("check"); + + Assertions + .assertEquals( + 31, spark + .sql( + "Select resultId " + + "from check " + + "lateral view explode (resultAllowedPids) r as resallowed " + + " where resallowed.key = 'doi'") + .count()); + + Dataset check = spark + .sql( + "Select resultId, pids.value orcid, resallowed.key pid_type, resallowed.value pid " + + "from check" + + " lateral view explode(authorAllowedPids) a as authallowed " + + " lateral view explode(authallowed) p as pids " + + " lateral view explode (resultAllowedPids) r as resallowed " + + "where pids.key = 'orcid'"); + + Assertions.assertEquals(2, check.count()); + + Assertions + .assertEquals(1, check.filter("resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e'").count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e' " + + "and orcid = '0000-0002-1114-4216'") + .count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e' " + + "and pid = '10.1016/j.jrmge.2016.11.005'") + .count()); + + Assertions + .assertEquals(1, check.filter("resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f'").count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f' " + + "and orcid = '0000-0001-9317-9350'") + .count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f' " + + "and pid = '10.1016/j.jotr.2014.10.003'") + .count()); + + } + + @Test + public void testDataset() throws Exception { + final String sourcePath = getClass() + .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset") + .getPath(); + + SparkPrepareResultPids.main(new String[] { + "-isSparkSessionManaged", Boolean.FALSE.toString(), + "-outputPath", workingDir.toString() + "/preparedInfo", + "-sourcePath", sourcePath, + "-allowedResultPids", "[\"doi\",\"arxiv\",\"pmc\",\"pmid\",\"pdb\"]", + "-allowedAuthorPids", "[\"orcid\"]", + "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset" + }); + + final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); + + JavaRDD tmp = sc + .textFile(workingDir.toString() + "/preparedInfo/dataset") + .map(item -> OBJECT_MAPPER.readValue(item, ResultPidsList.class)); + + org.apache.spark.sql.Dataset verificationDataset = spark + .createDataset(tmp.rdd(), Encoders.bean(ResultPidsList.class)); + + Assertions.assertEquals(3, verificationDataset.count()); + + verificationDataset.createOrReplaceTempView("check"); + + Dataset check = spark + .sql( + "Select resultId, pids.value orcid, resallowed.key pid_type, resallowed.value pid " + + "from check" + + " lateral view explode(authorAllowedPids) a as authallowed " + + " lateral view explode(authallowed) p as pids " + + " lateral view explode (resultAllowedPids) r as resallowed "); + + Assertions.assertEquals(4, check.count()); + + Assertions + .assertEquals(4, check.filter("resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02'").count()); + Assertions + .assertEquals( + 2, check + .filter( + "resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02' " + + "and (orcid = '0000-0001-9317-9350' or orcid = '0000-0002-1114-4216') and " + + "pid = '10.1016/fake' and pid_type = 'doi' ") + .count()); + + Assertions + .assertEquals( + 2, check + .filter( + "resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02' " + + "and (orcid = '0000-0001-9317-9350' or orcid = '0000-0002-1114-4216') and " + + "pid = '10443fake' and pid_type = 'pmid' ") + .count()); + + check = spark + .sql( + "Select resultId, authorAllowedPids, resallowed.key pid_type, resallowed.value pid " + + "from check" + + " lateral view explode (resultAllowedPids) r as resallowed "); + + Assertions.assertEquals(5, check.count()); + + Assertions + .assertEquals(2, check.filter("resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02'").count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02' " + + " and pid = '10.1016/fake' and pid_type = 'doi' ") + .count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02' " + + " and pid = '10443fake' and pid_type = 'pmid' ") + .count()); + + Assertions + .assertEquals(1, check.filter("resultId = '50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379'").count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379' " + + " and pid = 'fakepdb' and pid_type = 'pdb' ") + .count()); + + Assertions + .assertEquals(2, check.filter("resultId = '50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386'").count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386' " + + " and pid = '10.1016/j.tcs.2012.06.029' and pid_type = 'doi' ") + .count()); + Assertions + .assertEquals( + 1, check + .filter( + "resultId = '50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386' " + + " and pid = 'fake_arxiv' and pid_type = 'arXiv' ") + .count()); + + } +} From da103c399ac8b522895561846aad975b08f5e7e9 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 16:52:07 +0200 Subject: [PATCH 024/103] resources for the pid graph dump test --- .../graph/dump/pid/preparedInfo/preparedInfo | 34 +++++++++++++++++++ .../dump/pid/preparedInfoDR/preparedInfo | 34 +++++++++++++++++++ .../dataset/preparedInfo.json | 3 ++ .../otherresearchproduct/preparedInfo.json | 0 .../software/preparedInfo.json | 0 .../dump/pid/result/dataset/mixedPids.json | 3 ++ .../otherresearchproduct/other_empty.json | 0 .../pid/result/publication/doi_orcid.json | 32 +++++++++++++++++ .../pid/result/software/software_empty.json | 0 9 files changed, 106 insertions(+) create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo/preparedInfo create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR/preparedInfo create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/dataset/preparedInfo.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/otherresearchproduct/preparedInfo.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/software/preparedInfo.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset/mixedPids.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/otherresearchproduct/other_empty.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication/doi_orcid.json create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/software/software_empty.json diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo/preparedInfo b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo/preparedInfo new file mode 100644 index 0000000000..aee3987ea9 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo/preparedInfo @@ -0,0 +1,34 @@ +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/2069087.2069102"}],"resultId":"50|acm_________::72f7ad968fa42cfbf0d3d7b245e43477"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/1805974.1805977"}],"resultId":"50|acm_________::cbd6814ee33b6357c7cea7c008a72b80"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":""}],"resultId":"50|acm_________::faed5b7a1bd8f51118d13ed29cfaee09"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"}],"resultId":"50|base_oa_____::020ca6ee0ae16e1e9c1405207087a671"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jacc.2014.06.769"}],"resultId":"50|base_oa_____::02715dd9fc09b87966f3bad613aec7f9"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0042-6822(02)00051-x"}],"resultId":"50|base_oa_____::035f21f0844d85933ada45818ab13f5d"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-247x(68)90176-5"}],"resultId":"50|base_oa_____::06505050e503a2e7f9167ba704fbeaac"} +{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jotr.2014.10.003"}],"resultId":"50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0377-0427(02)00443-0"}],"resultId":"50|base_oa_____::0a4c1442ae16ccfe614b1230a1700ce5"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.phpro.2012.03.506"}],"resultId":"50|base_oa_____::0cd5cf2933ecbdee82c39799961c8b18"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0168-0072(84)90037-x"}],"resultId":"50|base_oa_____::0f7eb47f3d0e591efedcaacc0ad312aa"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0213-9111(03)71806-8"}],"resultId":"50|base_oa_____::10f021134185727435d60679a30a9705"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.joca.2015.02.572"}],"resultId":"50|base_oa_____::111ab11c5644629db0779ba0041f8e0b"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0024-3795(94)00213-w"}],"resultId":"50|base_oa_____::11366a19965f0d8ecadef4df4a7e9ccc"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.ijid.2014.03.993"}],"resultId":"50|base_oa_____::1382fc03144c27085955624f9727e699"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.virol.2006.03.025"}],"resultId":"50|base_oa_____::1757e43719aee1289faee6b2c9538d1d"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0075-9511(01)80047-5"}],"resultId":"50|base_oa_____::17da7b56aa049a6bd67d6f3b2399a8ee"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.visres.2008.12.014"}],"resultId":"50|base_oa_____::1825ff5d845c3c25cecd779583829b6b"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0120-3347(10)81002-0"}],"resultId":"50|base_oa_____::1854b6c6e615c64bb886b20e3c51f099"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s1995-7645(12)60117-5"}],"resultId":"50|base_oa_____::187f25dc2d40ec7ed34eb488236eef17"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.arabjc.2014.01.016"}],"resultId":"50|base_oa_____::1a11ffdca7bff691d9be29074694ed28"} +{"authorAllowedPids":[[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jrmge.2016.11.005"}],"resultId":"50|base_oa_____::1a700385222228181f20835bae60a71e"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jval.2015.09.2195"}],"resultId":"50|base_oa_____::1b63c2f6ce1dc7ba9598fe6ec08affdc"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-0000(90)90015-d"}],"resultId":"50|base_oa_____::1be5adb74414a30ec46c74dfa20d7562"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.artint.2010.07.002"}],"resultId":"50|base_oa_____::1c62e28a5d3faf1da7717a81e05f6cf4"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jmaa.2004.08.018"}],"resultId":"50|base_oa_____::1d561e2e20c1bb6eb50b2e309ed5658f"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0166-8641(01)00188-2"}],"resultId":"50|base_oa_____::1e805d44f8076ae1c11f0093cf9679ca"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.bbmt.2007.01.017"}],"resultId":"50|base_oa_____::1e922204b8bfd042c5b9fbeb29848b53"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0741-5214(03)00428-2"}],"resultId":"50|base_oa_____::1fe2ad6be2235cd0e494baad6184efaa"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.riai.2013.09.004"}],"resultId":"50|base_oa_____::2122d7837eac59f792a6f11f85bec960"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0092-8674(00)81616-5"}],"resultId":"50|base_oa_____::23375ea29b261a29a7891b6f890460ae"} +{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"},{"key":"mag","value":"fakeMag"}],[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/fake"},{"key":"pmid","value":"10443fake"}],"resultId":"50|_____OmicsDI::00899d9cb1163754943a3277365adc02"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"pdb","value":"fakepdb"}],"resultId":"50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"},{"key":"arXiv","value":"fake_arxiv"}],"resultId":"50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR/preparedInfo b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR/preparedInfo new file mode 100644 index 0000000000..757cfb8e45 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR/preparedInfo @@ -0,0 +1,34 @@ +{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"},{"key":"mag","value":"fakeMag"}],[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1145/2069087.2069102"}],"resultId":"50|acm_________::72f7ad968fa42cfbf0d3d7b245e43477"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/1805974.1805977"}],"resultId":"50|acm_________::cbd6814ee33b6357c7cea7c008a72b80"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":""}],"resultId":"50|acm_________::faed5b7a1bd8f51118d13ed29cfaee09"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"}],"resultId":"50|base_oa_____::020ca6ee0ae16e1e9c1405207087a671"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jacc.2014.06.769"}],"resultId":"50|base_oa_____::02715dd9fc09b87966f3bad613aec7f9"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0042-6822(02)00051-x"}],"resultId":"50|base_oa_____::035f21f0844d85933ada45818ab13f5d"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-247x(68)90176-5"}],"resultId":"50|base_oa_____::06505050e503a2e7f9167ba704fbeaac"} +{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jotr.2014.10.003"}],"resultId":"50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0377-0427(02)00443-0"}],"resultId":"50|base_oa_____::0a4c1442ae16ccfe614b1230a1700ce5"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.phpro.2012.03.506"}],"resultId":"50|base_oa_____::0cd5cf2933ecbdee82c39799961c8b18"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0168-0072(84)90037-x"}],"resultId":"50|base_oa_____::0f7eb47f3d0e591efedcaacc0ad312aa"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0213-9111(03)71806-8"}],"resultId":"50|base_oa_____::10f021134185727435d60679a30a9705"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.joca.2015.02.572"}],"resultId":"50|base_oa_____::111ab11c5644629db0779ba0041f8e0b"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0024-3795(94)00213-w"}],"resultId":"50|base_oa_____::11366a19965f0d8ecadef4df4a7e9ccc"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.ijid.2014.03.993"}],"resultId":"50|base_oa_____::1382fc03144c27085955624f9727e699"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.virol.2006.03.025"}],"resultId":"50|base_oa_____::1757e43719aee1289faee6b2c9538d1d"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0075-9511(01)80047-5"}],"resultId":"50|base_oa_____::17da7b56aa049a6bd67d6f3b2399a8ee"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.visres.2008.12.014"}],"resultId":"50|base_oa_____::1825ff5d845c3c25cecd779583829b6b"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0120-3347(10)81002-0"}],"resultId":"50|base_oa_____::1854b6c6e615c64bb886b20e3c51f099"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s1995-7645(12)60117-5"}],"resultId":"50|base_oa_____::187f25dc2d40ec7ed34eb488236eef17"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.arabjc.2014.01.016"}],"resultId":"50|base_oa_____::1a11ffdca7bff691d9be29074694ed28"} +{"authorAllowedPids":[[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jrmge.2016.11.005"}],"resultId":"50|base_oa_____::1a700385222228181f20835bae60a71e"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jval.2015.09.2195"}],"resultId":"50|base_oa_____::1b63c2f6ce1dc7ba9598fe6ec08affdc"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-0000(90)90015-d"}],"resultId":"50|base_oa_____::1be5adb74414a30ec46c74dfa20d7562"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.artint.2010.07.002"}],"resultId":"50|base_oa_____::1c62e28a5d3faf1da7717a81e05f6cf4"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jmaa.2004.08.018"}],"resultId":"50|base_oa_____::1d561e2e20c1bb6eb50b2e309ed5658f"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0166-8641(01)00188-2"}],"resultId":"50|base_oa_____::1e805d44f8076ae1c11f0093cf9679ca"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.bbmt.2007.01.017"}],"resultId":"50|base_oa_____::1e922204b8bfd042c5b9fbeb29848b53"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0741-5214(03)00428-2"}],"resultId":"50|base_oa_____::1fe2ad6be2235cd0e494baad6184efaa"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.riai.2013.09.004"}],"resultId":"50|base_oa_____::2122d7837eac59f792a6f11f85bec960"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0092-8674(00)81616-5"}],"resultId":"50|base_oa_____::23375ea29b261a29a7891b6f890460ae"} +{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"},{"key":"mag","value":"fakeMag"}],[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/fake"},{"key":"pmid","value":"10443fake"}],"resultId":"50|_____OmicsDI::00899d9cb1163754943a3277365adc02"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"pdb","value":"fakepdb"}],"resultId":"50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"},{"key":"arXiv","value":"fake_arxiv"}],"resultId":"50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/dataset/preparedInfo.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/dataset/preparedInfo.json new file mode 100644 index 0000000000..03895da69c --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/dataset/preparedInfo.json @@ -0,0 +1,3 @@ +{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"},{"key":"mag","value":"fakeMag"}],[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/fake"},{"key":"pmid","value":"10443fake"}],"resultId":"50|_____OmicsDI::00899d9cb1163754943a3277365adc02"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"pdb","value":"fakepdb"}],"resultId":"50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379"} +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"},{"key":"arXiv","value":"fake_arxiv"}],"resultId":"50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/otherresearchproduct/preparedInfo.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/otherresearchproduct/preparedInfo.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/software/preparedInfo.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/software/preparedInfo.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset/mixedPids.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset/mixedPids.json new file mode 100644 index 0000000000..e3b396a579 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset/mixedPids.json @@ -0,0 +1,3 @@ +{"author":[{"fullname":"Jaiswal, Atin","name":"Atin","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0001-9317-9350"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"mag","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"fakemag"}],"rank":3,"surname":"Jaiswal"},{"fullname":"Rahmouni, Abdelaali","name":"Abdelaali","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0002-1114-4216"}],"rank":1,"surname":"Rahmouni"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-04-22"},"dateofcollection":"","dateoftransformation":"2020-07-18T16:50:43.118Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"The mapping and functional analysis of quantitative traits in Brassica rapa can be greatly improved with the availability of physically positioned, gene-based genetic markers and accurate genome annotation. In this study, deep transcriptome RNA sequencing (RNA-Seq) of Brassica rapa was undertaken with two objectives: SNP detection and improved transcriptome annotation. We performed SNP detection on two varieties that are parents of a mapping population to aid in development of a marker system for this population and subsequent development of high-resolution genetic map. An improved Brassica rapa transcriptome was constructed to detect novel transcripts and to improve the current genome annotation. Deep RNA-Seq of two Brassica rapa genotypes—R500 (var. trilocularis, Yellow Sarson) and IMB211 (a rapid cycling variety)—using eight different tissues (root, internode, leaf, petiole, apical meristem, floral meristem, silique, and seedling) grown across three different environments (growth chamber, greenhouse and field) and under two different treatments (simulated sun and simulated shade) generated 2.3 billion high-quality Illumina reads. In this experiment, two pools were made, with one pool consisting of 66 samples collected from growth chamber and another pool consisting of 60 samples collected from greenhouse and field. Each pool was sequenced on eight lanes (total 16 lanes) of an Illumina Genome Analyzer (GAIIx) as 100-bp paired end reads."}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|_____OmicsDI::00899d9cb1163754943a3277365adc02","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-04-22"},"distributionlocation":"","hostedby":{"key":"10|re3data_____::1c26a459a4359f97be44b0f9e3522d3d","value":"ArrayExpress Archive of Functional Genomics Data"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["https://www.omicsdi.org/dataset/arrayexpress-repository/E-MTAB-4276"]}],"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349236793,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"https%3A%2F%2Fwww.omicsdi.org%2Fws%2Fdataset%2Fsearch","datestamp":"","harvestDate":"2020-07-18T14:00:53.566Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/fake"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"pmid","classname":"pmid","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10443fake"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Transcriptomics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"iis::document_classes","inferred":true,"invisible":false,"provenanceaction":{"classid":"iis","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.8397"},"qualifier":{"classid":"mesheuropmc","classname":"Medical Subject Headings","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"food and beverages"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"iis::document_classes","inferred":true,"invisible":false,"provenanceaction":{"classid":"iis","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.7713"},"qualifier":{"classid":"mesheuropmc","classname":"Medical Subject Headings","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"fungi"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Transcription profiling by high throughput sequencing of two Brassica rapa genotypes grown in different environments"}]} +{"author":[],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2019-12-03"},"dateofcollection":"","dateoftransformation":"2020-07-18T16:53:00.367Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"HCC827 cells were treated with 0.1 microM erlotinib for 0, 2, 6, and 24 hours. Cell lysates were immunoprecipitated with TBK1 antibody. Antibody enriched protein samples were run on SDS-PAGE gels and submitted to UT Southwestern Proteomics Core Facility for Mass Spectrometry. Protein gel pieces were digested overnight with trypsin (Pierce) following reduction and alkylation with DTT and iodoacetamide (Sigma Aldrich. The samples then underwent solid-phase extraction cleanup with Oasis HLB microelution plates (Waters) and the resulting samples were analyzed by LC-MS-MS, using an Orbitrap Fusion Lumos mass spectrometer (Thermo Electron) coupled to an Ultimate 3000 RSLC-Nano liquid chromatography systems (Dionex)."}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2019-12-03"},"distributionlocation":"","hostedby":{"key":"10|omicsdi_____::7ab3f388bbf5200ebf5e501260ecddcc","value":"MassIVE Database (Mass Spectrometry Interactive Virtual Environment)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["https://www.omicsdi.org/dataset/massive/MSV000084654"]}],"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349577614,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"https%3A%2F%2Fwww.omicsdi.org%2Fws%2Fdataset%2Fsearch","datestamp":"","harvestDate":"2020-07-18T15:06:08.42Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"pdb","classname":"pdb","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"fakepdb"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Proteomics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"EGFR inhibition triggers an adaptive response by co-opting antiviral signaling pathways in lung cancer"}]} +{"author":[],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-03-12"},"dateofcollection":"","dateoftransformation":"2020-07-18T16:54:27.981Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"abundance based on Spectral counting, fromGPM,Aug,2014
Interaction consistency score: 12.15 Coverage: 62"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-03-12"},"distributionlocation":"","hostedby":{"key":"10|omicsdi_____::af42d1d42806d603c5c6560497a0893e","value":"PAXDB (protein abundance database)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["https://www.omicsdi.org/dataset/paxdb/15887870"]}],"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349264188,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"https%3A%2F%2Fwww.omicsdi.org%2Fws%2Fdataset%2Fsearch","datestamp":"","harvestDate":"2020-07-18T16:41:20.077Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.tcs.2012.06.029"}, {"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"arXiv","classname":"arXiv","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"fake_arxiv"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Proteomics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"S.aureus Mu50 - Whole organism, SC (GPM,Aug,2014)"}]} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/otherresearchproduct/other_empty.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/otherresearchproduct/other_empty.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication/doi_orcid.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication/doi_orcid.json new file mode 100644 index 0000000000..1e25552107 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication/doi_orcid.json @@ -0,0 +1,32 @@ +{"author":[{"fullname":"Ben Romdhanne Bilel","pid":[],"rank":1},{"fullname":"Nikaein Navid","pid":[],"rank":2},{"fullname":"Knopp Raymond","pid":[],"rank":3},{"fullname":"Bonnet Christian","pid":[],"rank":4}],"bestaccessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2011-10-31"},"dateofcollection":"2015-01-20T00:00:00Z","dateoftransformation":"2016-03-12T12:49:39.131Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|acm_________::72f7ad968fa42cfbf0d3d7b245e43477","instance":[{"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2011-10-31"},"distributionlocation":"","hostedby":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dl.acm.org/citation.cfm?id=2069102"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349285551,"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1145/2069087.2069102"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"OpenAirInterface large-scale wireless emulation platform and methodology"}]} +{"author":[{"fullname":"Gilles Barthe","pid":[],"rank":1},{"fullname":"Tamara Rezk","pid":[],"rank":2},{"fullname":"Alejandro Russo","pid":[],"rank":3},{"fullname":"Andrei Sabelfeld","pid":[],"rank":4}],"bestaccessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-07-30"},"dateofcollection":"2015-01-20T00:00:00Z","dateoftransformation":"2016-03-12T12:49:39.575Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|acm_________::cbd6814ee33b6357c7cea7c008a72b80","instance":[{"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-07-30"},"distributionlocation":"","hostedby":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dl.acm.org/citation.cfm?id=1805977"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349287209,"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1145/1805974.1805977"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Security of multithreaded programs by compilation"}]} +{"author":[{"fullname":"Klaus Ostermann","pid":[],"rank":1},{"fullname":"Paolo Giarrusso","pid":[],"rank":2},{"fullname":"Christian Kästner","name":"Christian K.","pid":[],"rank":3,"surname":"Stner"},{"fullname":"Tillmann Rendel","pid":[],"rank":4}],"bestaccessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2011-07-25"},"dateofcollection":"2015-01-20T00:00:00Z","dateoftransformation":"2016-03-12T12:49:39.741Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|acm_________::faed5b7a1bd8f51118d13ed29cfaee09","instance":[{"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2011-07-25"},"distributionlocation":"","hostedby":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dl.acm.org/citation.cfm?id=2032509"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349288013,"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":""}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Revisiting information hiding"}]} +{"author":[{"fullname":"Hernandez Lopezomoza, Mario Andres","name":"Mario Andres","pid":[],"rank":1,"surname":"Hernandez Lopezomoza"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|driver______::66c20c26ac26136628f5207819ae1abc","value":"Archives des thèses et mémoires de l’ISAE (ArTeMIS)"}],"context":[],"contributor":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Institut Supérieur de l'Aéronautique et de l'Espace"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Biannic, Jean-Marc"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Jouhaud, Frank"}],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-09-21"},"dateofcollection":"2016-02-26T12:03:21.28Z","dateoftransformation":"2020-07-22T07:55:56.328Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Ce travail de thèse est consacré à l'extension de l'Inversion Dynamique non-linéaire (NDI-Nonlinear Dynamic Inversion) pour un ensemble plus grand de systèmes non-linéaires, tout en garantissant des conditions de stabilité suffisantes. La NDI a été étudiée dans le cas de diverses applications, y compris en aéronautique et en aérospatiale. Elle permet de calculer des lois de contrôle capables de linéariser et de découpler un modèle non-linéaire à tout point de fonctionnement de son enveloppe d'état. Cependant cette méthode est intrinsèquement non-robuste aux erreurs de modélisation et aux saturations en entrée. En outre, dans un contexte non-linéaire, l'obtention d'une garantie quantifiable du domaine de stabilité atteint reste à l'heure actuelle complexe. Contrairement aux approches classiques de la NDI, notre méthodologie peut être considérée comme un cadre de compensation non-linéaire généralisé qui permet d'intégrer les incertitudes et les saturations en entrée dans le processus de conception. En utilisant des stratégies de contrôle antiwindup, la loi de pilotage peut être calculée grâce à un simple processus en deux phases. Dans ce cadre de travail généralisé des transformations linéaires fractionnaires (LFT - Linear Fractional Transformations) de la boucle fermée non-linéaire peuvent être facilement déduites pour l'analyse de la stabilité robuste en utilisant des outils standards pour de systèmes linéaires. La méthode proposée est testée pour le pilotage d'un véhicule de rentrée atmosphérique de type aile delta lors de ses phases hypersonique, transsonique et subsonique. Pour cette thèse, un simulateur du vol incluant divers facteurs externes ainsi que des erreurs de modélisation a été développé dans Simulink.\n\nThis thesis work is devoted to extending Nonlinear Dynamic Inversion (NDI) for a large scale of\nnonlinear systems while guaranteeing sufficient stability conditions. NDI has been studied in a wide range of applications, including aeronautics and aerospace. It allows to compute nonlinear control laws able to decouple and linearize a model at any operating point of its state envelope. However, this method is inherently non-robust to modelling errors and input saturations. Moreover, obtaining a quantifiable guarantee of the attained stability domain in a nonlinear control context is not a very straightforward task. Unlike standard NDI approaches, our methodology can be viewed as a generalized nonlinear compensation framework which allows to incorporate uncertainties and input saturations in the design process. Paralleling anti-windup strategies, the controller can be computed through a single multichannel optimization problem or through a simple two-step process. Within this framework, linear fractional transformations of the nonlinear closed-loop can be easily derived for robust stability analysis using standard tools for linear systems. The proposed method is tested for the flight control of a delta wing type reentry vehicle at hypersonic, transonic and subsonic phases of the atmospheric reentry. For this thesis work, a Flight Mechanics simulator including diverse external factors and modelling errors was developed in Simulink."}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|artemis___fr::630e47d8b572e3df0e91327d6d8f036d","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|driver______::66c20c26ac26136628f5207819ae1abc","value":"Archives des thèses et mémoires de l’ISAE (ArTeMIS)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-09-21"},"distributionlocation":"","hostedby":{"key":"10|driver______::66c20c26ac26136628f5207819ae1abc","value":"Archives des thèses et mémoires de l’ISAE (ArTeMIS)"},"instancetype":{"classid":"0038","classname":"Other literature type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://depozit.isae.fr/theses/2012/2012_Hernandez_Lopezomoza_Mario_Andres.pdf"]}],"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349470657,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http://ori-oai.isae.fr/ori-oai-repository/OAIHandler","datestamp":"2013-06-13","harvestDate":"2016-02-26T12:03:21.28Z","identifier":"oai:isae-repo.fr:isae-371","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"originalId":["oai:isae-repo.fr:isae-371"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Compensation non-linéaire généralisée"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Inversion dynamic non-linéaire"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Commande anti-windup"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Commande robuste"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Transformations linéaires fractionnaires"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Commande H-infinie non-lisse"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Rentrée atmosphérique"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Generalized nonlinear compensation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Nonlinear dynamic inversion"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Anti-windup control"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Robust control"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Linear fractional transformation, Nonsmooth H-infinity control"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Atmospheric reentry"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"629.8"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Cadre de travail généralisé de compensation non-linéaire robuste : application à la rentrée atmosphérique"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"A generalized framework for robust nonlinear compensation : application to an atmospheric reentry control problem"}]} +{"author":[{"fullname":"Manea, Florin","name":"Florin","pid":[],"rank":1,"surname":"Manea"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-10-01"},"dateofcollection":"2017-09-25T17:25:29.95Z","dateoftransformation":"2019-01-23T10:12:38.35Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::020ca6ee0ae16e1e9c1405207087a671","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-10-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.tcs.2012.06.029"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"79","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"0304-3975","name":"Theoretical Computer Science","sp":"65","vol":"456"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349290078,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:25:29.95Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.tcs.2012.06.029"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Theoretical Computer Science"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computer Science(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Complexity results for deciding Networks of Evolutionary Processors"}]} +{"author":[{"fullname":"Yanlong, Yin","name":"Yin","pid":[],"rank":1,"surname":"Yanlong"},{"fullname":"Mingkai, Yao","name":"Yao","pid":[],"rank":2,"surname":"Mingkai"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-10-01"},"dateofcollection":"2017-09-25T17:16:18.455Z","dateoftransformation":"2019-01-23T10:13:00.54Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::02715dd9fc09b87966f3bad613aec7f9","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-10-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jacc.2014.06.769"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"16","issnLinking":"","issnOnline":"","issnPrinted":"0735-1097","name":"Journal of the American College of Cardiology","sp":"","vol":"64"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349297171,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:16:18.455Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jacc.2014.06.769"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Cardiology and Cardiovascular Medicine"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"GW25-e1474 Radiofrequency catheter ablation via radial artery approach for left-sided atrioventricuar accessory pathways"}]} +{"author":[{"fullname":"Reed, Jonathan C","name":"Jonathan C.","pid":[],"rank":1,"surname":"Reed"},{"fullname":"Kasschau, Kristin D","name":"Kristin D.","pid":[],"rank":2,"surname":"Kasschau"},{"fullname":"Prokhnevsky, Alexey I","name":"Alexey I.","pid":[],"rank":3,"surname":"Prokhnevsky"},{"fullname":"Gopinath, Kodetham","name":"Kodetham","pid":[],"rank":4,"surname":"Gopinath"},{"fullname":"Pogue, Gregory P","name":"Gregory P.","pid":[],"rank":5,"surname":"Pogue"},{"fullname":"Carrington, James C","name":"James C.","pid":[],"rank":6,"surname":"Carrington"},{"fullname":"Dolja, Valerian V","name":"Valerian V.","pid":[],"rank":7,"surname":"Dolja"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-02-01"},"dateofcollection":"2017-09-25T17:22:28.969Z","dateoftransformation":"2019-01-23T10:13:50.503Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::035f21f0844d85933ada45818ab13f5d","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0042-6822(02)00051-x"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"209","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0042-6822","name":"Virology","sp":"203","vol":"306"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349312955,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:22:28.969Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0042-6822(02)00051-x"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Virology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Suppressor of RNA silencing encoded by Beet yellows virus"}]} +{"author":[{"fullname":"Miller, R.K","name":"R. K.","pid":[],"rank":1,"surname":"Miller"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1968-05-01"},"dateofcollection":"2017-09-25T17:23:20.638Z","dateoftransformation":"2019-01-23T10:16:13.468Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::06505050e503a2e7f9167ba704fbeaac","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1968-05-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/0022-247x(68)90176-5"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"340","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0022-247X","name":"Journal of Mathematical Analysis and Applications","sp":"319","vol":"22"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349364849,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:23:20.638Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/0022-247x(68)90176-5"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Applied Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Analysis"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"On Volterra integral equations with nonnegative integrable resolvents"}]} +{"author":[{"fullname":"Chatterjee, Rupak","name":"Rupak","pid":[],"rank":1,"surname":"Chatterjee"},{"fullname":"Sabui, Kanchan","name":"Kanchan","pid":[],"rank":2,"surname":"Sabui"},{"fullname":"Jaiswal, Atin","name":"Atin","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0001-9317-9350"}],"rank":3,"surname":"Jaiswal"},{"fullname":"Mandal, Jayanta","name":"Jayanta","pid":[],"rank":4,"surname":"Mandal"},{"fullname":"Kumar, Mukesh","name":"Mukesh","pid":[],"rank":5,"surname":"Kumar"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-06-01"},"dateofcollection":"2017-09-25T17:25:36.162Z","dateoftransformation":"2019-01-23T10:16:14.171Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-06-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::03d3da3bc6d4be6ed3c0a77efc904672","value":"Journal of Orthopaedics, Trauma and Rehabilitation"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jotr.2014.10.003"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"57","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"2210-4917","name":"Journal of Orthopaedics, Trauma and Rehabilitation","sp":"55","vol":"19"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349365125,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:25:36.162Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jotr.2014.10.003"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Physical Therapy, Sports Therapy and Rehabilitation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Rehabilitation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Orthopedics and Sports Medicine"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Tuberculous Osteomyelitis of the Patella"}]} +{"author":[{"fullname":"Ding, Xie Ping","name":"Xie Ping","pid":[],"rank":1,"surname":"Ding"},{"fullname":"Xia, Fu Quan","name":"Fu Quan","pid":[],"rank":2,"surname":"Xia"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2002-10-01"},"dateofcollection":"2017-09-25T17:15:07.008Z","dateoftransformation":"2019-01-23T10:19:19.133Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::0a4c1442ae16ccfe614b1230a1700ce5","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2002-10-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0377-0427(02)00443-0"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"383","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0377-0427","name":"Journal of Computational and Applied Mathematics","sp":"369","vol":"147"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349046152,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:15:07.008Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0377-0427(02)00443-0"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Applied Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computational Mathematics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"A new class of completely generalized quasi-variational inclusions in Banach spaces"}]} +{"author":[{"fullname":"Kondo, N.","name":"N.","pid":[],"rank":1,"surname":"Kondo"},{"fullname":"Yokoyama, K.","name":"K.","pid":[],"rank":2,"surname":"Yokoyama"},{"fullname":"Hosaka, S.","name":"S.","pid":[],"rank":3,"surname":"Hosaka"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-01-01"},"dateofcollection":"2017-09-25T17:21:06.299Z","dateoftransformation":"2019-01-23T10:21:12.263Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::0cd5cf2933ecbdee82c39799961c8b18","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-01-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/3.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.phpro.2012.03.506"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"443","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"1875-3892","name":"Physics Procedia","sp":"440","vol":"27"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349092691,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:21:06.299Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.phpro.2012.03.506"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Physics and Astronomy(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Magnetic separation of organic dyes using superconducting bulk magnets"}]} +{"author":[{"fullname":"Guichard, David R.","name":"David R.","pid":[],"rank":1,"surname":"Guichard"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1984-02-01"},"dateofcollection":"2017-09-25T17:10:39.074Z","dateoftransformation":"2019-01-23T10:23:08.168Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::0f7eb47f3d0e591efedcaacc0ad312aa","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1984-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/0168-0072(84)90037-x"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"9","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0168-0072","name":"Annals of Pure and Applied Logic","sp":"1","vol":"26"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349140964,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:10:39.074Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/0168-0072(84)90037-x"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Logic"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"A note on r-maximal subspaces of V∞"}]} +{"author":[{"fullname":"Ruano, Alberto","name":"Alberto","pid":[],"rank":1,"surname":"Ruano"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-01-01"},"dateofcollection":"2017-09-25T17:15:22.043Z","dateoftransformation":"2019-01-23T10:24:10.631Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::10f021134185727435d60679a30a9705","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-01-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::3f856cc4c8830ede48af1aaffbe61c83","value":"Gaceta Sanitaria"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0213-9111(03)71806-8"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"6","issnLinking":"","issnOnline":"","issnPrinted":"0213-9111","name":"Gaceta Sanitaria","sp":"","vol":"17"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349167887,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:15:22.043Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0213-9111(03)71806-8"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Public Health, Environmental and Occupational Health"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Tabaco y cáncer de pulmón en Asturias"}]} +{"author":[{"fullname":"Kloefkorn, H.E.","name":"H. E.","pid":[],"rank":1,"surname":"Kloefkorn"},{"fullname":"Allen, K.D.","name":"K. D.","pid":[],"rank":2,"surname":"Allen"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-04-01"},"dateofcollection":"2017-09-25T17:14:25.074Z","dateoftransformation":"2019-01-23T10:24:17.711Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::111ab11c5644629db0779ba0041f8e0b","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-04-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.joca.2015.02.572"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"1063-4584","name":"Osteoarthritis and Cartilage","sp":"","vol":"23"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349170715,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:14:25.074Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.joca.2015.02.572"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Rheumatology"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Orthopedics and Sports Medicine"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Biomedical Engineering"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Histological changes in the subchondral bone and synovium relate to heightened limb sensitivity in a rat OA model"}]} +{"author":[{"fullname":"Gustafson, Karl","name":"Karl","pid":[],"rank":1,"surname":"Gustafson"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1995-03-01"},"dateofcollection":"2017-09-25T17:23:52.405Z","dateoftransformation":"2019-01-23T10:24:22.219Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::11366a19965f0d8ecadef4df4a7e9ccc","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1995-03-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/0024-3795(94)00213-w"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"140","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"0024-3795","name":"Linear Algebra and its Applications","sp":"117","vol":"217"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349172780,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:23:52.405Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/0024-3795(94)00213-w"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Geometry and Topology"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Algebra and Number Theory"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Numerical Analysis"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Discrete Mathematics and Combinatorics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Matrix trigonometry"}]} +{"author":[{"fullname":"Boykinova, O.B.","name":"O. B.","pid":[],"rank":1,"surname":"Boykinova"},{"fullname":"Novakov, S.S.","name":"S. S.","pid":[],"rank":2,"surname":"Novakov"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-04-01"},"dateofcollection":"2017-09-25T17:19:21.468Z","dateoftransformation":"2019-01-23T10:26:02.481Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1382fc03144c27085955624f9727e699","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-04-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::3f0c1d3f035cc27c14b4a799568d3e98","value":"International Journal of Infectious Diseases"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.ijid.2014.03.993"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"1201-9712","name":"International Journal of Infectious Diseases","sp":"","vol":"21"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349214775,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:19:21.468Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.ijid.2014.03.993"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Microbiology (medical)"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Infectious Diseases"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Infectious diseases with changing geography"}]} +{"author":[{"fullname":"Lísal, Jiří","name":"Jiří","pid":[],"rank":1,"surname":"Lísal"},{"fullname":"Kainov, Denis E.","name":"Denis E.","pid":[],"rank":2,"surname":"Kainov"},{"fullname":"Lam, TuKiet T.","name":"Tukiet T.","pid":[],"rank":3,"surname":"Lam"},{"fullname":"Emmett, Mark R.","name":"Mark R.","pid":[],"rank":4,"surname":"Emmett"},{"fullname":"Wei, Hui","name":"Hui","pid":[],"rank":5,"surname":"Wei"},{"fullname":"Gottlieb, Paul","name":"Paul","pid":[],"rank":6,"surname":"Gottlieb"},{"fullname":"Marshall, Alan G.","name":"Alan G.","pid":[],"rank":7,"surname":"Marshall"},{"fullname":"Tuma, Roman","name":"Roman","pid":[],"rank":8,"surname":"Tuma"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2006-07-01"},"dateofcollection":"2017-09-25T17:17:34.511Z","dateoftransformation":"2019-01-23T10:28:46.873Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1757e43719aee1289faee6b2c9538d1d","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2006-07-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.virol.2006.03.025"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"79","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0042-6822","name":"Virology","sp":"73","vol":"351"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349283923,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:17:34.511Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.virol.2006.03.025"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Virology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Interaction of packaging motor with the polymerase complex of dsRNA bacteriophage"}]} +{"author":[{"fullname":"Wysujack, Klaus","name":"Klaus","pid":[],"rank":1,"surname":"Wysujack"},{"fullname":"Laude, Uwe","name":"Uwe","pid":[],"rank":2,"surname":"Laude"},{"fullname":"Anwand, Karl","name":"Karl","pid":[],"rank":3,"surname":"Anwand"},{"fullname":"Mehner, Thomas","name":"Thomas","pid":[],"rank":4,"surname":"Mehner"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2001-04-01"},"dateofcollection":"2017-09-25T17:10:32.226Z","dateoftransformation":"2019-01-23T10:29:07.35Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::17da7b56aa049a6bd67d6f3b2399a8ee","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2001-04-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0075-9511(01)80047-5"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"51","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0075-9511","name":"Limnologica - Ecology and Management of Inland Waters","sp":"45","vol":"31"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349293060,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:10:32.226Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0075-9511(01)80047-5"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Aquatic Science"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Stocking, population development and food composition of pike Esox lucius in the biomanipulated Feldberger Haussee (Germany) — Implications for fisheries management"}]} +{"author":[{"fullname":"McDonald, J. Scott","name":"J. Scott","pid":[],"rank":1,"surname":"Mcdonald"},{"fullname":"Seymour, Kiley J.","name":"Kiley J.","pid":[],"rank":2,"surname":"Seymour"},{"fullname":"Schira, Mark M.","name":"Mark M.","pid":[],"rank":3,"surname":"Schira"},{"fullname":"Spehar, Branka","name":"Branka","pid":[],"rank":4,"surname":"Spehar"},{"fullname":"Clifford, Colin W.G.","name":"Colin W. G.","pid":[],"rank":5,"surname":"Clifford"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2009-06-01"},"dateofcollection":"2017-09-25T17:22:18.233Z","dateoftransformation":"2019-01-23T10:29:19.967Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1825ff5d845c3c25cecd779583829b6b","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2009-06-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.visres.2008.12.014"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"1405","iss":"11","issnLinking":"","issnOnline":"","issnPrinted":"0042-6989","name":"Vision Research","sp":"1397","vol":"49"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349298278,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:22:18.233Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.visres.2008.12.014"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Ophthalmology"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Sensory Systems"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Orientation-specific contextual modulation of the fMRI BOLD response to luminance and chromatic gratings in human visual cortex"}]} +{"author":[{"fullname":"Grueso Angulo, Reinaldo","name":"Reinaldo","pid":[],"rank":1,"surname":"Grueso Angulo"},{"fullname":"Sanín Hoyos, Alejandra","name":"Alejandra","pid":[],"rank":2,"surname":"Sanín Hoyos"},{"fullname":"Bonilla Ramírez, Antonio J.","name":"Antonio J.","pid":[],"rank":3,"surname":"Bonilla Ramírez"},{"fullname":"García Carreño, Andrés","name":"Andrés","pid":[],"rank":4,"surname":"García Carreño"},{"fullname":"Cubillos Salcedo, Javier","name":"Javier","pid":[],"rank":5,"surname":"Cubillos Salcedo"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-02-01"},"dateofcollection":"2017-09-25T17:11:00.136Z","dateoftransformation":"2019-01-23T10:29:27.46Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1854b6c6e615c64bb886b20e3c51f099","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/3.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0120-3347(10)81002-0"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"32","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0120-3347","name":"Revista Colombiana de Anestesiología","sp":"22","vol":"38"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349301458,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:11:00.136Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0120-3347(10)81002-0"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Anesthesiology and Pain Medicine"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Critical Care and Intensive Care Medicine"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Comparación entre la técnica de multi-inyección y la inyección única con localización del nervio mediano en el bloqueo infraclavicular para cirugía del miembro superior"}]} +{"author":[{"fullname":"Liang, Zeng","name":"Zeng","pid":[],"rank":1,"surname":"Liang"},{"fullname":"Gao, Li-Hua","name":"Li-Hua","pid":[],"rank":2,"surname":"Gao"},{"fullname":"Cao, Li-Jun","name":"Li-Jun","pid":[],"rank":3,"surname":"Cao"},{"fullname":"Feng, De-Yun","name":"De-Yun","pid":[],"rank":4,"surname":"Feng"},{"fullname":"Cao, Ya","name":"Ya","pid":[],"rank":5,"surname":"Cao"},{"fullname":"Luo, Qi-Zhi","name":"Qi-Zhi","pid":[],"rank":6,"surname":"Luo"},{"fullname":"Yu, Ping","name":"Ping","pid":[],"rank":7,"surname":"Yu"},{"fullname":"Li, Ming","name":"Ming","pid":[],"rank":8,"surname":"Li"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-09-01"},"dateofcollection":"2017-09-25T17:23:36.518Z","dateoftransformation":"2019-01-23T10:29:34.511Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::187f25dc2d40ec7ed34eb488236eef17","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-09-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s1995-7645(12)60117-5"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"742","iss":"9","issnLinking":"","issnOnline":"","issnPrinted":"1995-7645","name":"Asian Pacific Journal of Tropical Medicine","sp":"738","vol":"5"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349304355,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:23:36.518Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s1995-7645(12)60117-5"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Medicine(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Detection of STAT2 in early stage of cervical premalignancy and in cervical cancer"}]} +{"author":[{"fullname":"Abdul Rahiman, Ali Fathima Sabirneeza","name":"Ali Fathima Sabirneeza","pid":[],"rank":1,"surname":"Abdul Rahiman"},{"fullname":"Sethumanickam, Subhashini","name":"Subhashini","pid":[],"rank":2,"surname":"Sethumanickam"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-02-01"},"dateofcollection":"2017-09-25T17:09:12.748Z","dateoftransformation":"2019-01-23T10:30:39.329Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1a11ffdca7bff691d9be29074694ed28","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-02-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::fde6cb86e1367ee2c3f02f4760134db0","value":"Arabian Journal of Chemistry"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/3.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.arabjc.2014.01.016"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"1878-5352","name":"Arabian Journal of Chemistry","sp":"","vol":""},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349333854,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:09:12.748Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.arabjc.2014.01.016"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Chemistry(all)"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Chemical Engineering(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Corrosion inhibition, adsorption and thermodynamic properties of poly(vinyl alcohol-cysteine) in molar HCl"}]} +{"author":[{"fullname":"Rahmouni, Abdelaali","name":"Abdelaali","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0002-1114-4216"}],"rank":1,"surname":"Rahmouni"},{"fullname":"Boulanouar, Abderrahim","name":"Abderrahim","pid":[],"rank":2,"surname":"Boulanouar"},{"fullname":"Samaouali, Abderrahim","name":"Abderrahim","pid":[],"rank":3,"surname":"Samaouali"},{"fullname":"Boukalouch, Mohamed","name":"Mohamed","pid":[],"rank":4,"surname":"Boukalouch"},{"fullname":"Géraud, Yves","name":"Yves","pid":[],"rank":5,"surname":"Géraud"},{"fullname":"Sebbani, Jamal","name":"Jamal","pid":[],"rank":6,"surname":"Sebbani"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2017-02-01"},"dateofcollection":"2017-09-25T17:25:12.979Z","dateoftransformation":"2019-01-23T10:30:54.608Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1a700385222228181f20835bae60a71e","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2017-02-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::636dedde598e3adc89ff3d872ebd30f1","value":"Journal of Rock Mechanics and Geotechnical Engineering"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jrmge.2016.11.005"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"83","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"1674-7755","name":"Journal of Rock Mechanics and Geotechnical Engineering","sp":"74","vol":"9"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349340911,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:25:12.979Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jrmge.2016.11.005"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Prediction of elastic and acoustic behaviors of calcarenite used for construction of historical monuments of Rabat, Morocco"}]} +{"author":[{"fullname":"Maan, R","name":"R.","pid":[],"rank":1,"surname":"Maan"},{"fullname":"Zaim, R","name":"R.","pid":[],"rank":2,"surname":"Zaim"},{"fullname":"van der Meer, A","name":"A.","pid":[],"rank":3,"surname":"Meer"},{"fullname":"Feld, J","name":"J.","pid":[],"rank":4,"surname":"Feld"},{"fullname":"Wedemeyer, H","name":"H.","pid":[],"rank":5,"surname":"Wedemeyer"},{"fullname":"Dufour, J","name":"J.","pid":[],"rank":6,"surname":"Dufour"},{"fullname":"Lammert, F","name":"F.","pid":[],"rank":7,"surname":"Lammert"},{"fullname":"Manns, M","name":"M.","pid":[],"rank":8,"surname":"Manns"},{"fullname":"Zeuzem, S","name":"S.","pid":[],"rank":9,"surname":"Zeuzem"},{"fullname":"Hansen, B","name":"B.","pid":[],"rank":10,"surname":"Hansen"},{"fullname":"Janssen, H","name":"H.","pid":[],"rank":11,"surname":"Janssen"},{"fullname":"Veldt, B","name":"B.","pid":[],"rank":12,"surname":"Veldt"},{"fullname":"de Knegt, R","name":"R.","pid":[],"rank":13,"surname":"Knegt"},{"fullname":"Uyl-de Groot, C","name":"C.","pid":[],"rank":14,"surname":"Uyl-De Groot"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-11-01"},"dateofcollection":"2017-09-25T17:17:11.336Z","dateoftransformation":"2019-01-23T10:31:34.227Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1b63c2f6ce1dc7ba9598fe6ec08affdc","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-11-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jval.2015.09.2195"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"7","issnLinking":"","issnOnline":"","issnPrinted":"1098-3015","name":"Value in Health","sp":"","vol":"18"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349356246,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:17:11.336Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jval.2015.09.2195"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Public Health, Environmental and Occupational Health"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Health Policy"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Real-World Medical Costs of Antiviral Therapy Among Patients With Chronic Hcv Infection and Advanced Hepatic Fibrosis"}]} +{"author":[{"fullname":"Van Wyk, Christopher J.","name":"Christopher J.","pid":[],"rank":1,"surname":"Wyk"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1990-02-01"},"dateofcollection":"2017-09-25T17:22:11.445Z","dateoftransformation":"2019-01-23T10:31:54.934Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1be5adb74414a30ec46c74dfa20d7562","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1990-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/0022-0000(90)90015-d"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0022-0000","name":"Journal of Computer and System Sciences","sp":"","vol":"40"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349365336,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:22:11.445Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/0022-0000(90)90015-d"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Theoretical Computer Science"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computer Networks and Communications"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computational Theory and Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Applied Mathematics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Editor's foreword"}]} +{"author":[{"fullname":"Pita, James","name":"James","pid":[],"rank":1,"surname":"Pita"},{"fullname":"Jain, Manish","name":"Manish","pid":[],"rank":2,"surname":"Jain"},{"fullname":"Tambe, Milind","name":"Milind","pid":[],"rank":3,"surname":"Tambe"},{"fullname":"Ordóñez, Fernando","name":"Fernando","pid":[],"rank":4,"surname":"Ordóñez"},{"fullname":"Kraus, Sarit","name":"Sarit","pid":[],"rank":5,"surname":"Kraus"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-10-01"},"dateofcollection":"2017-09-25T17:11:56.937Z","dateoftransformation":"2019-01-23T10:32:15.67Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1c62e28a5d3faf1da7717a81e05f6cf4","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-10-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.artint.2010.07.002"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"1171","iss":"15","issnLinking":"","issnOnline":"","issnPrinted":"0004-3702","name":"Artificial Intelligence","sp":"1142","vol":"174"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349374470,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:11:56.937Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.artint.2010.07.002"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Artificial Intelligence"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Robust solutions to Stackelberg games: Addressing bounded rationality and limited observations in human cognition"}]} +{"author":[{"fullname":"Duggal, B.P.","name":"B. P.","pid":[],"rank":1,"surname":"Duggal"},{"fullname":"Djordjević, S.V.","name":"S. V.","pid":[],"rank":2,"surname":"Djordjević"},{"fullname":"Kubrusly, Carlos","name":"Carlos","pid":[],"rank":3,"surname":"Kubrusly"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2005-09-01"},"dateofcollection":"2017-09-25T17:20:31.413Z","dateoftransformation":"2019-01-23T10:32:55.692Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1d561e2e20c1bb6eb50b2e309ed5658f","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2005-09-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jmaa.2004.08.018"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"441","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0022-247X","name":"Journal of Mathematical Analysis and Applications","sp":"433","vol":"309"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349393684,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:20:31.413Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jmaa.2004.08.018"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Applied Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Analysis"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Kato type operators and Weyl's theorem"}]} +{"author":[{"fullname":"Ichihara, Kazuhiro","name":"Kazuhiro","pid":[],"rank":1,"surname":"Ichihara"},{"fullname":"Ohtouge, Masahiro","name":"Masahiro","pid":[],"rank":2,"surname":"Ohtouge"},{"fullname":"Teragaito, Masakazu","name":"Masakazu","pid":[],"rank":3,"surname":"Teragaito"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2002-08-01"},"dateofcollection":"2017-09-25T17:24:17.225Z","dateoftransformation":"2019-01-23T10:33:45.13Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1e805d44f8076ae1c11f0093cf9679ca","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2002-08-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0166-8641(01)00188-2"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"478","iss":"3","issnLinking":"","issnOnline":"","issnPrinted":"0166-8641","name":"Topology and its Applications","sp":"467","vol":"122"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349415858,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:24:17.225Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0166-8641(01)00188-2"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Geometry and Topology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Boundary slopes of non-orientable Seifert surfaces for knots"}]} +{"author":[{"fullname":"Klinger, E.F.","name":"E. F.","pid":[],"rank":1,"surname":"Klinger"},{"fullname":"Daum, C.D.","name":"C. D.","pid":[],"rank":2,"surname":"Daum"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2007-02-01"},"dateofcollection":"2017-09-25T17:14:47.856Z","dateoftransformation":"2019-01-23T10:33:48.2Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1e922204b8bfd042c5b9fbeb29848b53","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2007-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.bbmt.2007.01.017"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"1083-8791","name":"Biology of Blood and Marrow Transplantation","sp":"","vol":"13"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349417247,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:14:47.856Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.bbmt.2007.01.017"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Transplantation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Hematology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"387: A reimmunization program for pediatric hematopoietic progenitor cell transplant (HPCT) recipients"}]} +{"author":[{"fullname":"Lin, Peter H","name":"Peter H.","pid":[],"rank":1,"surname":"Lin"},{"fullname":"Bush, Ruth L","name":"Ruth L.","pid":[],"rank":2,"surname":"Bush"},{"fullname":"Lumsden, Alan B","name":"Alan B.","pid":[],"rank":3,"surname":"Lumsden"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-08-01"},"dateofcollection":"2017-09-25T17:20:36.713Z","dateoftransformation":"2019-01-23T10:34:47.354Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1fe2ad6be2235cd0e494baad6184efaa","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-08-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0741-5214(03)00428-2"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0741-5214","name":"Journal of Vascular Surgery","sp":"","vol":"38"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349009240,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:20:36.713Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0741-5214(03)00428-2"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Surgery"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Cardiology and Cardiovascular Medicine"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Successful stent-graft exclusion of a bovine patch-related carotid artery pseudoaneurysm"}]} +{"author":[{"fullname":"Dormido, Sebastián","name":"Sebastián","pid":[],"rank":1,"surname":"Dormido"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2013-10-01"},"dateofcollection":"2017-09-25T17:18:50.22Z","dateoftransformation":"2019-01-23T10:35:38.06Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::2122d7837eac59f792a6f11f85bec960","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2013-10-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::0fb834eff254befa80c0b975a98101db","value":"Revista Iberoamericana de Automática e Informática Industrial RIAI"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/3.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.riai.2013.09.004"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"481","iss":"4","issnLinking":"","issnOnline":"","issnPrinted":"1697-7912","name":"Revista Iberoamericana de Automática e Informática Industrial RIAI","sp":"477","vol":"10"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349030805,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:18:50.22Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.riai.2013.09.004"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Control and Systems Engineering"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computer Science(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Entrevista con Javier Aracil Santonja: Creador de la escuela sevillana de control automático. 3ª Parte"}]} +{"author":[{"fullname":"Neul, Jeffrey L","name":"Jeffrey L.","pid":[],"rank":1,"surname":"Neul"},{"fullname":"Ferguson, Edwin L","name":"Edwin L.","pid":[],"rank":2,"surname":"Ferguson"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1998-11-01"},"dateofcollection":"2017-09-25T17:11:44.911Z","dateoftransformation":"2019-01-23T10:37:07.581Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::23375ea29b261a29a7891b6f890460ae","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1998-11-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0092-8674(00)81616-5"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"494","iss":"4","issnLinking":"","issnOnline":"","issnPrinted":"0092-8674","name":"Cell","sp":"483","vol":"95"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349065858,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:11:44.911Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0092-8674(00)81616-5"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Biochemistry, Genetics and Molecular Biology(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Spatially Restricted Activation of the SAX Receptor by SCW Modulates DPP/TKV Signaling in Drosophila Dorsal–Ventral Patterning"}]} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/software/software_empty.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/software/software_empty.json new file mode 100644 index 0000000000..e69de29bb2 From 2a540b6c01048a3f22e257e8319127d343d1074e Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 16:55:35 +0200 Subject: [PATCH 025/103] added constants for the pid graph dump --- .../eu/dnetlib/dhp/oa/graph/dump/Constants.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Constants.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Constants.java index a466cf0742..202839866f 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Constants.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Constants.java @@ -15,6 +15,19 @@ public class Constants { public static final String HARVESTED = "Harvested"; public static final String DEFAULT_TRUST = "0.9"; public static final String USER_CLAIM = "Linked by user";; + public static final String SIMILARITY = "similarity"; + + public static final String RESULT = "result"; + public static final String AUTHOR = "author"; + public static final String ORGANIZATION = "organization"; + public static final String PROJECT = "project"; + + public static final String RESPID_RESPID_RELATION = "hasOtherManifestation"; + public static final String RES_AUTHOR_RELATION = "hasAuthor"; + public static final String AUTHOR_RES_RELATION = "isAuthorOf"; + public static final String AUTHOR_AUTHOR_RELATION = "hasCoAuthor"; + public static final String AUTHORSHIP = "authorship"; + public static final String SAME_AS = "sameAs"; public static String COAR_ACCESS_RIGHT_SCHEMA = "http://vocabularies.coar-repositories.org/documentation/access_rights/"; From 5fb2949cb863c1e8aadb5c1dce415a14189f7140 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 17:00:09 +0200 Subject: [PATCH 026/103] added utils methods --- .../eu/dnetlib/dhp/oa/graph/dump/Utils.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java index c112c5c724..524ec0eb1a 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java @@ -4,6 +4,9 @@ package eu.dnetlib.dhp.oa.graph.dump; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -11,6 +14,9 @@ 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.SparkSession; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.io.SAXReader; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; @@ -18,6 +24,10 @@ import com.google.gson.Gson; import eu.dnetlib.dhp.common.HdfsSupport; import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; import eu.dnetlib.dhp.oa.graph.dump.graph.Constants; +import eu.dnetlib.dhp.schema.dump.oaf.graph.Node; +import eu.dnetlib.dhp.schema.dump.oaf.graph.RelType; +import eu.dnetlib.dhp.schema.dump.oaf.graph.Relation; +import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; import eu.dnetlib.dhp.utils.DHPUtils; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; @@ -70,4 +80,37 @@ public class Utils { return new Gson().fromJson(sb.toString(), CommunityMap.class); } + + public static List getRelationPair(String pid1, String pid2, String type1, String type2, + String semtype, String rel1, String rel2) { + List ret = new ArrayList<>(); + ret + .add( + Relation + .newInstance( + Node.newInstance(pid1, type1), + Node.newInstance(pid2, type2), + RelType.newInstance(rel1, semtype), + null)); + + ret + .add( + Relation + .newInstance( + Node.newInstance(pid2, type2), + Node.newInstance(pid1, type1), + RelType.newInstance(rel2, semtype), + null)); + + return ret; + } + + public static Entity getEntity(String fund, String code) throws DocumentException { + { + final Document doc; + doc = new SAXReader().read(new StringReader(fund)); + String name = ((org.dom4j.Node) (doc.selectNodes("//funder/shortname").get(0))).getText(); + return Entity.newInstance(name + ":" + code); + } + } } From 34fa96f3b17b0ba2a7bbeaa97a2fa83b245b060a Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 17:00:20 +0200 Subject: [PATCH 027/103] - --- .../dhp/oa/graph/dump/ResultMapper.java | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java index 1d20eb36af..9bb6653d0b 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java @@ -5,14 +5,14 @@ import java.io.Serializable; import java.util.*; import java.util.stream.Collectors; -import eu.dnetlib.dhp.schema.dump.oaf.community.CommunityInstance; -import eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult; import org.apache.commons.lang3.StringUtils; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.dump.oaf.*; +import eu.dnetlib.dhp.schema.dump.oaf.community.CommunityInstance; import eu.dnetlib.dhp.schema.dump.oaf.community.CommunityResult; import eu.dnetlib.dhp.schema.dump.oaf.community.Context; +import eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult; import eu.dnetlib.dhp.schema.oaf.DataInfo; import eu.dnetlib.dhp.schema.oaf.Field; import eu.dnetlib.dhp.schema.oaf.Journal; @@ -216,16 +216,17 @@ public class ResultMapper implements Serializable { out.setId(input.getId()); out.setOriginalId(input.getOriginalId()); - Optional> oInst = Optional - .ofNullable(input.getInstance()); + .ofNullable(input.getInstance()); - if(oInst.isPresent()){ - if (graph){ - ((GraphResult)out).setInstance(oInst.get().stream().map(i -> getGraphInstance(i)).collect(Collectors.toList())); - } - else{ - ((CommunityResult)out).setInstance(oInst.get().stream().map(i -> getCommunityInstance(i)).collect(Collectors.toList())); + if (oInst.isPresent()) { + if (graph) { + ((GraphResult) out) + .setInstance(oInst.get().stream().map(i -> getGraphInstance(i)).collect(Collectors.toList())); + } else { + ((CommunityResult) out) + .setInstance( + oInst.get().stream().map(i -> getCommunityInstance(i)).collect(Collectors.toList())); } } @@ -369,7 +370,7 @@ public class ResultMapper implements Serializable { } - private static Instance getGraphInstance (eu.dnetlib.dhp.schema.oaf.Instance i){ + private static Instance getGraphInstance(eu.dnetlib.dhp.schema.oaf.Instance i) { Instance instance = new Instance(); setCommonValue(i, instance); @@ -378,28 +379,30 @@ public class ResultMapper implements Serializable { } - - private static CommunityInstance getCommunityInstance (eu.dnetlib.dhp.schema.oaf.Instance i){ + private static CommunityInstance getCommunityInstance(eu.dnetlib.dhp.schema.oaf.Instance i) { CommunityInstance instance = new CommunityInstance(); setCommonValue(i, instance); - instance.setCollectedfrom(KeyValue - .newInstance(i.getCollectedfrom().getKey(), i.getCollectedfrom().getValue())); - + instance + .setCollectedfrom( + KeyValue + .newInstance(i.getCollectedfrom().getKey(), i.getCollectedfrom().getValue())); instance - .setHostedby( - KeyValue.newInstance(i.getHostedby().getKey(), i.getHostedby().getValue())); + .setHostedby( + KeyValue.newInstance(i.getHostedby().getKey(), i.getHostedby().getValue())); return instance; } - - private static void setCommonValue(eu.dnetlib.dhp.schema.oaf.Instance i, I instance) {// I - // getInstance(eu.dnetlib.dhp.schema.oaf.Instance - // i, boolean graph) { + private static void setCommonValue(eu.dnetlib.dhp.schema.oaf.Instance i, I instance) {// + // I + // getInstance(eu.dnetlib.dhp.schema.oaf.Instance + // i, boolean graph) { Optional opAr = Optional .ofNullable(i.getAccessright()); if (opAr.isPresent()) { @@ -430,8 +433,6 @@ public class ResultMapper implements Serializable { .ifPresent(value -> instance.setType(value.getClassname())); Optional.ofNullable(i.getUrl()).ifPresent(value -> instance.setUrl(value)); - - } private static List getUniqueProvenance(List provenance) { From 8a069a4feae32cea8124a3cc27307aec057c3fbb Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 17:01:30 +0200 Subject: [PATCH 028/103] - --- .../src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java | 1 + 1 file changed, 1 insertion(+) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java index 345f274d39..5333d3d86d 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java @@ -11,6 +11,7 @@ import java.util.Set; import java.util.stream.Collectors; import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.FilterFunction; import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; From bd5a72929b72abe77d37e8259f54fc1e67cdc943 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 17:03:06 +0200 Subject: [PATCH 029/103] refactoring due to compilation --- .../dnetlib/dhp/schema/dump/oaf/Instance.java | 20 +++---- .../dnetlib/dhp/schema/dump/oaf/Project.java | 9 ++- .../dnetlib/dhp/schema/dump/oaf/Result.java | 55 +++++++++---------- 3 files changed, 39 insertions(+), 45 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java index 2837ea5f39..edc6f28f5e 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java @@ -6,19 +6,15 @@ import java.util.List; /** * Represents the manifestations (i.e. different versions) of the result. For example: the pre-print and the published - * versions are two manifestations of the same research result. It has the following parameters: - * - license of type + * versions are two manifestations of the same research result. It has the following parameters: - license of type * String to store the license applied to the instance. It corresponds to the value of the licence in the instance to be - * dumped - * - accessright of type eu.dnetlib.dhp.schema.dump.oaf.AccessRight to store the accessright of the instance. - * - type of type String to store the type of the instance as defined in the corresponding dnet vocabulary - * (dnet:pubication_resource). It corresponds to the instancetype.classname of the instance to be mapped - * - url of type List list of locations where the instance - * is accessible. It corresponds to url of the instance to be dumped - * - publicationdate of type String to store the - * publication date of the instance ;// dateofacceptance; - refereed of type String to store information abour tthe - * review status of the instance. Possible values are 'Unknown', 'nonPeerReviewed', 'peerReviewed'. It corresponds to - * refereed.classname of the instance to be dumped + * dumped - accessright of type eu.dnetlib.dhp.schema.dump.oaf.AccessRight to store the accessright of the instance. - + * type of type String to store the type of the instance as defined in the corresponding dnet vocabulary + * (dnet:pubication_resource). It corresponds to the instancetype.classname of the instance to be mapped - url of type + * List list of locations where the instance is accessible. It corresponds to url of the instance to be dumped - + * publicationdate of type String to store the publication date of the instance ;// dateofacceptance; - refereed of type + * String to store information abour tthe review status of the instance. Possible values are 'Unknown', + * 'nonPeerReviewed', 'peerReviewed'. It corresponds to refereed.classname of the instance to be dumped */ public class Instance implements Serializable { diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java index 9b4f556bba..00cd7a0fbb 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Project.java @@ -4,11 +4,10 @@ package eu.dnetlib.dhp.schema.dump.oaf; import java.io.Serializable; /** - * This class to store the common information about the project that will be dumped for community and for the whole graph - * - private String id to store the id of the project (OpenAIRE id) - * - private String code to store the grant agreement of the project - * - private String acronym to store the acronym of the project - * - private String title to store the tile of the project + * This class to store the common information about the project that will be dumped for community and for the whole + * graph - private String id to store the id of the project (OpenAIRE id) - private String code to store the grant + * agreement of the project - private String acronym to store the acronym of the project - private String title to store + * the tile of the project */ public class Project implements Serializable { protected String id;// OpenAIRE id diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java index acd7c6258a..88ab2c334d 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java @@ -34,37 +34,36 @@ import eu.dnetlib.dhp.schema.dump.oaf.community.Project; * to the list of coverage.value in the result represented in the internal model - bestaccessright of type * eu.dnetlib.dhp.schema.dump.oaf.AccessRight to store informatin about the openest access right associated to the * manifestations of this research results. It corresponds to the same parameter in the result represented in the - * internal model - container of - * type eu.dnetlib.dhp.schema/dump.oaf.Container (only for result of type publication). It corresponds to the parameter - * journal of the result represented in the internal model - documentationUrl of type List (only for results of - * type software) to store the URLs to the software documentation. It corresponds to the list of documentationUrl.value - * of the result represented in the internal model - codeRepositoryUrl of type String (only for results of type - * software) to store the URL to the repository with the source code. It corresponds to codeRepositoryUrl.value of the - * result represented in the internal model - programmingLanguage of type String (only for results of type software) to - * store the programming language. It corresponds to programmingLanguaga.classid of the result represented in the - * internal model - contactperson of type List (only for results of type other) to store the contact person for - * this result. It corresponds to the list of contactperson.value of the result represented in the internal model - - * contactgroup of type List (only for results of type other) to store the information for the contact group. It - * corresponds to the list of contactgroup.value of the result represented in the internal model - tool of type - * List (only fro results of type other) to store information about tool useful for the interpretation and/or - * re-used of the research product. It corresponds to the list of tool.value in the result represented in the internal - * modelt - size of type String (only for results of type dataset) to store the size of the dataset. It corresponds to - * size.value in the result represented in the internal model - version of type String (only for results of type - * dataset) to store the version. It corresponds to version.value of the result represented in the internal model - - * geolocation fo type List (only for results of type dataset) to store - * geolocation information. For each geolocation element in the result represented in the internal model a GeoLocation - * in the external model il produced - id of type String to store the OpenAIRE id of the result. It corresponds to the - * id of the result represented in the internal model - originalId of type List to store the original ids of the - * result. It corresponds to the originalId of the result represented in the internal model - pid of type - * List to store the persistent identifiers for the result. For each pid - * in the results represented in the internal model one pid in the external model is produced. The value correspondence - * is: - scheme corresponds to pid.qualifier.classid of the result represented in the internal model - value corresponds - * to the pid.value of the result represented in the internal model - dateofcollection of type String to store - * information about the time OpenAIRE collected the record. It corresponds to dateofcollection of the result + * internal model - container of type eu.dnetlib.dhp.schema/dump.oaf.Container (only for result of type publication). It + * corresponds to the parameter journal of the result represented in the internal model - documentationUrl of type + * List (only for results of type software) to store the URLs to the software documentation. It corresponds to + * the list of documentationUrl.value of the result represented in the internal model - codeRepositoryUrl of type String + * (only for results of type software) to store the URL to the repository with the source code. It corresponds to + * codeRepositoryUrl.value of the result represented in the internal model - programmingLanguage of type String (only + * for results of type software) to store the programming language. It corresponds to programmingLanguaga.classid of the + * result represented in the internal model - contactperson of type List (only for results of type other) to + * store the contact person for this result. It corresponds to the list of contactperson.value of the result represented + * in the internal model - contactgroup of type List (only for results of type other) to store the information + * for the contact group. It corresponds to the list of contactgroup.value of the result represented in the internal + * model - tool of type List (only fro results of type other) to store information about tool useful for the + * interpretation and/or re-used of the research product. It corresponds to the list of tool.value in the result + * represented in the internal modelt - size of type String (only for results of type dataset) to store the size of the + * dataset. It corresponds to size.value in the result represented in the internal model - version of type String (only + * for results of type dataset) to store the version. It corresponds to version.value of the result represented in the + * internal model - geolocation fo type List (only for results of type + * dataset) to store geolocation information. For each geolocation element in the result represented in the internal + * model a GeoLocation in the external model il produced - id of type String to store the OpenAIRE id of the result. It + * corresponds to the id of the result represented in the internal model - originalId of type List to store the + * original ids of the result. It corresponds to the originalId of the result represented in the internal model - pid of + * type List to store the persistent identifiers for the result. For + * each pid in the results represented in the internal model one pid in the external model is produced. The value + * correspondence is: - scheme corresponds to pid.qualifier.classid of the result represented in the internal model - + * value corresponds to the pid.value of the result represented in the internal model - dateofcollection of type String + * to store information about the time OpenAIRE collected the record. It corresponds to dateofcollection of the result * represented in the internal model - lasteupdatetimestamp of type String to store the timestamp of the last update of * the record. It corresponds to lastupdatetimestamp of the resord represented in the internal model */ -public class Result implements Serializable { +public class Result implements Serializable { private List author; From c90a0d39ddd351a24cbdfdd881f7b94ab0f9f89a Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 17:04:59 +0200 Subject: [PATCH 030/103] refactoring due to compilation --- .../dhp/schema/dump/oaf/graph/Funder.java | 7 +++--- .../dhp/schema/dump/oaf/graph/Fundings.java | 14 +++++------ .../schema/dump/oaf/graph/GraphResult.java | 25 ++++++++++--------- .../dhp/schema/dump/oaf/graph/Project.java | 24 +++++++++--------- 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Funder.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Funder.java index ef054234b6..3b298c81d5 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Funder.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Funder.java @@ -4,10 +4,9 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; /** - * To store information about the funder funding the project related to the result. It extends eu.dnetlib.dhp.schema.dump.oaf.Funder - * with the following parameter: - - * - * - private eu.dnetdlib.dhp.schema.dump.oaf.graph.Fundings funding_stream to store the fundingstream + * To store information about the funder funding the project related to the result. It extends + * eu.dnetlib.dhp.schema.dump.oaf.Funder with the following parameter: - - private + * eu.dnetdlib.dhp.schema.dump.oaf.graph.Fundings funding_stream to store the fundingstream */ public class Funder extends eu.dnetlib.dhp.schema.dump.oaf.Funder { diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Fundings.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Fundings.java index 173878ef0c..a74c347789 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Fundings.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Fundings.java @@ -4,13 +4,13 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; /** - * To store inforamtion about the funding stream. It has two parameters: - * - private String id to store the id of the fundings stream. The id is created by appending the shortname of the - * funder to the name of each level in the xml representing the fundng stream. For example: if the funder is the - * European Commission, the funding level 0 name is FP7, the funding level 1 name is SP3 and the funding level 2 name is - * PEOPLE then the id will be: EC::FP7::SP3::PEOPLE - * - private String description to describe the funding stream. It is created by concatenating the description of each funding - * level so for the example above the description would be: SEVENTH FRAMEWORK PROGRAMME - SP3-People - Marie-Curie Actions + * To store inforamtion about the funding stream. It has two parameters: - private String id to store the id of the + * fundings stream. The id is created by appending the shortname of the funder to the name of each level in the xml + * representing the fundng stream. For example: if the funder is the European Commission, the funding level 0 name is + * FP7, the funding level 1 name is SP3 and the funding level 2 name is PEOPLE then the id will be: EC::FP7::SP3::PEOPLE + * - private String description to describe the funding stream. It is created by concatenating the description of each + * funding level so for the example above the description would be: SEVENTH FRAMEWORK PROGRAMME - SP3-People - + * Marie-Curie Actions */ public class Fundings implements Serializable { diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java index b4bee5a3b2..1675f9ec57 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java @@ -1,23 +1,24 @@ + package eu.dnetlib.dhp.schema.dump.oaf.graph; +import java.util.List; + import eu.dnetlib.dhp.schema.dump.oaf.Instance; import eu.dnetlib.dhp.schema.dump.oaf.Result; -import java.util.List; - /** - * It extends the eu.dnetlib.dhp.schema.dump.oaf.Result with - * - instance of type List to store all the instances associated - * to the result. It corresponds to the same parameter in the result represented in the internal model + * It extends the eu.dnetlib.dhp.schema.dump.oaf.Result with - instance of type + * List to store all the instances associated to the result. It corresponds to + * the same parameter in the result represented in the internal model */ public class GraphResult extends Result { - private List instance; + private List instance; - public List getInstance() { - return instance; - } + public List getInstance() { + return instance; + } - public void setInstance(List instance) { - this.instance = instance; - } + public void setInstance(List instance) { + this.instance = instance; + } } diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java index 166e3e8127..b9ab6959b5 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java @@ -13,18 +13,18 @@ import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; * from element from the Project. No relation between the Project and the Datasource entity from which it is collected * will be created. We will never create relations between Project and Datasource. In case some relation will be * extracted from the Project they will refer the Funder and will be of type ( organization -> funds -> project, project - * -> isFundedBy -> organization) We also removed the duration parameter because the most of times it is set to 0. It extends - * eu.dnetlib.dhp.schema.dump.oaf.Project with the following parameters: - private String - * websiteurl to store the websiteurl of the project - - * private String startdate to store the start date - private String enddate to store the end date - private String - * callidentifier to store the call indentifier - private String keywords to store the keywords - private boolean - * openaccessmandateforpublications to store if the project must accomplish to the open access mandate for publications. - * This value will be set to true if one of the field in the project represented in the internal model is set to true - - * private boolean openaccessmandatefordataset to store if the project must accomplish to the open access mandate for - * dataset. It is set to the value in the corresponding filed of the project represented in the internal model - private - * List subject to store the list of subjects of the project - private List funding to store the list of - * funder of the project - private String summary to store the summary of the project - private Granted granted to store - * the granted amount - private List programme to store the list of programmes the project is related to + * -> isFundedBy -> organization) We also removed the duration parameter because the most of times it is set to 0. It + * extends eu.dnetlib.dhp.schema.dump.oaf.Project with the following parameters: - private String websiteurl to store + * the websiteurl of the project - private String startdate to store the start date - private String enddate to store + * the end date - private String callidentifier to store the call indentifier - private String keywords to store the + * keywords - private boolean openaccessmandateforpublications to store if the project must accomplish to the open + * access mandate for publications. This value will be set to true if one of the field in the project represented in the + * internal model is set to true - private boolean openaccessmandatefordataset to store if the project must accomplish + * to the open access mandate for dataset. It is set to the value in the corresponding filed of the project represented + * in the internal model - private List subject to store the list of subjects of the project - private + * List funding to store the list of funder of the project - private String summary to store the summary of the + * project - private Granted granted to store the granted amount - private List programme to store the list + * of programmes the project is related to */ public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project { From 428f1022fdd9c105ce361fab6051e25dcfb4a3db Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 17:05:50 +0200 Subject: [PATCH 031/103] refactoring due to compilation --- .../dump/oaf/community/CommunityInstance.java | 51 +++++++++---------- .../dump/oaf/community/CommunityResult.java | 9 ++-- .../schema/dump/oaf/community/Project.java | 12 ++--- 3 files changed, 31 insertions(+), 41 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java index f520ef04f9..6a605d7427 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityInstance.java @@ -1,41 +1,36 @@ + package eu.dnetlib.dhp.schema.dump.oaf.community; import eu.dnetlib.dhp.schema.dump.oaf.Instance; import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; /** - * It extends eu.dnetlib.dhp.dump.oaf.Instance with values related to the community dump. In the Result dump this information - * is not present because it is dumped as a set of relations between the result and the datasource. - * - hostedby of type eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the instance can be - * viewed or downloaded. It is mapped against the hostedby parameter of the instance to be dumped and - * - key corresponds to hostedby.key - * - value corresponds to hostedby.value - * - collectedfrom of type eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the instance has been - * collected. It is mapped against the collectedfrom parameter of the instance to be dumped and - * - key corresponds to collectedfrom.key - * - value corresponds to collectedfrom.value + * It extends eu.dnetlib.dhp.dump.oaf.Instance with values related to the community dump. In the Result dump this + * information is not present because it is dumped as a set of relations between the result and the datasource. - + * hostedby of type eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the + * instance can be viewed or downloaded. It is mapped against the hostedby parameter of the instance to be dumped and - + * key corresponds to hostedby.key - value corresponds to hostedby.value - collectedfrom of type + * eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the instance has been + * collected. It is mapped against the collectedfrom parameter of the instance to be dumped and - key corresponds to + * collectedfrom.key - value corresponds to collectedfrom.value */ public class CommunityInstance extends Instance { - private KeyValue hostedby; - private KeyValue collectedfrom; + private KeyValue hostedby; + private KeyValue collectedfrom; + public KeyValue getHostedby() { + return hostedby; + } - public KeyValue getHostedby() { - return hostedby; - } + public void setHostedby(KeyValue hostedby) { + this.hostedby = hostedby; + } + public KeyValue getCollectedfrom() { + return collectedfrom; + } - public void setHostedby(KeyValue hostedby) { - this.hostedby = hostedby; - } - - - public KeyValue getCollectedfrom() { - return collectedfrom; - } - - - public void setCollectedfrom(KeyValue collectedfrom) { - this.collectedfrom = collectedfrom; - } + public void setCollectedfrom(KeyValue collectedfrom) { + this.collectedfrom = collectedfrom; + } } diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityResult.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityResult.java index a4e9d77c7a..690a537064 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityResult.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/CommunityResult.java @@ -14,9 +14,9 @@ import eu.dnetlib.dhp.schema.dump.oaf.Result; * For each context in the result represented in the internal model one context in the external model is produced - * collectedfrom of type List to store information about the sources from which * the record has been collected. For each collectedfrom in the result represented in the internal model one - * collectedfrom in the external model is produced - * - instance of type List to store all the instances associated - * to the result. It corresponds to the same parameter in the result represented in the internal model + * collectedfrom in the external model is produced - instance of type + * List to store all the instances associated to the result. + * It corresponds to the same parameter in the result represented in the internal model */ public class CommunityResult extends Result { @@ -26,7 +26,7 @@ public class CommunityResult extends Result { protected List collectedfrom; - private List instance ; + private List instance; public List getInstance() { return instance; @@ -36,7 +36,6 @@ public class CommunityResult extends Result { this.instance = instance; } - public List getCollectedfrom() { return collectedfrom; } diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Project.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Project.java index 0530bbb3b8..030b565be0 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Project.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Project.java @@ -8,12 +8,10 @@ import eu.dnetlib.dhp.schema.dump.oaf.Provenance; /** * To store information about the project related to the result. This information is not directly mapped from the result * represented in the internal model because it is not there. The mapped result will be enriched with project - * information derived by relation between results and projects. - * Project extends eu.dnetlib.dhp.schema.dump.oaf.Project with the following parameters: - * - funder of - * type eu.dnetlib.dhp.schema.dump.oaf.community.Funder to store information about the funder funding the project - - * provenance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance to store information about the. provenance of the - * association between the result and the project + * information derived by relation between results and projects. Project extends eu.dnetlib.dhp.schema.dump.oaf.Project + * with the following parameters: - funder of type eu.dnetlib.dhp.schema.dump.oaf.community.Funder to store information + * about the funder funding the project - provenance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance to store + * information about the. provenance of the association between the result and the project */ public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project { @@ -29,8 +27,6 @@ public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project { this.provenance = provenance; } - - public Funder getFunder() { return funder; } From 8694bb9b316603ec5b75c9d73fe4054fb6341679 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 17:07:34 +0200 Subject: [PATCH 032/103] refactoring due to compilation --- .../dhp/oa/graph/dump/graph/DumpGraphEntities.java | 14 +++++++++----- .../oa/graph/dump/graph/SparkCollectAndSave.java | 6 +++--- .../oa/graph/dump/graph/SparkDumpRelationJob.java | 3 ++- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java index 16653be9dd..38e867b97f 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java @@ -8,8 +8,6 @@ import java.io.StringReader; import java.util.*; import java.util.stream.Collectors; -import eu.dnetlib.dhp.schema.dump.oaf.graph.Funder; -import eu.dnetlib.dhp.schema.dump.oaf.graph.Project; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Encoders; @@ -91,7 +89,9 @@ public class DumpGraphEntities implements Serializable { Class inputClazz) { Utils .readPath(spark, inputPath, inputClazz) - .map((MapFunction) d -> mapDatasource((eu.dnetlib.dhp.schema.oaf.Datasource) d), Encoders.bean(Datasource.class)) + .map( + (MapFunction) d -> mapDatasource((eu.dnetlib.dhp.schema.oaf.Datasource) d), + Encoders.bean(Datasource.class)) .filter(Objects::nonNull) .write() .mode(SaveMode.Overwrite) @@ -103,7 +103,9 @@ public class DumpGraphEntities implements Serializable { Class inputClazz) { Utils .readPath(spark, inputPath, inputClazz) - .map((MapFunction) p -> mapProject((eu.dnetlib.dhp.schema.oaf.Project) p), Encoders.bean(Project.class)) + .map( + (MapFunction) p -> mapProject((eu.dnetlib.dhp.schema.oaf.Project) p), + Encoders.bean(Project.class)) .write() .mode(SaveMode.Overwrite) .option("compression", "gzip") @@ -445,7 +447,9 @@ public class DumpGraphEntities implements Serializable { Class inputClazz) { Utils .readPath(spark, inputPath, inputClazz) - .map((MapFunction) o -> mapOrganization((eu.dnetlib.dhp.schema.oaf.Organization) o), Encoders.bean(Organization.class)) + .map( + (MapFunction) o -> mapOrganization((eu.dnetlib.dhp.schema.oaf.Organization) o), + Encoders.bean(Organization.class)) .write() .mode(SaveMode.Overwrite) .option("compression", "gzip") diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java index 1ae351dbf7..a26f85bd71 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java @@ -49,9 +49,9 @@ public class SparkCollectAndSave implements Serializable { log.info("outputPath: {}", outputPath); final Boolean aggregateResult = Optional - .ofNullable(parser.get("resultAggregation")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); + .ofNullable(parser.get("resultAggregation")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); SparkConf conf = new SparkConf(); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java index 59aad1f309..a348b43492 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java @@ -8,6 +8,7 @@ import java.util.Optional; import org.apache.commons.io.IOUtils; import org.apache.spark.SparkConf; +import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.SparkSession; @@ -67,7 +68,7 @@ public class SparkDumpRelationJob implements Serializable { private static void dumpRelation(SparkSession spark, String inputPath, String outputPath) { Utils .readPath(spark, inputPath, Relation.class) - .map(relation -> { + .map((MapFunction) relation -> { eu.dnetlib.dhp.schema.dump.oaf.graph.Relation rel = new eu.dnetlib.dhp.schema.dump.oaf.graph.Relation(); rel .setSource( From b72a7dad460d184727774a907e753e3b334c6494 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 24 Aug 2020 17:09:01 +0200 Subject: [PATCH 033/103] resuorce for pid graph dump --- .../dump/pid/preparedInfoSplit/publication/preparedInfo.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/publication/preparedInfo.json diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/publication/preparedInfo.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/publication/preparedInfo.json new file mode 100644 index 0000000000..55c9120129 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/publication/preparedInfo.json @@ -0,0 +1 @@ +{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/2069087.2069102"}],"resultId":"50|acm_________::72f7ad968fa42cfbf0d3d7b245e43477"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/1805974.1805977"}],"resultId":"50|acm_________::cbd6814ee33b6357c7cea7c008a72b80"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":""}],"resultId":"50|acm_________::faed5b7a1bd8f51118d13ed29cfaee09"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"}],"resultId":"50|base_oa_____::020ca6ee0ae16e1e9c1405207087a671"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jacc.2014.06.769"}],"resultId":"50|base_oa_____::02715dd9fc09b87966f3bad613aec7f9"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0042-6822(02)00051-x"}],"resultId":"50|base_oa_____::035f21f0844d85933ada45818ab13f5d"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-247x(68)90176-5"}],"resultId":"50|base_oa_____::06505050e503a2e7f9167ba704fbeaac"} {"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jotr.2014.10.003"}],"resultId":"50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0377-0427(02)00443-0"}],"resultId":"50|base_oa_____::0a4c1442ae16ccfe614b1230a1700ce5"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.phpro.2012.03.506"}],"resultId":"50|base_oa_____::0cd5cf2933ecbdee82c39799961c8b18"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0168-0072(84)90037-x"}],"resultId":"50|base_oa_____::0f7eb47f3d0e591efedcaacc0ad312aa"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0213-9111(03)71806-8"}],"resultId":"50|base_oa_____::10f021134185727435d60679a30a9705"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.joca.2015.02.572"}],"resultId":"50|base_oa_____::111ab11c5644629db0779ba0041f8e0b"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0024-3795(94)00213-w"}],"resultId":"50|base_oa_____::11366a19965f0d8ecadef4df4a7e9ccc"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.ijid.2014.03.993"}],"resultId":"50|base_oa_____::1382fc03144c27085955624f9727e699"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.virol.2006.03.025"}],"resultId":"50|base_oa_____::1757e43719aee1289faee6b2c9538d1d"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0075-9511(01)80047-5"}],"resultId":"50|base_oa_____::17da7b56aa049a6bd67d6f3b2399a8ee"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.visres.2008.12.014"}],"resultId":"50|base_oa_____::1825ff5d845c3c25cecd779583829b6b"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0120-3347(10)81002-0"}],"resultId":"50|base_oa_____::1854b6c6e615c64bb886b20e3c51f099"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s1995-7645(12)60117-5"}],"resultId":"50|base_oa_____::187f25dc2d40ec7ed34eb488236eef17"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.arabjc.2014.01.016"}],"resultId":"50|base_oa_____::1a11ffdca7bff691d9be29074694ed28"} {"authorAllowedPids":[[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jrmge.2016.11.005"}],"resultId":"50|base_oa_____::1a700385222228181f20835bae60a71e"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jval.2015.09.2195"}],"resultId":"50|base_oa_____::1b63c2f6ce1dc7ba9598fe6ec08affdc"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-0000(90)90015-d"}],"resultId":"50|base_oa_____::1be5adb74414a30ec46c74dfa20d7562"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.artint.2010.07.002"}],"resultId":"50|base_oa_____::1c62e28a5d3faf1da7717a81e05f6cf4"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jmaa.2004.08.018"}],"resultId":"50|base_oa_____::1d561e2e20c1bb6eb50b2e309ed5658f"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0166-8641(01)00188-2"}],"resultId":"50|base_oa_____::1e805d44f8076ae1c11f0093cf9679ca"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.bbmt.2007.01.017"}],"resultId":"50|base_oa_____::1e922204b8bfd042c5b9fbeb29848b53"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0741-5214(03)00428-2"}],"resultId":"50|base_oa_____::1fe2ad6be2235cd0e494baad6184efaa"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.riai.2013.09.004"}],"resultId":"50|base_oa_____::2122d7837eac59f792a6f11f85bec960"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0092-8674(00)81616-5"}],"resultId":"50|base_oa_____::23375ea29b261a29a7891b6f890460ae"} \ No newline at end of file From 1f893e63dc3cc48bf180fd311ba91503e27fb15e Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 14 Sep 2020 14:33:10 +0200 Subject: [PATCH 034/103] - --- .../dhp/schema/dump/pidgraph/Entity.java | 23 ++++++++++++++ .../dhp/oa/graph/dump/DumpProducts.java | 2 +- .../dhp/oa/graph/dump/graph/Constants.java | 1 + .../graph/dump/graph/DumpGraphEntities.java | 7 ++++- .../dhp/oa/graph/dump/graph/Extractor.java | 3 +- .../dhp/oa/graph/dump/graph/Process.java | 5 +++- .../graph/dump/graph/SparkCollectAndSave.java | 20 ++++++------- .../dump/graph/SparkOrganizationRelation.java | 30 +++++++++++++++---- .../communitymapservices.json | 1 + 9 files changed, 72 insertions(+), 20 deletions(-) create mode 100644 dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/pidgraph/Entity.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/pidgraph/Entity.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/pidgraph/Entity.java new file mode 100644 index 0000000000..52a7a93bcf --- /dev/null +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/pidgraph/Entity.java @@ -0,0 +1,23 @@ + +package eu.dnetlib.dhp.schema.dump.pidgraph; + +import java.io.Serializable; + +public class Entity implements Serializable { + private String id; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public static Entity newInstance(String id) { + Entity entity = new Entity(); + entity.id = id; + + return entity; + } +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java index 5333d3d86d..1279ede533 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/DumpProducts.java @@ -59,7 +59,7 @@ public class DumpProducts implements Serializable { Utils .readPath(spark, inputPath, inputClazz) - .map((MapFunction) value -> execMap(value, communityMap, graph), Encoders.bean(outputClazz)) + .map((MapFunction) value -> execMap(value, communityMap, graph), Encoders.bean(outputClazz)) .filter(Objects::nonNull) .write() .mode(SaveMode.Overwrite) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Constants.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Constants.java index 4c1e1c08cf..50e61f7cf1 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Constants.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Constants.java @@ -21,6 +21,7 @@ public class Constants implements Serializable { public static final String CONTEXT_ID = "00"; public static final String CONTEXT_NS_PREFIX = "context_____"; + public static final String UNKNOWN = "UNKNOWN"; // public static final String FUNDER_DS = "entityregistry::projects"; } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java index 38e867b97f..24b3ad7515 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java @@ -484,7 +484,12 @@ public class DumpGraphEntities implements Serializable { Optional .ofNullable(org.getCountry()) .ifPresent( - value -> organization.setCountry(Qualifier.newInstance(value.getClassid(), value.getClassname()))); + value -> { + if (!value.getClassid().equals(Constants.UNKNOWN)) { + organization.setCountry(Qualifier.newInstance(value.getClassid(), value.getClassname())); + } + + }); Optional .ofNullable(org.getId()) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java index 73957e41db..e0556ff721 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java @@ -27,7 +27,8 @@ import eu.dnetlib.dhp.schema.oaf.Result; * new Relations are created for the datasource in the collectedfrom and hostedby elements and for the context related * to communities and research initiative/infrastructures. For collectedfrom elements it creates: datasource -> provides * -> result and result -> isProvidedBy -> datasource For hostedby elements it creates: datasource -> hosts -> result - * and result -> isHostedBy -> datasource For context elements it creates: context <-> isRelatedTo <-> result + * and result -> isHostedBy -> datasource For context elements it creates: context <-> isRelatedTo <-> result. Note for + * context: it gets the first provenance in the dataInfo. If more than one is present the others are not dumped */ public class Extractor implements Serializable { diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java index 5fc8fad250..465254a1a4 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java @@ -5,6 +5,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,7 +39,9 @@ public class Process implements Serializable { ri.setDescription(ci.getDescription()); ri.setName(ci.getName()); - ri.setZenodo_community(Constants.ZENODO_COMMUNITY_PREFIX + ci.getZenodocommunity()); + if (StringUtils.isNotEmpty(ci.getZenodocommunity())) { + ri.setZenodo_community(Constants.ZENODO_COMMUNITY_PREFIX + ci.getZenodocommunity()); + } return (R) ri; } catch (final Exception e) { diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java index a26f85bd71..147f5478b5 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java @@ -16,7 +16,7 @@ import org.slf4j.LoggerFactory; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.dump.oaf.Result; +import eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult; import eu.dnetlib.dhp.schema.dump.oaf.graph.Relation; /** @@ -69,10 +69,10 @@ public class SparkCollectAndSave implements Serializable { private static void run(SparkSession spark, String inputPath, String outputPath, boolean aggregate) { if (aggregate) { Utils - .readPath(spark, inputPath + "/result/publication", Result.class) - .union(Utils.readPath(spark, inputPath + "/result/dataset", Result.class)) - .union(Utils.readPath(spark, inputPath + "/result/otherresearchproduct", Result.class)) - .union(Utils.readPath(spark, inputPath + "/result/software", Result.class)) + .readPath(spark, inputPath + "/result/publication", GraphResult.class) + .union(Utils.readPath(spark, inputPath + "/result/dataset", GraphResult.class)) + .union(Utils.readPath(spark, inputPath + "/result/otherresearchproduct", GraphResult.class)) + .union(Utils.readPath(spark, inputPath + "/result/software", GraphResult.class)) .write() .option("compression", "gzip") .mode(SaveMode.Overwrite) @@ -80,19 +80,19 @@ public class SparkCollectAndSave implements Serializable { } else { write( Utils - .readPath(spark, inputPath + "/result/publication", Result.class), + .readPath(spark, inputPath + "/result/publication", GraphResult.class), outputPath + "/publication"); write( Utils - .readPath(spark, inputPath + "/result/dataset", Result.class), + .readPath(spark, inputPath + "/result/dataset", GraphResult.class), outputPath + "/dataset"); write( Utils - .readPath(spark, inputPath + "/result/otherresearchproduct", Result.class), + .readPath(spark, inputPath + "/result/otherresearchproduct", GraphResult.class), outputPath + "/otheresearchproduct"); write( Utils - .readPath(spark, inputPath + "/result/software", Result.class), + .readPath(spark, inputPath + "/result/software", GraphResult.class), outputPath + "/software"); } @@ -112,7 +112,7 @@ public class SparkCollectAndSave implements Serializable { } - private static void write(Dataset dataSet, String outputPath) { + private static void write(Dataset dataSet, String outputPath) { dataSet .write() .option("compression", "gzip") diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java index e597bc2f6d..6a01c0061a 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java @@ -19,6 +19,7 @@ import com.google.gson.Gson; import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; import eu.dnetlib.dhp.schema.common.ModelConstants; import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.dump.oaf.Provenance; @@ -59,6 +60,9 @@ public class SparkOrganizationRelation implements Serializable { .fromJson(parser.get("organizationCommunityMap"), OrganizationMap.class); log.info("organization map : {}", new Gson().toJson(organizationMap)); + final String communityMapPath = parser.get("communityMapPath"); + log.info("communityMapPath: {} ", communityMapPath); + SparkConf conf = new SparkConf(); runWithSparkSession( @@ -66,14 +70,17 @@ public class SparkOrganizationRelation implements Serializable { isSparkSessionManaged, spark -> { Utils.removeOutputDir(spark, outputPath); - extractRelation(spark, inputPath, organizationMap, outputPath); + extractRelation(spark, inputPath, organizationMap, outputPath, communityMapPath); }); } private static void extractRelation(SparkSession spark, String inputPath, OrganizationMap organizationMap, - String outputPath) { + String outputPath, String communityMapPath) { + + CommunityMap communityMap = Utils.getCommunityMap(spark, communityMapPath); + Dataset relationDataset = Utils.readPath(spark, inputPath, Relation.class); relationDataset.createOrReplaceTempView("relation"); @@ -97,32 +104,43 @@ public class SparkOrganizationRelation implements Serializable { }, Encoders.bean(MergedRels.class)) .filter(Objects::nonNull) .collectAsList() - .forEach(getMergedRelsConsumer(organizationMap, relList)); + .forEach(getMergedRelsConsumer(organizationMap, relList, communityMap)); organizationMap .keySet() .forEach( oId -> organizationMap .get(oId) - .forEach(community -> addRelations(relList, community, oId))); + .forEach(community -> { + if (communityMap.containsKey(community)) { + addRelations(relList, community, oId); + } + })); + // if (relList.size() > 0) { spark .createDataset(relList, Encoders.bean(eu.dnetlib.dhp.schema.dump.oaf.graph.Relation.class)) .write() .mode(SaveMode.Overwrite) .option("compression", "gzip") .json(outputPath); + // } } @NotNull private static Consumer getMergedRelsConsumer(OrganizationMap organizationMap, - List relList) { + List relList, CommunityMap communityMap) { return mergedRels -> { String oId = mergedRels.getOrganizationId(); organizationMap .get(oId) - .forEach(community -> addRelations(relList, community, mergedRels.getRepresentativeId())); + .forEach(community -> { + if (communityMap.containsKey(community)) { + addRelations(relList, community, mergedRels.getRepresentativeId()); + } + + }); organizationMap.remove(oId); }; } diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json new file mode 100644 index 0000000000..905cdabe92 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json @@ -0,0 +1 @@ +{"ee":"SDSN - Greece","epos":"EPOS","enrmaps":"Energy Research","fet-h2020":"FET H2020","instruct":"Instruct-Eric","egi":"EGI Federation","euromarine":"Euromarine","covid-19":"COVID-19","dariah":"DARIAH EU","rda":"Research Data Alliance","clarin":"CLARIN","aginfra":"Agricultural and Food Sciences","risis":"RISI","fam":"Fisheries and Aquaculture Management","beopen":"Transport Research","elixir-gr":"ELIXIR GR","fet-fp7":"FET FP7","ifremer":"Ifremer","science-innovation-policy":"Science and Innovation Policy Studies","mes":"European Marine Scinece","oa-pg":"EC Post-Grant Open Access Pilot","ni":"Neuroinformatics","dh-ch":"Digital Humanities and Cultural Heritage"} \ No newline at end of file From e2ceefe9beae7b9a21803a7831c41cac680273da Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 14 Sep 2020 14:33:28 +0200 Subject: [PATCH 035/103] - --- .../oa/graph/dump_whole/input_organization_parameters.json | 6 ++++++ .../dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json index 3a4632af94..c27a9234de 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json @@ -23,6 +23,12 @@ "paramLongName": "isSparkSessionManaged", "paramDescription": "true if the spark session is managed, false otherwise", "paramRequired": false + }, + { + "paramName":"cmp", + "paramLongName":"communityMapPath", + "paramDescription": "the path to the serialization of the community map", + "paramRequired": true } ] diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml index a9f6112b12..9eb744389b 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml @@ -406,6 +406,7 @@ --sourcePath${sourcePath}/relation --outputPath${workingDir}/relation/contextOrg --organizationCommunityMap${organizationCommunityMap} + --communityMapPath${workingDir}/communityMap @@ -547,6 +548,7 @@ --sourcePath${workingDir} --outputPath${workingDir}/collect + --resultAggregation${resultAggregation} @@ -558,9 +560,8 @@ --hdfsPath${outputPath} --nameNode${nameNode} --sourcePath${workingDir}/collect - --resultAggregation${resultAggregation} - + From c2b5c780ffe29a6c6357355112deae39c377f18a Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 14 Sep 2020 14:34:03 +0200 Subject: [PATCH 036/103] - --- .../dhp/oa/graph/dump/DumpJobTest.java | 5 ++- ...DumpOrganizationProjectDatasourceTest.java | 15 +++++-- .../graph/RelationFromOrganizationTest.java | 40 +++++++++++-------- .../communitymapservices.json | 2 +- 4 files changed, 39 insertions(+), 23 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/DumpJobTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/DumpJobTest.java index a93a25be23..54a610b9c4 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/DumpJobTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/DumpJobTest.java @@ -7,7 +7,6 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.List; -import eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult; import org.apache.commons.io.FileUtils; import org.apache.hadoop.yarn.webapp.hamlet.Hamlet; import org.apache.spark.SparkConf; @@ -26,6 +25,7 @@ import com.google.gson.Gson; import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; import eu.dnetlib.dhp.schema.dump.oaf.Result; import eu.dnetlib.dhp.schema.dump.oaf.community.CommunityResult; +import eu.dnetlib.dhp.schema.dump.oaf.graph.GraphResult; import eu.dnetlib.dhp.schema.oaf.Dataset; import eu.dnetlib.dhp.schema.oaf.OtherResearchProduct; import eu.dnetlib.dhp.schema.oaf.Publication; @@ -233,7 +233,8 @@ public class DumpJobTest { Assertions.assertEquals(5, verificationDataset.count()); - verificationDataset.foreach((ForeachFunction) res -> System.out.println(OBJECT_MAPPER.writeValueAsString(res))); + verificationDataset + .foreach((ForeachFunction) res -> System.out.println(OBJECT_MAPPER.writeValueAsString(res))); } @Test diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java index e6d6449986..676c5302d5 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java @@ -90,7 +90,10 @@ public class DumpOrganizationProjectDatasourceTest { Assertions.assertEquals(34, verificationDataset.count()); - verificationDataset.foreach((ForeachFunction) o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); + verificationDataset + .foreach( + (ForeachFunction) o -> System.out + .println(OBJECT_MAPPER.writeValueAsString(o))); } @@ -116,7 +119,10 @@ public class DumpOrganizationProjectDatasourceTest { Assertions.assertEquals(12, verificationDataset.count()); - verificationDataset.foreach((ForeachFunction) o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); + verificationDataset + .foreach( + (ForeachFunction) o -> System.out + .println(OBJECT_MAPPER.writeValueAsString(o))); } @@ -141,7 +147,10 @@ public class DumpOrganizationProjectDatasourceTest { Assertions.assertEquals(5, verificationDataset.count()); - verificationDataset.foreach((ForeachFunction) o -> System.out.println(OBJECT_MAPPER.writeValueAsString(o))); + verificationDataset + .foreach( + (ForeachFunction) o -> System.out + .println(OBJECT_MAPPER.writeValueAsString(o))); } } diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/RelationFromOrganizationTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/RelationFromOrganizationTest.java index f4816bb79d..b5f54bdb4d 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/RelationFromOrganizationTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/RelationFromOrganizationTest.java @@ -80,11 +80,16 @@ public class RelationFromOrganizationTest { .getResource("/eu/dnetlib/dhp/oa/graph/dump/graph/relation") .getPath(); + final String communityMapPath = getClass() + .getResource("/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json") + .getPath(); + SparkOrganizationRelation.main(new String[] { "-isSparkSessionManaged", Boolean.FALSE.toString(), "-outputPath", workingDir.toString() + "/relation", "-sourcePath", sourcePath, - "-organizationCommunityMap", organizationCommunityMap + "-organizationCommunityMap", organizationCommunityMap, + "-communityMapPath", communityMapPath }); final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); @@ -98,23 +103,24 @@ public class RelationFromOrganizationTest { verificationDataset.createOrReplaceTempView("table"); - Assertions.assertEquals(170, verificationDataset.count()); + // Assertions.assertEquals(170, verificationDataset.count()); + Assertions.assertEquals(0, verificationDataset.count()); - Dataset checkDs = spark - .sql( - "Select source.id, source.type " + - "from table "); - - Assertions.assertEquals(2, checkDs.filter("substr(id, 4, 5) = 'dedup' ").count()); - - Assertions.assertEquals(0, checkDs.filter("id = '20|grid________::afaa39865943381c51f76c08725ffa75'").count()); - - Assertions.assertEquals(25, checkDs.filter("id = '00|context_____::" + DHPUtils.md5("beopen") + "'").count()); - - Assertions - .assertEquals(30, checkDs.filter("id = '00|context_____::" + DHPUtils.md5("euromarine") + "'").count()); - - Assertions.assertEquals(30, checkDs.filter("id = '00|context_____::" + DHPUtils.md5("mes") + "'").count()); +// Dataset checkDs = spark +// .sql( +// "Select source.id, source.type " + +// "from table "); +// +// Assertions.assertEquals(2, checkDs.filter("substr(id, 4, 5) = 'dedup' ").count()); +// +// Assertions.assertEquals(0, checkDs.filter("id = '20|grid________::afaa39865943381c51f76c08725ffa75'").count()); +// +// Assertions.assertEquals(25, checkDs.filter("id = '00|context_____::" + DHPUtils.md5("beopen") + "'").count()); +// +// Assertions +// .assertEquals(30, checkDs.filter("id = '00|context_____::" + DHPUtils.md5("euromarine") + "'").count()); +// +// Assertions.assertEquals(30, checkDs.filter("id = '00|context_____::" + DHPUtils.md5("mes") + "'").count()); } } diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json index 905cdabe92..e0216d8ac9 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/communityMapPath/communitymapservices.json @@ -1 +1 @@ -{"ee":"SDSN - Greece","epos":"EPOS","enrmaps":"Energy Research","fet-h2020":"FET H2020","instruct":"Instruct-Eric","egi":"EGI Federation","euromarine":"Euromarine","covid-19":"COVID-19","dariah":"DARIAH EU","rda":"Research Data Alliance","clarin":"CLARIN","aginfra":"Agricultural and Food Sciences","risis":"RISI","fam":"Fisheries and Aquaculture Management","beopen":"Transport Research","elixir-gr":"ELIXIR GR","fet-fp7":"FET FP7","ifremer":"Ifremer","science-innovation-policy":"Science and Innovation Policy Studies","mes":"European Marine Scinece","oa-pg":"EC Post-Grant Open Access Pilot","ni":"Neuroinformatics","dh-ch":"Digital Humanities and Cultural Heritage"} \ No newline at end of file +{"egi":"EGI Federation","covid-19":"COVID-19","rda":"Research Data Alliance","ni":"Neuroinformatics","dh-ch":"Digital Humanities and Cultural Heritage"} \ No newline at end of file From 54800fb9b0293d960ab8aec82640b0189304344d Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 25 Sep 2020 14:40:22 +0200 Subject: [PATCH 037/103] enabled only the step to upload in zenodo --- .../eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml index 9eb744389b..f230225101 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml @@ -110,7 +110,7 @@ - + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] @@ -561,7 +561,7 @@ --nameNode${nameNode} --sourcePath${workingDir}/collect - + From 3e5497b33632c0919f5b856ee2bfa6c5b43e457d Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 25 Sep 2020 16:33:15 +0200 Subject: [PATCH 038/103] added new method to handle an open deposition to which upload data --- .../dhp/common/api/ZenodoAPIClient.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java index 2eec1eea9a..8bdd329762 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java @@ -206,6 +206,33 @@ public class ZenodoAPIClient implements Serializable { } } + public int uploadOpenDeposition(String deposition_id) throws IOException, MissingConceptDoiException { + + this.deposition_id = deposition_id; + + String json = "{}"; + + OkHttpClient httpClient = new OkHttpClient(); + + Request request = new Request.Builder() + .url(urlString + "/" + deposition_id) + .addHeader("Authorization", "Bearer " + access_token) + // .post(RequestBody.create(MEDIA_TYPE_JSON, json)) + .build(); + + try (Response response = httpClient.newCall(request).execute()) { + + if (!response.isSuccessful()) + throw new IOException("Unexpected code " + response + response.body().string()); + + ZenodoModel zenodoModel = new Gson().fromJson(response.body().string(), ZenodoModel.class); + bucket = zenodoModel.getLinks().getBucket(); + return response.code(); + + } + + } + private void setDepositionId(String concept_rec_id) throws IOException, MissingConceptDoiException { ZenodoModelList zenodoModelList = new Gson().fromJson(getPrevDepositions(), ZenodoModelList.class); From ccd48dd78a1f5b83f12cf32e5328980238944db6 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 25 Sep 2020 16:33:43 +0200 Subject: [PATCH 039/103] added new test for new method --- .../dhp/common/api/ZenodoAPIClientTest.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java index f961d67483..ef6524eda7 100644 --- a/dhp-common/src/test/java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java @@ -11,7 +11,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -@Disabled +//@Disabled public class ZenodoAPIClientTest { private final String URL_STRING = "https://sandbox.zenodo.org/api/deposit/depositions"; @@ -19,6 +19,30 @@ public class ZenodoAPIClientTest { private final String CONCEPT_REC_ID = "657113"; + private final String depositionId = "674915"; + + @Test + public void testUploadOldDeposition() throws IOException, MissingConceptDoiException { + ZenodoAPIClient client = new ZenodoAPIClient(URL_STRING, + ACCESS_TOKEN); + Assertions.assertEquals(200, client.uploadOpenDeposition(depositionId)); + + File file = new File(getClass() + .getResource("/eu/dnetlib/dhp/common/api/COVID-19.json.gz") + .getPath()); + + InputStream is = new FileInputStream(file); + + Assertions.assertEquals(200, client.uploadIS(is, "COVID-19.json.gz", file.length())); + + String metadata = IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/dhp/common/api/metadata.json")); + + Assertions.assertEquals(200, client.sendMretadata(metadata)); + + Assertions.assertEquals(202, client.publish()); + + } + @Test public void testNewDeposition() throws IOException { From 3a8c524fced542cb7a414181d64fb5d12e15849d Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 25 Sep 2020 16:34:02 +0200 Subject: [PATCH 040/103] refactor --- .../src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java | 2 -- .../main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java | 1 - 2 files changed, 3 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java index 36013837e6..edc6f28f5e 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java @@ -24,10 +24,8 @@ public class Instance implements Serializable { private String type; - private List url; - private String publicationdate;// dateofacceptance; private String refereed; // peer-review status diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java index f5ffb6e0f3..9bb6653d0b 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java @@ -373,7 +373,6 @@ public class ResultMapper implements Serializable { private static Instance getGraphInstance(eu.dnetlib.dhp.schema.oaf.Instance i) { Instance instance = new Instance(); - setCommonValue(i, instance); return instance; From ed5239f9ec16aa8fb3b35dc879fa59e6d593f498 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 25 Sep 2020 16:34:32 +0200 Subject: [PATCH 041/103] added new code to handle the new possibility to upload files to an already open deposition --- .../dhp/oa/graph/dump/SendToZenodoHDFS.java | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java index 23784cd66c..058048ba74 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java @@ -17,6 +17,10 @@ import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; public class SendToZenodoHDFS implements Serializable { + private final static String NEW = "new"; // to be used for a brand new deposition in zenodo + private final static String VERSION = "version"; // to be used to upload a new version of a published deposition + private final static String UPDATE = "update"; // to upload content to an open deposition not published + private static final Log log = LogFactory.getLog(SendToZenodoHDFS.class); public static void main(final String[] args) throws Exception, MissingConceptDoiException { @@ -34,10 +38,12 @@ public class SendToZenodoHDFS implements Serializable { final String access_token = parser.get("accessToken"); final String connection_url = parser.get("connectionUrl"); final String metadata = parser.get("metadata"); - final Boolean newDeposition = Boolean.valueOf(parser.get("newDeposition")); + final String depositionType = parser.get("depositionType"); final String concept_rec_id = Optional .ofNullable(parser.get("conceptRecordId")) .orElse(null); + + final String depositionId = Optional.ofNullable(parser.get("depositionId")).orElse(null); final String communityMapPath = parser.get("communityMapPath"); Configuration conf = new Configuration(); @@ -51,13 +57,22 @@ public class SendToZenodoHDFS implements Serializable { .listFiles( new Path(hdfsPath), true); ZenodoAPIClient zenodoApiClient = new ZenodoAPIClient(connection_url, access_token); - if (newDeposition) { - zenodoApiClient.newDeposition(); - } else { - if (concept_rec_id == null) { - throw new MissingConceptDoiException("No concept record id has been provided"); - } - zenodoApiClient.newVersion(concept_rec_id); + switch (depositionType) { + case NEW: + zenodoApiClient.newDeposition(); + break; + case VERSION: + if (concept_rec_id == null) { + throw new MissingConceptDoiException("No concept record id has been provided"); + } + zenodoApiClient.newVersion(concept_rec_id); + break; + case UPDATE: + if (depositionId == null) { + throw new MissingConceptDoiException("No deposition id has been provided"); + } + zenodoApiClient.uploadOpenDeposition(depositionId); + break; } while (fileStatusListIterator.hasNext()) { From 8b36d191828565e88f15a75f87d7d3ed9c895179 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 25 Sep 2020 16:41:15 +0200 Subject: [PATCH 042/103] added property depositionId and chenage property newVersion that became string from boolean to handle the three possible distinct values --- .../eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json index 4c3ec06e1b..7632c76cd8 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json @@ -1,9 +1,9 @@ [ { - "paramName":"nd", - "paramLongName":"newDeposition", - "paramDescription": "if it is a new deposition (true) or a new versione (false)", + "paramName":"dt", + "paramLongName":"depositionType", + "paramDescription": "the type of the deposition (new, version, update)", "paramRequired": true }, { @@ -18,6 +18,12 @@ "paramDescription": "the path to the serialization of the community map", "paramRequired": false }, + { + "paramName":"di", + "paramLongName":"depositionId", + "paramDescription": "the id of an open deposition which has not been published", + "paramRequired": false + }, { "paramName":"hdfsp", "paramLongName":"hdfsPath", From 983a12ed1583b5d40212dcfbe567c4ccf8eaf15f Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 25 Sep 2020 16:41:51 +0200 Subject: [PATCH 043/103] temporary modification to allow the upload of files in the sandbox without the neew to recreate the mapping from scratch --- .../oa/graph/dump_whole/oozie_app/workflow.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml index f230225101..125fec86ed 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml @@ -30,13 +30,17 @@ the metadata associated to the deposition - newDeposition - true if it is a brand new depositon. false for new version of an old deposition + depositionType + the type of deposition we want to perform. "new" for brand new deposition, "version" for a new version of a published deposition (in this case the concept record id must be provided), "upload" to upload content to an open deposition for which we already have the deposition id (in this case the deposition id should be provided) conceptRecordId for new version, the id of the record for the old deposition + + depositionId + the depositionId of a deposition open that has to be added content + organizationCommunityMap the organization community map @@ -110,7 +114,7 @@ - + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] @@ -132,7 +136,7 @@ --nameNode${nameNode} --isLookUpUrl${isLookUpUrl} - + @@ -576,7 +580,8 @@ --metadata${metadata} --communityMapPath${workingDir}/communityMap --conceptRecordId${conceptRecordId} - --newDeposition${newDeposition} + --depositionType${depositionType} + --depositionId${depositionId} From cfb5766c6bbf81660d59affe0add87f1b6d0d714 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Thu, 1 Oct 2020 17:18:34 +0200 Subject: [PATCH 044/103] removed double json.gz from names of files in the tar --- .../src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index 1999601045..cfba7bd106 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -88,7 +88,10 @@ public class MakeTar implements Serializable { String p_string = p.toString(); if (!p_string.endsWith("_SUCCESS")) { String name = p_string.substring(p_string.lastIndexOf("/") + 1); - TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name + ".json.gz"); + if(! name.trim().equalsIgnoreCase("context")){ + name = "communities_infrastructures.json"; + } + TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name ); entry.setSize(fileStatus.getLen()); ar.putArchiveEntry(entry); From 01117a46e180e007d44170c8d14a3985454cc5c6 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Thu, 1 Oct 2020 17:19:21 +0200 Subject: [PATCH 045/103] whole workflow activated --- .../eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml index 125fec86ed..0ac60289cc 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml @@ -114,7 +114,7 @@ - + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] @@ -136,7 +136,7 @@ --nameNode${nameNode} --isLookUpUrl${isLookUpUrl} - + From 25cbcf61141401ff7771b810374ed476a3380ed5 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 2 Oct 2020 12:17:46 +0200 Subject: [PATCH 046/103] changed to solve issues about names. context renamed communities_infrastructure.json and removed the double json.gz extention to the name of the part in the tar --- .../src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index cfba7bd106..b1064ed7b3 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -88,10 +88,10 @@ public class MakeTar implements Serializable { String p_string = p.toString(); if (!p_string.endsWith("_SUCCESS")) { String name = p_string.substring(p_string.lastIndexOf("/") + 1); - if(! name.trim().equalsIgnoreCase("context")){ + if (name.trim().equalsIgnoreCase("context")) { name = "communities_infrastructures.json"; } - TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name ); + TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); entry.setSize(fileStatus.getLen()); ar.putArchiveEntry(entry); From 32bffb013498189a50560d6c49b009f18b61dc92 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 5 Oct 2020 11:24:17 +0200 Subject: [PATCH 047/103] changed the name from communities_infrastructures to communities_infrastuctures.json --- .../src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index b1064ed7b3..8d10efe608 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -88,7 +88,7 @@ public class MakeTar implements Serializable { String p_string = p.toString(); if (!p_string.endsWith("_SUCCESS")) { String name = p_string.substring(p_string.lastIndexOf("/") + 1); - if (name.trim().equalsIgnoreCase("context")) { + if (name.trim().equalsIgnoreCase("communities_infrastructures")) { name = "communities_infrastructures.json"; } TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); From 11b7eaae099c3bdb60786ab60afae3b418db13b7 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Mon, 5 Oct 2020 11:24:54 +0200 Subject: [PATCH 048/103] changed the name of the folder where to store the context entity from context to communities_infrastructures --- .../eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml index 0ac60289cc..793c1ed333 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml @@ -370,7 +370,7 @@ eu.dnetlib.dhp.oa.graph.dump.graph.CreateContextEntities - --hdfsPath${workingDir}/collect/context + --hdfsPath${workingDir}/collect/communities_infrastructures --nameNode${nameNode} --isLookUpUrl${isLookUpUrl} From 959f30811e5309d5e896b15e3bc721200bc5992d Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 16 Oct 2020 10:52:30 +0200 Subject: [PATCH 049/103] added connection timeout and socket timeout 600 sec --- .../dhp/common/api/ZenodoAPIClient.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java index 8bdd329762..fc6b07c55d 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java @@ -3,6 +3,7 @@ package eu.dnetlib.dhp.common.api; import java.io.*; import java.io.IOException; +import java.util.concurrent.TimeUnit; import com.google.gson.Gson; @@ -56,7 +57,8 @@ public class ZenodoAPIClient implements Serializable { */ public int newDeposition() throws IOException { String json = "{}"; - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); + RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json); @@ -94,7 +96,10 @@ public class ZenodoAPIClient implements Serializable { * @return the response code */ public int uploadIS(InputStream is, String file_name, long len) throws IOException { - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder() + .writeTimeout(600, TimeUnit.SECONDS) + .readTimeout(600, TimeUnit.SECONDS) + .connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(bucket + "/" + file_name) @@ -119,7 +124,7 @@ public class ZenodoAPIClient implements Serializable { */ public int sendMretadata(String metadata) throws IOException { - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, metadata); @@ -151,7 +156,7 @@ public class ZenodoAPIClient implements Serializable { String json = "{}"; - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/publish") @@ -184,7 +189,7 @@ public class ZenodoAPIClient implements Serializable { setDepositionId(concept_rec_id); String json = "{}"; - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/newversion") @@ -212,7 +217,7 @@ public class ZenodoAPIClient implements Serializable { String json = "{}"; - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(urlString + "/" + deposition_id) @@ -249,7 +254,7 @@ public class ZenodoAPIClient implements Serializable { } private String getPrevDepositions() throws IOException { - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(urlString) @@ -270,7 +275,8 @@ public class ZenodoAPIClient implements Serializable { } private String getBucket(String url) throws IOException { - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder() + .connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(url) From a2ce527fae4d954489521c9b57e17a968fc3436a Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 20 Oct 2020 17:03:25 +0200 Subject: [PATCH 050/103] changed to match the requirements for short titles in level and long titles in classification --- .../project/PrepareProgramme.java | 68 ++++++++++++------ .../project/SparkAtomicActionJob.java | 14 ++-- .../project/utils/CSVProgramme.java | 9 +++ .../project/PrepareH2020ProgrammeTest.java | 2 + .../project/whole_programme.json.gz | Bin 135787 -> 916413 bytes 5 files changed, 67 insertions(+), 26 deletions(-) diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/PrepareProgramme.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/PrepareProgramme.java index 7f0ca983f5..b2d3253d57 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/PrepareProgramme.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/PrepareProgramme.java @@ -4,6 +4,7 @@ package eu.dnetlib.dhp.actionmanager.project; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Optional; @@ -11,6 +12,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; 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.MapFunction; import org.apache.spark.sql.*; import org.slf4j.Logger; @@ -175,43 +177,54 @@ public class PrepareProgramme { return csvProgramme; }); - prepareClassification(h2020Programmes); + // prepareClassification(h2020Programmes); - h2020Programmes - .map(csvProgramme -> OBJECT_MAPPER.writeValueAsString(csvProgramme)) + JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext()); + + JavaRDD rdd = jsc.parallelize(prepareClassification(h2020Programmes), 1); + rdd + .map(csvProgramme -> { + String tmp = OBJECT_MAPPER.writeValueAsString(csvProgramme); + return tmp; + }) .saveAsTextFile(outputPath); } - private static void prepareClassification(JavaRDD h2020Programmes) { + private static List prepareClassification(JavaRDD h2020Programmes) { Object[] codedescription = h2020Programmes - .map(value -> new Tuple2<>(value.getCode(), value.getTitle())) + .map( + value -> new Tuple2<>(value.getCode(), + new Tuple2(value.getTitle(), value.getShortTitle()))) .collect() .toArray(); for (int i = 0; i < codedescription.length - 1; i++) { for (int j = i + 1; j < codedescription.length; j++) { - Tuple2 t2i = (Tuple2) codedescription[i]; - Tuple2 t2j = (Tuple2) codedescription[j]; + Tuple2> t2i = (Tuple2>) codedescription[i]; + Tuple2> t2j = (Tuple2>) codedescription[j]; if (t2i._1().compareTo(t2j._1()) > 0) { - Tuple2 temp = t2i; + Tuple2> temp = t2i; codedescription[i] = t2j; codedescription[j] = temp; } } } - Map map = new HashMap<>(); + Map> map = new HashMap<>(); for (int j = 0; j < codedescription.length; j++) { - Tuple2 entry = (Tuple2) codedescription[j]; + Tuple2> entry = (Tuple2>) codedescription[j]; String ent = entry._1(); if (ent.contains("Euratom-")) { ent = ent.replace("-Euratom-", ".Euratom."); } String[] tmp = ent.split("\\."); if (tmp.length <= 2) { - map.put(entry._1(), entry._2()); - + if (StringUtils.isEmpty(entry._2()._2())) { + map.put(entry._1(), new Tuple2(entry._2()._1(), entry._2()._1())); + } else { + map.put(entry._1(), entry._2()); + } } else { if (ent.endsWith(".")) { ent = ent.substring(0, ent.length() - 1); @@ -224,14 +237,14 @@ public class PrepareProgramme { key = key.substring(0, key.length() - 1); } } - String current = entry._2(); + String current = entry._2()._1(); if (!ent.contains("Euratom")) { String parent; String tmp_key = tmp[0] + "."; for (int i = 1; i < tmp.length - 1; i++) { tmp_key += tmp[i] + "."; - parent = map.get(tmp_key).toLowerCase().trim(); + parent = map.get(tmp_key)._1().toLowerCase().trim(); if (parent.contains("|")) { parent = parent.substring(parent.lastIndexOf("|") + 1).trim(); } @@ -246,18 +259,29 @@ public class PrepareProgramme { } } - map.put(ent + ".", map.get(key) + " | " + current); + String shortTitle = entry._2()._2(); + if (StringUtils.isEmpty(shortTitle)) { + shortTitle = current; + } + Tuple2 newEntry = new Tuple2<>(map.get(key)._1() + " | " + current, + map.get(key)._2() + " | " + shortTitle); + map.put(ent + ".", newEntry); } } - h2020Programmes.foreach(csvProgramme -> { - if (!csvProgramme.getCode().endsWith(".") && !csvProgramme.getCode().contains("Euratom") - && !csvProgramme.getCode().equals("H2020-EC")) - csvProgramme.setClassification(map.get(csvProgramme.getCode() + ".")); - else - csvProgramme.setClassification(map.get(csvProgramme.getCode())); - }); + return h2020Programmes.map(csvProgramme -> { + + String code = csvProgramme.getCode(); + if (!code.endsWith(".") && !code.contains("Euratom") + && !code.equals("H2020-EC")) + code += "."; + + csvProgramme.setClassification(map.get(code)._1()); + csvProgramme.setClassification_short(map.get(code)._2()); + + return csvProgramme; + }).collect(); } public static Dataset readPath( diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/SparkAtomicActionJob.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/SparkAtomicActionJob.java index f2375e799e..a583b7bfa2 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/SparkAtomicActionJob.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/SparkAtomicActionJob.java @@ -9,7 +9,6 @@ import java.util.Objects; import java.util.Optional; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.SequenceFileOutputFormat; import org.apache.spark.SparkConf; @@ -138,7 +137,8 @@ public class SparkAtomicActionJob { pm.setCode(csvProject.getProgramme()); h2020classification.setClassification(ocsvProgramme.get().getClassification()); h2020classification.setH2020Programme(pm); - setLevelsAndProgramme(h2020classification, ocsvProgramme.get().getClassification()); + setLevelsandProgramme(h2020classification, ocsvProgramme.get().getClassification_short()); + // setProgramme(h2020classification, ocsvProgramme.get().getClassification()); pp.setH2020classification(Arrays.asList(h2020classification)); return pp; @@ -177,8 +177,8 @@ public class SparkAtomicActionJob { } - private static void setLevelsAndProgramme(H2020Classification h2020Classification, String classification) { - String[] tmp = classification.split(" \\| "); + private static void setLevelsandProgramme(H2020Classification h2020Classification, String classification_short) { + String[] tmp = classification_short.split(" \\| "); h2020Classification.setLevel1(tmp[0]); if (tmp.length > 1) { h2020Classification.setLevel2(tmp[1]); @@ -189,6 +189,12 @@ public class SparkAtomicActionJob { h2020Classification.getH2020Programme().setDescription(tmp[tmp.length - 1]); } +// private static void setProgramme(H2020Classification h2020Classification, String classification) { +// String[] tmp = classification.split(" \\| "); +// +// h2020Classification.getH2020Programme().setDescription(tmp[tmp.length - 1]); +// } + public static Dataset readPath( SparkSession spark, String inputPath, Class clazz) { return spark diff --git a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/CSVProgramme.java b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/CSVProgramme.java index 6f9a59087b..f991a4297b 100644 --- a/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/CSVProgramme.java +++ b/dhp-workflows/dhp-aggregation/src/main/java/eu/dnetlib/dhp/actionmanager/project/utils/CSVProgramme.java @@ -22,6 +22,15 @@ public class CSVProgramme implements Serializable { private String shortTitle; private String language; private String classification; + private String classification_short; + + public String getClassification_short() { + return classification_short; + } + + public void setClassification_short(String classification_short) { + this.classification_short = classification_short; + } public String getClassification() { return classification; diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/PrepareH2020ProgrammeTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/PrepareH2020ProgrammeTest.java index c5801bcccb..256dc05213 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/PrepareH2020ProgrammeTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/PrepareH2020ProgrammeTest.java @@ -92,6 +92,8 @@ public class PrepareH2020ProgrammeTest { Assertions.assertEquals(0, verificationDataset.filter("classification = ''").count()); + // tmp.foreach(csvProgramme -> System.out.println(OBJECT_MAPPER.writeValueAsString(csvProgramme))); + Assertions .assertEquals( "Societal challenges | Smart, Green And Integrated Transport | CLEANSKY2 | IADP Fast Rotorcraft", diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/project/whole_programme.json.gz b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/project/whole_programme.json.gz index 60c3bf05ac82af7f4004b681068c7911a6805a77..8b1982deea48490d3a0bdfbc07fc39b5e81e7746 100644 GIT binary patch literal 916413 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%0DaiVNSOM+XiPgUJ5LI+rJM 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

E0$a(rp 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�T6NviYkg!}A? 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 z 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≫YPqd0C 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 z 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�zA3^+SR@j5f`OEAiDQoicAuu)t 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

nvMEKArmo*u5L4Y%D8WO>p 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

  • 8+r2`k46rhvgWmcW2Mj6#fOw%UCG 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%0D*4b5V)MbFxW(MJ?g+2NCi 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 z

    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ʇD4l?d^L)a$&jzxb(Ihv>Cm?6}reEYC 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%0D>#)mF;n-r`8q7` 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%0DPf|Jm`lRP^8nsK?eZ1ArY`;x!L67= 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 literal 135787 zcmV(xKw19dlbcg-+2bJ`=K+=mM^3h2Y0=hWLf)2sy# zte)jz!3BZs=Bb1ANBWnnd?KO`Gxx}d%nDW(F>@d*!`<9eRa73Ih>D8*=MR>qwq^UQ zu4c7aEbIqA{^0XFx9;59J$$)$ckkZb{SQVTOz9hYR@EmPPtli6YwGraY4I8TY0EtR zQH@{QN$XDa&!*$Q8~LlSGgJJ;G*17Xn4*w>)svF`@zF>3@7=}-lPcew7X6RDYF%64 zyQ3EmvVB+cL^063s@oU(9fmUHtTQwGWlOxVFiqp8Zem(jVXWh7;%sY*Y%-@=*m7o@ z>{r?Gf|fSQKC7)Qv;8v9j>^^&0a}}9FKSaZOB#lrJ9u=s|K#|mKfgo&?#<+X`(OU^ zo9X-U-g_kPy?YS}5EW7js>#IdsXCfbX2B

    #SMxi6{oK+N*QU-2lP#;_{C6$w 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 N{|}2fOH|+_2LNiw Date: Tue, 27 Oct 2020 15:53:02 +0100 Subject: [PATCH 051/103] added connection timeout and socket timeout 600 sec --- .../java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java index f2dd4f0ac8..d66290a76e 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java @@ -3,6 +3,7 @@ package eu.dnetlib.dhp.common.api; import java.io.*; import java.io.IOException; +import java.util.concurrent.TimeUnit; import com.google.gson.Gson; @@ -92,7 +93,11 @@ public class ZenodoAPIClient implements Serializable { * @return the response code */ public int uploadIS(InputStream is, String file_name, long len) throws IOException { - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient + .Builder() + .connectTimeout(600, TimeUnit.SECONDS) + .readTimeout(600, TimeUnit.SECONDS) + .writeTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(bucket + "/" + file_name) From 1bd638d2918c1968a22597253f1478db9d1cf022 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 27 Oct 2020 16:13:36 +0100 Subject: [PATCH 052/103] removed h2020classification from dump information. Added back the programme info --- .../dnetlib/dhp/schema/dump/oaf/graph/Project.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java index 054e4d2dfb..612be9d25d 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java @@ -31,7 +31,7 @@ import java.util.List; * - private List funding to store the list of funder of the project * - private String summary to store the summary of the project * - private Granted granted to store the granted amount - * - private List h2020classification to store the list of H2020 classifications the project is related to + * - private List h2020programme to store the list of programmes the project is related to */ public class Project implements Serializable { @@ -60,7 +60,7 @@ public class Project implements Serializable { private Granted granted; - private List h2020Classifications; + private List h2020programme; public String getId() { return id; @@ -182,11 +182,11 @@ public class Project implements Serializable { this.granted = granted; } - public List getH2020Classifications() { - return h2020Classifications; + public List getH2020programme() { + return h2020programme; } - public void setH2020Classifications(List h2020Classifications) { - this.h2020Classifications = h2020Classifications; + public void setH2020programme(List h2020programme) { + this.h2020programme = h2020programme; } } From 5d3012eeb42ccaf87434753a82ae3811aea50d39 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 27 Oct 2020 16:14:18 +0100 Subject: [PATCH 053/103] changed code to dump only the programme list and not the classification list --- .../graph/dump/graph/DumpGraphEntities.java | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java index 5e329c9783..3a86cebeba 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java @@ -8,6 +8,7 @@ import java.io.StringReader; import java.util.*; import java.util.stream.Collectors; +import eu.dnetlib.dhp.schema.oaf.H2020Programme; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Encoders; @@ -378,20 +379,14 @@ public class DumpGraphEntities implements Serializable { } } - project - .setH2020Classifications( - Optional - .ofNullable(p.getH2020classification()) - .map( - classification -> classification - .stream() - .map( - c -> H2020Classification - .newInstance( - c.getH2020Programme().getCode(), c.getH2020Programme().getDescription(), - c.getLevel1(), c.getLevel2(), c.getLevel3(), c.getClassification())) - .collect(Collectors.toList())) - .orElse(new ArrayList<>())); + project.setH2020programme( + Optional.ofNullable(p.getH2020classification()) + .map(classification -> classification + .stream() + .map(c -> Programme.newInstance(c.getH2020Programme().getCode(), c.getH2020Programme().getDescription())).collect(Collectors.toList())) + .orElse(new ArrayList<>())); + + Optional>> ofundTree = Optional .ofNullable(p.getFundingtree()); From d2374e3b9e451ed28b565f42f4ef9d446c90e154 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 27 Oct 2020 16:15:21 +0100 Subject: [PATCH 054/103] added code to handle cases where the funding tree is not existing --- .../community/SparkPrepareResultProject.java | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/community/SparkPrepareResultProject.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/community/SparkPrepareResultProject.java index 6e0e059f3d..5cb9d5bc30 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/community/SparkPrepareResultProject.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/community/SparkPrepareResultProject.java @@ -122,26 +122,31 @@ public class SparkPrepareResultProject implements Serializable { private static Project getProject(eu.dnetlib.dhp.schema.oaf.Project op) { Project p = Project - .newInstance( - op.getId(), - op.getCode().getValue(), - Optional - .ofNullable(op.getAcronym()) - .map(a -> a.getValue()) - .orElse(null), - Optional - .ofNullable(op.getTitle()) - .map(v -> v.getValue()) - .orElse(null), - Optional - .ofNullable(op.getFundingtree()) - .map( - value -> value - .stream() - .map(ft -> getFunder(ft.getValue())) - .collect(Collectors.toList()) - .get(0)) - .orElse(null)); + .newInstance( + op.getId(), + op.getCode().getValue(), + Optional + .ofNullable(op.getAcronym()) + .map(a -> a.getValue()) + .orElse(null), + Optional + .ofNullable(op.getTitle()) + .map(v -> v.getValue()) + .orElse(null), + Optional + .ofNullable(op.getFundingtree()) + .map(value -> { + List tmp = value + .stream() + .map(ft -> getFunder(ft.getValue())) + .collect(Collectors.toList()); + if (tmp.size() > 0) { + return tmp.get(0); + } else { + return null; + } + }) + .orElse(null)); Optional di = Optional.ofNullable(op.getDataInfo()); Provenance provenance = new Provenance(); From 3582eba5658819f22e76634ed342181d99c886a5 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 27 Oct 2020 17:31:33 +0100 Subject: [PATCH 055/103] - --- .../dhp/common/api/ZenodoAPIClient.java | 63 ++++++++++++++----- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java index d66290a76e..8b66bd2dac 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java @@ -51,12 +51,14 @@ public class ZenodoAPIClient implements Serializable { /** * Brand new deposition in Zenodo. It sets the deposition_id and the bucket where to store the files to upload + * * @return response code * @throws IOException */ public int newDeposition() throws IOException { String json = "{}"; - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); + RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json); @@ -87,17 +89,17 @@ public class ZenodoAPIClient implements Serializable { /** * Upload files in Zenodo. + * * @param is the inputStream for the file to upload * @param file_name the name of the file as it will appear on Zenodo * @param len the size of the file * @return the response code */ public int uploadIS(InputStream is, String file_name, long len) throws IOException { - OkHttpClient httpClient = new OkHttpClient - .Builder() - .connectTimeout(600, TimeUnit.SECONDS) + OkHttpClient httpClient = new OkHttpClient.Builder() + .writeTimeout(600, TimeUnit.SECONDS) .readTimeout(600, TimeUnit.SECONDS) - .writeTimeout(600, TimeUnit.SECONDS).build(); + .connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(bucket + "/" + file_name) @@ -115,13 +117,14 @@ public class ZenodoAPIClient implements Serializable { /** * Associates metadata information to the current deposition + * * @param metadata the metadata * @return response code * @throws IOException */ public int sendMretadata(String metadata) throws IOException { - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, metadata); @@ -145,6 +148,7 @@ public class ZenodoAPIClient implements Serializable { /** * To publish the current deposition. It works for both new deposition or new version of an old deposition + * * @return response code * @throws IOException */ @@ -152,7 +156,7 @@ public class ZenodoAPIClient implements Serializable { String json = "{}"; - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/publish") @@ -171,11 +175,12 @@ public class ZenodoAPIClient implements Serializable { } /** - * To create a new version of an already published deposition. - * It sets the deposition_id and the bucket to be used for the new version. - * @param concept_rec_id the concept record id of the deposition for which to create a new version. It is - * the last part of the url for the DOI Zenodo suggests to use to cite all versions: - * DOI: 10.xxx/zenodo.656930 concept_rec_id = 656930 + * To create a new version of an already published deposition. It sets the deposition_id and the bucket to be used + * for the new version. + * + * @param concept_rec_id the concept record id of the deposition for which to create a new version. It is the last + * part of the url for the DOI Zenodo suggests to use to cite all versions: DOI: 10.xxx/zenodo.656930 + * concept_rec_id = 656930 * @return response code * @throws IOException * @throws MissingConceptDoiException @@ -184,7 +189,7 @@ public class ZenodoAPIClient implements Serializable { setDepositionId(concept_rec_id); String json = "{}"; - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/newversion") @@ -206,6 +211,33 @@ public class ZenodoAPIClient implements Serializable { } } + public int uploadOpenDeposition(String deposition_id) throws IOException, MissingConceptDoiException { + + this.deposition_id = deposition_id; + + String json = "{}"; + + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); + + Request request = new Request.Builder() + .url(urlString + "/" + deposition_id) + .addHeader("Authorization", "Bearer " + access_token) + // .post(RequestBody.create(MEDIA_TYPE_JSON, json)) + .build(); + + try (Response response = httpClient.newCall(request).execute()) { + + if (!response.isSuccessful()) + throw new IOException("Unexpected code " + response + response.body().string()); + + ZenodoModel zenodoModel = new Gson().fromJson(response.body().string(), ZenodoModel.class); + bucket = zenodoModel.getLinks().getBucket(); + return response.code(); + + } + + } + private void setDepositionId(String concept_rec_id) throws IOException, MissingConceptDoiException { ZenodoModelList zenodoModelList = new Gson().fromJson(getPrevDepositions(), ZenodoModelList.class); @@ -222,7 +254,7 @@ public class ZenodoAPIClient implements Serializable { } private String getPrevDepositions() throws IOException { - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(urlString) @@ -243,7 +275,8 @@ public class ZenodoAPIClient implements Serializable { } private String getBucket(String url) throws IOException { - OkHttpClient httpClient = new OkHttpClient(); + OkHttpClient httpClient = new OkHttpClient.Builder() + .connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(url) From c8f32dd10972524b26eecfe552fbc22b8fbbb5dd Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 27 Oct 2020 17:45:58 +0100 Subject: [PATCH 056/103] - --- .../java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhp-common/src/test/java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java b/dhp-common/src/test/java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java index ef6524eda7..9ae9c33c2e 100644 --- a/dhp-common/src/test/java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java +++ b/dhp-common/src/test/java/eu/dnetlib/dhp/common/api/ZenodoAPIClientTest.java @@ -11,7 +11,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -//@Disabled +@Disabled public class ZenodoAPIClientTest { private final String URL_STRING = "https://sandbox.zenodo.org/api/deposit/depositions"; From 4cf445434104103c8e0d4e51f84391dc52317104 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 27 Oct 2020 17:46:19 +0100 Subject: [PATCH 057/103] changed from deprecated method to new one --- .../dnetlib/dhp/common/api/ZenodoAPIClient.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java index 8b66bd2dac..5a24cfb442 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java @@ -60,7 +60,9 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); - RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json); + //RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json); + + RequestBody body = RequestBody.create(json, MEDIA_TYPE_JSON); Request request = new Request.Builder() .url(urlString) @@ -126,7 +128,8 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); - RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, metadata); + //RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, metadata); + RequestBody body = RequestBody.create(metadata, MEDIA_TYPE_JSON); Request request = new Request.Builder() .url(urlString + "/" + deposition_id) @@ -158,10 +161,13 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); + RequestBody body = RequestBody.create(json, MEDIA_TYPE_JSON); + Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/publish") .addHeader("Authorization", "Bearer " + access_token) - .post(RequestBody.create(MEDIA_TYPE_JSON, json)) + //.post(RequestBody.create(MEDIA_TYPE_JSON, json)) + .post(body) .build(); try (Response response = httpClient.newCall(request).execute()) { @@ -191,10 +197,13 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); + RequestBody body = RequestBody.create(json, MEDIA_TYPE_JSON); + Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/newversion") .addHeader("Authorization", "Bearer " + access_token) - .post(RequestBody.create(MEDIA_TYPE_JSON, json)) + //.post(RequestBody.create(MEDIA_TYPE_JSON, json)) + .post(body) .build(); try (Response response = httpClient.newCall(request).execute()) { From 1d9fdb7367253d4c5f1bc835c2faf36391256aa2 Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Wed, 28 Oct 2020 12:30:32 +0100 Subject: [PATCH 058/103] fixed spark memory issue in SparkSplitOafTODLIEntities --- .../sx/graph/SparkSplitOafTODLIEntities.scala | 109 +++++++++++------- .../input_extract_entities_parameters.json | 3 +- .../dhp/sx/graph/step2/oozie_app/workflow.xml | 81 ++++++++++++- 3 files changed, 149 insertions(+), 44 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkSplitOafTODLIEntities.scala b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkSplitOafTODLIEntities.scala index d0df28b2df..822b162632 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkSplitOafTODLIEntities.scala +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkSplitOafTODLIEntities.scala @@ -4,7 +4,6 @@ import eu.dnetlib.dhp.application.ArgumentApplicationParser import eu.dnetlib.dhp.schema.oaf.{Oaf, Relation} import eu.dnetlib.dhp.schema.scholexplorer.{DLIDataset, DLIPublication, DLIUnknown} import eu.dnetlib.dhp.sx.ebi.EBIAggregator -import eu.dnetlib.dhp.sx.ebi.model.{PMArticle, PMAuthor, PMJournal} import org.apache.commons.io.IOUtils import org.apache.spark.sql.{Dataset, Encoder, Encoders, SaveMode, SparkSession} import org.slf4j.LoggerFactory @@ -18,38 +17,38 @@ object SparkSplitOafTODLIEntities { } - def main(args: Array[String]): Unit = { - val parser = new ArgumentApplicationParser(IOUtils.toString(SparkSplitOafTODLIEntities.getClass.getResourceAsStream("/eu/dnetlib/dhp/sx/graph/argumentparser/input_extract_entities_parameters.json"))) - val logger = LoggerFactory.getLogger(SparkSplitOafTODLIEntities.getClass) - parser.parseArgument(args) - val workingPath: String = parser.get("workingPath") - logger.info(s"Working dir path = $workingPath") + def extract_dataset(spark:SparkSession, workingPath:String) :Unit = { + + implicit val oafEncoder: Encoder[Oaf] = Encoders.kryo[Oaf] + implicit val datEncoder: Encoder[DLIDataset] = Encoders.kryo[DLIDataset] + + val OAFDataset:Dataset[Oaf] = spark.read.load(s"$workingPath/input/OAFDataset").as[Oaf].repartition(4000) + + val ebi_dataset:Dataset[DLIDataset] = spark.read.load(s"$workingPath/ebi/baseline_dataset_ebi").as[DLIDataset].repartition(1000) + + + OAFDataset + .filter(s => s != null && s.isInstanceOf[DLIDataset]) + .map(s =>s.asInstanceOf[DLIDataset]) + .union(ebi_dataset) + .map(d => (d.getId, d))(Encoders.tuple(Encoders.STRING, datEncoder)) + .groupByKey(_._1)(Encoders.STRING) + .agg(EBIAggregator.getDLIDatasetAggregator().toColumn) + .map(p => p._2) + .repartition(2000) + .write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/dataset") + + } + + def extract_publication(spark:SparkSession, workingPath:String) :Unit = { implicit val oafEncoder: Encoder[Oaf] = Encoders.kryo[Oaf] implicit val pubEncoder: Encoder[DLIPublication] = Encoders.kryo[DLIPublication] - implicit val datEncoder: Encoder[DLIDataset] = Encoders.kryo[DLIDataset] - implicit val unkEncoder: Encoder[DLIUnknown] = Encoders.kryo[DLIUnknown] - implicit val relEncoder: Encoder[Relation] = Encoders.kryo[Relation] - - - - val spark:SparkSession = SparkSession - .builder() - .appName(SparkSplitOafTODLIEntities.getClass.getSimpleName) - .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") - .master(parser.get("master")) - .getOrCreate() - - - val OAFDataset:Dataset[Oaf] = spark.read.load(s"$workingPath/input/OAFDataset").as[Oaf] - val ebi_dataset:Dataset[DLIDataset] = spark.read.load(s"$workingPath/ebi/baseline_dataset_ebi").as[DLIDataset] - val ebi_publication:Dataset[DLIPublication] = spark.read.load(s"$workingPath/ebi/baseline_publication_ebi").as[DLIPublication] - val ebi_relation:Dataset[Relation] = spark.read.load(s"$workingPath/ebi/baseline_relation_ebi").as[Relation] - + val ebi_publication:Dataset[DLIPublication] = spark.read.load(s"$workingPath/ebi/baseline_publication_ebi").as[DLIPublication].repartition(1000) OAFDataset @@ -60,20 +59,17 @@ object SparkSplitOafTODLIEntities { .groupByKey(_._1)(Encoders.STRING) .agg(EBIAggregator.getDLIPublicationAggregator().toColumn) .map(p => p._2) - .repartition(1000) + .repartition(2000) .write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/publication") - OAFDataset - .filter(s => s != null && s.isInstanceOf[DLIDataset]) - .map(s =>s.asInstanceOf[DLIDataset]) - .union(ebi_dataset) - .map(d => (d.getId, d))(Encoders.tuple(Encoders.STRING, datEncoder)) - .groupByKey(_._1)(Encoders.STRING) - .agg(EBIAggregator.getDLIDatasetAggregator().toColumn) - .map(p => p._2) - .repartition(1000) - .write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/dataset") + } + def extract_unknown(spark:SparkSession, workingPath:String) :Unit = { + + implicit val oafEncoder: Encoder[Oaf] = Encoders.kryo[Oaf] + implicit val unkEncoder: Encoder[DLIUnknown] = Encoders.kryo[DLIUnknown] + + val OAFDataset:Dataset[Oaf] = spark.read.load(s"$workingPath/input/OAFDataset").as[Oaf] OAFDataset .filter(s => s != null && s.isInstanceOf[DLIUnknown]) @@ -82,9 +78,18 @@ object SparkSplitOafTODLIEntities { .groupByKey(_._1)(Encoders.STRING) .agg(EBIAggregator.getDLIUnknownAggregator().toColumn) .map(p => p._2) - .repartition(1000) .write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/unknown") + } + + + def extract_relations(spark:SparkSession, workingPath:String) :Unit = { + + implicit val oafEncoder: Encoder[Oaf] = Encoders.kryo[Oaf] + implicit val relEncoder: Encoder[Relation] = Encoders.kryo[Relation] + + val OAFDataset:Dataset[Oaf] = spark.read.load(s"$workingPath/input/OAFDataset").as[Oaf] + val ebi_relation:Dataset[Relation] = spark.read.load(s"$workingPath/ebi/baseline_relation_ebi").as[Relation].repartition(2000) OAFDataset .filter(s => s != null && s.isInstanceOf[Relation]) @@ -94,9 +99,35 @@ object SparkSplitOafTODLIEntities { .groupByKey(_._1)(Encoders.STRING) .agg(EBIAggregator.getRelationAggregator().toColumn) .map(p => p._2) - .repartition(1000) + .repartition(4000) .write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/relation") + } + + + def main(args: Array[String]): Unit = { + val parser = new ArgumentApplicationParser(IOUtils.toString(SparkSplitOafTODLIEntities.getClass.getResourceAsStream("/eu/dnetlib/dhp/sx/graph/argumentparser/input_extract_entities_parameters.json"))) + val logger = LoggerFactory.getLogger(SparkSplitOafTODLIEntities.getClass) + parser.parseArgument(args) + + val workingPath: String = parser.get("workingPath") + val entity:String = parser.get("entity") + logger.info(s"Working dir path = $workingPath") + + val spark:SparkSession = SparkSession + .builder() + .appName(SparkSplitOafTODLIEntities.getClass.getSimpleName) + .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") + .master(parser.get("master")) + .getOrCreate() + + + entity match { + case "publication" => extract_publication(spark, workingPath) + case "dataset" => extract_dataset(spark,workingPath) + case "relation" => extract_relations(spark, workingPath) + case "unknown" => extract_unknown(spark, workingPath) + } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/argumentparser/input_extract_entities_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/argumentparser/input_extract_entities_parameters.json index febcfc8981..7878931af3 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/argumentparser/input_extract_entities_parameters.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/argumentparser/input_extract_entities_parameters.json @@ -1,4 +1,5 @@ [ {"paramName":"mt", "paramLongName":"master", "paramDescription": "should be local or yarn", "paramRequired": true}, - {"paramName":"w", "paramLongName":"workingPath", "paramDescription": "the work dir path", "paramRequired": true} + {"paramName":"w", "paramLongName":"workingPath", "paramDescription": "the work dir path", "paramRequired": true}, + {"paramName":"e", "paramLongName":"entity", "paramDescription": "the work dir path", "paramRequired": true} ] \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/step2/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/step2/oozie_app/workflow.xml index fabe7510bb..9d06c42d62 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/step2/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/sx/graph/step2/oozie_app/workflow.xml @@ -14,30 +14,103 @@ - + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] - + ${jobTracker} ${nameNode} yarn-cluster cluster - Extract DLI Entities + Extract DLI Entities (Publication) eu.dnetlib.dhp.sx.graph.SparkSplitOafTODLIEntities dhp-graph-mapper-${projectVersion}.jar --executor-memory ${sparkExecutorMemory} --executor-cores=${sparkExecutorCores} --driver-memory=${sparkDriverMemory} - --conf spark.sql.shuffle.partitions=3840 + --conf spark.sql.shuffle.partitions=5000 ${sparkExtraOPT} -mt yarn-cluster --workingPath${workingPath} + -epublication + + + + + + + + ${jobTracker} + ${nameNode} + yarn-cluster + cluster + Extract DLI Entities (Dataset) + eu.dnetlib.dhp.sx.graph.SparkSplitOafTODLIEntities + dhp-graph-mapper-${projectVersion}.jar + + --executor-memory ${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.sql.shuffle.partitions=5000 + ${sparkExtraOPT} + + -mt yarn-cluster + --workingPath${workingPath} + -edataset + + + + + + + + ${jobTracker} + ${nameNode} + yarn-cluster + cluster + Extract DLI Entities (Unknown) + eu.dnetlib.dhp.sx.graph.SparkSplitOafTODLIEntities + dhp-graph-mapper-${projectVersion}.jar + + --executor-memory ${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.sql.shuffle.partitions=5000 + ${sparkExtraOPT} + + -mt yarn-cluster + --workingPath${workingPath} + -eunknown + + + + + + + + ${jobTracker} + ${nameNode} + yarn-cluster + cluster + Extract DLI Entities (Relation) + eu.dnetlib.dhp.sx.graph.SparkSplitOafTODLIEntities + dhp-graph-mapper-${projectVersion}.jar + + --executor-memory ${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --driver-memory=${sparkDriverMemory} + --conf spark.sql.shuffle.partitions=5000 + ${sparkExtraOPT} + + -mt yarn-cluster + --workingPath${workingPath} + -erelation From 14bf2e7238c416983aa5b39e3823ffb9f52e23cc Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 14:09:04 +0100 Subject: [PATCH 059/103] added option to split dumps bigger that 40Gb on different files --- .../eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 74 ++++++++++++++++++- .../oa/graph/dump/ttl/OrganizationInfo.java | 4 + .../dnetlib/dhp/oa/graph/dump/ttl/Pids.java | 4 + .../ttl/SparkPrepareOrganizationInfo.java | 4 + 4 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index 8d10efe608..89c65fb33b 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -59,7 +59,79 @@ public class MakeTar implements Serializable { String p_string = p.toString(); String entity = p_string.substring(p_string.lastIndexOf("/") + 1); - write(fileSystem, p_string, outputPath + "/" + entity + ".tar", entity); + writeMaxSize(fileSystem, p_string, outputPath + "/" + entity, entity, 40); + } + + } + + private static TarArchiveOutputStream getTar(FileSystem fileSystem, String outputPath) throws IOException { + Path hdfsWritePath = new Path(outputPath); + FSDataOutputStream fsDataOutputStream = null; + if (fileSystem.exists(hdfsWritePath)) { + fileSystem.delete(hdfsWritePath, true); + + } + fsDataOutputStream = fileSystem.create(hdfsWritePath); + + return new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); + } + + private static void writeMaxSize(FileSystem fileSystem, String inputPath, String outputPath, String dir_name, + int gBperSplit) throws IOException { + final long bytesPerSplit = 1024L * 1024L * 1024L * gBperSplit; + + long sourceSize = fileSystem.getContentSummary(new Path(inputPath)).getSpaceConsumed(); + + final long numberOfSplits = sourceSize / bytesPerSplit; + + if (numberOfSplits <= 1) { + write(fileSystem, inputPath, outputPath + ".tar", dir_name); + } else { + int partNum = 0; + long remainingBytes = sourceSize % bytesPerSplit; + + RemoteIterator fileStatusListIterator = fileSystem + .listFiles( + new Path(inputPath), true); + while (sourceSize > 0) { + TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + partNum + ".tar"); + + long current_size = 0; + while (fileStatusListIterator.hasNext() && current_size < bytesPerSplit) { + LocatedFileStatus fileStatus = fileStatusListIterator.next(); + + Path p = fileStatus.getPath(); + String p_string = p.toString(); + if (!p_string.endsWith("_SUCCESS")) { + String name = p_string.substring(p_string.lastIndexOf("/") + 1); + if (name.trim().equalsIgnoreCase("communities_infrastructures")) { + name = "communities_infrastructures.json"; + } + TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); + entry.setSize(fileStatus.getLen()); + current_size += fileStatus.getLen(); + ar.putArchiveEntry(entry); + + InputStream is = fileSystem.open(fileStatus.getPath()); + + BufferedInputStream bis = new BufferedInputStream(is); + + int count; + byte data[] = new byte[1024]; + while ((count = bis.read(data, 0, data.length)) != -1) { + ar.write(data, 0, count); + } + bis.close(); + ar.closeArchiveEntry(); + + } + + } + sourceSize = sourceSize - current_size; + partNum += 1; + ar.close(); + } + } } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java new file mode 100644 index 0000000000..31aa2b0a46 --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java @@ -0,0 +1,4 @@ +package eu.dnetlib.dhp.oa.graph.dump.ttl; + +public class OrganizationInfo { +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java new file mode 100644 index 0000000000..f540e161ed --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java @@ -0,0 +1,4 @@ +package eu.dnetlib.dhp.oa.graph.dump.ttl; + +public class Pids { +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java new file mode 100644 index 0000000000..293d91671a --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java @@ -0,0 +1,4 @@ +package eu.dnetlib.dhp.oa.graph.dump.ttl; + +public class SparkPrepareOrganizationInfo { +} From 10d8bbada8f5a3299117b0091a07f66ac1d6860e Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 14:10:10 +0100 Subject: [PATCH 060/103] changed deprecated method with non deprecated versioen --- .../dhp/common/api/ZenodoAPIClient.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java index 5a24cfb442..634336c461 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java @@ -59,8 +59,7 @@ public class ZenodoAPIClient implements Serializable { String json = "{}"; OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); - - //RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json); + // RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json); RequestBody body = RequestBody.create(json, MEDIA_TYPE_JSON); @@ -99,9 +98,10 @@ public class ZenodoAPIClient implements Serializable { */ public int uploadIS(InputStream is, String file_name, long len) throws IOException { OkHttpClient httpClient = new OkHttpClient.Builder() - .writeTimeout(600, TimeUnit.SECONDS) - .readTimeout(600, TimeUnit.SECONDS) - .connectTimeout(600, TimeUnit.SECONDS).build(); + .writeTimeout(600, TimeUnit.SECONDS) + .readTimeout(600, TimeUnit.SECONDS) + .connectTimeout(600, TimeUnit.SECONDS) + .build(); Request request = new Request.Builder() .url(bucket + "/" + file_name) @@ -128,7 +128,7 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); - //RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, metadata); + // RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, metadata); RequestBody body = RequestBody.create(metadata, MEDIA_TYPE_JSON); Request request = new Request.Builder() @@ -166,8 +166,8 @@ public class ZenodoAPIClient implements Serializable { Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/publish") .addHeader("Authorization", "Bearer " + access_token) - //.post(RequestBody.create(MEDIA_TYPE_JSON, json)) - .post(body) + // .post(RequestBody.create(MEDIA_TYPE_JSON, json)) + .post(body) .build(); try (Response response = httpClient.newCall(request).execute()) { @@ -202,8 +202,8 @@ public class ZenodoAPIClient implements Serializable { Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/newversion") .addHeader("Authorization", "Bearer " + access_token) - //.post(RequestBody.create(MEDIA_TYPE_JSON, json)) - .post(body) + // .post(RequestBody.create(MEDIA_TYPE_JSON, json)) + .post(body) .build(); try (Response response = httpClient.newCall(request).execute()) { @@ -285,7 +285,8 @@ public class ZenodoAPIClient implements Serializable { private String getBucket(String url) throws IOException { OkHttpClient httpClient = new OkHttpClient.Builder() - .connectTimeout(600, TimeUnit.SECONDS).build(); + .connectTimeout(600, TimeUnit.SECONDS) + .build(); Request request = new Request.Builder() .url(url) From 5f4de9a96276bc7ff0116eb6087950a5a875583b Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 14:11:40 +0100 Subject: [PATCH 061/103] formatting --- .../graph/dump/graph/DumpGraphEntities.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java index 3a86cebeba..76e9ed87fc 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java @@ -8,7 +8,6 @@ import java.io.StringReader; import java.util.*; import java.util.stream.Collectors; -import eu.dnetlib.dhp.schema.oaf.H2020Programme; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Encoders; @@ -27,6 +26,7 @@ import eu.dnetlib.dhp.schema.dump.oaf.graph.*; import eu.dnetlib.dhp.schema.dump.oaf.graph.Funder; import eu.dnetlib.dhp.schema.dump.oaf.graph.Project; import eu.dnetlib.dhp.schema.oaf.Field; +import eu.dnetlib.dhp.schema.oaf.H2020Programme; import eu.dnetlib.dhp.schema.oaf.Journal; import eu.dnetlib.dhp.schema.oaf.OafEntity; @@ -379,14 +379,19 @@ public class DumpGraphEntities implements Serializable { } } - project.setH2020programme( - Optional.ofNullable(p.getH2020classification()) - .map(classification -> classification - .stream() - .map(c -> Programme.newInstance(c.getH2020Programme().getCode(), c.getH2020Programme().getDescription())).collect(Collectors.toList())) - .orElse(new ArrayList<>())); - - + project + .setH2020programme( + Optional + .ofNullable(p.getH2020classification()) + .map( + classification -> classification + .stream() + .map( + c -> Programme + .newInstance( + c.getH2020Programme().getCode(), c.getH2020Programme().getDescription())) + .collect(Collectors.toList())) + .orElse(new ArrayList<>())); Optional>> ofundTree = Optional .ofNullable(p.getFundingtree()); From a9eef9c852031d9ce4821de2f257c91301d68aac Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 14:12:28 +0100 Subject: [PATCH 062/103] added check for possible Optional value in relation dataInfo --- .../dump/graph/SparkDumpRelationJob.java | 47 +++++++++++++------ 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java index a348b43492..e83bdb6efc 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java @@ -7,20 +7,25 @@ import java.io.Serializable; import java.util.Optional; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.spark.SparkConf; 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 com.google.gson.Gson; + import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.oa.graph.dump.Utils; import eu.dnetlib.dhp.schema.common.ModelSupport; import eu.dnetlib.dhp.schema.dump.oaf.Provenance; import eu.dnetlib.dhp.schema.dump.oaf.graph.Node; import eu.dnetlib.dhp.schema.dump.oaf.graph.RelType; +import eu.dnetlib.dhp.schema.oaf.DataInfo; import eu.dnetlib.dhp.schema.oaf.Relation; /** @@ -66,40 +71,54 @@ public class SparkDumpRelationJob implements Serializable { } private static void dumpRelation(SparkSession spark, String inputPath, String outputPath) { - Utils - .readPath(spark, inputPath, Relation.class) + Dataset relations = Utils.readPath(spark, inputPath, Relation.class); + relations .map((MapFunction) relation -> { - eu.dnetlib.dhp.schema.dump.oaf.graph.Relation rel = new eu.dnetlib.dhp.schema.dump.oaf.graph.Relation(); - rel + eu.dnetlib.dhp.schema.dump.oaf.graph.Relation rel_new = new eu.dnetlib.dhp.schema.dump.oaf.graph.Relation(); + rel_new .setSource( Node .newInstance( relation.getSource(), ModelSupport.idPrefixEntity.get(relation.getSource().substring(0, 2)))); - rel + rel_new .setTarget( Node .newInstance( relation.getTarget(), ModelSupport.idPrefixEntity.get(relation.getTarget().substring(0, 2)))); - rel + rel_new .setReltype( RelType .newInstance( relation.getRelClass(), relation.getSubRelType())); - Optional - .ofNullable(relation.getDataInfo()) - .ifPresent( - datainfo -> rel - .setProvenance( - Provenance - .newInstance(datainfo.getProvenanceaction().getClassname(), datainfo.getTrust()))); + Optional odInfo = Optional.ofNullable(relation.getDataInfo()); + if (odInfo.isPresent()) { + DataInfo dInfo = odInfo.get(); + if (Optional.ofNullable(dInfo.getProvenanceaction()).isPresent()) { + if (Optional.ofNullable(dInfo.getProvenanceaction().getClassname()).isPresent()) { + rel_new + .setProvenance( + Provenance + .newInstance( + dInfo.getProvenanceaction().getClassname(), + dInfo.getTrust())); + } + } + } +// Optional +// .ofNullable(relation.getDataInfo()) +// .ifPresent( +// datainfo -> rel_new +// .setProvenance( +// Provenance +// .newInstance(datainfo.getProvenanceaction().getClassname(), datainfo.getTrust()))); - return rel; + return rel_new; }, Encoders.bean(eu.dnetlib.dhp.schema.dump.oaf.graph.Relation.class)) .write() From 16baf5b69eb07294738e71e27e385388f754d3bc Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 14:13:14 +0100 Subject: [PATCH 063/103] formatting --- .../community/SparkPrepareResultProject.java | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/community/SparkPrepareResultProject.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/community/SparkPrepareResultProject.java index 5cb9d5bc30..39850b5b8e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/community/SparkPrepareResultProject.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/community/SparkPrepareResultProject.java @@ -122,31 +122,31 @@ public class SparkPrepareResultProject implements Serializable { private static Project getProject(eu.dnetlib.dhp.schema.oaf.Project op) { Project p = Project - .newInstance( - op.getId(), - op.getCode().getValue(), - Optional - .ofNullable(op.getAcronym()) - .map(a -> a.getValue()) - .orElse(null), - Optional - .ofNullable(op.getTitle()) - .map(v -> v.getValue()) - .orElse(null), - Optional - .ofNullable(op.getFundingtree()) - .map(value -> { - List tmp = value - .stream() - .map(ft -> getFunder(ft.getValue())) - .collect(Collectors.toList()); - if (tmp.size() > 0) { - return tmp.get(0); - } else { - return null; - } - }) - .orElse(null)); + .newInstance( + op.getId(), + op.getCode().getValue(), + Optional + .ofNullable(op.getAcronym()) + .map(a -> a.getValue()) + .orElse(null), + Optional + .ofNullable(op.getTitle()) + .map(v -> v.getValue()) + .orElse(null), + Optional + .ofNullable(op.getFundingtree()) + .map(value -> { + List tmp = value + .stream() + .map(ft -> getFunder(ft.getValue())) + .collect(Collectors.toList()); + if (tmp.size() > 0) { + return tmp.get(0); + } else { + return null; + } + }) + .orElse(null)); Optional di = Optional.ofNullable(op.getDataInfo()); Provenance provenance = new Provenance(); From f747e303acb3ffc6ae272a5285666ebde5e0690d Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 14:13:45 +0100 Subject: [PATCH 064/103] classes for dumping of the graph as ttl file --- .../oa/graph/dump/ttl/OrganizationInfo.java | 60 ++++++++++++- .../dnetlib/dhp/oa/graph/dump/ttl/Pids.java | 23 ++++- .../ttl/SparkPrepareOrganizationInfo.java | 86 ++++++++++++++++++- 3 files changed, 166 insertions(+), 3 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java index 31aa2b0a46..6e897d34f0 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java @@ -1,4 +1,62 @@ + package eu.dnetlib.dhp.oa.graph.dump.ttl; -public class OrganizationInfo { +import java.io.Serializable; +import java.util.List; + +public class OrganizationInfo implements Serializable { + private String name; + private String shortName; + private String country; + private String websiteUrl; + private List pidsList; + private String id; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getShortName() { + return shortName; + } + + public void setShortName(String shortName) { + this.shortName = shortName; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public String getWebsiteUrl() { + return websiteUrl; + } + + public void setWebsiteUrl(String webciteUrl) { + this.websiteUrl = webciteUrl; + } + + public List getPidsList() { + return pidsList; + } + + public void setPidsList(List pidsList) { + this.pidsList = pidsList; + } } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java index f540e161ed..26b0756239 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java @@ -1,4 +1,25 @@ + package eu.dnetlib.dhp.oa.graph.dump.ttl; -public class Pids { +import java.io.Serializable; + +public class Pids implements Serializable { + private String type; + private String value; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java index 293d91671a..c64dfd4d42 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java @@ -1,4 +1,88 @@ + package eu.dnetlib.dhp.oa.graph.dump.ttl; -public class SparkPrepareOrganizationInfo { +import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import org.apache.commons.io.IOUtils; +import org.apache.hadoop.io.compress.GzipCodec; +import org.apache.spark.SparkConf; +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 eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.oa.graph.dump.Utils; +import eu.dnetlib.dhp.schema.oaf.Organization; +import scala.Tuple2; + +public class SparkPrepareOrganizationInfo implements Serializable { + private static final Logger log = LoggerFactory.getLogger(SparkPrepareOrganizationInfo.class); + + public static void main(String[] args) throws Exception { + String jsonConfiguration = IOUtils + .toString( + SparkPrepareOrganizationInfo.class + .getResourceAsStream( + "/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json")); + + final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); + parser.parseArgument(args); + + Boolean isSparkSessionManaged = Optional + .ofNullable(parser.get("isSparkSessionManaged")) + .map(Boolean::valueOf) + .orElse(Boolean.TRUE); + log.info("isSparkSessionManaged: {}", isSparkSessionManaged); + + final String inputPath = parser.get("sourcePath"); + log.info("inputPath: {}", inputPath); + + final String outputPath = parser.get("outputPath"); + log.info("outputPath: {}", outputPath); + + SparkConf conf = new SparkConf(); + + runWithSparkHiveSession( + conf, + isSparkSessionManaged, + spark -> { + Utils.removeOutputDir(spark, outputPath); + prepareOrganization(spark, inputPath, outputPath); + + }); + + } + + private static void prepareOrganization(SparkSession spark, String inputPath, String outputPath) { + Dataset orgs = Utils.readPath(spark, inputPath, Organization.class); + + orgs.createOrReplaceTempView("organization"); + + String query = "select country.classname country, legalname.value name, legalshortname.value shortName, websiteurl.value websiteUrl, " + + + "collect_set(named_struct(\"pidtype\", pIde.qualifier.classid, \"pid\", pIde.value)) as pidsList, id " + + "from organization " + + "lateral view explode( pid) p as pIde " + + "group by country.classname, legalname.value, legalshortname.value, websiteurl.value, id"; + + spark + .sql(query) + .as(Encoders.bean(OrganizationInfo.class)) + .write() + .option("compression", "gzip") + .mode(SaveMode.Overwrite) + .json(outputPath); + + } + } From b82858725299dea89b78d0a29ca88b15ac5a6f4f Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 15:01:25 +0100 Subject: [PATCH 065/103] prevent the code to cicle indefinetly --- .../main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index 89c65fb33b..634d43cf8e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -88,16 +88,16 @@ public class MakeTar implements Serializable { write(fileSystem, inputPath, outputPath + ".tar", dir_name); } else { int partNum = 0; - long remainingBytes = sourceSize % bytesPerSplit; RemoteIterator fileStatusListIterator = fileSystem .listFiles( new Path(inputPath), true); - while (sourceSize > 0) { - TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + partNum + ".tar"); + boolean next = fileStatusListIterator.hasNext(); + while (sourceSize > 0 && next) { + TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + (partNum + 1) + ".tar"); long current_size = 0; - while (fileStatusListIterator.hasNext() && current_size < bytesPerSplit) { + while (next && current_size < bytesPerSplit) { LocatedFileStatus fileStatus = fileStatusListIterator.next(); Path p = fileStatus.getPath(); @@ -125,6 +125,7 @@ public class MakeTar implements Serializable { ar.closeArchiveEntry(); } + next = fileStatusListIterator.hasNext(); } sourceSize = sourceSize - current_size; From 0fba08eae474aa5432a4a1c4420d2af0e9583c3f Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 16:05:55 +0100 Subject: [PATCH 066/103] max allowed size per file 10 Gb --- .../src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index 634d43cf8e..f64c38489e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -59,7 +59,7 @@ public class MakeTar implements Serializable { String p_string = p.toString(); String entity = p_string.substring(p_string.lastIndexOf("/") + 1); - writeMaxSize(fileSystem, p_string, outputPath + "/" + entity, entity, 40); + writeMaxSize(fileSystem, p_string, outputPath + "/" + entity, entity, 10); } } From 696409fb9f78b13fc9132e6cbde67eedf5f1a2f8 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 17:01:48 +0100 Subject: [PATCH 067/103] disabled tests because needing remote resource --- .../actionmanager/project/EXCELParserTest.java | 2 ++ .../httpconnector/HttpConnectorTest.java | 3 +++ ...paredProgramme_classification_whole.json.gz | Bin 135811 -> 0 bytes 3 files changed, 5 insertions(+) delete mode 100644 dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/project/preparedProgramme_classification_whole.json.gz diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/EXCELParserTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/EXCELParserTest.java index fdc577687c..59b536cd54 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/EXCELParserTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/EXCELParserTest.java @@ -9,12 +9,14 @@ import java.util.List; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import eu.dnetlib.dhp.actionmanager.project.httpconnector.CollectorServiceException; import eu.dnetlib.dhp.actionmanager.project.httpconnector.HttpConnector; import eu.dnetlib.dhp.actionmanager.project.utils.EXCELParser; +@Disabled public class EXCELParserTest { private static Path workingDir; diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/httpconnector/HttpConnectorTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/httpconnector/HttpConnectorTest.java index 8bcf08906d..9370efdb34 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/httpconnector/HttpConnectorTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/httpconnector/HttpConnectorTest.java @@ -6,8 +6,11 @@ import org.apache.commons.logging.LogFactory; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.ssl.SSLContextBuilder; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; + +@Disabled public class HttpConnectorTest { private static final Log log = LogFactory.getLog(HttpConnectorTest.class); diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/project/preparedProgramme_classification_whole.json.gz b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/project/preparedProgramme_classification_whole.json.gz deleted file mode 100644 index d40bac8c6f467f5fb74af3456485a02b91c6c761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135811 zcmV(xKaA9&~WKeQ%XL4a}ZDn6$Y+-YAX=Z6-VRUJ4ZeMq3 zZ){~QYIARH0PMX>k0i;FCV1apVJKiGGXRgMd{z}%jRt~|kyX*mS7&6hmP7&rbvJc) z%`i7}+9RUehYK_c=)<1p)Z07LtOXCOp5<2&o;PX4T?%dive7Sdb@7~`14@MtM z=^J}i)h8QI(U(nY>h^(Y@frPT%RK&3jbGbI>rVC0rsKaG`Kz!qQ~bmp zlal`N(MR|1-Np!$D&L$I{g1wCU0dM0qZbddeOL2DG0?oK+ZXyBhBD=>Gc){UOT4i# zP2;9+Vp>;WtmA6pY-@^aGN)PCa%P+CSK0A`mNv>htF0}w{W8yv%GMGATAODtYEw2# z8it-bcyze`HG2CdnE6@dmr83O5Tt6Zl}b3=w|aao78S$ zN0}@5#aUaMDG~6*m9xwcX$Pqym4vC!R*ZeJjwxBE==*a(4KJt2CLRGr$nn-o^odup4;7DVg9 zn$p(%*)KcVH2U`$5jt~=WnG=x%$BFFuF3^bgh;=%^|Y!Nrku!j)i&?wpY-v>(wg$D ztXv~sow{)?%<{dfhv&AbI+{^t!6%NU4xZ7k+qr3J-pvwZr@wkjq#yrq=ynM&-WH8~ zEu8pQ^E-e2+|m@+rp^kJEvw@EcP;HlW?42(mRk}o8p}3q-A&rACc)v)h$5|^x{~PcWL_hl zIqgmDXw+3UHxt^yuB7SAI=2ANRQM6*F(-Xt_#^s*HUzWF+G@c>$?e27JjD^crZtPP zJO8H43@GbzlUpA9Vv_7-kLax%q*bzSqw%uJiDD(uVdBQllZ@xpbj@(&+7_OKy>V@` z_o_T*7UU)KE177zF*JuSmmLj^f0axKB6X>A3Zq~e)r|fXpRz4hFy0}0Om?z`&7Gl< z=_fjmF_DtqL6cd~me4OjxyD(N981DP=7abx?q+-gGlhQ(KTg^mBhz-+vZ{H*D)7=N zY4=Jdq_f^WY5xeOoSB`ychShV?|!^RBSSjxruz7~rA@Bt36zT%JcB)?wbqllFo55G z3$}KXl~_dCwN?a38EKndeg56vb*WB1{BmNUi`%S$P9^olnpVa<>W$g(SJ%DXOZDM( zYQw|-_2BT)qr)c$huQJL(czO9M-Pww_T?b~n&DDe$R?yD=zm_p{nh;LUq6*MPP1lt z{>_9a3D&0X@6z{=ZdBX8C23=wQo)=QHxw7;H{6?s%x{pbvGojeTvQ|xB;2q`gu>YL zk;IVEa;z@Te@%+3gN%|1liznWz0VJ2Y5W@oKnow!Uw9AcfueFP-nA@fS1nsgJVN`1 zkDV>h=e3&B-`!zH>?D7JtKK2ESbQkaixqvzl?*Vvm9ZTO+{nE*7NF= zbX^H$>?fa@FVDZBpLT39RVMbb2N;pwUsj88ZM!eSprihf*lPj{m26Gc;Ab5S#{^`f z(V)Paj<~<73BwYj(w2<;7w6y5&MbK+uziMPW!2d5wcsD2q*+y^?%9$)mbrDO*3jH& z%g(#1F{00_e|6c_L1=Fyo3O zxN_K9;dbIso{y~J{F_E!lhSAG_(d!hEym7C6%}!bV^cCqvAmQe%_Y8NMkcsg_}^l7 zx;+iMCa`|tJ=K^H$f=(n7!tzrdBnuI4$vz$5}4HToDC&^lv*C5JXcE~I;#o#RH5R_VEvC!>?fXLE_Fa&`` zGuT%2J56}vmgJ2Q%;rxgL@X6^f_Dbk9TJQWGcYTW2TxUVV%NaQeR-l~x>;$%?93^g zJXTeP6yw+xsva0BHrTGP-!2!b6Qvuw7#E`88X}|Dg?&BNQOdPS%QE6!VhN3E9fr2Fr;~~}@st>r=bj23tKJGE_Jhz=V1=1x zgmmer4Wv#cNSxCVYdISSz#G7(Hhpj0jP3NjVHF$DzKL4KimJt;E9q5`@8kuW+SiLw zqFd>srR`2xN&IumHU(6G9Ei@th)X4;nKNY)DGz9%-#QKP)(n9i?mmsMVp%ts$ z{1UaYmmQGTkdY>0raft-T=SJe^#) z;Ks|6r>uC7)DyjfRKZODB4&pe%}kwR*2K4kFjwIaAYy}rkdZmH6ZKn(aM1hgbdk1b zSo$oKkl){~0h#HqQj`)6LXHz;Q3R@4k?v$^65B_kV@0xbvm{0X(*|7x_Bo&@w<5aQ zzJ@rmUMpt=uXzI|g~utbr1=`A-f~XZHv6~#{*p#vvJ8dd-~M%^xUOSOhn*En6oAU5 zTe}@C7FA8Oz2S0Ne z+oS=>Ir(n^S_M7?(QYsjL9oOI*WJVuUB=*DK~xR#wwAv>buc^va+XEc$mVuzqsXQC zQbfHfA#f8dVLP#Fs{TMZH=T+u=mYZ+6wj%f$m=f-kk55pUNXmU*YKwhL2}tz*+C zG^<5fBMPes86!^sPo45J_SUG@Bp4P+sQAJJz47gT=}v19nv`bQ1w=Bn9jp{j6O;k8 zdsq?Th?3e{ZuAb`xX_!2#}A($?YxmRBd_ce&hoHG@NcIgMCP?9jA-NDFo8$Nr|B^D zD9~c{H^K-(JE&D@c8LLVh2e*X&r_|W0fko4IH5oS=F=%GBMU!^n-_@E!MzNcR{clz zIzeB!X8}II)by|~=7}eq{{Vyrxa$B=u}=dD+4LwzyeYx|x-5VKF(MK%ROs_^z|IMf zOJr-_CGiARg?kyhZ4pEWHn9?!#jZUzK-|YC-+oo))md|5b`Lsyq9}z>E4|*#z~!VT zUzTAWyp2}qO;)xbnU+ArWKwtbQkz74=XWNuFl3;1<4(p-VNpY@p~{(gc7vaI&4E)L$=n16tPJ_9g-uEN$WA^jAZwqhKBoCQ5=t@CWR|k&a`X zunpie5OD_kTLwumMA1`lgjK5+aYf##uvu1FlaR4QYlO8g*^r)Bw2jjN!t`AO(f7jC zs80>GA$l=~!l-FoEK6a6e7aGXdS-o$X`6;llnCaN%x|Q@!PM&z1gtxEgHPMcBzoE2 zKr{i;bKoV8G1{O&FZxUTpB*6vT%J17V8nq8)7fz0ts41bEdY@axJK*cgSW5?68VSI zHR{u(xRDAH@1EFZUcM|SI-imJwuO!XYRteTv`Yy5MDkpUQb)pqbt^|60Z1)7*T9~W z&!a&yGx=o)EzBG0W3iVb(5*;c1FkQQ4zkLhib8YKjwLQL*f0i$#NkU7F5+9RVcwr0>6SE{A8f?C-wQ}UYIoT+(A}U>D}*Z< zY)75LFRt}Po*Fd zvES%-jIL~7u=j}r0x%cO7JAN0|D2&8L`po2kvi`2F2t3-DbBx< zKw{H5Sli~u*{kyQ4if=(#nj41n{I;`J5j_}H1zZ@3;kp{fdJeLm%vA#Ns8-t(dNwK z5sno0a>!4k6JaDc(=*C~kkkhe*cL)iB08jA*jy>vr+*E+^-r@qJDc9|CF|+~j$}$a zd7Mt2|8oLFdiJ8H*Eul0Iod|3Z=wd*Zk$c}F&Z_(8krYGNv!2cBJYy)iP9Ui!TO78 z5*0LauY^Q9wbEg+jSsG?#`!eM?(S@E+ekkGg9Xfg1&#~u9M7Q_wVaq`0A_t;9Mzxq z)&?5ZGrxLMBVj7>_Vj=)jcD{}>h-~R2Wfy&ZM{)xZC6>BGE$<8y^3gpju3S$2QF98 zNAxWGiMsDlAoK^iiSu%U!}yprdD~k=&t7yg!&*FrpiwMqXWGPJOizH`X!kZbsHYSA z#{N=DDh!(-1bu2*oixIe4U1#Nh~gM-J^lNG2}7Zc(j}6L-TymE;I1p)2Ca zIMNWub2MCW_%&^_BAqZ#&T^BJfH=`GPdv%9eCHgvJKM67Z};yE_>`&_l2LVlWU7l2 z$SzE7+kEa?6W6Yi0RGYYOaQ-s_ukzL62L#|CxAbf9AjiSlh2Tg^GAY63Z|N7(~gWU z=#n)nGLQ>oNo8X~ca233UXn0PxUW!R63?B@5o94tT3ebXvgzj*YRXM5nFWitAc=$& z3Oz~mofr;)EG==_nQP}9%@J^kRQ|+5e*bym4-Y=SliiFf4O`RfFpKS{xWs@4@OjDEN6z~9g=twLi=g9`P+ctc_K#!5niPhOJ4IUdY1Cp{@ zkWCUJ<$WvS!Um@nrXqLHNMN4mtL1_~yj~E78*-u-}`PiIk zthNTI8Q0MG`*x13)WK~tB0SACGf?re3v$p>d#!h2KC5UBxv8r&QzB2{uP;gy{^s(#Aa)ALY@|q-m0?|?gDZ4@fqou*CqaDjNncLb)QUL_XineRc+Q8 zu<;2Q$_ja1^fA3fj4l29-CWp@e{=yfy*mJ=K?i}ub!vs2D)DSKJee!~;`;?&`w`pt z+2HEyrSrUk*1b;7BRn`pjv$iv$v9|$=G0}JjoCWUEoAKw7?K=+Wx`kOBQk2OL^^(* zHBRDQNIxknQeOoQSKY+c69fI0HK(osK+HH)lDkEPoUb+R8q(8QLmXom_aRvb)C{Td z8PFU@lM0-OR5+k<5Z}!3>7%Xrm19@&WJxM4mQrIz7p!jS&i_C4`kXGesSw7NN0%C< zgnY;hX-X3r+N!?AFa+)TJbB$iM{i)8w8j{iy~&EMoK=}z zK$YQUjy}Rp8Sp(|$N8_{NsZjSxBY(pK#A;!-L@P`5Ep}v%~Dg;lY!q zkDh*Zw4dEPJR-kRwZ@|x^cU%Zs+dVOSw~V1HYE_eAU<-2xyd2phq#$s)rMeh&?9p0 zAxunMjF;QPEiRE2PZx zEJoJ*ffc&`DIvKNuh0JkMG(&LuRFVBDLw*wmL zO*_CrK-YE-H3H1meI9wH$ZX0LBmOfk6qQW4=z?sCp3*X%Q(nsB>OkA6+^OSZpsbm? z+A|~0wmI0sCH9AT7MIkjz3ic|a}X3hPT_+?mtk`B;tb}AZ~=}E{ZXG0fg%PbE5|(6 z+a&CY5*f55V{7Yo3{^5;<(fGWHNl@5dNC0NioRoXGj(P!GKA71B^E!Jt>tkF+l| z@rtiaS;?_vbE&G&*7S1`e(0YuP1p785F0BaYe<)h_b$o&6EyKvag@?M{mxnds2EnP z;#>(X!;fQ{&^(%b8;9)H@+ z;ct@V-{H5ioytYQD$b@|Ta2B`aJ3}0uIo$akdoAUFZ>6j94|rY2C2xX$x>CqVgPRq zxp}#4eya7Fr7L&IJHe{~4YO_;(SY5{j-riarl$S(iKq??u%y|ma_1r=rIh{Asz2aG zj}W|Odbz0l;7#d1K{U&`IT5X`=Y%` zhtfNa37M>K8!bl|X`wmOG{e#56!nBiW)d$Dh;0zOrskaTdz4{;tfs|}I693$Y z72;q)5)g4r$ z!Um#ZA8>9Hbep~P3~(I&A1yw!!r4_$eK57s1FVKyZm7=x6Z$r7Z=92n4icaG;j0l6`T^6_| zSIQj@1%+hfPo2c0*eDS%H}KHw)=VqXI)1YweC4t!OJaJs^112T*iBc$3H0QP42cRu zn9U=d+=##ArS@PqLczkac#(TP2r@z9+Aox8y1nZzoYNQ5vJcHnw(0w5e06>$Q5 zT^oP`YvZaY62|u1h+Xkp=fs0O5e^49Vr~_% z7^xj+w9SHX-56dhDZ!jExAz)q+jkatNSc$KmDNTB53CImF%WM67;EoY>7rDV90x>e za7&EyxRs79`ZtX0+A5G-axPswRcD{FH?-F=x;C%d#iLAs0LUcV?q6nw-8G6N&vT|a zG!kyGw}cBru|sinIe^PiG#iAT>rIwUS+R&!T}OHmJrwVa5j+wcKVbTqPXC8ip_ns9=b2RZf7 zh*t=Y;2L5na=_uKE$)d_^!qVGOtmVx4|Y^uDvpZq37IoFGSH(WEn2eH(mMUu`w*wr z7@F9082*EKE`htK-68%(({{N8T$FpgKauJ)KvbLsiR%t`QDTbKz_audA(Oz4BQJpr zJVINW=m3TT9t$h0RLTa|4QoAf;DCsjUzbp?2UXbB={{TcCh6#wfh7hZzsg zOyY4ya{2KEQ3T0+p5~eYoJM>Th~(ZXB)Ie!ZxWCyw#nnSo~QtcW+8f`C|Tr1LN^?n z>JvYeg1~ZKtfCqw^9$=;OC>6@c5oGmKuakiqG}>%Q^p*R0zol&dZ8=2mpudc0qM4c zZa7@god4g0;|$`jS2$oKQw)Da19Y!G5M|1SFGPr2yAfmOvxhNm&=I;*9Hr<~m)Qc8 zA#PM{)sS4ghwpgR{$vIe$pk#O=+b7-`f95msZ*qk8;;C7lBmFUek1oF_~B}VlZQ5_ zabl{-8< zmDQBJoW6<;aMcWgDiM4Vr1dTo(ud0QtK_obbKPCw_^xbC2q*ICBxpJeeR!jQ(sV}8 zH#84Hk5-J>I3JPNbnZ`#@C#J61Z^Se0Oq738UlZPlpvd= zwBWYu$h>^a+vRA57ML#hK>#aJ2oW@rQ-95#ml(*`1F^+;)Q` zbV`4bG9%UJB$-RX3vS?mZ^L@253&WZ4dlM?Y_8@oB$)bxdyX#gIKe3nIVhWhKhU2}8oISUM0So`VIvYx->9^tFr|;Ruk$&V6oGhXu(g0?MW+yTOiJbS{9`0N9Vm z1;WubBof7tR@5=zOCZFZ?cD=oY)$oub0=^PIe&2ymdc-g0iZzW`1{1 zp$KyX<-5N{B{^}|qYA@eay1DDC2Rz5mQ_B~Z|R2dxyJBNJ&A7gkFaC(BI;pDE(I5o zI6)$Sg&;ON0V|pmiOG4WhR(Sl#>7NYZ00g(Xv7!Fk-({7ko5Sx!bwp!JQ~@)sOaaj zfJyqHfcTikIPh*G*M_+cRZ0vM=9)c`Ch~zJi^9z$u%Yh&*9I%ri&zZ8DT8De7fHt( zZzH(y`L*wo7JvWtw##t6n^iA9Kh%Wn{U_Pc6UpH|%$`2f-0c@fPoHG_PaYt7`*Y6T z{<$P?4-@1=x1pm_HVi&B{Sh0tlzF^cyb3S5G*$lHXLyCXZ|}G7=dDjJxcqj%e{bPv z|G~5Dp=sLec|{hHTjYKJSK)g7Kex^3QhHzK6}fkjhdcMT-!{C>|4XHU&y>m;DsEcS z*!1eHUSh{TN$mNsfpH5g$Anz!>)V*mErFvs4xAQRAZU_Fc_tR7Gtv&bV~dIWDho3X z7j~2Br{BNJimo6??{{PGesWQHmf;N`e*-TmE~4o+@1qvVXY5p^sY)m^fQ-bTPGdq~#2%tKYL z2&kX}8&`)VPXIeXvQtzj1hLXzkmYtC;E~xm;cyJ^S!ENNebNr|3ZhdwX!o2*Y2bF~= z`%r5{dWM{8XlOTZM!qTy{dPDnu7K3<5UKt`gF+~E)y?L_UM=j)uFYpQl>7>)qIJQH7%HYxJ5%_K`n7!oTfIfIQBuBW9-HZ(2UhSp^G2IZ%UiXJEZ&r_xy zZg@KQZ_5>Iy>=%KS|Y}#FV%I}Fa5T*(mmribwKBVfq=D+u{{) zzd5N}qTROm2ce3NTL8n*mQFh^61V4Ba?ZVH=Nt<3{ zjqlUO?;3ekDs_N7uZID+!?o5?(w?mgb3(&FOr>%XUd-QMhq%}Fw37U#1<`aR)k$%Q z+q6A4LepOBIVBcn0wEEsMh8!5WiAZkW8TdukaM79wlU@i{Et@hzCDAe1k3sIvihc@ zMbe(mII0?ThDV~R2GXAl-kEn?!YxW#hEh%KyrfO8YO*;c>Q~VBGY9Qk)rnT&b>($=}^}W`v@;o1r zpWGGE5X34xKCUZ667wbN;zEmT`(JXTU{4Iww3>80PpvzNrN|`5cEG4yVo2Dfs^dI= z{HjD&4PLykkYU$Iy*=sqr^U9geGQsXF0;v4X6+jedXu#atK zd2_zwYb0v_MU-y3a3{1?suW)H7CTgfLHJcyj}7;RDNFB9ijsM!5Y)Y`eY)=s z%VustSwnce{gEF8;@&p3E7S}6=o-6czf*W{Yt;-tvz{aNlL{3$6RkP6?HQcgXvWK` z+?Br?3(kHgcluh(?fm=S{g>>RXN0n9`jf<+@s(c4&NS$dLkq~Q~=;`e<{tMWV?Ui`%ZpP8`Zo*1ltDTeUc7mRL zgk9z!}-@-X#*Re`Ws(cbg6ia$U5UJ z44HABGCEXN+OXmjwZB#wktz&}Z`vxaxIM=^{V>}lJW+9HD3f&%xEn)oqvN|g}ds?Au71AU5mu+pv<~25qEXTwxoFuk4 zNUp4!uqFB)v#eIK5qjl%W(fEGz6`UKzj(5^kc@GVIfLv$`hf3JalKd5 zOJbkA$Y3bDwW7)%vkVF*ZBiucLAGL|hh6ZYKH2=2B@eJ%Q*r-!q#0&;w=5j@dRdx==}Aw0a-S@CQB7 z+xKtBk9neZZhdqMyrN@s=d&=>C%5oQChMI$^z)By_g+fRFI)q5wDtM#NK*DxozC$}gI)Wqeg^q`$G! zgVyMu$zF~!$_2=ajolj|-s!YYSWQx(j0*zWi^e9W5O zDxxj4T4jrlFN&j?8xA@R z_Py!&7PPcIBhO45sLO8Y#VMY)*HElS56dVvBVqI2vJeX-CD1UuRPGOT2~-2J5P-8H zPvN2v%&k{H4RT$QLCM!QNG^_wl?ji23XWg5g8h-gLkqAk?+q_Qh-!8Fyj7rY?%jvT+!JZt%O3mn ze%za6_{EY)H$h7$XU4V_35&XE6<2yEu5#3;du=;&PXXkVs$1ONwCt_Mp~P~7pdTJ{G_i0cy&AzZR$`e3fKHGHL8)HM`d z&W+Le+)jiC!rq_ANVb%OmtG|uISIqpxzRBMZ(sm$&77-cbX)~f63wL?Ao=6|L}JTg zRbThk@8}QYsyD`?FIvLSjz0hJ_~^ktCndMtm_cT^B$f4T>LYBhY5Y|j;=9_e4by`AZ~`j{aBBFtpE&0H8_Cx0(*zSDlY_fX z`pn!2IHBhNSZc}lHvDFwSj-1CiWUz0v%$T|?$K0<&1+72j#|dUv^TDaNM(rGc4T(} z(#_iA1%}I-NFDK|VNxPXoNQ)I&Yvk^1j4d%JGRm2^7X4CsfC7nhPDw{)0>(g^|B%0 zB`T^UEmyEfZb{V&uEEffQ78O?9jJZ1C&`SIJaw=uVf7BGETB_WETzKK3R;z)gcsB( zT(YVKY(tJ|y~cn9I#iX_SPb7SRCOd^@k-O+Z9!|p1(_^{Z85gty$_rfqB?3V{94dF z0ZeF^hQO;}9@4J06Hw*>9@H-v6?IKTd<6_J)e9WVwaC%(`xhVp^rR_-`2KE%2UN<1 z2-Uf;J+qo1Rg=1|+Q~KO;+r59X=|i6jDn48I!tDZZQcP+(<=vSqODOliywLify*c` zW_C#(1->i8$g~oE$W!Ns(JgM;He+niUw-`c;OZ#lE3eA?Ej8DQ1O7lhG4z#~IF z!p9t@=f7+CK0e>$pe3*6-x|zh4@@Vfm5ey9sha)#cc=VgSTD2WR0#FqR#^glJyHld z#-tn8^9vZ#d3NB|yoN8^;Pkk)9`ettg654YAhhHMcI>bPf>r)%(B>o?CwHj+)=7e6#I4*NmwJ_WA{9nmj~01i@=9?*Q?`ClK0wfmP>hB$BZ!GFh3o41XTeEV zwK^J@@6{Hi5&+d!g~&!sbsr76&~E#R#0+NJSk#S32*O*y67(cd?5}R5HxB#5nC(TCS zW2Eqb%cv-Nkg%7?Oy6Nf911+vu~d;$j){U~Qe$3tbA&a`0urU1zq3noOe}gk?sjZnIG$5h3KP9Hsd3MF92DASLz)Wd$02sFCF>UiExp)rW`19vP zj4okSKCFDaPV9_-K^oZK7Wk_5fJW$4O;KTv`G+?(9-;VS2h+7ghiYN`c^`d9>gpMr zcJn1F&5CC%mt?}AW}q;I88fFg& zO@@JqKpQFOX`?56y3CYotNO{$8qb z&cl59`0-1PrD@uOL9+;+q4#E!qi)oF#9NO@lR1fVW3m3Hve1L7e2waWqC!+Bss|B& z_UeP9K7EEkyv>k0Mn}^RpmW=@dNndjz!Fw3_~_LK^wje-%$Nok@%2hy!$08wUcoW% zl_*z?<8k;wiU@P7`EK&3W(w=hUKBnEzJi>=KQpL7aS+(33i?r~E>Q&z`W7bCh;q2& zqG)#0#nnSQ?xMuZ#0df_Sv`*R4Y-&C`bPpqK;n6<$cW=vY%jf#!vZolq9~zDhe$r| z*$I+eB_nB(6Fpgy)CeREaQt7O_CPumhz8=0#9x-91YzZVrbb+e>HFUO*^dTdwjGSY z>`S*4d3oQvO%djb%x}Zq@?jIE8}m1&S(A|J^@ItDiY?;W!Ypu_YR;O=FB9Cj_cYSw>3H zw?#yPkhAjjSRu&&qimOOWE6rOE^RTvfMTg49xrJNMv%HF>z~R zC{2|RiPKiguqnQ|2Xjf1lCdT1C2Bnh`EDHe2(4W`k~M3(jh)2_hFa5XYSeKjpZvghQUF?Kye$T_ zjMvn+?kyk$&-llZG}z@%>|f%cb4G;NA?_f?2X#Kl2dO26$;0-9YzePH21GG^UpSH` zsI0WO+NH4oLHctuX7_@__zO6HNurhf_#&5I(>3F%A3>9j?a64#Z65PS%lSm7HGf9*woR*5}9Gtdk z^fNt|9ZcMCq%b#%wPLD4nq~lBmZwaLREr^x0^YY;${vjzJ%XtRn0hQ>R-kYnhaJo` z@`a`>@aZ5UT=MU`qTz_2C~b{P^r8?xuVCtAmpFSv4z&9*#x#T`naAF~Dc;;Tf$kjz zX=axMs`pIPt#2@r86lME%~;WrZ{m0`MD|80CDoE?tl+grEia+{jCYRy|{}%n288i ztZ0QP_w8nifL5?(OX!9eB1zQXNIm+Rt&8l0-fWz9!3+eQL^7MxXI8V$u0lT>SaA^9 z3z4-q8lXWI$$0(^pTOijh!fMI`zPKU4kJ?oB+e%k zY!S4DR?IB#$`lb9uE6Uj-#ZADV7{0{oJ#UtuC=;mt9WF=r}2OdK1H#g2P)C7Q=Eq7 z#wRp8&FmXI&Pri>hH%uyTYl4rO_+>G-x!iI~}-Ui9G>(x`4=(u3m&4T97>^4Krs@D3xJCu(cGjoFJT>RK@ zK1ReeONZOR<=Y?kXVR;VFKtJW-@PCQK*Cv`X_cj+PzFf?T;bW~KIcDPYY5^0-GQz0 zB(fo0W;5D6IK5&U#0En-a^dZJU$UVIrv<4Q#^vE3iP zqjNb-L*7Vay;7`)o<`5-4P)RcwVBbJIR8m=hiOp%$)^K}=sCdyOStJ0rz6Q}8O=V;CgOfW zex939@YD1@NaEKIVQHEI%IYCz46)sj(n3zKO2{SEqvt-r4e6u9m8&k$715(UoiPnY ztOlo{s~&p)l=1!GC`(*@$?5MWiHPx~#}d7l-c0FJ>W$}RN!?5{@`?Fvz@OgbXhNo4 z|JbbO!pE{LgF#R+pGWvq8!;lbs@v61?YO`dOV5G^k;{0((&LF|z8)6*hoEc8(fF0o+T*XA6CZat^ zkqCLcNlcyLp+7y-!LfH~OkjybOfNV?uZOA5Qub+vi;vvbv!_d}T-2R7qfx%})>qZP zMY-(^{8P3~$#Eyo0RZ3B!9?}bg|{V=Z5*Li3p0qyp*OSu#mI`9?0DK0v;OvaeG}b; z(J&2VHFPMGWGA4%aflVdU)n?^CT8qh2`*^zASX!~iCg+~IR-*e;?mrXjX2Fal}fpD zLB*zCy(Yf7{9^x6cJTTBqeq8NK07?lcCTKrczB;&e)s@DK)=5|R7$@5uJ@hyT)gDY zkG2;t!MyJEwjinYH3cuV^);5HeOOh9rcXMl*V!vAHsd~4D9Wg{<79B$s;s%E6#g3u zJ-V{sJ>asazIx;+RBhd;eru3@ucV z3UkbEXE%?Y-QM|ec2G6#ZY-MM3+pm5NHLPBxW;M?SFB@wJa^Of&U536>~CIjMVIfm zf-6+Uy56!3kHyLq(8#e4CNn8REisN&$rTu~>{S`cb0$@I`8S+G*MMuo5=nl{RLh>VvY{JwrR= zS06}acbmq~x!%E6?^)jdfo% z{`)JWb!WRR!o2SEZP8Lo)Q5Ucp&pa33Y!+bzCI0g0H?mSS_yTO9mYzRBb3nPDlyri zO5#K+sXjMn$u1?u0b!7MlN{@=C`2>XfZkBWC9Og=P5N#(DgOr}^_DdG!M7{9eQ~>z zPf~6;Ja{VBL7L)a`?WRSzfDTpm292SCG@`kert2y+SVfB{@%O?6c${pni%(_tj-E9 zy^dmzT76w>Ol!q)6fv$*U|HK=qUjy@UCJu2d@UxKH7a6q5$?1yb|`7dMveTtX5{mD zZ4}8U!%J9eUSD}Bry-&)= z!tF^l-kSTy#Nx$TIB&uQwkEY}REweJHcCfddx@}K?+T(5Qe&|1(;BYxLR6^wC)l^7 zUx8~88EM^`aF~=AeEZd0vXQsF1$=K?dHe3R+HW$izHM%46*J<|(pxyGFYT`Y6Yc8Q z@MDU4B6898-OTjim)h<<2xZbxax-^q@Rj!Ckd0}KmXGFzszgjJ_wK;(_g@cPO z`}e>5Z=YB73e7mVxY)n{-G3cr>ob}|v!1LCerk)3K9L3U%&xfLz3fGAL0Ihx67yGh zfR>Lcw`WTtYEb?`H7)_{U~Cp+&Lx7%LL`|eO79F}vO@@$Hn2ESRI9zQc6zu;LEb8CMSNwd*;CqqHBpe3U?|^?4l9)ZY2BO&A@(A6fz#pX$q3& znAyVTM+5_~AMP*rey5gTqAgS|cnkebvl8OLU;jco5iGfh(!cN!kA4UDIM9hn?pz>q z0lj*2TaJdwJN+9({z&H8&mSMAH(lRRA#MY^ccQ=#q8G{~C$`Xw{|L)e>{4%c}^_n+wbFE!8dB#OCoBL*#*XVq_P0!7wy7^;mmC2Xi zTJ2OE3Sq$`mRjFJuzfqpn#TOHK|-DxRWU~o`;B6xhL%-@W% zvpFh)Hye&#Z1SR51ji)_akP^XF6YFaa-~Isx-rLlaNpfb?6fP2RlGq*laAn|KyaTK zBaqsbud5X;Y@9T%41ox=B$zvNN~{)3Zd*qbl(u3ph{L90pOf=O^BKjcMRJX&mHWXC zWp4Pi2*q1AsEyz6I*EQnnrbTrJWb>yR!@4J)qHu5I~e*kDXpa;Leh27cUkZo=1Mug z(%ANL&J6{5C~Zk5Z^FcoZftku@dcKHCJkmbBSGU1bG#k7m9S0TXJ>8jsFOvPGxUfk zY4^^g#tJRK@odd}dHvxeCD4%wVh zm%w&R$W2^@Twd2S9akRr9S4(ks9h6V1)}J%ZyLc}1w(hs6E^Cxxr8*ApYt7C*>G`# zd}FvW?GmR8Oj#AwBYX8FvM;&)SmDYOoAYZ!&~z!PWvgBp#g=nYuL4>!L{t5}IExBe ze2%6mlXGNYo%Xvcp~FV!q+xuRU`%;Rdm#>*GEJmY8OjKvp+N1SQRqhrV=m3kT0C4< z#Iz{>$#qYW(PP7i7mw0wp;vW9&TU_bm3vKI{rx@ur_WjRAJ?`27`aY*uDFbv+n{|c ziSSVD_Ogdv4IQzl&@~}^twm0oUWtgIcauvHs(kcT3oy{%3d|DH4 zp`W8g0v{LpMmtp^T2;GdF+xvFmKunMDR&npw=q;p^H`0Mrr)9mEYh{5WChOp#-tq@ zQQ4wt!#q?lSx$V*+#J_Ya%rsTl_p7sVWtj>9OaWp2BlSBTWOVK&K7T_{VA>tx)WQh zRC?t^|6{3tEG;J)m7F@-e3=ffo)z{gTY-_ofxI-m)nDMQad^B(B6>4`T*9l7mi^Fn zd^M|Cws(FFIk=hxiAFhm`8@mR{w;EdWzILvxFUYIpZ$kkyUFac2hVo!$~(7i-$Hy& zXTQq5MxQ-GxklfA& z33*45axPGcvs-SE3VcY9_7t$k7+gz+w)H@Fctrj%*hJI--?UMHQrkXjxbjrwii@sE zchTMfQZPII0~afFqM~3KxDZEIS{TJ(0Jf8EO1lg(+|r=+h;_YfWtCWNA@)MVK{$%2 z*v|bP1`?B^MmQ9VHj2Lp0)!fdp>On-csnt5ZCSh-7JFe6-Oo@!GHP+Sjz|M+8^a4} zeT%gSdarph?q_y#`^|uuS zW&+~9APnmYVu;ih;z}d;h_XSuYcL5JHQLEM08=tIuIYE6N;-@uzYu`ZW9 zy=I_k3z*c`zaETM?~H zGGKasI_R9Z*%~qK6Nfi6VM4ogY4$U#&!dAEqh2Fol?3!D=I*#-^~(a2p_g*Pe7#nw z%0WReSh*LCJ%d{I&I0FV^&3G3K8cK*c3)NW!}qZ0=LkDn(6VJIBaYr33ztl)Lh54l zs2w|SpV0ex)_MtIvPy_T(g#7oVYXllG8{9G<>2%>);5YTlX(ekA{vjfAEHKSvEnx3 z5i0nk6Me7OPtw*s&Q2|&e|)4%eRFHTFiPF)Ry~FQCmLE1s4$9adZ{mhSoS!fZt4Bl z1k~V0i;du1H)E87Y?~hFbKCT;u;ORHCukS~aXi@wH^GpopC9* z6LWj;h}5c0R?=c8&(+rubtd-GvjD zdIF}G^Hsw(r-gUevgzR6fN_$(sj@URQ-q@%33?EEOxc)2|K!&B=M-A&RTeQP^&nNG zS>ft}*fY-Lz#WfyRlCpwoHY=4DQOj6P5CN6q!4g5SQqA}17g!K4{&JzeR3Y~s6Wf;cXX7bS!T#s;SshBG$qkki?WONSUO`4Kx_(xCtwpzB0BXd-<># zrQ_Pz!p_0bZJ1#rKc-4{)7mwuIf+pNuuy2R0dT!AxCa&xcu@%@}y(2$C?Bd2PBC9}pf;}YwfPgEj5ic3)qY>4XMYZxkT8P`) zEx1QLB-AX7f-+UblxBkl3((Kf9w4PXUocK&XHn53kL?2B`?!S*8KEevI2HVxMvifKutW_ySO%zz2A^18@Ki*0Y`T@#L=27U?SL@B8q^@Ch~ z^f3O!uGHE^q(QoqV^DZoh%pavCFhc4S{7HMPY0wr=tU0+3`3eR*s@f?aKxzCy7@#o_LOxIr>6vfv6Z~$xm75@8kR%evmdoZ=Q$$ek#IA!>;nZO_bYvTpK0Nm6TwIuu|;oc7mma3y99US zV5Y~izICxxVTZxty^NTPq+*xd$n0i>uBp;hzfx1?`$|hxM7$a-?q=Bgpz1c2Ujotm z5I&?@aXEoA+^en#4vKD4H;r3f!M|xIdpo@(VR!+(D7)zSQ{9HGXgU>|IC{`0F$56w zsfOeAR74qf+K)0D;g`1h@vHKt*+Gr*dFw&@MMymb^MQW77_~e`uvl(8=<_WOAdDF~6!$l*-elQ^}jfSxjL$PuhXtI->;q^!?IXSXH z@$S;6^qYJqOsKET_>FeQ2kPD`?U#Q$-SKKNjXDI!Gm>@?Z;(ia4-oWVn#N}FHQ82B zs=qDR{vrwdMa|6O8{G0tR@gcoyjjU^rqhf-Do^Y~7RjPS41D zrM+ocq8X3xg*!^0w&5H^r^Sb=yWESN9($*(o_il%l)|27^jzmL`9|)~;N?G%O!v!^ z)vhxU;ofYOALli9Z+Tu7?EE;C z=PUC9l`?X!EE#XsamILb)<{OPklS|X%C#-l4prYtRY4Q%chg<|{eIVsO_x~*Kk&>J z?U{AtB*^GpIcsVjJnsMo2qrd@c_%tCO|jzSw=(;Tr)Ri2Niq?h=OX)p-d>w-k*&$U zdMTd(hZv+q7n^*~f4AtGCfP40 zAPrI2t^`q}aoZx3s^IiS!l-505}s&KRi<6jOlaRWi4I}QyAwq8AJ9%WB;G`(mc}BbhHbsQrGa5b85^ZYP#8mLO;bxA783cX!`!29k&6_-m5U!F>_^nN~M&%Mt zr~uuFj-bAuHu<0n!kVp$E40l?U+Txu{2Pj4LB1RH8P#m~?ol(+%XjZ2_Y1MAeA!TqMD`zCnRs+$J6RUb0)TM zLv063!>X4x6f6;ah2$hG?;&oq)NKBaTWCga`c#X;dGYEiDyZhfEX`WJ5p^yCKC@?J zCTrHXP&zqI8TV!G<=5zcsdh%-mBfq)0=(J(8UJv#qGBd-RDeuDKC!h`$<;!jd$vMOk3 zdT!IauG#)W!+ zKX9hZbJQBfnMw_KhZD&1zv(3QLWB6wN9UF(ioC7Z7iNG9J2ophPA-L_)hJwJ~+e@g1kr);EAFkV%}d^M9g5GFx+RF zb17!y)dx&eeTQa@*brC5D`Xsc@M4&RYitc}xNTW-P(prQ`0y~1^iqR|P=+gr?cn(1VPSz`uOFD zcA|kE7lk7O14A*4bS+^rn-k!{F;50Bo?c-VJTPM+m|E`yNPvX>I5x!&HTg-ddKhpd zfXlJz=~$tJWk0Uq^DD>cVp74xUOeN|%!ak3C}jLP@rg(=%?RxgO!QLMGd6E9Ftn(s z3WJYuCH2ShPfYU*B_=Y1n4n;X*QD-gU9+vf6fcYUp+yg;6!%^{SK0pc85)K%BIehK zj=HkWp0Yzfic9TV$L)?GzOg;2Ol%%$zKXpCni5$y?D8nk=FcfmeJUO{>RSjwaO}E( z&qM#-A0xwP(IwlH_%rm^s}H__`&G({8vEs%2V4gQ_}P%Oo0O$zIWw%S?Kp8FpsZ-+ zQH&4}p#Qe(sD_&G8OTt=L|dc=oKgrVI7)W)`-|6w_WqB=oZ(T0Y3*d2~= zPQYv_Zca3(cOPq1!SY_kmrYIJgGV+hk!QfM6Wt!y97Bj#mDWT%3Gl#!b)X zVc9`Qs%lqDeKz%i^lNsaS@L;81+-`>V%Q@s*eO8JH)-dRsJ>1po(KnwACZT=Z+27l zA=1J8ji~d;;unY?DSO)Yn$@W0D$uJIIy2G62rdCNSvO`v?ZpiyF+3?C6haXa0YXSH zlaG0O%-BPcC^HB@od0oh(uh#E2_wq^3sJO zMV;`bFxMNcEgKs*z;j^k$L^%Ab~SEMR%EA6TJp@@$tZg^C*I+I4IEg0y6+JxrWrbO zi8snWimsgmw5@1yi0yWQA$rm(KjO4Y+w-ou11hO%h{l;{D_O*e6o|mS@MVQTWK!cO zPLcRVh!4upyC2aCu~KjaH*BKmhFy@Y7H0CMydTFnMS)!2-Z$6`V#&{43AJz%fWR?l zfhMB*g+XMfTZor~Cpc8)zuspLxmgw@vuhCS0`45C(qHg92sn=Q{Ch-ypm8Me)>^$h z`ey?aK8qeph?!onT_CKdC!?Z7Gptu9g)-|l&56C9igp%nf*c}K%0}UxORtd=?ZXjI z2^P}ah}dKCrPQy-R?K9RIJ(%=F8#pSCE-N+IZ||Hw&!F`i6{%h+j*17k4hdzbH=Do zqDtQPp??H$&$|4C?9+&JcA1|gG1rF@)v|8HYi!f+UM}GE(r*yrZJ@SnF{0O#Y0Br& ziyYNLj+e7Ld)aa2^%%n>GcRNVK@yme0=}?1u4l@U3I(?9tEXqf-797nN8G1{{nCwX z!7}Z2T*?K%?3nr*UlhUiE^W(`eHoDqhd!}=7svk>o;TmXmZD{ReAU*nMJXVY9E^e? zDt7C5X%VyZNWAe;M}7FDBK*PE-NaQB`aP_0x(;dd$J{>ZT+>hW@8ec9G+YA2PlVSw zVLdDgQ6rIqQ>KK3viD0lXq8>#WAC`e^FNZ2LZE3Xcrg$RkqAUe6%HzqLil>q&Ts(K z3kq-?XX<6Zjnqtdkf%r024m-=RXZoYSUxo7)^rX@W30`b}a1C z3@OwHj+;T?3toBiO6%S6^cFC%61kKKF(SupyA#eF`Kcr!h1hh8X}qrP@7UGwcT?4j ze16g44XO;F)W=ZF@O+wNVnGSKBU!wH=>41zPJpXsW-N^L(}CbBz;oGG(bDe zc92|$>qG2)K<20EAIi_L4d{caH6p_9Q1gi4cV2vb12&vm|OJ!#(66JzKAN8_pUfhCg=&V7(*kl|8Gp zXmM(BYE`?sb0JGOAj_W+P%5ovG?15>yO{@4o3y31&RPkV8nKOoV1JS$!?ds(wxp5Q za4$5l>5{7OP%)g20ly^I;QJtAKH74K;fG3dNwb@W$NM{imT5LW)oWaQcp2Qinzeg4 zculCu!5?T;!j4g&A`0px1t@hAHmQ@C4)HJ2m^mV$*B;`4xGiqvN2;B98%e}LB$wWK< z&Ail?48y<)5gX0eQH)b+Fh^OA>334A=S<=UMT>$j{9ajNFAAR>hDgsy?9hgFPZ;i! zV9w8c4oMm`@+V~}BlMx_X|=iH&0|RwrvT@#1l4XDzQm7TYK{j`cQ@q(N$)AvnE2Qq z_s9KC69zG-&q+^Xk|dKmqb;Y3>#l(SC;;o}I?>j@=w^nWtF!0ytCMP)V9$|f#2`9@ zcn#h_L_Oh}2y6AkXe~IgM*0r>f`XuWfQcVD|Ba8TZrRT5Pzpx}NWf-CfYp6Gdf0k^ z(94bS32&^|Ko7}dz)pytUUJM&$u41fa!5&yo&TW~2(Z}5vGdpm2?Buf!e;9(jZTs> z_OdbHBu38L(;&sfT&rxF$#AS_;-V9|Yd{Suo?srP|zkP38 zk@Gu)c1fCczW*qDbh!WE@cHrQN6)g|cj)Lc%=CYUo-j8bk!bIHm)f82Fzp|H=a7%K z-q}Fskp8`m1+?(KtCLP1H;?yU?4;d0-hVrht55SUpt$Gl%|;_(Vz;-H$(3GK@fveA zB@C_A*W`xLwHNKY`p8!(*nFM0U>o+=o|Ei3^?or5^=eSnS;&gJ zU;RO)DYa|nS_jbN^6aQL^@>M#|mgZo|6{jm9D1#)@;Had`Vf9g4Oy3sQJeC)hF~o&4frV zP^z{VWd+}=?e!(Le9o%n>BD>Q8r*brTzE5Kj!^D^d+#|^mX`u!CL32RlxVla$R$@* z@OnUNw@Mur^yki?m;sxM!rxKfEV>&m(9=K_Uk1Ff#iZSc6>7KC?Y;5#=;DS@SZb5W z74QpG0h6pKstGq_;{q4BLp@bx^=?Jn?`%hagMPFZD&o=AHSy4FUHHyxuk3y;v;PZ# z8h74MM|@jF{*AJStU!IciEy#mg8->FA=M>~FOtD!n*VHw`hRe|s-T%&RAg z`z1Pu6KWZQ`Elo7N@V@;YxG|<@hdc=eeb(-XIr~KKeJx@ADY@k%W^DiJFid*BNmZd zlG)}Wxg(+gm-m?XYFS#UgN(7m6?G}_0Oj6P)Ar0r&9D#IkdwKrirtVvnW4rJpv#9` zs$n;jdJ829w6uxfC&i8Qn$mhWw5_PY2pDCe#X#U2;3F=vo|g9?^)Jv*xjt|;l~UuO z_-fg7NF)cgV^inrk&XQKn2L?%Y2JmKueJ5;(V&XlL9dG3i(X9P=-|Z;cfmY9d_@2K zpB!*49B_s9z3;cL)VZCCKUb+vix9sKy#-5-6j%_+RQ_tEfZ zAhrP2N?tgyn`j|m!RmtJeND&2J&PrI51;Q}-;Qea9&-NnrSv&==L;0O&vwzOw&-9l zM=5YcRQkD{7V5(vhjKwZc-tf&U*Ed_0(#VMuLp&B^?b_5)-=AbEpi12UvN$g{&7L0 z_aB^z`7^Yse;2a+1u(^S1%Y|pOPNC24+ryzLpj1G(sBJvT5~h8xQ@<6Xf<#UD)2qB zD7w$}eSV!aPAcHyV5LMw;-WAa?E-qqhAUnZzT$;|KuHMo1|PrShzdECaR4bNPnZR{ zBFm0kb+j&VToVy^29<#vT=?v!G!K(dLhdrNCWdj@sbdemc6KMT{Q4U-(T>06WzAey zwkV?G+mkOG{_xXXno=4%x{SLB(q?09dID{RilWLEI4?DYeW$aFi$bP%MHhI9dt%RG z?-niOdT~z5rB8pST9hL`aTNIHwSKE*|LLJi2ET-RZ(nl_$`^+Zv9HXV))$O?XikxA znpc^l$t|$61(%{mKLp}mEqB@yQ@#42_l8#=?2Pa%J~UHqr$HRf*N<>G(-I?T|JJ}? zc)Xe7;CpGgYqOYE4C9CAz!7Z#PR2|c_lu!DixlFFSQ1?|5QIX<2l+KkZegV}%!VjM zv9pc3?We@+6*9~4fM_Bq$w%*#de?mE(r{A`z0s7QSEd1p^l}t#<;XspVp$nNRrH_yMgk>+ z2|2F1R<7`VNgTQ`d<+v``b(6~JpV>T6X9souRz~$;t?8N>qD%{c7Fa%i^oU$O^9gV zVcYheN1`q8>G^LL2z>prbKFPd{I}fuunVaWQq;Y1`S~|ezI}-vBD7=pg+AJqrlAlxLb75^ z2SWE8G;rl!0JY0i-1di+HA(cp$hRv>_}2EFOVW^#gD z7mg~L!Z!{}X&N>R2Q;{a$7LR3KeOm%4oZn@1#xapc1Ay37KW9Cyr8gtT1{KwvfQZG zLrMC`gaa(($lFhECIzm!hXZ z+J#JdPhDx^d#}o$+SLW^Flhc0GS0|Dyl7(Fp0qN!+fbnfCz>5=8?ENV6*9{}Og}0< zgt)RnY31MxuCXkyzZS0Q&UbdT_eh8Yq-{le9}n7Mq`gr%2MpAZK5FnFs@>2~YgShs zn!F$}@YLUewR(87s&MCifsX2m5+? zkiUE<$LTR*JlXNdw_jCxb=I7i-GdIF?1zNB>ze%)e68yZVjSXT=IRWNZ?>+_e}6{e zW4`?(F%kPac8xFC*EpHHHd#qtx1RKW`xQM+R&M>LfB5zvC*-*+?x9b;@_%{47cNie zl_+dW@1(aA!dv6l^pP1!%_=TgRsQMkeN1xl`cMCWM^_L}TwbPMzy8zTPw=;-0`Smh zS-VGT`$bZsZwHk083ag=jDZvoU`E{0)DBe_99|t?&pW?gj}Di0 z2h}9`B<#;ixhtf#yx;8VJNGV1&>h_4df96|B^k^ux2)xeMMwl0CGGq)HAIkt&krE4 zhZ}6gCQsLQ=<_y-FZ~7i$>R}uBAx5->FZto8=2(bI?cxM!O`K9U+iZGPoHFm*|Wpv z*`xjJ_$ht*;{5M?+zpi^o}z>g{jdtxL8?qENIbexg)cb(hDsF@?gdzN8Y|Wo@)D$F zPYS)53H^wHUUR%xwabY5RW-( zo!LvU-TEcS4?2)ntCD}Cg;h=)XnfMZ8}4s7B`E^O>k$Wp#C?8^6J2Zo2G8}}8upws zC|2oenlv|HJczNTCg@?&#$OT1R1`FJf<}t|HA4p85eb?X=0G20;N{EmBhv;Pb$G`W?i0Z$M1sNgSNyYv5%9spoWPv=ktPBg5I-S^U_kAr-;Z;b}Nb-)UT z31+=P`@)0bbF+3nTE|h7IuCTHQ6sxZafN5LV}P@%ttpNLKIlI~#!eGQJ3Ba)yPl(m z5_m-Q9f^XH*JnKzA@l*WtwNxqkvJ!v1gqfBy^j>x%Q= z@fmvn!9+yRRSqpc&@yN=&|2|WWI85quLAVk!C8vp$S@pSPgwo43Xvu560(w$ALeLQ zyu%pKaDvpYhGR<{PHNCs3z#&q*9A|RB~E_oO6bW<=S~5xkDT#UwGVTvI?dUvcoeZ* zVvB1>%z@TOV3qGX0TuD+l5rRjdP^**Mf0XAP6%&=8HEUynJL?ffk0CQd~O1u8s$@u z(SZ`Oh-Uy>jgiN2yK*PODGs?eI~QnVytFzgl>cre=xJIsZcYj1I1BOPBRe}1VmxvP zNdOWF+rmf4k(?wl&gm`^I+p~ zuJ-*fg>;2Xg_ezn)6JnY+8GqhX;I)S#2E0JL)CkJ?06)mvga|)9C0hxOV9zEB ztHH<~4XBjIB5E3L%#SAC>8G5kdDZ6hUTa)Bbz-;fmp8rt||9KYUO zKbnBkITH`+dtRZ7yPvVN%`W$EHsJAFx|my3%VEN7#MMeoN*-DZjiFQBpOK@In|m=T8h6rBMls zk9ZF#Uf1UVQP9;A|FYoq%bY11*~AP5?p%du-4KC;Gxxfyl~%(DL1~s1e->HS^>+NA z3@M1|5-yj_`ib>;1yto`giHpO_hm$I0~PWVr&-!LPujwhNs{9tKw?3gx77rHaeH(w zHg-zpt*llLFr<)cgUGrhYZ0;FLELnKqg-z0@fO#!mL(rK)r+9%2M&9+Nk}2eRN%Q< z=)!@e(rs4@Ot@bDEYHIjPHMwAqa2%2Lyt77#2|~AP>$x#RFDZpz~<)F<`@5TDj6k9 z2xHss!NcOqN6&s<-2e2$;-k+#SKIDC?09h0M|$S^W1j-46#`fCwqE$ID`d64*$THi zx2BW-clrZpf+mM-)BI7y2J?XIO*Ce$%L+X)x?{NRUt`Mmn@MH;qOKa562Ft5YKSmM zd_WtLz=Y3J4LPl^2(l}*qb%HwL3bBv9=01zvkSz*Rd@$wLJYePm#h2&8eF!KD|k5Hd9xnQclQ}MT}gSX6)Nw(&|GP(neV(xkN zQ5{plUnl!{8KR@BI#z$PAzEWQ8;fmvD7%SYjJq6cojU(K-M~Yu{-vnz zi=+R-r=+zUtdCa>C%Fe(H>S85Zk)C_K7U?JU`=H%LL3~Z?au#edSEuXQ{|Z81o3$6 zO*rkSMW^ufTTiF*`M-YaRpSbeBH^ycc02^O!Ycy?anRK)C}5y&O_^*W5c9y=N0XMRujK@68)r06`=vZ}BF6X?a>| z+6lhy0Un)phX!ld1Hb@30{fl0I;m+}ag3F?uyyE3#t|e`SXkP*v0xl%kHFnZ@C;w$ zK-}%1czliJ!D8WJsK@MG43cTtGiGXu4k-JgcMzGO&xv@$*P^SlV=ZEQlXxS2z0v!H zI^r8K*gF(`eAdzy;C+-4M;s*b*Z|DN;SB6mxxn|q)WFqSxDJRGnEC-&ymnXTEk!rr z(b#_P_1J7jhW$PciW{9iRBBuW1I6*?IS-y-HQ=L! zNn0p|&1xr_F{1@NwU#NQ(oll<0U%*kcDog~IIt_qmV$>=)(*bpjI|-)ryLKx-y1%M zhPkd=h_Ct7^%7##RX2gfAx!c(nJ;*$5SiSWXZ{iatBguL|Fh;faTyS1lsoQI-KRn$ zsRo=lWN}OG$BQgpC!Xvi7^wAtnL}w5?9x@GF~Hzo4a_hR7f1(`*8ik|cAm9q#&wfO zO)CsT-HV5=YIfvhJWCs;P~uafE7w-SxqP4CgHx7Maxr(6Mi!KrN;%c3cLSyiJ>p6O z&makV2&E*@|fTCadinOT0MqMtTx%09d`T}B` z?x&E>X~9Fj565CwfLA#98u+7DfIU@HO%23P!)s8zVhlTRMaRI33B znKn6ij*#_@@QB>xh^7zIszEL8zyU%QBQP8a&*?(I!@gW_AD1F@|142|xTeCdMVPtr zS%24)EN&P$R~oQNT7(4Skq=_(xrY*QOp0$~45<4r>gPTBaQyPqaZMC~->YNX23 zjzpb>U?sp+qEv_;EqeLOQ4*_siZJOBL~Sg=x{^~8(g=ag-t==n&syoQiu zJAr1G=;)J>A3MMbf)l!xXfd@Y>9Vw=HgXO~OqX>QX@!U586Ks|8^x#WwZg>5s*3q* zxvNSK_i0Ru;MOOifUv~S{i%Y_E`^;Z!eAoX!1Gw;K~8zlNLBIN6s)G>c?9rU5URsv z35gai0BhrVqf<9Bqobk`(NA&Y73<8WdI#P1jT~S993HyqetBxRv@cKB*K#%OMY&U3 zdc~W5*m{Mlt?JL90r+%JHLNRZwD$nk77<*xAmgd^Y4UFC3gMvF7Z>IB z8cX(Ft|*(jK7Wp?SR{TEAMawHrVFk{pv|JfLAqiXR+M^F<@4yZ=Oo&S z>%SbXxr%;mTqwUoV$CnPq7^^0Ax`QTzPUk+YUqQr#-ieujmY!g3A;?%YOI=# zt$7Wk4AsqmDo_h=L@ymTDyb`#++j{HM5pOfF6k$+N+QRV+M5=REl#2Hh4<3>V}+3? zZ1;Adz7v_M^UCf4-mJjv1x^c>MRX13adPLAiKZXCYBVuPyMOqO&_#RxoYUgu+C}n0 zq%0DI@l5G{f(szLLO)h?1}J(tA}A2OUc%{pbRQ>&y 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 Date: Fri, 30 Oct 2020 17:02:30 +0100 Subject: [PATCH 068/103] changed the code to mirror the changed decision in the classification level and prodramme description labels --- .../project/SparkUpdateProjectTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/SparkUpdateProjectTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/SparkUpdateProjectTest.java index cfda7e7181..42e4946816 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/SparkUpdateProjectTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/SparkUpdateProjectTest.java @@ -78,7 +78,7 @@ public class SparkUpdateProjectTest { "-programmePath", getClass() .getResource( - "/eu/dnetlib/dhp/actionmanager/project/preparedProgramme_classification_whole.json.gz") + "/eu/dnetlib/dhp/actionmanager/project/preparedProgramme_whole.json.gz") .getPath(), "-projectPath", getClass().getResource("/eu/dnetlib/dhp/actionmanager/project/prepared_projects.json").getPath(), @@ -124,7 +124,7 @@ public class SparkUpdateProjectTest { .getString(0)); Assertions .assertEquals( - "Societal challenges", + "Societal Challenges", execverification .filter("id = '40|corda__h2020::2c7298913008865ba784e5c1350a0aa5'") .select("classification.level1") @@ -133,7 +133,7 @@ public class SparkUpdateProjectTest { .getString(0)); Assertions .assertEquals( - "Smart, Green And Integrated Transport", + "Transport", execverification .filter("id = '40|corda__h2020::2c7298913008865ba784e5c1350a0aa5'") .select("classification.level2") @@ -188,7 +188,7 @@ public class SparkUpdateProjectTest { .getString(0)); Assertions .assertEquals( - "Nurturing excellence by means of cross-border and cross-sector mobility", + "MSCA Mobility", execverification .filter("id = '40|corda__h2020::1a1f235fdd06ef14790baec159aa1202'") .select("classification.h2020Programme.description") @@ -197,7 +197,7 @@ public class SparkUpdateProjectTest { .getString(0)); Assertions .assertEquals( - "Excellent science", + "Excellent Science", execverification .filter("id = '40|corda__h2020::1a1f235fdd06ef14790baec159aa1202'") .select("classification.level1") @@ -206,7 +206,7 @@ public class SparkUpdateProjectTest { .getString(0)); Assertions .assertEquals( - "Marie Skłodowska-Curie Actions", + "Marie-Sklodowska-Curie Actions", execverification .filter("id = '40|corda__h2020::1a1f235fdd06ef14790baec159aa1202'") .select("classification.level2") @@ -215,7 +215,7 @@ public class SparkUpdateProjectTest { .getString(0)); Assertions .assertEquals( - "Nurturing excellence by means of cross-border and cross-sector mobility", + "MSCA Mobility", execverification .filter("id = '40|corda__h2020::1a1f235fdd06ef14790baec159aa1202'") .select("classification.level3") From 4905739be6d884dc3a5b9ab0078cea49a5e3e3a1 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 17:02:57 +0100 Subject: [PATCH 069/103] changed resource file to mirror change in business logic --- .../project/preparedProgramme_whole.json.gz | Bin 14212 -> 139169 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/project/preparedProgramme_whole.json.gz b/dhp-workflows/dhp-aggregation/src/test/resources/eu/dnetlib/dhp/actionmanager/project/preparedProgramme_whole.json.gz index 1afa730616472d8f4e3f76f078ce753bc9cd6b24..01e804ff5bd749c1e88dddbf0fb95519fe94a1f3 100644 GIT binary patch literal 139169 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

    - * The operation is implemented by sequentially joining one entity type at time (E) with the relationships (R), and - * again by E, finally grouped by E.id; - *

    - * The workflow is organized in different parts aimed to to reduce the complexity of the operation 1) - * PrepareRelationsJob: only consider relationships that are not virtually deleted ($.dataInfo.deletedbyinference == - * false), each entity can be linked at most to 100 other objects - *

    - * 2) JoinRelationEntityByTargetJob: (phase 1): prepare tuples [relation - target entity] (R - T): for each entity type - * E_i map E_i as RelatedEntity T_i to simplify the model and extracting only the necessary information join (R.target = - * T_i.id) save the tuples (R_i, T_i) (phase 2): create the union of all the entity types E, hash by id read the tuples - * (R, T), hash by R.source join E.id = (R, T).source, where E becomes the Source Entity S save the tuples (S, R, T) - *

    - * 3) AdjacencyListBuilderJob: given the tuple (S - R - T) we need to group by S.id -> List [ R - T ], mapping the + * AdjacencyListBuilderJob: given the tuple (S - R - T) we need to group by S.id -> List [ R - T ], mapping the * result as JoinedEntity - *

    - * 4) XmlConverterJob: convert the JoinedEntities as XML records */ public class AdjacencyListBuilderJob { diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/CreateRelatedEntitiesJob_phase1.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/CreateRelatedEntitiesJob_phase1.java index b08e593f73..86d380409d 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/CreateRelatedEntitiesJob_phase1.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/CreateRelatedEntitiesJob_phase1.java @@ -31,26 +31,9 @@ import eu.dnetlib.dhp.schema.oaf.*; import scala.Tuple2; /** - * Joins the graph nodes by resolving the links of distance = 1 to create an adjacency list of linked objects. The - * operation considers all the entity types (publication, dataset, software, ORP, project, datasource, organization, and - * all the possible relationships (similarity links produced by the Dedup process are excluded). - *

    - * The operation is implemented by sequentially joining one entity type at time (E) with the relationships (R), and - * again by E, finally grouped by E.id; - *

    - * The workflow is organized in different parts aimed to to reduce the complexity of the operation 1) - * PrepareRelationsJob: only consider relationships that are not virtually deleted ($.dataInfo.deletedbyinference == - * false), each entity can be linked at most to 100 other objects - *

    - * 2) JoinRelationEntityByTargetJob: (phase 1): prepare tuples [relation - target entity] (R - T): for each entity type - * E_i map E_i as RelatedEntity T_i to simplify the model and extracting only the necessary information join (R.target = - * T_i.id) save the tuples (R_i, T_i) (phase 2): create the union of all the entity types E, hash by id read the tuples - * (R, T), hash by R.source join E.id = (R, T).source, where E becomes the Source Entity S save the tuples (S, R, T) - *

    - * 3) AdjacencyListBuilderJob: given the tuple (S - R - T) we need to group by S.id -> List [ R - T ], mapping the - * result as JoinedEntity - *

    - * 4) XmlConverterJob: convert the JoinedEntities as XML records + * CreateRelatedEntitiesJob: (phase 1): prepare tuples [relation - target entity] (R - T): for each entity type + * E_i map E_i as RelatedEntity T_i to simplify the model and extracting only the necessary information join + * (R.target = T_i.id) save the tuples (R_i, T_i) */ public class CreateRelatedEntitiesJob_phase1 { diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/CreateRelatedEntitiesJob_phase2.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/CreateRelatedEntitiesJob_phase2.java index 7e175121e5..170835fdb2 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/CreateRelatedEntitiesJob_phase2.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/CreateRelatedEntitiesJob_phase2.java @@ -34,26 +34,8 @@ import scala.collection.JavaConverters; import scala.collection.Seq; /** - * Joins the graph nodes by resolving the links of distance = 1 to create an adjacency list of linked objects. The - * operation considers all the entity types (publication, dataset, software, ORP, project, datasource, organization, and - * all the possible relationships (similarity links produced by the Dedup process are excluded). - *

    - * The operation is implemented by sequentially joining one entity type at time (E) with the relationships (R), and - * again by E, finally grouped by E.id; - *

    - * The workflow is organized in different parts aimed to to reduce the complexity of the operation 1) - * PrepareRelationsJob: only consider relationships that are not virtually deleted ($.dataInfo.deletedbyinference == - * false), each entity can be linked at most to 100 other objects - *

    - * 2) JoinRelationEntityByTargetJob: (phase 1): prepare tuples [relation - target entity] (R - T): for each entity type - * E_i map E_i as RelatedEntity T_i to simplify the model and extracting only the necessary information join (R.target = - * T_i.id) save the tuples (R_i, T_i) (phase 2): create the union of all the entity types E, hash by id read the tuples + * CreateRelatedEntitiesJob (phase 2): create the union of all the entity types E, hash by id read the tuples * (R, T), hash by R.source join E.id = (R, T).source, where E becomes the Source Entity S save the tuples (S, R, T) - *

    - * 3) AdjacencyListBuilderJob: given the tuple (S - R - T) we need to group by S.id -> List [ R - T ], mapping the - * result as JoinedEntity - *

    - * 4) XmlConverterJob: convert the JoinedEntities as XML records */ public class CreateRelatedEntitiesJob_phase2 { diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/PrepareRelationsJob.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/PrepareRelationsJob.java index da0a810217..20d27f0f36 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/PrepareRelationsJob.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/PrepareRelationsJob.java @@ -36,26 +36,8 @@ import eu.dnetlib.dhp.schema.oaf.Relation; import scala.Tuple2; /** - * Joins the graph nodes by resolving the links of distance = 1 to create an adjacency list of linked objects. The - * operation considers all the entity types (publication, dataset, software, ORP, project, datasource, organization, and - * all the possible relationships (similarity links produced by the Dedup process are excluded). - *

    - * The operation is implemented by sequentially joining one entity type at time (E) with the relationships (R), and - * again by E, finally grouped by E.id; - *

    - * The workflow is organized in different parts aimed to to reduce the complexity of the operation 1) - * PrepareRelationsJob: only consider relationships that are not virtually deleted ($.dataInfo.deletedbyinference == - * false), each entity can be linked at most to 100 other objects - *

    - * 2) JoinRelationEntityByTargetJob: (phase 1): prepare tuples [relation - target entity] (R - T): for each entity type - * E_i map E_i as RelatedEntity T_i to simplify the model and extracting only the necessary information join (R.target = - * T_i.id) save the tuples (R_i, T_i) (phase 2): create the union of all the entity types E, hash by id read the tuples - * (R, T), hash by R.source join E.id = (R, T).source, where E becomes the Source Entity S save the tuples (S, R, T) - *

    - * 3) AdjacencyListBuilderJob: given the tuple (S - R - T) we need to group by S.id -> List [ R - T ], mapping the - * result as JoinedEntity - *

    - * 4) XmlConverterJob: convert the JoinedEntities as XML records + * PrepareRelationsJob prunes the relationships: only consider relationships that are not virtually deleted + * ($.dataInfo.deletedbyinference == false), each entity can be linked at most to 100 other objects */ public class PrepareRelationsJob { diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlConverterJob.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlConverterJob.java index a1ed7fd2a6..d8eba31b62 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlConverterJob.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/XmlConverterJob.java @@ -37,23 +37,7 @@ import scala.collection.JavaConverters; import scala.collection.Seq; /** - * Joins the graph nodes by resolving the links of distance = 1 to create an adjacency list of linked objects. The - * operation considers all the entity types (publication, dataset, software, ORP, project, datasource, organization, and - * all the possible relationships (similarity links produced by the Dedup process are excluded). - *

    - * The workflow is organized in different parts aimed to to reduce the complexity of the operation 1) - * PrepareRelationsJob: only consider relationships that are not virtually deleted ($.dataInfo.deletedbyinference == - * false), each entity can be linked at most to 100 other objects - *

    - * 2) JoinRelationEntityByTargetJob: (phase 1): prepare tuples [relation - target entity] (R - T): for each entity type - * E_i map E_i as RelatedEntity T_i to simplify the model and extracting only the necessary information join (R.target = - * T_i.id) save the tuples (R_i, T_i) (phase 2): create the union of all the entity types E, hash by id read the tuples - * (R, T), hash by R.source join E.id = (R, T).source, where E becomes the Source Entity S save the tuples (S, R, T) - *

    - * 3) AdjacencyListBuilderJob: given the tuple (S - R - T) we need to group by S.id -> List [ R - T ], mapping the - * result as JoinedEntity - *

    - * 4) XmlConverterJob: convert the JoinedEntities as XML records + * XmlConverterJob converts the JoinedEntities as XML records */ public class XmlConverterJob {

    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 From fbad4988be9d47dd1c99b054a51705ab0d0b0fdc Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Fri, 30 Oct 2020 17:26:17 +0100 Subject: [PATCH 070/103] relClass values should be camel-case --- .../java/eu/dnetlib/dhp/schema/common/ModelConstants.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/common/ModelConstants.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/common/ModelConstants.java index b27fc9267b..d759f0d553 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/common/ModelConstants.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/common/ModelConstants.java @@ -39,15 +39,15 @@ public class ModelConstants { public static final String IS_SUPPLEMENT_TO = "isSupplementTo"; public static final String IS_SUPPLEMENTED_BY = "isSupplementedBy"; public static final String PART = "part"; - public static final String IS_PART_OF = "IsPartOf"; - public static final String HAS_PARTS = "HasParts"; + public static final String IS_PART_OF = "isPartOf"; + public static final String HAS_PARTS = "hasParts"; public static final String RELATIONSHIP = "relationship"; public static final String CITATION = "citation"; public static final String CITES = "cites"; - public static final String IS_CITED_BY = "IsCitedBy"; + public static final String IS_CITED_BY = "isCitedBy"; public static final String REVIEW = "review"; public static final String REVIEWS = "reviews"; - public static final String IS_REVIEWED_BY = "IsReviewedBy"; + public static final String IS_REVIEWED_BY = "isReviewedBy"; public static final String RESULT_PROJECT = "resultProject"; public static final String OUTCOME = "outcome"; From dabb33e018748d70fe3f7eb20cc3c00978173cb4 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 30 Oct 2020 17:52:22 +0100 Subject: [PATCH 071/103] changed the discriminant for which split the file --- .../src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index f64c38489e..5366b1f150 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -84,7 +84,7 @@ public class MakeTar implements Serializable { final long numberOfSplits = sourceSize / bytesPerSplit; - if (numberOfSplits <= 1) { + if (numberOfSplits < 2) { write(fileSystem, inputPath, outputPath + ".tar", dir_name); } else { int partNum = 0; From 39337d8a8a172a49120fa4aff16258f0d58c1f2d Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Mon, 2 Nov 2020 09:26:25 +0100 Subject: [PATCH 072/103] fixed test --- .../eu/dnetlib/dhp/doiboost/QueryTest.scala | 2 ++ .../dhp/export/ExportDLITOOAFTest.scala | 20 +++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/dhp-workflows/dhp-doiboost/src/test/java/eu/dnetlib/dhp/doiboost/QueryTest.scala b/dhp-workflows/dhp-doiboost/src/test/java/eu/dnetlib/dhp/doiboost/QueryTest.scala index 2437195490..b3402ee9f4 100644 --- a/dhp-workflows/dhp-doiboost/src/test/java/eu/dnetlib/dhp/doiboost/QueryTest.scala +++ b/dhp-workflows/dhp-doiboost/src/test/java/eu/dnetlib/dhp/doiboost/QueryTest.scala @@ -38,6 +38,8 @@ class QueryTest { def myQuery(spark:SparkSession, sc:SparkContext): Unit = { implicit val mapEncoderPub: Encoder[Publication] = Encoders.kryo[Publication] + + val mapper = new ObjectMapper() mapper.getSerializationConfig.enable(SerializationConfig.Feature.INDENT_OUTPUT) diff --git a/dhp-workflows/dhp-graph-provision-scholexplorer/src/test/java/eu/dnetlib/dhp/export/ExportDLITOOAFTest.scala b/dhp-workflows/dhp-graph-provision-scholexplorer/src/test/java/eu/dnetlib/dhp/export/ExportDLITOOAFTest.scala index cb04cf9e95..c62d169bc8 100644 --- a/dhp-workflows/dhp-graph-provision-scholexplorer/src/test/java/eu/dnetlib/dhp/export/ExportDLITOOAFTest.scala +++ b/dhp-workflows/dhp-graph-provision-scholexplorer/src/test/java/eu/dnetlib/dhp/export/ExportDLITOOAFTest.scala @@ -3,14 +3,15 @@ package eu.dnetlib.dhp.export import java.time.LocalDateTime import java.time.format.DateTimeFormatter +import eu.dnetlib.dhp.provision.scholix.Scholix +import eu.dnetlib.dhp.provision.scholix.summary.ScholixSummary import eu.dnetlib.dhp.schema.oaf.Relation import eu.dnetlib.dhp.schema.scholexplorer.{DLIDataset, DLIPublication} - import org.codehaus.jackson.map.{ObjectMapper, SerializationConfig} import org.junit.jupiter.api.Test import scala.io.Source - +import scala.collection.JavaConverters._ class ExportDLITOOAFTest { val mapper = new ObjectMapper() @@ -22,12 +23,27 @@ class ExportDLITOOAFTest { } + def extractDatasources(s:Scholix):List[String]= { + s.getTarget.getCollectedFrom.asScala.map(c => c.getProvider.getName)(collection.breakOut) + } + + + def extractDatasources(s:ScholixSummary):List[String] = { + + s.getDatasources.asScala.map(c => c.getDatasourceName)(collection.breakOut) + + + } + + @Test def testMappingRele():Unit = { val r:Relation = new Relation r.setSource("60|fbff1d424e045eecf24151a5fe3aa738") r.setTarget("50|dedup_wf_001::ec409f09e63347d4e834087fe1483877") + r.setRelType("IsReferencedBy") + val r1 =DLIToOAF.convertDLIRelation(r) println(r1.getSource, r1.getTarget) From 754c86f33e292bc2c52331130e8187c774235a88 Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Mon, 2 Nov 2020 09:35:01 +0100 Subject: [PATCH 073/103] fixed test to work on jenkins --- .../dhp/sx/graph/SparkScholexplorerAggregationTest.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/sx/graph/SparkScholexplorerAggregationTest.scala b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/sx/graph/SparkScholexplorerAggregationTest.scala index 4d83057f2e..373683190a 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/sx/graph/SparkScholexplorerAggregationTest.scala +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/sx/graph/SparkScholexplorerAggregationTest.scala @@ -30,7 +30,7 @@ class SparkScholexplorerAggregationTest { implicit val pubEncoder: Encoder[DLIPublication] = Encoders.kryo[DLIPublication] - val spark: SparkSession = SparkSession.builder().appName("Test").master("local[*]").getOrCreate() + val spark: SparkSession = SparkSession.builder().appName("Test").master("local[*]").config("spark.driver.bindAddress", "127.0.0.1").getOrCreate() val ds: Dataset[DLIPublication] = spark.createDataset(spark.sparkContext.parallelize(s)).as[DLIPublication] From 5310e56dba5b70a1510b6325b00f6b717d01762b Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Tue, 3 Nov 2020 11:52:10 +0100 Subject: [PATCH 074/103] remove empy PIDs --- .../dhp/oa/graph/clean/CleaningFunctions.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java index 84f88003b2..12543d8c7e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java @@ -18,6 +18,7 @@ import eu.dnetlib.dhp.schema.oaf.*; public class CleaningFunctions { public static final String ORCID_PREFIX_REGEX = "^http(s?):\\/\\/orcid\\.org\\/"; + public static final String NONE = "none"; public static T fixVocabularyNames(T value) { if (value instanceof Datasource) { @@ -106,6 +107,23 @@ public class CleaningFunctions { .filter(sp -> StringUtils.isNotBlank(sp.getQualifier().getClassid())) .collect(Collectors.toList())); } + if (Objects.nonNull(r.getPid())) { + r + .setPid( + r + .getPid() + .stream() + .filter(Objects::nonNull) + .filter(sp -> StringUtils.isNotBlank(StringUtils.trim(sp.getValue()))) + .filter(sp -> NONE.equalsIgnoreCase(sp.getValue())) + .filter(sp -> Objects.nonNull(sp.getQualifier())) + .filter(sp -> StringUtils.isNotBlank(sp.getQualifier().getClassid())) + .map(sp -> { + sp.setValue(StringUtils.trim(sp.getValue())); + return sp; + }) + .collect(Collectors.toList())); + } if (Objects.isNull(r.getResourcetype()) || StringUtils.isBlank(r.getResourcetype().getClassid())) { r .setResourcetype( From d4382b54df454f6550efe4c724dddfcadbf99b51 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 3 Nov 2020 16:54:50 +0100 Subject: [PATCH 075/103] moved the tar archive with maz size on common module --- .../eu/dnetlib/dhp/common/MakeTarArchive.java | 119 ++++++++++++++++++ .../community_infrastructure_schema.json | 38 ++++++ .../dump_whole/schema/context_schema.json | 38 ------ 3 files changed, 157 insertions(+), 38 deletions(-) create mode 100644 dhp-common/src/main/java/eu/dnetlib/dhp/common/MakeTarArchive.java create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/context_schema.json diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/MakeTarArchive.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/MakeTarArchive.java new file mode 100644 index 0000000000..5dff1d0a8f --- /dev/null +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/MakeTarArchive.java @@ -0,0 +1,119 @@ +package eu.dnetlib.dhp.common; + +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; +import org.apache.hadoop.fs.*; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.Serializable; + +public class MakeTarArchive implements Serializable { + + private static TarArchiveOutputStream getTar(FileSystem fileSystem, String outputPath) throws IOException { + Path hdfsWritePath = new Path(outputPath); + FSDataOutputStream fsDataOutputStream = null; + if (fileSystem.exists(hdfsWritePath)) { + fileSystem.delete(hdfsWritePath, true); + + } + fsDataOutputStream = fileSystem.create(hdfsWritePath); + + return new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); + } + + private static void write(FileSystem fileSystem, String inputPath, String outputPath, String dir_name) + throws IOException { + + Path hdfsWritePath = new Path(outputPath); + FSDataOutputStream fsDataOutputStream = null; + if (fileSystem.exists(hdfsWritePath)) { + fileSystem.delete(hdfsWritePath, true); + + } + fsDataOutputStream = fileSystem.create(hdfsWritePath); + + TarArchiveOutputStream ar = new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); + + RemoteIterator fileStatusListIterator = fileSystem + .listFiles( + new Path(inputPath), true); + + while (fileStatusListIterator.hasNext()) { + writeCurrentFile(fileSystem, dir_name, fileStatusListIterator, ar, 0); + } + + ar.close(); + } + + public static void tarMaxSize(FileSystem fileSystem, String inputPath, String outputPath, String dir_name, + int gBperSplit) throws IOException { + final long bytesPerSplit = 1024L * 1024L * 1024L * gBperSplit; + + long sourceSize = fileSystem.getContentSummary(new Path(inputPath)).getSpaceConsumed(); + + if (sourceSize < bytesPerSplit) { + write(fileSystem, inputPath, outputPath + ".tar", dir_name); + } else { + int partNum = 0; + + RemoteIterator fileStatusListIterator = fileSystem + .listFiles( + new Path(inputPath), true); + boolean next = fileStatusListIterator.hasNext(); + while (next) { + TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + (partNum + 1) + ".tar"); + + long current_size = 0; + while (next && current_size < bytesPerSplit) { + current_size = writeCurrentFile(fileSystem, dir_name, fileStatusListIterator, ar, current_size); + next = fileStatusListIterator.hasNext(); + + } + + partNum += 1; + ar.close(); + } + + } + + } + + private static long writeCurrentFile(FileSystem fileSystem, String dir_name, + RemoteIterator fileStatusListIterator, + TarArchiveOutputStream ar, long current_size) throws IOException { + LocatedFileStatus fileStatus = fileStatusListIterator.next(); + + Path p = fileStatus.getPath(); + String p_string = p.toString(); + if (!p_string.endsWith("_SUCCESS")) { + String name = p_string.substring(p_string.lastIndexOf("/") + 1); + if (name.trim().equalsIgnoreCase("communities_infrastructures")) { + name = "communities_infrastructures.json"; + } + TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); + entry.setSize(fileStatus.getLen()); + current_size += fileStatus.getLen(); + ar.putArchiveEntry(entry); + + InputStream is = fileSystem.open(fileStatus.getPath()); + + BufferedInputStream bis = new BufferedInputStream(is); + + int count; + byte data[] = new byte[1024]; + while ((count = bis.read(data, 0, data.length)) != -1) { + ar.write(data, 0, count); + } + bis.close(); + ar.closeArchiveEntry(); + + } + return current_size; + } + + + + +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json new file mode 100644 index 0000000000..9fc338224b --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the research community/ research infrastructure" + }, + "id": { + "type": "string", + "description": "OpenAIRE id of the research community/ research infrastructure" + }, + "name": { + "type": "string", + "description": "The long name of the community" + }, + "originalId": { + "type": "string", + "description": "The acronym of the community" + }, + "subject": { + "description": "Description of subject", + "type": "array", + "items": { + "type": "string", + "description": "Only for research communities: the list of the subjects associated to the research community" + } + }, + "type": { + "type": "string", + "description": "The type of the record (research community/research infrastructure)" + }, + "zenodo_community": { + "type": "string", + "description": "The id of the Zenodo communities associated to the research community/Research infrastructure" + } + } +} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/context_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/context_schema.json deleted file mode 100644 index ba6609a50e..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/context_schema.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "description": { - "type": "string", - "description": "Description of description" - }, - "id": { - "type": "string", - "description": "Description of id" - }, - "name": { - "type": "string", - "description": "Description of name" - }, - "originalId": { - "type": "string", - "description": "Description of originalId" - }, - "subject": { - "description": "Description of subject", - "type": "array", - "items": { - "type": "string", - "description": "Description of subject" - } - }, - "type": { - "type": "string", - "description": "Description of type" - }, - "zenodo_community": { - "type": "string", - "description": "Description of zenodo_community" - } - } -} \ No newline at end of file From 7d95a5e2b4ce7b3d1aa73ca57e9d9eb81f6d2374 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 3 Nov 2020 16:55:13 +0100 Subject: [PATCH 076/103] refactoring --- .../schema/dump/oaf/graph/ResearchInitiative.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/ResearchInitiative.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/ResearchInitiative.java index ed690acdff..ad4ad8877b 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/ResearchInitiative.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/ResearchInitiative.java @@ -4,12 +4,17 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; /** - * To represent entity of type RC/RI. It has the following parameters, which are mostly derived by the profile - private + * To represent entity of type RC/RI. It has the following parameters, which are mostly derived by the profile + * - private * String id to store the openaire id for the entity. Is has as code 00 and will be created as - * 00|context_____::md5(originalId) private String originalId to store the id of the context as provided in the profile - * (i.e. mes) private String name to store the name of the context (got from the label attribute in the context - * definition) private String type to store the type of the context (i.e.: research initiative or research community) - * private String description to store the description of the context as given in the profile private String + * 00|context_____::md5(originalId) private + * String originalId to store the id of the context as provided in the profile + * (i.e. mes) + * - private String name to store the name of the context (got from the label attribute in the context + * definition) + * - private String type to store the type of the context (i.e.: research initiative or research community) + * - private String description to store the description of the context as given in the profile + * -private String * zenodo_community to store the zenodo community associated to the context (main zenodo community) */ public class ResearchInitiative implements Serializable { From cbbb1bdc5499b5176b91236a6638b69ab8e8fa99 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 3 Nov 2020 16:55:50 +0100 Subject: [PATCH 077/103] moved business logic to new class in common for handling the zip of hte archives --- .../eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 256 +++++++++--------- 1 file changed, 131 insertions(+), 125 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index 5366b1f150..7d8013c53d 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -2,7 +2,9 @@ package eu.dnetlib.dhp.oa.graph.dump; import java.io.*; +import java.util.Optional; +import eu.dnetlib.dhp.common.MakeTarArchive; import org.apache.commons.compress.archivers.ar.ArArchiveEntry; import org.apache.commons.compress.archivers.ar.ArArchiveOutputStream; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; @@ -39,16 +41,20 @@ public class MakeTar implements Serializable { final String inputPath = parser.get("sourcePath"); log.info("input path : {}", inputPath); + final int gBperSplit = Optional.ofNullable(parser.get("splitSize")) + .map(Integer::valueOf) + .orElse(10); + Configuration conf = new Configuration(); conf.set("fs.defaultFS", hdfsNameNode); FileSystem fileSystem = FileSystem.get(conf); - makeTArArchive(fileSystem, inputPath, outputPath); + makeTArArchive(fileSystem, inputPath, outputPath, gBperSplit); } - public static void makeTArArchive(FileSystem fileSystem, String inputPath, String outputPath) throws IOException { + public static void makeTArArchive(FileSystem fileSystem, String inputPath, String outputPath, int gBperSplit) throws IOException { RemoteIterator dir_iterator = fileSystem.listLocatedStatus(new Path(inputPath)); @@ -59,132 +65,132 @@ public class MakeTar implements Serializable { String p_string = p.toString(); String entity = p_string.substring(p_string.lastIndexOf("/") + 1); - writeMaxSize(fileSystem, p_string, outputPath + "/" + entity, entity, 10); + MakeTarArchive.tarMaxSize(fileSystem, p_string, outputPath + "/" + entity, entity, gBperSplit); } } - private static TarArchiveOutputStream getTar(FileSystem fileSystem, String outputPath) throws IOException { - Path hdfsWritePath = new Path(outputPath); - FSDataOutputStream fsDataOutputStream = null; - if (fileSystem.exists(hdfsWritePath)) { - fileSystem.delete(hdfsWritePath, true); - - } - fsDataOutputStream = fileSystem.create(hdfsWritePath); - - return new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); - } - - private static void writeMaxSize(FileSystem fileSystem, String inputPath, String outputPath, String dir_name, - int gBperSplit) throws IOException { - final long bytesPerSplit = 1024L * 1024L * 1024L * gBperSplit; - - long sourceSize = fileSystem.getContentSummary(new Path(inputPath)).getSpaceConsumed(); - - final long numberOfSplits = sourceSize / bytesPerSplit; - - if (numberOfSplits < 2) { - write(fileSystem, inputPath, outputPath + ".tar", dir_name); - } else { - int partNum = 0; - - RemoteIterator fileStatusListIterator = fileSystem - .listFiles( - new Path(inputPath), true); - boolean next = fileStatusListIterator.hasNext(); - while (sourceSize > 0 && next) { - TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + (partNum + 1) + ".tar"); - - long current_size = 0; - while (next && current_size < bytesPerSplit) { - LocatedFileStatus fileStatus = fileStatusListIterator.next(); - - Path p = fileStatus.getPath(); - String p_string = p.toString(); - if (!p_string.endsWith("_SUCCESS")) { - String name = p_string.substring(p_string.lastIndexOf("/") + 1); - if (name.trim().equalsIgnoreCase("communities_infrastructures")) { - name = "communities_infrastructures.json"; - } - TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); - entry.setSize(fileStatus.getLen()); - current_size += fileStatus.getLen(); - ar.putArchiveEntry(entry); - - InputStream is = fileSystem.open(fileStatus.getPath()); - - BufferedInputStream bis = new BufferedInputStream(is); - - int count; - byte data[] = new byte[1024]; - while ((count = bis.read(data, 0, data.length)) != -1) { - ar.write(data, 0, count); - } - bis.close(); - ar.closeArchiveEntry(); - - } - next = fileStatusListIterator.hasNext(); - - } - sourceSize = sourceSize - current_size; - partNum += 1; - ar.close(); - } - - } - - } - - private static void write(FileSystem fileSystem, String inputPath, String outputPath, String dir_name) - throws IOException { - - Path hdfsWritePath = new Path(outputPath); - FSDataOutputStream fsDataOutputStream = null; - if (fileSystem.exists(hdfsWritePath)) { - fileSystem.delete(hdfsWritePath, true); - - } - fsDataOutputStream = fileSystem.create(hdfsWritePath); - - TarArchiveOutputStream ar = new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); - - RemoteIterator fileStatusListIterator = fileSystem - .listFiles( - new Path(inputPath), true); - - while (fileStatusListIterator.hasNext()) { - LocatedFileStatus fileStatus = fileStatusListIterator.next(); - - Path p = fileStatus.getPath(); - String p_string = p.toString(); - if (!p_string.endsWith("_SUCCESS")) { - String name = p_string.substring(p_string.lastIndexOf("/") + 1); - if (name.trim().equalsIgnoreCase("communities_infrastructures")) { - name = "communities_infrastructures.json"; - } - TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); - entry.setSize(fileStatus.getLen()); - ar.putArchiveEntry(entry); - - InputStream is = fileSystem.open(fileStatus.getPath()); - - BufferedInputStream bis = new BufferedInputStream(is); - - int count; - byte data[] = new byte[1024]; - while ((count = bis.read(data, 0, data.length)) != -1) { - ar.write(data, 0, count); - } - bis.close(); - ar.closeArchiveEntry(); - - } - - } - - ar.close(); - } +// private static TarArchiveOutputStream getTar(FileSystem fileSystem, String outputPath) throws IOException { +// Path hdfsWritePath = new Path(outputPath); +// FSDataOutputStream fsDataOutputStream = null; +// if (fileSystem.exists(hdfsWritePath)) { +// fileSystem.delete(hdfsWritePath, true); +// +// } +// fsDataOutputStream = fileSystem.create(hdfsWritePath); +// +// return new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); +// } +// +// private static void writeMaxSize(FileSystem fileSystem, String inputPath, String outputPath, String dir_name, +// int gBperSplit) throws IOException { +// final long bytesPerSplit = 1024L * 1024L * 1024L * gBperSplit; +// +// long sourceSize = fileSystem.getContentSummary(new Path(inputPath)).getSpaceConsumed(); +// +// final long numberOfSplits = sourceSize / bytesPerSplit; +// +// if (numberOfSplits < 2) { +// write(fileSystem, inputPath, outputPath + ".tar", dir_name); +// } else { +// int partNum = 0; +// +// RemoteIterator fileStatusListIterator = fileSystem +// .listFiles( +// new Path(inputPath), true); +// boolean next = fileStatusListIterator.hasNext(); +// while (sourceSize > 0 && next) { +// TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + (partNum + 1) + ".tar"); +// +// long current_size = 0; +// while (next && current_size < bytesPerSplit) { +// LocatedFileStatus fileStatus = fileStatusListIterator.next(); +// +// Path p = fileStatus.getPath(); +// String p_string = p.toString(); +// if (!p_string.endsWith("_SUCCESS")) { +// String name = p_string.substring(p_string.lastIndexOf("/") + 1); +// if (name.trim().equalsIgnoreCase("communities_infrastructures")) { +// name = "communities_infrastructures.json"; +// } +// TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); +// entry.setSize(fileStatus.getLen()); +// current_size += fileStatus.getLen(); +// ar.putArchiveEntry(entry); +// +// InputStream is = fileSystem.open(fileStatus.getPath()); +// +// BufferedInputStream bis = new BufferedInputStream(is); +// +// int count; +// byte data[] = new byte[1024]; +// while ((count = bis.read(data, 0, data.length)) != -1) { +// ar.write(data, 0, count); +// } +// bis.close(); +// ar.closeArchiveEntry(); +// +// } +// next = fileStatusListIterator.hasNext(); +// +// } +// sourceSize = sourceSize - current_size; +// partNum += 1; +// ar.close(); +// } +// +// } +// +// } +// +// private static void write(FileSystem fileSystem, String inputPath, String outputPath, String dir_name) +// throws IOException { +// +// Path hdfsWritePath = new Path(outputPath); +// FSDataOutputStream fsDataOutputStream = null; +// if (fileSystem.exists(hdfsWritePath)) { +// fileSystem.delete(hdfsWritePath, true); +// +// } +// fsDataOutputStream = fileSystem.create(hdfsWritePath); +// +// TarArchiveOutputStream ar = new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); +// +// RemoteIterator fileStatusListIterator = fileSystem +// .listFiles( +// new Path(inputPath), true); +// +// while (fileStatusListIterator.hasNext()) { +// LocatedFileStatus fileStatus = fileStatusListIterator.next(); +// +// Path p = fileStatus.getPath(); +// String p_string = p.toString(); +// if (!p_string.endsWith("_SUCCESS")) { +// String name = p_string.substring(p_string.lastIndexOf("/") + 1); +// if (name.trim().equalsIgnoreCase("communities_infrastructures")) { +// name = "communities_infrastructures.json"; +// } +// TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); +// entry.setSize(fileStatus.getLen()); +// ar.putArchiveEntry(entry); +// +// InputStream is = fileSystem.open(fileStatus.getPath()); +// +// BufferedInputStream bis = new BufferedInputStream(is); +// +// int count; +// byte data[] = new byte[1024]; +// while ((count = bis.read(data, 0, data.length)) != -1) { +// ar.write(data, 0, count); +// } +// bis.close(); +// ar.closeArchiveEntry(); +// +// } +// +// } +// +// ar.close(); +// } } From 7d2eda43ca7929f7cb4d1514b364c7e0a7b84b2c Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 3 Nov 2020 16:57:01 +0100 Subject: [PATCH 078/103] added new non mandatory property publish to determine if to publish the upload or leave it pending. Default value flase --- .../eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java | 7 ++++++- .../eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java index 058048ba74..23cd274494 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java @@ -42,6 +42,10 @@ public class SendToZenodoHDFS implements Serializable { final String concept_rec_id = Optional .ofNullable(parser.get("conceptRecordId")) .orElse(null); + final Boolean publish = Optional + .ofNullable(parser.get("publish")) + .map(Boolean::valueOf) + .orElse(false); final String depositionId = Optional.ofNullable(parser.get("depositionId")).orElse(null); final String communityMapPath = parser.get("communityMapPath"); @@ -96,7 +100,8 @@ public class SendToZenodoHDFS implements Serializable { } zenodoApiClient.sendMretadata(metadata); - zenodoApiClient.publish(); + if (publish) + zenodoApiClient.publish(); } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json index 7632c76cd8..683b6f4b73 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/upload_zenodo.json @@ -53,5 +53,11 @@ "paramLongName":"metadata", "paramDescription": "metadata associated to the deposition", "paramRequired": false -} +}, + { + "paramName":"p", + "paramLongName":"publish", + "paramDescription": "if to publish the upload", + "paramRequired": false + } ] \ No newline at end of file From 08806deddf0e4c0ede9226954a021635ecd217fc Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 3 Nov 2020 16:57:34 +0100 Subject: [PATCH 079/103] added the splitSize non mandatory parameter. Default size 10G --- .../dnetlib/dhp/oa/graph/dump/input_maketar_parameters.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/input_maketar_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/input_maketar_parameters.json index 83967e2821..a153188651 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/input_maketar_parameters.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/input_maketar_parameters.json @@ -17,6 +17,12 @@ "paramLongName":"nameNode", "paramDescription": "the name node", "paramRequired": true + }, + { + "paramName":"ss", + "paramLongName":"splitSize", + "paramDescription": "the maximum size of the archive", + "paramRequired": false } ] From c209284ca75725b266dee31aa82c3f7746477d14 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 3 Nov 2020 16:58:08 +0100 Subject: [PATCH 080/103] new schemas for the entities in the dump with added descriptions --- .../dump_whole/schema/datasource_schema.json | 94 ++--- .../schema/organization_schema.json | 31 +- .../dump_whole/schema/project_schema.json | 93 ++--- .../dump_whole/schema/relation_schema.json | 33 +- .../dump_whole/schema/result_schema.json | 380 +++++------------- 5 files changed, 198 insertions(+), 433 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json index f492620ee2..3fbb2266e0 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json @@ -5,32 +5,30 @@ "type": "object", "properties": { "scheme": { - "type": "string", - "description": "Description of scheme" + "type": "string" }, "value": { - "type": "string", - "description": "Description of value" + "type": "string" } - } + }, + "description": "To represent the information described by a scheme and a value in that scheme (i.e. pid)" } }, "type": "object", "properties": { "accessrights": { "type": "string", - "description": "Description of accessrights" + "description": "The database access type: {open, restricted or closed}" }, "certificates": { "type": "string", "description": "Description of certificates" }, "citationguidelineurl": { - "type": "string", - "description": "Description of citationguidelineurl" + "type": "string" }, "contenttypes": { - "description": "Description of contenttypes", + "description": "OpenDoar specific fileds ", "type": "array", "items": { "type": "string", @@ -39,7 +37,7 @@ }, "databaseaccessrestriction": { "type": "string", - "description": "Description of databaseaccessrestriction" + "description": "One of {feeRequired, registration, other}" }, "datasourcetype": { "allOf": [ @@ -47,114 +45,102 @@ "$ref": "#/definitions/ControlledField" }, { - "description": "Description of datasourcetype" + "description": "The type of the datasource. See https://api.openaire.eu/vocabularies/dnet:datasource_typologies" } ] }, "datauploadrestriction": { "type": "string", - "description": "Description of datauploadrestriction" + "description": "One of {feeRequired, registration, other}" }, "dateofvalidation": { "type": "string", - "description": "Description of dateofvalidation" + "description": "The date of last validation against the OpenAIRE guidelines for the datasource records" }, "description": { - "type": "string", - "description": "Description of description" + "type": "string" }, "englishname": { "type": "string", - "description": "Description of englishname" + "description": "The English name of the datasource" }, "id": { "type": "string", - "description": "Description of id" + "description": "The OpenAIRE id of the resource" }, "journal": { "type": "object", "properties": { "conferencedate": { - "type": "string", - "description": "Description of conferencedate" + "type": "string" }, "conferenceplace": { - "type": "string", - "description": "Description of conferenceplace" + "type": "string" }, "edition": { "type": "string", - "description": "Description of edition" + "description": "Edition of the journal or conference proceeding" }, "ep": { "type": "string", - "description": "Description of ep" + "description": "End page" }, "iss": { - "type": "string", - "description": "Description of iss" + "type": "string" }, "issnLinking": { - "type": "string", - "description": "Description of issnLinking" + "type": "string" }, "issnOnline": { - "type": "string", - "description": "Description of issnOnline" + "type": "string" }, "issnPrinted": { - "type": "string", - "description": "Description of issnPrinted" + "type": "string" }, "name": { "type": "string", - "description": "Description of name" + "description": "Name of the journal or conference" }, "sp": { "type": "string", - "description": "Description of sp" + "description": "Start page" }, "vol": { - "type": "string", - "description": "Description of vol" + "type": "string" } }, "description": "Description of journal" }, "languages": { - "description": "Description of languages", + "description": "OpenDOAR specific field", "type": "array", "items": { - "type": "string", - "description": "Description of languages" + "type": "string" } }, "logourl": { - "type": "string", - "description": "Description of logourl" + "type": "string" }, "missionstatementurl": { - "type": "string", - "description": "Description of missionstatementurl" + "type": "string" }, "officialname": { "type": "string", - "description": "Description of officialname" + "description": "The official name of the datasource" }, "openairecompatibility": { "type": "string", - "description": "Description of openairecompatibility" + "description": "Information about the OpenAIRE compatibility of the ingested results (which guidelines they are compliant to)" }, "originalId": { - "description": "Description of originalId", + "description": "Original identifiers for the datasource" "type": "array", "items": { - "type": "string", - "description": "Description of originalId" + "type": "string" } }, "pid": { - "description": "Description of pid", + "description": "Persistent identifiers for the datasource", "type": "array", "items": { "allOf": [ @@ -187,24 +173,22 @@ "description": "Description of releasestartdate" }, "subjects": { - "description": "Description of subjects", + "description": "List of subjects associated to the datasource", "type": "array", "items": { - "type": "string", - "description": "Description of subjects" + "type": "string" } }, "uploadrights": { "type": "string", - "description": "Description of uploadrights" + "description": "One of {open, restricted or closed}" }, "versioning": { "type": "boolean", "description": "Description of versioning" }, "websiteurl": { - "type": "string", - "description": "Description of websiteurl" + "type": "string" } } -} \ No newline at end of file +} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/organization_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/organization_schema.json index 3477c8370b..16afa386d5 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/organization_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/organization_schema.json @@ -3,11 +3,10 @@ "type": "object", "properties": { "alternativenames": { - "description": "Description of alternativenames", + "description": "Alternative names that identify the organisation", "type": "array", "items": { - "type": "string", - "description": "Description of alternativenames" + "type": "string" } }, "country": { @@ -15,48 +14,44 @@ "properties": { "code": { "type": "string", - "description": "Description of code" + "description": "The organisation country code" }, "label": { "type": "string", - "description": "Description of label" + "description": "The organisation country label" } }, - "description": "Description of country" + "description": "The country of the organisation" }, "id": { "type": "string", - "description": "Description of id" + "description": "The OpenAIRE id for the organisation" }, "legalname": { - "type": "string", - "description": "Description of legalname" + "type": "string" }, "legalshortname": { - "type": "string", - "description": "Description of legalshortname" + "type": "string" }, "pid": { - "description": "Description of pid", + "description": "Persistent identifiers for the organisation i.e. isni 0000000090326370", "type": "array", "items": { "type": "object", "properties": { "scheme": { "type": "string", - "description": "Description of scheme" + "description": "The scheme of the identifier (i.e. isni)" }, "value": { "type": "string", - "description": "Description of value" + "description": "the value in the schema (i.e. 0000000090326370)" } - }, - "description": "Description of pid" + } } }, "websiteurl": { - "type": "string", - "description": "Description of websiteurl" + "type": "string" } } } \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json index 9aba19f172..6fe11ec0c0 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json @@ -3,23 +3,20 @@ "type": "object", "properties": { "acronym": { - "type": "string", - "description": "Description of acronym" + "type": "string" }, "callidentifier": { - "type": "string", - "description": "Description of callidentifier" + "type": "string" }, "code": { "type": "string", - "description": "Description of code" + "description": "The grant agreement" }, "enddate": { - "type": "string", - "description": "Description of enddate" + "type": "string" }, "funding": { - "description": "Description of funding", + "description": "Funding information for the project", "type": "array", "items": { "type": "object", @@ -29,29 +26,27 @@ "properties": { "description": { "type": "string", - "description": "Description of description" + "description": "Description of the funding stream" }, "id": { "type": "string", - "description": "Description of id" + "description": "Id of the funding stream" } - }, - "description": "Description of funding_stream" + } }, "jurisdiction": { "type": "string", - "description": "Description of jurisdiction" + "description": "The jurisdiction of the funder (i.e. EU)" }, "name": { "type": "string", - "description": "Description of name" + "description": "The name of the funder (European Commission)" }, "shortName": { "type": "string", - "description": "Description of shortName" + "description": "The short name of the funder (EC)" } - }, - "description": "Description of funding" + } } }, "granted": { @@ -59,76 +54,66 @@ "properties": { "currency": { "type": "string", - "description": "Description of currency" + "description": "The currency of the granted amount" }, "fundedamount": { "type": "number", - "description": "Description of fundedamount" + "description": "The funded amount" }, "totalcost": { "type": "number", - "description": "Description of totalcost" + "description": "The total cost" } }, - "description": "Description of granted" + "description": "The funded amount for the project" }, - "id": { - "type": "string", - "description": "Description of id" - }, - "keywords": { - "type": "string", - "description": "Description of keywords" - }, - "openaccessmandatefordataset": { - "type": "boolean", - "description": "Description of openaccessmandatefordataset" - }, - "openaccessmandateforpublications": { - "type": "boolean", - "description": "Description of openaccessmandateforpublications" - }, - "programme": { - "description": "Description of programme", + "h2020programme": { + "description": "The h2020 programme the project is funded under", "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", - "description": "Description of code" + "description": "The code of the programme" }, "description": { "type": "string", - "description": "Description of description" + "description": "The description of the programme" } - }, - "description": "Description of programme" + } } }, - "startdate": { + "id": { "type": "string", - "description": "Description of startdate" + "description": "OpenAIRE id for the project" + }, + "keywords": { + "type": "string" + }, + "openaccessmandatefordataset": { + "type": "boolean" + }, + "openaccessmandateforpublications": { + "type": "boolean" + }, + "startdate": { + "type": "string" }, "subject": { - "description": "Description of subject", "type": "array", "items": { - "type": "string", - "description": "Description of subject" + "type": "string" } }, "summary": { - "type": "string", - "description": "Description of summary" + "type": "string" }, "title": { - "type": "string", - "description": "Description of title" + "type": "string" }, "websiteurl": { - "type": "string", - "description": "Description of websiteurl" + "type": "string" } } } \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json index 95a80d5cfe..53cc3238ba 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json @@ -6,11 +6,11 @@ "properties": { "id": { "type": "string", - "description": "Description of id" + "description": "The OpenAIRE id of the entity" }, "type": { "type": "string", - "description": "Description of type" + "description": "The type of the entity (i.e. organisation)" } } } @@ -22,47 +22,38 @@ "properties": { "provenance": { "type": "string", - "description": "Description of provenance" + "description": "The reason why OpenAIRE holds the relation " }, "trust": { "type": "string", - "description": "Description of trust" + "description": "The trust of the relation" } - }, - "description": "Description of provenance" + } }, "reltype": { "type": "object", "properties": { "name": { "type": "string", - "description": "Description of name" + "description": "the semantics of the relation (i.e. isAuthorInstitutionOf)" }, "type": { "type": "string", - "description": "Description of type" + "description": "the type of the relation (i.e. affiliation)" } }, - "description": "Description of reltype" + "description": "To represent the semantics of the generic relation between two entities" }, "source": { "allOf": [ - { - "$ref": "#/definitions/Node" - }, - { - "description": "Description of source" - } + {"$ref": "#/definitions/Node"}, + {"description": "The node source in the relation"} ] }, "target": { "allOf": [ - { - "$ref": "#/definitions/Node" - }, - { - "description": "Description of target" - } + {"$ref": "#/definitions/Node"}, + {"description": "The node target in the relation"} ] } } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/result_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/result_schema.json index 59708639bd..867fd5a779 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/result_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/result_schema.json @@ -1,207 +1,152 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { - "AccessRight": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Description of code" - }, - "label": { - "type": "string", - "description": "Description of label" - }, - "scheme": { - "type": "string", - "description": "Description of scheme" - } - } - }, "ControlledField": { "type": "object", "properties": { "scheme": { - "type": "string", - "description": "Description of scheme" + "type": "string" }, "value": { - "type": "string", - "description": "Description of value" + "type": "string" } - } - }, - "KeyValue": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Description of key" - }, - "value": { - "type": "string", - "description": "Description of value" - } - } + }, + "description": "To represent the information described by a scheme and a value in that scheme (i.e. pid)" }, "Provenance": { "type": "object", "properties": { "provenance": { "type": "string", - "description": "Description of provenance" + "description": "The process that produced/provided the information" }, "trust": { - "type": "string", - "description": "Description of trust" + "type": "string" } - } + }, + "description": "Indicates the process that produced (or provided) the information, and the trust associated to the information" } }, "type": "object", "properties": { "author": { - "description": "Description of author", "type": "array", "items": { "type": "object", "properties": { - "affiliation": { - "description": "Description of affiliation", - "type": "array", - "items": { - "type": "string", - "description": "Description of affiliation" - } - }, "fullname": { - "type": "string", - "description": "Description of fullname" + "type": "string" }, "name": { - "type": "string", - "description": "Description of name" + "type": "string" }, "pid": { "type": "object", "properties": { "id": { "allOf": [ - { - "$ref": "#/definitions/ControlledField" - }, - { - "description": "Description of id" - } + {"$ref": "#/definitions/ControlledField"}, + {"description": "The author's id and scheme. OpenAIRE currently supports 'ORCID'"} ] }, "provenance": { "allOf": [ - { - "$ref": "#/definitions/Provenance" - }, - { - "description": "Description of provenance" - } + {"$ref": "#/definitions/Provenance"}, + {"description": "Provenance of author's pid"} ] } - }, - "description": "Description of pid" + } }, "rank": { - "type": "integer", - "description": "Description of rank" + "type": "integer" }, "surname": { - "type": "string", - "description": "Description of surname" + "type": "string" } - }, - "description": "Description of author" + } } }, "bestaccessright": { - "allOf": [ - { - "$ref": "#/definitions/AccessRight" + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "COAR access mode code: http://vocabularies.coar-repositories.org/documentation/access_rights/" }, - { - "description": "Description of bestaccessright" + "label": { + "type": "string", + "description": "Label for the access mode" + }, + "scheme": { + "type": "string", + "description": "Scheme of reference for access right code. Always set to COAR access rights vocabulary: http://vocabularies.coar-repositories.org/documentation/access_rights/" } - ] + }, + "description": "The openest access right associated to the manifestations of this research results" }, "codeRepositoryUrl": { "type": "string", - "description": "Description of codeRepositoryUrl" + "description": "Only for results with type 'software': the URL to the repository with the source code" }, "contactgroup": { - "description": "Description of contactgroup", + "description": "Only for results with type 'software': Information on the group responsible for providing further information regarding the resource", "type": "array", "items": { - "type": "string", - "description": "Description of contactgroup" + "type": "string" } }, "contactperson": { - "description": "Description of contactperson", + "description": "Only for results with type 'software': Information on the person responsible for providing further information regarding the resource", "type": "array", "items": { - "type": "string", - "description": "Description of contactperson" + "type": "string" } }, "container": { "type": "object", "properties": { "conferencedate": { - "type": "string", - "description": "Description of conferencedate" + "type": "string" }, "conferenceplace": { - "type": "string", - "description": "Description of conferenceplace" + "type": "string" }, "edition": { "type": "string", - "description": "Description of edition" + "description": "Edition of the journal or conference proceeding" }, "ep": { "type": "string", - "description": "Description of ep" + "description": "End page" }, "iss": { "type": "string", - "description": "Description of iss" + "description": "Journal issue" }, "issnLinking": { - "type": "string", - "description": "Description of issnLinking" + "type": "string" }, "issnOnline": { - "type": "string", - "description": "Description of issnOnline" + "type": "string" }, "issnPrinted": { - "type": "string", - "description": "Description of issnPrinted" + "type": "string" }, "name": { "type": "string", - "description": "Description of name" + "description": "Name of the journal or conference" }, "sp": { "type": "string", - "description": "Description of sp" + "description": "start page" }, "vol": { - "type": "string", - "description": "Description of vol" + "type": "string" } }, - "description": "Description of container" + "description": "Container has information about the conference or journal where the result has been presented or published" }, "contributor": { - "description": "Description of contributor", "type": "array", "items": { "type": "string", @@ -209,312 +154,177 @@ } }, "country": { - "description": "Description of country", "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", - "description": "Description of code" + "description": "ISO 3166-1 alpha-2 country code" }, "label": { - "type": "string", - "description": "Description of label" + "type": "string" }, "provenance": { "allOf": [ - { - "$ref": "#/definitions/Provenance" - }, - { - "description": "Description of provenance" - } + {"$ref": "#/definitions/Provenance"}, + {"description": "Why this result is associated to the country."} ] } - }, - "description": "Description of country" + } } }, "coverage": { - "description": "Description of coverage", "type": "array", "items": { - "type": "string", - "description": "Description of coverage" + "type": "string" } }, "dateofcollection": { "type": "string", - "description": "Description of dateofcollection" + "description": "When OpenAIRE collected the record the last time" }, "description": { - "description": "Description of description", "type": "array", "items": { - "type": "string", - "description": "Description of description" + "type": "string" } }, "documentationUrl": { - "description": "Description of documentationUrl", + "description": "Only for results with type 'software': URL to the software documentation", "type": "array", "items": { - "type": "string", - "description": "Description of documentationUrl" + "type": "string" } }, "embargoenddate": { "type": "string", - "description": "Description of embargoenddate" - }, - "externalReference": { - "description": "Description of externalReference", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Description of name" - }, - "provenance": { - "allOf": [ - { - "$ref": "#/definitions/Provenance" - }, - { - "description": "Description of provenance" - } - ] - }, - "typology": { - "type": "string", - "description": "Description of typology" - }, - "value": { - "type": "string", - "description": "Description of value" - } - }, - "description": "Description of externalReference" - } + "description": "Date when the embargo ends and this result turns Open Access" }, "format": { - "description": "Description of format", "type": "array", "items": { - "type": "string", - "description": "Description of format" + "type": "string" } }, "geolocation": { - "description": "Description of geolocation", + "description": "Geolocation information", "type": "array", "items": { "type": "object", "properties": { "box": { - "type": "string", - "description": "Description of box" + "type": "string" }, "place": { - "type": "string", - "description": "Description of place" + "type": "string" }, "point": { - "type": "string", - "description": "Description of point" + "type": "string" } - }, - "description": "Description of geolocation" + } } }, "id": { "type": "string", - "description": "Description of id" - }, - "instance": { - "description": "Description of instance", - "type": "array", - "items": { - "type": "object", - "properties": { - "accessright": { - "allOf": [ - { - "$ref": "#/definitions/AccessRight" - }, - { - "description": "Description of accessright" - } - ] - }, - "collectedfrom": { - "allOf": [ - { - "$ref": "#/definitions/KeyValue" - }, - { - "description": "Description of collectedfrom" - } - ] - }, - "hostedby": { - "allOf": [ - { - "$ref": "#/definitions/KeyValue" - }, - { - "description": "Description of hostedby" - } - ] - }, - "license": { - "type": "string", - "description": "Description of license" - }, - "publicationdate": { - "type": "string", - "description": "Description of publicationdate" - }, - "refereed": { - "type": "string", - "description": "Description of refereed" - }, - "type": { - "type": "string", - "description": "Description of type" - }, - "url": { - "description": "Description of url", - "type": "array", - "items": { - "type": "string", - "description": "Description of url" - } - } - }, - "description": "Description of instance" - } + "description": "OpenAIRE Identifier" }, "language": { "type": "object", "properties": { "code": { "type": "string", - "description": "Description of code" + "description": "alpha-3/ISO 639-2 code of the language" }, "label": { "type": "string", - "description": "Description of label" + "description": "English label" } - }, - "description": "Description of language" + } }, "lastupdatetimestamp": { "type": "integer", - "description": "Description of lastupdatetimestamp" + "description": "Timestamp of last update of the record in OpenAIRE" }, "maintitle": { - "type": "string", - "description": "Description of maintitle" + "type": "string" }, "originalId": { - "description": "Description of originalId", + "description": "Identifiers of the record at the original sources", "type": "array", "items": { - "type": "string", - "description": "Description of originalId" + "type": "string" } }, "pid": { - "description": "Description of pid", + "description": "Persistent identifiers of the result", "type": "array", "items": { "allOf": [ - { - "$ref": "#/definitions/ControlledField" - }, - { - "description": "Description of pid" - } + {"$ref": "#/definitions/ControlledField"}, + {"description": "scheme: list of available schemes are at https://api.openaire.eu/vocabularies/dnet:pid_types, value: the PID of the result "} ] } }, "programmingLanguage": { "type": "string", - "description": "Description of programmingLanguage" + "description": "Only for results with type 'software': the programming language" }, "publicationdate": { - "type": "string", - "description": "Description of publicationdate" + "type": "string" }, "publisher": { - "type": "string", - "description": "Description of publisher" + "type": "string" }, "size": { "type": "string", - "description": "Description of size" + "description": "Only for results with type 'dataset': the declared size of the dataset" }, "source": { - "description": "Description of source", + "description": "See definition of Dublin Core field dc:source", "type": "array", "items": { - "type": "string", - "description": "Description of source" + "type": "string" } }, "subjects": { - "description": "Description of subjects", + "description": "Keywords associated to the result", "type": "array", "items": { "type": "object", "properties": { "provenance": { "allOf": [ - { - "$ref": "#/definitions/Provenance" - }, - { - "description": "Description of provenance" - } + {"$ref": "#/definitions/Provenance"}, + {"description": "Why this subject is associated to the result"} ] }, "subject": { "allOf": [ - { - "$ref": "#/definitions/ControlledField" - }, - { - "description": "Description of subject" - } + {"$ref": "#/definitions/ControlledField"}, + {"description": "OpenAIRE subject classification scheme (https://api.openaire.eu/vocabularies/dnet:subject_classification_typologies) and value. When the scheme is 'keyword', it means that the subject is free-text (i.e. not a term from a controlled vocabulary)."}, ] } - }, - "description": "Description of subjects" + } } }, "subtitle": { - "type": "string", - "description": "Description of subtitle" + "type": "string" }, "tool": { - "description": "Description of tool", + "description": "Only for results with type 'other': tool useful for the interpretation and/or re-used of the research product", "type": "array", "items": { - "type": "string", - "description": "Description of tool" + "type": "string" } }, "type": { "type": "string", - "description": "Description of type" + "description": "Type of the result: one of 'publication', 'dataset', 'software', 'other' (see also https://api.openaire.eu/vocabularies/dnet:result_typologies)" }, "version": { "type": "string", - "description": "Description of version" + "description": "Version of the result" } } -} \ No newline at end of file +} From c010a8442f8b90f6bca7971ab67a0d6dfe787e7e Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Tue, 3 Nov 2020 17:26:51 +0100 Subject: [PATCH 081/103] fixed issue on test code --- .../src/test/java/eu/dnetlib/dhp/oa/graph/dump/MakeTarTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/MakeTarTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/MakeTarTest.java index 0de4c8338a..51e4e10338 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/MakeTarTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/MakeTarTest.java @@ -54,7 +54,7 @@ public class MakeTarTest { String inputPath = workingDir + "/zenodo/"; - MakeTar.makeTArArchive(fs, inputPath, "/tmp/out"); + MakeTar.makeTArArchive(fs, inputPath, "/tmp/out", 0); } } From 66efb396341f0e077edacbfdd45779feb7bb17a6 Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Wed, 4 Nov 2020 09:04:01 +0100 Subject: [PATCH 082/103] implemented merge scholix --- .../httpconnector/HttpConnectorTest.java | 1 - .../provision/SparkGenerateScholixIndex.scala | 36 +++++++- .../dhp/provision/scholix/Scholix.java | 88 ++++++++++++++++++- .../dhp/sx/provision/oozie_app/workflow.xml | 2 +- 4 files changed, 119 insertions(+), 8 deletions(-) diff --git a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/httpconnector/HttpConnectorTest.java b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/httpconnector/HttpConnectorTest.java index 9370efdb34..90b3919ed9 100644 --- a/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/httpconnector/HttpConnectorTest.java +++ b/dhp-workflows/dhp-aggregation/src/test/java/eu/dnetlib/dhp/actionmanager/project/httpconnector/HttpConnectorTest.java @@ -9,7 +9,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; - @Disabled public class HttpConnectorTest { diff --git a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/SparkGenerateScholixIndex.scala b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/SparkGenerateScholixIndex.scala index dbf6de05f3..d39e38bfcc 100644 --- a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/SparkGenerateScholixIndex.scala +++ b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/SparkGenerateScholixIndex.scala @@ -6,11 +6,36 @@ import eu.dnetlib.dhp.provision.scholix.summary.ScholixSummary import eu.dnetlib.dhp.schema.oaf.Relation import org.apache.commons.io.IOUtils import org.apache.spark.SparkConf +import org.apache.spark.sql.expressions.Aggregator import org.apache.spark.sql.{Dataset, Encoder, Encoders, SaveMode, SparkSession} object SparkGenerateScholixIndex { + + def getScholixAggregator(): Aggregator[(String, Scholix), Scholix, Scholix] = new Aggregator[(String, Scholix), Scholix, Scholix]{ + + override def zero: Scholix = new Scholix() + + override def reduce(b: Scholix, a: (String, Scholix)): Scholix = { + b.mergeFrom(a._2) + b + } + + override def merge(wx: Scholix, wy: Scholix): Scholix = { + wx.mergeFrom(wy) + wx + } + override def finish(reduction: Scholix): Scholix = reduction + + override def bufferEncoder: Encoder[Scholix] = + Encoders.kryo(classOf[Scholix]) + + override def outputEncoder: Encoder[Scholix] = + Encoders.kryo(classOf[Scholix]) + } + + def main(args: Array[String]): Unit = { val parser = new ArgumentApplicationParser(IOUtils.toString(SparkGenerateScholixIndex.getClass.getResourceAsStream("/eu/dnetlib/dhp/provision/input_generate_summary_parameters.json"))) parser.parseArgument(args) @@ -40,7 +65,7 @@ object SparkGenerateScholixIndex { (relation.getTarget, Scholix.generateScholixWithSource(summary,relation)) - }).write.mode(SaveMode.Overwrite).save(s"$workingDirPath/scholix_source") + }).repartition(6000).write.mode(SaveMode.Overwrite).save(s"$workingDirPath/scholix_source") val sTarget:Dataset[(String,Scholix)] = spark.read.load(s"$workingDirPath/scholix_source").as[(String, Scholix)] @@ -53,9 +78,16 @@ object SparkGenerateScholixIndex { scholix.generateIdentifier() scholix.generatelinkPublisher() scholix - }).write.mode(SaveMode.Overwrite).save(s"$workingDirPath/scholix") + }).repartition(6000).write.mode(SaveMode.Overwrite).save(s"$workingDirPath/scholix_r") + val finalScholix:Dataset[Scholix] = spark.read.load(s"$workingDirPath/scholix_r").as[Scholix] + + finalScholix.map(d => (d.getIdentifier, d))(Encoders.tuple(Encoders.STRING, scholixEncoder)) + .groupByKey(_._1)(Encoders.STRING) + .agg(getScholixAggregator().toColumn) + .map(p => p._2) + .write.mode(SaveMode.Overwrite).save(s"$workingDirPath/scholix") } diff --git a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/scholix/Scholix.java b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/scholix/Scholix.java index d714155131..6ea8ff735c 100644 --- a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/scholix/Scholix.java +++ b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/scholix/Scholix.java @@ -5,6 +5,8 @@ import java.io.Serializable; import java.util.*; import java.util.stream.Collectors; +import org.apache.commons.lang3.StringUtils; + import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.dhp.provision.scholix.summary.ScholixSummary; @@ -91,13 +93,91 @@ public class Scholix implements Serializable { s.setSource(ScholixResource.fromSummary(scholixSummary)); s.setIdentifier(rel.getTarget()); - // ScholixResource mockTarget = new ScholixResource(); - // mockTarget.setDnetIdentifier(rel.getTarget()); - // s.setTarget(mockTarget); - // s.generateIdentifier(); return s; } + private List mergeScholixEntityId(final List a, final List b) { + final List m = new ArrayList<>(a); + if (b != null) + b.forEach(s -> { + int tt = (int) m.stream().filter(t -> t.getName().equalsIgnoreCase(s.getName())).count(); + if (tt == 0) { + m.add(s); + } + }); + return m; + } + + private List mergeScholixIdnetifier(final List a, + final List b) { + final List m = new ArrayList<>(a); + if (b != null) + b.forEach(s -> { + int tt = (int) m.stream().filter(t -> t.getIdentifier().equalsIgnoreCase(s.getIdentifier())).count(); + if (tt == 0) { + m.add(s); + } + }); + return m; + } + + private List mergeScholixCollectedFrom(final List a, + final List b) { + final List m = new ArrayList<>(a); + if (b != null) + b.forEach(s -> { + int tt = (int) m + .stream() + .filter(t -> t.getProvider().getName().equalsIgnoreCase(s.getProvider().getName())) + .count(); + if (tt == 0) { + m.add(s); + } + }); + return m; + } + + private ScholixRelationship mergeRelationships(final ScholixRelationship a, final ScholixRelationship b) { + ScholixRelationship result = new ScholixRelationship(); + result.setName(StringUtils.isEmpty(a.getName()) ? b.getName() : a.getName()); + result.setInverse(StringUtils.isEmpty(a.getInverse()) ? b.getInverse() : a.getInverse()); + result.setSchema(StringUtils.isEmpty(a.getSchema()) ? b.getSchema() : a.getSchema()); + return result; + } + + private ScholixResource mergeResource(final ScholixResource a, final ScholixResource b) { + + final ScholixResource result = new ScholixResource(); + result.setCollectedFrom(mergeScholixCollectedFrom(a.getCollectedFrom(), b.getCollectedFrom())); + result.setCreator(mergeScholixEntityId(a.getCreator(), b.getCreator())); + result + .setDnetIdentifier( + StringUtils.isBlank(a.getDnetIdentifier()) ? b.getDnetIdentifier() : a.getDnetIdentifier()); + result.setIdentifier(mergeScholixIdnetifier(a.getIdentifier(), b.getIdentifier())); + result.setObjectType(StringUtils.isNotBlank(a.getObjectType()) ? a.getObjectType() : b.getObjectType()); + result + .setObjectSubType( + StringUtils.isNotBlank(a.getObjectSubType()) ? a.getObjectSubType() : b.getObjectSubType()); + result.setPublisher(mergeScholixEntityId(a.getPublisher(), b.getPublisher())); + result + .setPublicationDate( + StringUtils.isNotBlank(a.getPublicationDate()) ? a.getPublicationDate() : b.getPublicationDate()); + result.setTitle(StringUtils.isNotBlank(a.getTitle()) ? a.getTitle() : b.getTitle()); + return result; + + } + + public void mergeFrom(final Scholix other) { + linkprovider = mergeScholixEntityId(linkprovider, other.getLinkprovider()); + publisher = mergeScholixEntityId(publisher, other.getPublisher()); + if (StringUtils.isEmpty(publicationDate)) + publicationDate = other.getPublicationDate(); + relationship = mergeRelationships(relationship, other.getRelationship()); + source = mergeResource(source, other.getSource()); + target = mergeResource(target, other.getTarget()); + generateIdentifier(); + } + public void generatelinkPublisher() { Set publisher = new HashSet<>(); if (source.getPublisher() != null) diff --git a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/provision/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/provision/oozie_app/workflow.xml index 83c70fa255..c2c2a78fb3 100644 --- a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/provision/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/provision/oozie_app/workflow.xml @@ -108,7 +108,7 @@ -m yarn-cluster --workingPath${workingDirPath} - + From f6ab238f5d3440bc16a618c59783d510a32bc99b Mon Sep 17 00:00:00 2001 From: Alessia Bardi Date: Wed, 4 Nov 2020 11:50:47 +0100 Subject: [PATCH 083/103] Updated descriptions --- .../schema/community_infrastructure_schema.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json index 9fc338224b..d2f1792125 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json @@ -4,11 +4,11 @@ "properties": { "description": { "type": "string", - "description": "Description of the research community/ research infrastructure" + "description": "Description of the research community/research infrastructure" }, "id": { "type": "string", - "description": "OpenAIRE id of the research community/ research infrastructure" + "description": "OpenAIRE id of the research community/research infrastructure" }, "name": { "type": "string", @@ -19,20 +19,19 @@ "description": "The acronym of the community" }, "subject": { - "description": "Description of subject", + "description": "Only for research communities: the list of the subjects associated to the research community", "type": "array", "items": { - "type": "string", - "description": "Only for research communities: the list of the subjects associated to the research community" + "type": "string" } }, "type": { "type": "string", - "description": "The type of the record (research community/research infrastructure)" + "description": "One of {Research Community, Research infrastructure}" }, "zenodo_community": { "type": "string", - "description": "The id of the Zenodo communities associated to the research community/Research infrastructure" + "description": "The URL of the Zenodo community associated to the Research community/Research infrastructure" } } } \ No newline at end of file From 0abe0eee33c05ea0f61852953b105a8ecaf19f50 Mon Sep 17 00:00:00 2001 From: Alessia Bardi Date: Wed, 4 Nov 2020 12:15:30 +0100 Subject: [PATCH 084/103] Updated descriptions --- .../dump_whole/schema/datasource_schema.json | 58 +++++++++---------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json index 3fbb2266e0..b9c15d9219 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json @@ -18,26 +18,26 @@ "properties": { "accessrights": { "type": "string", - "description": "The database access type: {open, restricted or closed}" + "description": "Type of access to the data source, as defined by re3data.org. Possible values: {open, restricted, closed}" }, "certificates": { "type": "string", - "description": "Description of certificates" + "description": "The certificate, seal or standard the data source complies with. As defined by re3data.org." }, "citationguidelineurl": { - "type": "string" + "type": "string", + "description":"The URL of the data source providing information on how to cite its items. As defined by re3data.org." }, "contenttypes": { - "description": "OpenDoar specific fileds ", + "description": "Types of content in the data source, as defined by OpenDOAR", "type": "array", "items": { - "type": "string", - "description": "Description of contenttypes" + "type": "string" } }, "databaseaccessrestriction": { "type": "string", - "description": "One of {feeRequired, registration, other}" + "description": "Access restrinctions to the data source, as defined by re3data.org. One of {feeRequired, registration, other}" }, "datasourcetype": { "allOf": [ @@ -51,7 +51,7 @@ }, "datauploadrestriction": { "type": "string", - "description": "One of {feeRequired, registration, other}" + "description": "Upload restrictions applied by the datasource, as defined by re3data.org. One of {feeRequired, registration, other}" }, "dateofvalidation": { "type": "string", @@ -66,7 +66,7 @@ }, "id": { "type": "string", - "description": "The OpenAIRE id of the resource" + "description": "The OpenAIRE id of the data source" }, "journal": { "type": "object", @@ -78,15 +78,15 @@ "type": "string" }, "edition": { - "type": "string", - "description": "Edition of the journal or conference proceeding" + "type": "string" }, "ep": { "type": "string", "description": "End page" }, "iss": { - "type": "string" + "type": "string", + "description": "Issue number" }, "issnLinking": { "type": "string" @@ -98,21 +98,21 @@ "type": "string" }, "name": { - "type": "string", - "description": "Name of the journal or conference" + "type": "string" }, "sp": { "type": "string", "description": "Start page" }, "vol": { - "type": "string" + "type": "string", + "description": "Volume" } }, - "description": "Description of journal" + "description": "Information about the journal, if this data source is of type Journal." }, "languages": { - "description": "OpenDOAR specific field", + "description": "The languages present in the data source's content, as defined by OpenDOAR.", "type": "array", "items": { "type": "string" @@ -122,7 +122,8 @@ "type": "string" }, "missionstatementurl": { - "type": "string" + "type": "string", + "description":"The URL of a mission statement describing the designated community of the data source. As defined by re3data.org" }, "officialname": { "type": "string", @@ -130,7 +131,7 @@ }, "openairecompatibility": { "type": "string", - "description": "Information about the OpenAIRE compatibility of the ingested results (which guidelines they are compliant to)" + "description": "OpenAIRE guidelines the data source comply with. See also https://guidelines.openaire.eu." }, "originalId": { "description": "Original identifiers for the datasource" @@ -140,37 +141,34 @@ } }, "pid": { - "description": "Persistent identifiers for the datasource", + "description": "Persistent identifiers of the datasource", "type": "array", "items": { "allOf": [ { "$ref": "#/definitions/ControlledField" - }, - { - "description": "Description of pid" } ] } }, "pidsystems": { "type": "string", - "description": "Description of pidsystems" + "description": "The persistent identifier system that is used by the data source. As defined by re3data.org" }, "policies": { - "description": "Description of policies", + "description": "Policies of the data source, as defined in OpenDOAR.", "type": "array", "items": { - "description": "Description of policies" + "type": "string" } }, "releaseenddate": { "type": "string", - "description": "Description of releaseenddate" + "description": "Date when the data source went offline or stopped ingesting new research data. As defined by re3data.org" }, "releasestartdate": { "type": "string", - "description": "Description of releasestartdate" + "description": "Releasing date of the data source, as defined by re3data.org" }, "subjects": { "description": "List of subjects associated to the datasource", @@ -181,11 +179,11 @@ }, "uploadrights": { "type": "string", - "description": "One of {open, restricted or closed}" + "description": "Type of data upload. As defined by re3data.org: one of {open, restricted,closed}" }, "versioning": { "type": "boolean", - "description": "Description of versioning" + "description": "As defined by redata.org: 'yes' if the data source supports versioning, 'no' otherwise." }, "websiteurl": { "type": "string" From e6becf8659b578d951db5a7358bce6d72836f868 Mon Sep 17 00:00:00 2001 From: Alessia Bardi Date: Wed, 4 Nov 2020 12:17:57 +0100 Subject: [PATCH 085/103] Updated descriptions --- .../dhp/oa/graph/dump_whole/schema/project_schema.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json index 6fe11ec0c0..c81187258e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json @@ -10,7 +10,7 @@ }, "code": { "type": "string", - "description": "The grant agreement" + "description": "The grant agreement number" }, "enddate": { "type": "string" @@ -54,7 +54,7 @@ "properties": { "currency": { "type": "string", - "description": "The currency of the granted amount" + "description": "The currency of the granted amount (e.g. EUR)" }, "fundedamount": { "type": "number", @@ -62,13 +62,13 @@ }, "totalcost": { "type": "number", - "description": "The total cost" + "description": "The total cost of the project" } }, - "description": "The funded amount for the project" + "description": "The money granted to the project" }, "h2020programme": { - "description": "The h2020 programme the project is funded under", + "description": "The h2020 programme funding the project", "type": "array", "items": { "type": "object", From 51808b5afdb290f4891b8e6b34086460eb5578f0 Mon Sep 17 00:00:00 2001 From: Alessia Bardi Date: Wed, 4 Nov 2020 12:29:48 +0100 Subject: [PATCH 086/103] Updated descriptions --- .../dhp/oa/graph/dump_whole/schema/relation_schema.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json index 53cc3238ba..7c7de9c98d 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json @@ -26,7 +26,7 @@ }, "trust": { "type": "string", - "description": "The trust of the relation" + "description": "The trust of the relation in the range of [0,1]. Where greater the number, more the trust. Harvested relationships have typically a high trust (0.9). The trust of inferred relationship is calculated by the inference algorithm that generated them, as described in https://graph.openaire.eu/about#architecture (Enrichment --> Mining)" } } }, @@ -35,14 +35,14 @@ "properties": { "name": { "type": "string", - "description": "the semantics of the relation (i.e. isAuthorInstitutionOf)" + "description": "The semantics of the relation (i.e. isAuthorInstitutionOf). " }, "type": { "type": "string", "description": "the type of the relation (i.e. affiliation)" } }, - "description": "To represent the semantics of the generic relation between two entities" + "description": "To represent the semantics of a relation between two entities" }, "source": { "allOf": [ From 16c54a96f819999a4d73d3faaa024778beb826fb Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:11:32 +0100 Subject: [PATCH 087/103] removed pid dump --- .../oa/graph/dump/pid/ResultOrganization.java | 28 --- .../dhp/oa/graph/dump/pid/ResultPidsList.java | 43 ----- .../dhp/oa/graph/dump/pid/ResultProject.java | 35 ---- .../dump/pid/SparkCollectPreparedInfo.java | 80 -------- .../graph/dump/pid/SparkDumpOrganization.java | 87 --------- .../oa/graph/dump/pid/SparkDumpPidAuthor.java | 142 -------------- .../oa/graph/dump/pid/SparkDumpPidResult.java | 82 -------- .../oa/graph/dump/pid/SparkDumpProject.java | 90 --------- .../SparkDumpResultOrganizationRelation.java | 132 ------------- .../pid/SparkDumpResultProjectRelation.java | 129 ------------- .../dump/pid/SparkDumpResultRelation.java | 175 ------------------ .../dump/pid/SparkPrepareResultPids.java | 127 ------------- 12 files changed, 1150 deletions(-) delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultOrganization.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultPidsList.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultProject.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkCollectPreparedInfo.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpOrganization.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidAuthor.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidResult.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpProject.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultOrganizationRelation.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultProjectRelation.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultRelation.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkPrepareResultPids.java diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultOrganization.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultOrganization.java deleted file mode 100644 index 7a3129d518..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultOrganization.java +++ /dev/null @@ -1,28 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import java.io.Serializable; -import java.util.List; - -import eu.dnetlib.dhp.schema.oaf.StructuredProperty; - -public class ResultOrganization implements Serializable { - private String resultId; - private List orgPids; - - public String getResultId() { - return resultId; - } - - public void setResultId(String resultId) { - this.resultId = resultId; - } - - public List getOrgPid() { - return orgPids; - } - - public void setOrgPid(List pid) { - this.orgPids = pid; - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultPidsList.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultPidsList.java deleted file mode 100644 index d66c839b7f..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultPidsList.java +++ /dev/null @@ -1,43 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import java.io.Serializable; -import java.util.List; - -import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; - -/** - * Needed to create relations between pids in the result. The list of resultAllowedPids will produce relation of type - * source hasOtherMaterialization target (and vice-versa) where source will be identified by one of the pids in the list - * and target by another. A couple of relation between every two nodes. The list of authorAllowedPids will produce - * relation of type source hasAuthor target and target isAuthorOf source for every couple of nodes in result and author. - */ -public class ResultPidsList implements Serializable { - private String resultId; - private List resultAllowedPids; - private List> authorAllowedPids; - - public String getResultId() { - return resultId; - } - - public void setResultId(String resultId) { - this.resultId = resultId; - } - - public List getResultAllowedPids() { - return resultAllowedPids; - } - - public void setResultAllowedPids(List resultAllowedPids) { - this.resultAllowedPids = resultAllowedPids; - } - - public List> getAuthorAllowedPids() { - return authorAllowedPids; - } - - public void setAuthorAllowedPids(List> authorAllowedPids) { - this.authorAllowedPids = authorAllowedPids; - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultProject.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultProject.java deleted file mode 100644 index aff9143aee..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/ResultProject.java +++ /dev/null @@ -1,35 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import java.io.Serializable; -import java.util.List; - -public class ResultProject implements Serializable { - private String resultId; - private String code; - private List fundings; - - public String getResultId() { - return resultId; - } - - public void setResultId(String resultId) { - this.resultId = resultId; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public List getFundings() { - return fundings; - } - - public void setFundings(List fundings) { - this.fundings = fundings; - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkCollectPreparedInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkCollectPreparedInfo.java deleted file mode 100644 index 079e65ebd3..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkCollectPreparedInfo.java +++ /dev/null @@ -1,80 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -import javax.rmi.CORBA.Util; - -import org.apache.commons.io.IOUtils; -import org.apache.spark.SparkConf; -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 com.google.gson.Gson; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; -import eu.dnetlib.dhp.schema.oaf.Result; - -public class SparkCollectPreparedInfo implements Serializable { - private static final Logger log = LoggerFactory.getLogger(SparkCollectPreparedInfo.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkCollectPreparedInfo.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("preparedInfoPath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - collectAndSave(spark, inputPath, outputPath); - - }); - - } - - private static void collectAndSave(SparkSession spark, String inputPath, String outputPath) { - - Utils - .readPath(spark, inputPath + "/publication", ResultPidsList.class) - .union(Utils.readPath(spark, inputPath + "/dataset", ResultPidsList.class)) - .union(Utils.readPath(spark, inputPath + "/software", ResultPidsList.class)) - .union(Utils.readPath(spark, inputPath + "/otherresearchproduct", ResultPidsList.class)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath); - } - -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpOrganization.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpOrganization.java deleted file mode 100644 index c686e2aaea..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpOrganization.java +++ /dev/null @@ -1,87 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -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.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 com.google.gson.Gson; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; -import eu.dnetlib.dhp.schema.oaf.Organization; - -public class SparkDumpOrganization implements Serializable { - - private static final Logger log = LoggerFactory.getLogger(SparkDumpOrganization.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkDumpOrganization.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("sourcePath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - final List allowedOrgPid = new Gson().fromJson(parser.get("allowedOrganizationPids"), List.class); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - dumpPidOrgs(spark, allowedOrgPid, inputPath, outputPath); - - }); - - } - - private static void dumpPidOrgs(SparkSession spark, List allowedOrgPid, String inputPath, - String outputPath) { - Dataset resultPids = Utils.readPath(spark, inputPath, Organization.class); - - resultPids.flatMap((FlatMapFunction) r -> { - List ret = new ArrayList<>(); - r.getPid().forEach(pid -> { - if (allowedOrgPid.contains(pid.getQualifier().getClassid().toLowerCase())) { - ret.add(Entity.newInstance(pid.getQualifier().getClassid() + ":" + pid.getValue())); - } - }); - return ret.iterator(); - }, Encoders.bean(Entity.class)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath + "/organization"); - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidAuthor.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidAuthor.java deleted file mode 100644 index 701bb77d5c..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidAuthor.java +++ /dev/null @@ -1,142 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.apache.commons.io.IOUtils; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.function.FilterFunction; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.api.java.function.MapFunction; -import org.apache.spark.sql.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; -import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; -import eu.dnetlib.dhp.schema.oaf.OtherResearchProduct; -import eu.dnetlib.dhp.schema.oaf.Publication; -import eu.dnetlib.dhp.schema.oaf.Software; - -public class SparkDumpPidAuthor implements Serializable { - - private static final Logger log = LoggerFactory.getLogger(SparkDumpPidAuthor.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkDumpPidAuthor.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("sourcePath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - final List allowedAuthorPids = new Gson().fromJson(parser.get("allowedAuthorPids"), List.class); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - dumpPidAuthor(spark, inputPath, outputPath, allowedAuthorPids); - - }); - - } - - private static void dumpPidAuthor(SparkSession spark, String inputPath, String outputPath, List aap) { - Dataset publication = Utils.readPath(spark, inputPath + "/publication", Publication.class); - Dataset dataset = Utils - .readPath(spark, inputPath + "/dataset", eu.dnetlib.dhp.schema.oaf.Dataset.class); - Dataset software = Utils.readPath(spark, inputPath + "/software", Software.class); - Dataset other = Utils - .readPath(spark, inputPath + "/otherresearchproduct", OtherResearchProduct.class); - - publication.createOrReplaceTempView("publication"); - dataset.createOrReplaceTempView("dataset"); - software.createOrReplaceTempView("software"); - other.createOrReplaceTempView("other"); - - Dataset pids = spark - .sql( - "SELECT DISTINCT apid.value value , apid.qualifier.classid key " + - "FROM publication " + - "LATERAL VIEW EXPLODE (author) a as auth " + - "LATERAL VIEW EXPLODE (auth.pid) p as apid ") - .as(Encoders.bean(KeyValue.class)) - .union( - spark - .sql( - "SELECT DISTINCT apid.value value , apid.qualifier.classid key " + - "FROM dataset " + - "LATERAL VIEW EXPLODE (author) a as auth " + - "LATERAL VIEW EXPLODE (auth.pid) p as apid ") - .as(Encoders.bean(KeyValue.class))) - .union( - spark - .sql( - "SELECT DISTINCT apid.value value , apid.qualifier.classid key " + - "FROM software " + - "LATERAL VIEW EXPLODE (author) a as auth " + - "LATERAL VIEW EXPLODE (auth.pid) p as apid ") - .as(Encoders.bean(KeyValue.class))) - .union( - spark - .sql( - "SELECT DISTINCT apid.value value , apid.qualifier.classid key " + - "FROM other " + - "LATERAL VIEW EXPLODE (author) a as auth " + - "LATERAL VIEW EXPLODE (auth.pid) p as apid ") - .as(Encoders.bean(KeyValue.class))); - - pids.createOrReplaceTempView("pids"); - - spark - .sql( - "Select distinct key, value " + - "FROM pids") - .as(Encoders.bean(KeyValue.class)) - .filter((FilterFunction) p -> aap.contains(p.getKey())) - .map( - (MapFunction) pid -> Entity.newInstance(pid.getKey() + ":" + pid.getValue()), - Encoders.bean(Entity.class)) - .write() - -// resultPids.flatMap((FlatMapFunction) r-> { -// List ret = new ArrayList<>(); -// r.getAuthorAllowedPids().forEach(pid -> { -// ret.addAll(pid.stream().map(p -> Entity.newInstance(p.getKey() + ":" + p.getValue())).collect(Collectors.toList())); -// -// }); -// return ret.iterator(); -// }, Encoders.bean(Entity.class)) -// .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath + "/author"); - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidResult.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidResult.java deleted file mode 100644 index 8195a06958..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpPidResult.java +++ /dev/null @@ -1,82 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.function.FlatMapFunction; -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 com.google.gson.Gson; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; -import eu.dnetlib.dhp.schema.oaf.Result; - -public class SparkDumpPidResult implements Serializable { - private static final Logger log = LoggerFactory.getLogger(SparkDumpPidResult.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkDumpPidResult.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("preparedInfoPath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - dumpPidEntities(spark, inputPath, outputPath); - - }); - - } - - private static void dumpPidEntities(SparkSession spark, String inputPath, String outputPath) { - Dataset resultPids = Utils.readPath(spark, inputPath, ResultPidsList.class); - - resultPids.flatMap((FlatMapFunction) r -> { - List ret = new ArrayList<>(); - r.getResultAllowedPids().forEach(pid -> { - if (StringUtils.isNoneEmpty(pid.getKey(), pid.getValue())) - ret.add(Entity.newInstance(pid.getKey() + ":" + pid.getValue())); - }); - return ret.iterator(); - }, Encoders.bean(Entity.class)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath + "/result"); - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpProject.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpProject.java deleted file mode 100644 index f0aac87a61..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpProject.java +++ /dev/null @@ -1,90 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.io.StringReader; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -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.sql.Dataset; -import org.apache.spark.sql.Encoders; -import org.apache.spark.sql.SaveMode; -import org.apache.spark.sql.SparkSession; -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.io.SAXReader; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; -import eu.dnetlib.dhp.schema.oaf.Organization; -import eu.dnetlib.dhp.schema.oaf.Project; - -public class SparkDumpProject implements Serializable { - private static final Logger log = LoggerFactory.getLogger(SparkDumpOrganization.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkDumpOrganization.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("sourcePath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - dumpProjects(spark, inputPath, outputPath); - - }); - } - - private static void dumpProjects(SparkSession spark, String inputPath, String outputPath) { - Dataset projectDataset = Utils.readPath(spark, inputPath, Project.class); - - projectDataset.flatMap((FlatMapFunction) project -> { - List projs = new ArrayList<>(); - project.getFundingtree().forEach(fund -> { - try { - projs.add(Utils.getEntity(fund.getValue(), project.getCode().getValue())); - } catch (DocumentException e) { - e.printStackTrace(); - } - }); - return projs.iterator(); - }, Encoders.bean(Entity.class)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath + "/project"); - - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultOrganizationRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultOrganizationRelation.java deleted file mode 100644 index 6f802f875d..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultOrganizationRelation.java +++ /dev/null @@ -1,132 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.apache.commons.io.IOUtils; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.function.FlatMapFunction; -import org.apache.spark.sql.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.Gson; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Constants; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.common.ModelConstants; -import eu.dnetlib.dhp.schema.common.ModelSupport; -import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; -import eu.dnetlib.dhp.schema.oaf.Organization; -import eu.dnetlib.dhp.schema.oaf.Relation; -import scala.Tuple2; - -public class SparkDumpResultOrganizationRelation implements Serializable { - - private static final Logger log = LoggerFactory.getLogger(SparkDumpResultOrganizationRelation.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkDumpResultOrganizationRelation.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("sourcePath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - final String resultPidListPath = parser.get("preparedInfoPath"); - - final List allowedPids = new Gson().fromJson(parser.get("allowedOrganizationPids"), List.class); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - dumpResultOrganziationRelations(spark, inputPath, resultPidListPath, allowedPids, outputPath); - - }); - - } - - private static void dumpResultOrganziationRelations(SparkSession spark, String inputPath, String preparedInfoPath, - List allowedPids, String outputPath) { - Dataset relations = Utils.readPath(spark, inputPath + "/relation", Relation.class); - Dataset organizations = Utils.readPath(spark, inputPath + "/organization", Organization.class); - Dataset resultPid = Utils.readPath(spark, preparedInfoPath, ResultPidsList.class); - - relations.createOrReplaceTempView("relation"); - organizations.createOrReplaceTempView("organization"); - - Dataset resultOrg = spark - .sql( - "SELECT source resultId , pid orgPids" + - "FROM relation r " + - "JOIN organization o " + - "ON r.target = o.id " + - "WHERE r.datainfo.deletedbyinference = false " + - "AND o.datainfo.deletedbyinference = false " + - "AND lower(relclass) = '" + ModelConstants.HAS_AUTHOR_INSTITUTION.toLowerCase() + "'") - .as(Encoders.bean(ResultOrganization.class)); - - resultOrg - .joinWith(resultPid, resultOrg.col("resultId").equalTo(resultPid.col("resultId")), "left") - .flatMap( - (FlatMapFunction, eu.dnetlib.dhp.schema.dump.oaf.graph.Relation>) value -> { - List relList = new ArrayList<>(); - Optional orel = Optional.ofNullable(value._2()); - if (orel.isPresent()) { - List orgList = value - ._1() - .getOrgPid() - .stream() - .filter(p -> allowedPids.contains(p.getQualifier().getClassid())) - .map(pid -> pid.getQualifier().getClassid() + ":" + pid.getValue()) - .collect(Collectors.toList()); - if (orgList.size() > 0) { - List resList = orel.get().getResultAllowedPids(); - for (int i = 0; i < resList.size(); i++) { - String pid = resList.get(i).getKey() + ":" + resList.get(i).getValue(); - for (int j = 0; j < orgList.size(); j++) { - relList - .addAll( - Utils - .getRelationPair( - pid, orgList.get(j), Constants.RESULT, Constants.ORGANIZATION, - ModelConstants.AFFILIATION, ModelConstants.HAS_AUTHOR_INSTITUTION, - ModelConstants.IS_AUTHOR_INSTITUTION_OF)); - - } - } - } - } - - return relList.iterator(); - }, Encoders.bean(eu.dnetlib.dhp.schema.dump.oaf.graph.Relation.class)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath + "/relationOrganization"); - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultProjectRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultProjectRelation.java deleted file mode 100644 index 73fc88a5c2..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultProjectRelation.java +++ /dev/null @@ -1,129 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.apache.commons.io.IOUtils; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.function.FlatMapFunction; -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.dom4j.DocumentException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Constants; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.common.ModelConstants; -import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; -import eu.dnetlib.dhp.schema.oaf.Project; -import eu.dnetlib.dhp.schema.oaf.Relation; -import scala.Tuple2; - -public class SparkDumpResultProjectRelation implements Serializable { - - private static final Logger log = LoggerFactory.getLogger(SparkDumpResultProjectRelation.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkDumpResultProjectRelation.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("sourcePath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - final String resultPidListPath = parser.get("preparedInfoPath"); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - dumpResultProjectRelations(spark, inputPath, resultPidListPath, outputPath); - - }); - - } - - private static void dumpResultProjectRelations(SparkSession spark, String inputPath, String preparedInfoPath, - String outputPath) { - Dataset relations = Utils.readPath(spark, inputPath + "/relation", Relation.class); - Dataset projects = Utils.readPath(spark, inputPath + "/project", Project.class); - Dataset resultPid = Utils.readPath(spark, preparedInfoPath, ResultPidsList.class); - - relations.createOrReplaceTempView("relation"); - projects.createOrReplaceTempView("project"); - - Dataset resultProj = spark - .sql( - "SELECT source resultId , code, fundingtree.value fundings" + - "FROM relation r " + - "JOIN project p " + - "ON r.target = p.id " + - "WHERE r.datainfo.deletedbyinference = false " + - "AND lower(relclass) = '" + ModelConstants.IS_PRODUCED_BY.toLowerCase() + "'") - .as(Encoders.bean(ResultProject.class)); - - resultProj - .joinWith(resultPid, resultProj.col("resultId").equalTo(resultPid.col("resultId")), "left") - .flatMap( - (FlatMapFunction, eu.dnetlib.dhp.schema.dump.oaf.graph.Relation>) value -> { - List relList = new ArrayList<>(); - Optional orel = Optional.ofNullable(value._2()); - if (orel.isPresent()) { - List projList = new ArrayList<>(); - String code = value._1().getCode(); - for (String fund : value._1().getFundings()) { - projList.add(Utils.getEntity(fund, code).getId()); - } - - List resList = orel.get().getResultAllowedPids(); - for (int i = 0; i < resList.size(); i++) { - String pid = resList.get(i).getKey() + ":" + resList.get(i).getValue(); - for (int j = 0; j < projList.size(); j++) { - relList - .addAll( - Utils - .getRelationPair( - pid, projList.get(j), Constants.RESULT, Constants.PROJECT, - ModelConstants.OUTCOME, ModelConstants.IS_PRODUCED_BY, - ModelConstants.PRODUCES)); - - } - } - - } - - return relList.iterator(); - }, Encoders.bean(eu.dnetlib.dhp.schema.dump.oaf.graph.Relation.class)) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath + "/relationProject"); - } - -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultRelation.java deleted file mode 100644 index 6358df48ba..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkDumpResultRelation.java +++ /dev/null @@ -1,175 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.*; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.spark.SparkConf; -import org.apache.spark.api.java.function.FilterFunction; -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.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Constants; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.oa.graph.dump.community.ResultProject; -import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; -import eu.dnetlib.dhp.schema.dump.oaf.graph.Relation; -import eu.dnetlib.dhp.schema.oaf.Project; - -public class SparkDumpResultRelation implements Serializable { - private static final Logger log = LoggerFactory.getLogger(SparkDumpResultRelation.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkDumpResultRelation.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("preparedInfoPath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - dumpPidRelations(spark, inputPath, outputPath); - - }); - - } - - private static Dataset distinctRelations(Dataset rels) { - return rels - .filter(getRelationFilterFunction()) - .groupByKey( - (MapFunction) r -> String - .join( - r.getSource().getId(), r.getTarget().getId(), r.getReltype().getName(), - r.getReltype().getType()), - Encoders.STRING()) - .mapGroups( - (MapGroupsFunction) (key, relationIterator) -> relationIterator.next(), - Encoders.bean(Relation.class)); - } - - private static FilterFunction getRelationFilterFunction() { - return (FilterFunction) r -> StringUtils.isNotBlank(r.getSource().getId()) || - StringUtils.isNotBlank(r.getTarget().getId()) || - StringUtils.isNotBlank(r.getReltype().getName()) || - StringUtils.isNotBlank(r.getReltype().getType()); - } - - private static void dumpPidRelations(SparkSession spark, String inputPath, String outputPath) { - Dataset resultPids = Utils.readPath(spark, inputPath, ResultPidsList.class); - - distinctRelations(resultPids.flatMap((FlatMapFunction) r -> { - List ret = new ArrayList<>(); - List resPids = r.getResultAllowedPids(); - List> authPids = r.getAuthorAllowedPids(); - - for (int i = 0; i < resPids.size() - 1; i++) { - String pid = resPids.get(i).getKey() + ":" + resPids.get(i).getValue(); - for (int j = i + 1; j < resPids.size(); j++) { - ret - .addAll( - Utils - .getRelationPair( - pid, resPids.get(j).getKey() + ":" + resPids.get(j).getValue(), - Constants.RESULT, Constants.RESULT, Constants.SIMILARITY, - Constants.RESPID_RESPID_RELATION, Constants.RESPID_RESPID_RELATION)); - } - } - - for (int i = 0; i < authPids.size() - 1; i++) { - for (int j = i + 1; j < authPids.size(); j++) { - ret.addAll(getAuthRelations(authPids.get(i), authPids.get(j))); - } - } - - for (int i = 0; i < resPids.size(); i++) { - String pid = resPids.get(i).getKey() + ":" + resPids.get(i).getValue(); - for (int j = 0; j < authPids.size(); j++) { - for (int k = 0; k < authPids.get(j).size(); k++) { - ret - .addAll( - Utils - .getRelationPair( - pid, - authPids.get(j).get(k).getKey() + ":" + authPids.get(j).get(k).getValue(), - Constants.RESULT, Constants.AUTHOR, Constants.AUTHORSHIP, - Constants.RES_AUTHOR_RELATION, Constants.AUTHOR_RES_RELATION)); - } - - } - } - return ret.iterator(); - }, Encoders.bean(Relation.class))) - .write() - .mode(SaveMode.Overwrite) - .option("compression", "gzip") - .json(outputPath + "/relation"); - } - - private static List getAuthRelations(List a1, List a2) { - List ret = new ArrayList<>(); - if (a1.size() > 1) { - ret.addAll(getSameAs(a1)); - } - if (a2.size() > 1) { - ret.addAll(getSameAs(a2)); - } - for (int i = 0; i < a1.size(); i++) { - String pid = a1.get(i).getKey() + ":" + a1.get(i).getValue(); - for (int j = 0; j < a2.size(); j++) { - ret - .addAll( - Utils - .getRelationPair( - pid, a2.get(j).getKey() + ":" + a2.get(j).getValue(), - Constants.AUTHOR, Constants.AUTHOR, Constants.AUTHORSHIP, - Constants.AUTHOR_AUTHOR_RELATION, Constants.AUTHOR_AUTHOR_RELATION)); - } - } - - return ret; - } - - private static List getSameAs(List a1) { - List ret = new ArrayList<>(); - for (int i = 0; i < a1.size() - 1; i++) { - ret - .addAll( - Utils - .getRelationPair( - a1.get(i).getKey() + ":" + a1.get(i).getValue(), - a1.get(i + 1).getKey() + ":" + a1.get(i + 1).getValue(), - Constants.AUTHOR, Constants.AUTHOR, Constants.SIMILARITY, - Constants.SAME_AS, Constants.SAME_AS)); - } - return ret; - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkPrepareResultPids.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkPrepareResultPids.java deleted file mode 100644 index 68adf82573..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/pid/SparkPrepareResultPids.java +++ /dev/null @@ -1,127 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.Optional; - -import org.apache.commons.io.IOUtils; -import org.apache.spark.SparkConf; -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 com.google.gson.Gson; - -import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.dump.oaf.KeyValue; -import eu.dnetlib.dhp.schema.oaf.Result; - -public class SparkPrepareResultPids implements Serializable { - - private static final Logger log = LoggerFactory.getLogger(SparkPrepareResultPids.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkPrepareResultPids.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("sourcePath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - final String resultClassName = parser.get("resultTableName"); - log.info("resultTableName: {}", resultClassName); - - final List allowedResultPid = new Gson().fromJson(parser.get("allowedResultPids"), List.class); - final List allowedAuthorPid = new Gson().fromJson(parser.get("allowedAuthorPids"), List.class); - - final String resultType = resultClassName.substring(resultClassName.lastIndexOf(".") + 1).toLowerCase(); - log.info("resultType: {}", resultType); - - Class inputClazz = (Class) Class.forName(resultClassName); - - SparkConf conf = new SparkConf(); - runWithSparkSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - preparePidEntities( - spark, inputPath, outputPath + "/" + resultType, inputClazz, allowedResultPid, allowedAuthorPid); - - }); - - } - - private static void preparePidEntities(SparkSession spark, String inputPath, String outputPath, - Class inputClazz, List allowedResultPid, - List allowedAuthorPid) { - - Dataset result = Utils.readPath(spark, inputPath, inputClazz); - - result.map((MapFunction) res -> { - ResultPidsList ret = new ResultPidsList(); - ret.setResultId(res.getId()); - List pidList = new ArrayList<>(); - Optional - .ofNullable(res.getPid()) - .ifPresent(pids -> pids.forEach(pid -> { - if (allowedResultPid.contains(pid.getQualifier().getClassid().toLowerCase())) { - pidList.add(KeyValue.newInstance(pid.getQualifier().getClassid(), pid.getValue())); - } - })); - ret.setResultAllowedPids(pidList); - List> authorPidList = new ArrayList<>(); - Optional - .ofNullable(res.getAuthor()) - .ifPresent(authors -> authors.forEach(a -> { - Optional - .ofNullable(a.getPid()) - .ifPresent(pids -> pids.forEach(p -> { - List authorPids = new ArrayList<>(); - if (allowedAuthorPid.contains(p.getQualifier().getClassid().toLowerCase())) { - authorPids.add(KeyValue.newInstance(p.getQualifier().getClassid(), p.getValue())); - } - if (authorPids.size() > 0) { - authorPidList.add(authorPids); - } - })); - })); - ret.setAuthorAllowedPids(authorPidList); - - if (authorPidList.size() == 0 && pidList.size() == 0) { - return null; - } - return ret; - }, Encoders.bean(ResultPidsList.class)) - .filter(Objects::nonNull) - .write() - .mode(SaveMode.Append) - .option("compression", "gzip") - .json(outputPath); - } - -} From 56150d7e5e42fa06597cbaa02a568c1ab59aff52 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:13:12 +0100 Subject: [PATCH 088/103] removed all code related to the dump of pids graph --- .../oa/graph/dump/ttl/OrganizationInfo.java | 62 ----- .../dnetlib/dhp/oa/graph/dump/ttl/Pids.java | 25 -- .../ttl/SparkPrepareOrganizationInfo.java | 88 ------ .../dhp/oa/graph/dump/pid/DumpAuthorTest.java | 96 ------- .../dump/pid/DumpResultRelationTest.java | 161 ----------- .../dhp/oa/graph/dump/pid/DumpResultTest.java | 96 ------- .../dump/pid/PreparedInfoCollectTest.java | 168 ----------- .../graph/dump/pid/PreparedInfoPidTest.java | 260 ------------------ .../graph/dump/pid/preparedInfo/preparedInfo | 34 --- .../dump/pid/preparedInfoDR/preparedInfo | 34 --- .../dataset/preparedInfo.json | 3 - .../otherresearchproduct/preparedInfo.json | 0 .../publication/preparedInfo.json | 1 - .../software/preparedInfo.json | 0 .../dump/pid/result/dataset/mixedPids.json | 3 - .../otherresearchproduct/other_empty.json | 0 .../pid/result/publication/doi_orcid.json | 32 --- .../pid/result/software/software_empty.json | 0 18 files changed, 1063 deletions(-) delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpAuthorTest.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultRelationTest.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultTest.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoCollectTest.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoPidTest.java delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo/preparedInfo delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR/preparedInfo delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/dataset/preparedInfo.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/otherresearchproduct/preparedInfo.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/publication/preparedInfo.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/software/preparedInfo.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset/mixedPids.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/otherresearchproduct/other_empty.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication/doi_orcid.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/software/software_empty.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java deleted file mode 100644 index 6e897d34f0..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/OrganizationInfo.java +++ /dev/null @@ -1,62 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.ttl; - -import java.io.Serializable; -import java.util.List; - -public class OrganizationInfo implements Serializable { - private String name; - private String shortName; - private String country; - private String websiteUrl; - private List pidsList; - private String id; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getShortName() { - return shortName; - } - - public void setShortName(String shortName) { - this.shortName = shortName; - } - - public String getCountry() { - return country; - } - - public void setCountry(String country) { - this.country = country; - } - - public String getWebsiteUrl() { - return websiteUrl; - } - - public void setWebsiteUrl(String webciteUrl) { - this.websiteUrl = webciteUrl; - } - - public List getPidsList() { - return pidsList; - } - - public void setPidsList(List pidsList) { - this.pidsList = pidsList; - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java deleted file mode 100644 index 26b0756239..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/Pids.java +++ /dev/null @@ -1,25 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.ttl; - -import java.io.Serializable; - -public class Pids implements Serializable { - private String type; - private String value; - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java deleted file mode 100644 index c64dfd4d42..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ttl/SparkPrepareOrganizationInfo.java +++ /dev/null @@ -1,88 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.ttl; - -import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkHiveSession; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - -import org.apache.commons.io.IOUtils; -import org.apache.hadoop.io.compress.GzipCodec; -import org.apache.spark.SparkConf; -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 eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.schema.oaf.Organization; -import scala.Tuple2; - -public class SparkPrepareOrganizationInfo implements Serializable { - private static final Logger log = LoggerFactory.getLogger(SparkPrepareOrganizationInfo.class); - - public static void main(String[] args) throws Exception { - String jsonConfiguration = IOUtils - .toString( - SparkPrepareOrganizationInfo.class - .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json")); - - final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); - parser.parseArgument(args); - - Boolean isSparkSessionManaged = Optional - .ofNullable(parser.get("isSparkSessionManaged")) - .map(Boolean::valueOf) - .orElse(Boolean.TRUE); - log.info("isSparkSessionManaged: {}", isSparkSessionManaged); - - final String inputPath = parser.get("sourcePath"); - log.info("inputPath: {}", inputPath); - - final String outputPath = parser.get("outputPath"); - log.info("outputPath: {}", outputPath); - - SparkConf conf = new SparkConf(); - - runWithSparkHiveSession( - conf, - isSparkSessionManaged, - spark -> { - Utils.removeOutputDir(spark, outputPath); - prepareOrganization(spark, inputPath, outputPath); - - }); - - } - - private static void prepareOrganization(SparkSession spark, String inputPath, String outputPath) { - Dataset orgs = Utils.readPath(spark, inputPath, Organization.class); - - orgs.createOrReplaceTempView("organization"); - - String query = "select country.classname country, legalname.value name, legalshortname.value shortName, websiteurl.value websiteUrl, " - + - "collect_set(named_struct(\"pidtype\", pIde.qualifier.classid, \"pid\", pIde.value)) as pidsList, id " + - "from organization " + - "lateral view explode( pid) p as pIde " + - "group by country.classname, legalname.value, legalshortname.value, websiteurl.value, id"; - - spark - .sql(query) - .as(Encoders.bean(OrganizationInfo.class)) - .write() - .option("compression", "gzip") - .mode(SaveMode.Overwrite) - .json(outputPath); - - } - -} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpAuthorTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpAuthorTest.java deleted file mode 100644 index 61abd3cdd7..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpAuthorTest.java +++ /dev/null @@ -1,96 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -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.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 com.fasterxml.jackson.databind.ObjectMapper; - -import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; - -public class DumpAuthorTest { - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - - private static SparkSession spark; - - private static Path workingDir; - - private static final Logger log = LoggerFactory.getLogger(DumpAuthorTest.class); - - @BeforeAll - public static void beforeAll() throws IOException { - workingDir = Files.createTempDirectory(DumpAuthorTest.class.getSimpleName()); - log.info("using work dir {}", workingDir); - - SparkConf conf = new SparkConf(); - conf.setAppName(DumpAuthorTest.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(DumpAuthorTest.class.getSimpleName()) - .config(conf) - .getOrCreate(); - } - - @AfterAll - public static void afterAll() throws IOException { - FileUtils.deleteDirectory(workingDir.toFile()); - spark.stop(); - } - - @Test - public void testDumpAuthorPids() throws Exception { - - final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/result") - .getPath(); - - SparkDumpPidAuthor.main(new String[] { - "-isSparkSessionManaged", Boolean.FALSE.toString(), - "-outputPath", workingDir.toString(), - "-sourcePath", sourcePath, - "-allowedAuthorPids", "[\"orcid\", \"mag\"]" - }); - - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - - JavaRDD tmp = sc - .textFile(workingDir.toString() + "/author") - .map(item -> OBJECT_MAPPER.readValue(item, Entity.class)); - - org.apache.spark.sql.Dataset verificationDataset = spark - .createDataset(tmp.rdd(), Encoders.bean(Entity.class)); - - verificationDataset.show(false); - Assertions.assertEquals(3, verificationDataset.count()); - - Assertions.assertEquals(1, verificationDataset.filter("id = 'mag:fakemag'").count()); - - Assertions.assertEquals(2, verificationDataset.filter("substr(id,1,5) = 'orcid'").count()); - - } - -} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultRelationTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultRelationTest.java deleted file mode 100644 index 24abdd4159..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultRelationTest.java +++ /dev/null @@ -1,161 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -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.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.schema.dump.oaf.graph.Relation; -import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; - -public class DumpResultRelationTest { - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - - private static SparkSession spark; - - private static Path workingDir; - - private static final Logger log = LoggerFactory.getLogger(DumpResultRelationTest.class); - - @BeforeAll - public static void beforeAll() throws IOException { - workingDir = Files.createTempDirectory(DumpResultRelationTest.class.getSimpleName()); - log.info("using work dir {}", workingDir); - - SparkConf conf = new SparkConf(); - conf.setAppName(DumpResultRelationTest.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(DumpAuthorTest.class.getSimpleName()) - .config(conf) - .getOrCreate(); - } - - @AfterAll - public static void afterAll() throws IOException { - FileUtils.deleteDirectory(workingDir.toFile()); - spark.stop(); - } - - @Test - public void testDumpResultRelationPids() throws Exception { - - final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR") - .getPath(); - - SparkDumpResultRelation.main(new String[] { - "-isSparkSessionManaged", Boolean.FALSE.toString(), - "-outputPath", workingDir.toString(), - "-preparedInfoPath", sourcePath - }); - - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - - JavaRDD tmp = sc - .textFile(workingDir.toString() + "/relation") - .map(item -> OBJECT_MAPPER.readValue(item, Relation.class)); - - org.apache.spark.sql.Dataset verificationDataset = spark - .createDataset(tmp.rdd(), Encoders.bean(Relation.class)); - - verificationDataset.show(100, false); - Assertions.assertEquals(32, verificationDataset.count()); - - Assertions - .assertEquals( - 1, verificationDataset - .filter( - "source.id = 'orcid:0000-0001-9317-9350' and " + - "relType.name = 'sameAs' and target.id = 'mag:fakeMag'") - .count()); - - Assertions - .assertEquals( - 4, verificationDataset - .filter( - "source.id = 'orcid:0000-0001-9317-9350' and " + - "relType.name = 'isAuthorOf'") - .count()); - - Assertions - .assertEquals( - 4, verificationDataset - .filter( - "target.id = 'orcid:0000-0001-9317-9350' and " + - "relType.name = 'hasAuthor'") - .count()); - - Assertions - .assertEquals( - 1, verificationDataset - .filter( - "source.id = 'orcid:0000-0001-9317-9350' and " + - "relType.name = 'hasCoAuthor'") - .count()); - - Assertions - .assertEquals( - 1, verificationDataset - .filter( - "source.id = 'orcid:0000-0001-9317-9350' and " + - "relType.name = 'hasCoAuthor' and target.id = 'orcid:0000-0002-1114-4216'") - .count()); - - Assertions - .assertEquals( - 2, verificationDataset - .filter( - "source.id = 'orcid:0000-0002-1114-4216' and " + - "relType.name = 'hasCoAuthor'") - .count()); - - Assertions - .assertEquals( - 1, verificationDataset - .filter( - "target.id = 'orcid:0000-0001-9317-9350' and " + - "relType.name = 'hasCoAuthor' and source.id = 'orcid:0000-0002-1114-4216'") - .count()); - - Assertions - .assertEquals( - 1, verificationDataset - .filter( - "target.id = 'mag:fakeMag' and " + - "relType.name = 'hasCoAuthor' and source.id = 'orcid:0000-0002-1114-4216'") - .count()); - - Assertions.assertEquals(4, verificationDataset.filter("relType.name = 'hasOtherManifestation'").count()); - -// -// Assertions.assertEquals(1, verificationDataset.filter("id = 'mag:fakemag'").count()); -// -// Assertions.assertEquals(2, verificationDataset.filter("substr(id,1,5) = 'orcid'").count()); - - } - -} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultTest.java deleted file mode 100644 index 156c130131..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/DumpResultTest.java +++ /dev/null @@ -1,96 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -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.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.schema.dump.pidgraph.Entity; - -public class DumpResultTest { - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - - private static SparkSession spark; - - private static Path workingDir; - - private static final Logger log = LoggerFactory.getLogger(DumpResultTest.class); - - @BeforeAll - public static void beforeAll() throws IOException { - workingDir = Files.createTempDirectory(DumpResultTest.class.getSimpleName()); - log.info("using work dir {}", workingDir); - - SparkConf conf = new SparkConf(); - conf.setAppName(DumpAuthorTest.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(DumpResultTest.class.getSimpleName()) - .config(conf) - .getOrCreate(); - } - - @AfterAll - public static void afterAll() throws IOException { - FileUtils.deleteDirectory(workingDir.toFile()); - spark.stop(); - } - - @Test - public void testDumpResultPids() throws Exception { - - final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo") - .getPath(); - - SparkDumpPidResult.main(new String[] { - "-isSparkSessionManaged", Boolean.FALSE.toString(), - "-outputPath", workingDir.toString(), - "-preparedInfoPath", sourcePath - }); - - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - - JavaRDD tmp = sc - .textFile(workingDir.toString() + "/result") - .map(item -> OBJECT_MAPPER.readValue(item, Entity.class)); - - org.apache.spark.sql.Dataset verificationDataset = spark - .createDataset(tmp.rdd(), Encoders.bean(Entity.class)); - - Assertions.assertEquals(35, verificationDataset.count()); - - Assertions.assertEquals(32, verificationDataset.filter("substr(id,1,3) = 'doi'").count()); - - Assertions.assertEquals(1, verificationDataset.filter("substr(id,1,3) = 'pdb'").count()); - - Assertions.assertEquals(1, verificationDataset.filter("substr(id,1,4) = 'pmid'").count()); - - Assertions.assertEquals(1, verificationDataset.filter("substr(id,1,5) = 'arXiv'").count()); - - } - -} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoCollectTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoCollectTest.java deleted file mode 100644 index 7952c36f82..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoCollectTest.java +++ /dev/null @@ -1,168 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -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.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 com.fasterxml.jackson.databind.ObjectMapper; - -public class PreparedInfoCollectTest { - - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - - private static SparkSession spark; - - private static Path workingDir; - - private static final Logger log = LoggerFactory.getLogger(PreparedInfoCollectTest.class); - - @BeforeAll - public static void beforeAll() throws IOException { - workingDir = Files.createTempDirectory(PreparedInfoCollectTest.class.getSimpleName()); - log.info("using work dir {}", workingDir); - - SparkConf conf = new SparkConf(); - conf.setAppName(PreparedInfoCollectTest.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(PreparedInfoCollectTest.class.getSimpleName()) - .config(conf) - .getOrCreate(); - } - - @AfterAll - public static void afterAll() throws IOException { - FileUtils.deleteDirectory(workingDir.toFile()); - spark.stop(); - } - - @Test - public void testCollectAndSave() throws Exception { -//software and otherresearchproduct associated preparedInfo files intended to be empty - final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit") - .getPath(); - - SparkCollectPreparedInfo.main(new String[] { - "-isSparkSessionManaged", Boolean.FALSE.toString(), - "-outputPath", workingDir.toString() + "/preparedInfo", - "-preparedInfoPath", sourcePath - }); - - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - - JavaRDD tmp = sc - .textFile(workingDir.toString() + "/preparedInfo") - .map(item -> OBJECT_MAPPER.readValue(item, ResultPidsList.class)); - - org.apache.spark.sql.Dataset verificationDataset = spark - .createDataset(tmp.rdd(), Encoders.bean(ResultPidsList.class)); - - Assertions.assertEquals(34, verificationDataset.count()); - - verificationDataset.createOrReplaceTempView("check"); - - Assertions - .assertEquals( - 33, spark - .sql( - "Select resultId " + - "from check " + - "lateral view explode (resultAllowedPids) r as resallowed " + - " where resallowed.key = 'doi'") - .count()); - - Assertions - .assertEquals( - 4, spark - .sql( - "SELECT pids.value " + - "FROM check " + - "LATERAL VIEW EXPLODE (authorAllowedPids) a as authallowed " + - "LATERAL VIEW EXPLODE (authallowed) a as pids " + - "WHERE pids.key = 'orcid'") - .count()); - - Assertions - .assertEquals( - 1, spark - .sql( - "SELECT pids.value " + - "FROM check " + - "LATERAL VIEW EXPLODE (authorAllowedPids) a as authallowed " + - "LATERAL VIEW EXPLODE (authallowed) a as pids " + - "WHERE pids.key = 'mag'") - .count()); - - Dataset check = spark - .sql( - "Select resultId, pids.value orcid, resallowed.key pid_type, resallowed.value pid " + - "from check" + - " lateral view explode(authorAllowedPids) a as authallowed " + - " lateral view explode(authallowed) p as pids " + - " lateral view explode (resultAllowedPids) r as resallowed " + - "where pids.key = 'orcid'"); - - Assertions.assertEquals(6, check.count()); - - Assertions - .assertEquals(1, check.filter("resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e'").count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e' " + - "and orcid = '0000-0002-1114-4216'") - .count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e' " + - "and pid = '10.1016/j.jrmge.2016.11.005'") - .count()); - - Assertions - .assertEquals(1, check.filter("resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f'").count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f' " + - "and orcid = '0000-0001-9317-9350'") - .count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f' " + - "and pid = '10.1016/j.jotr.2014.10.003'") - .count()); - - } - -} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoPidTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoPidTest.java deleted file mode 100644 index 3b6bec7338..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/pid/PreparedInfoPidTest.java +++ /dev/null @@ -1,260 +0,0 @@ - -package eu.dnetlib.dhp.oa.graph.dump.pid; - -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.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 com.fasterxml.jackson.databind.ObjectMapper; - -public class PreparedInfoPidTest { - - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - - private static SparkSession spark; - - private static Path workingDir; - - private static final Logger log = LoggerFactory.getLogger(PreparedInfoPidTest.class); - - @BeforeAll - public static void beforeAll() throws IOException { - workingDir = Files.createTempDirectory(PreparedInfoPidTest.class.getSimpleName()); - log.info("using work dir {}", workingDir); - - SparkConf conf = new SparkConf(); - conf.setAppName(PreparedInfoPidTest.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(PreparedInfoPidTest.class.getSimpleName()) - .config(conf) - .getOrCreate(); - } - - @AfterAll - public static void afterAll() throws IOException { - FileUtils.deleteDirectory(workingDir.toFile()); - spark.stop(); - } - - @Test - public void testPublication() throws Exception { - - final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication") - .getPath(); - - SparkPrepareResultPids.main(new String[] { - "-isSparkSessionManaged", Boolean.FALSE.toString(), - "-outputPath", workingDir.toString() + "/preparedInfo", - "-sourcePath", sourcePath, - "-allowedResultPids", "[\"doi\",\"arxiv\",\"pmc\",\"pmid\",\"pdb\"]", - "-allowedAuthorPids", "[\"orcid\"]", - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Publication" - }); - - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - - JavaRDD tmp = sc - .textFile(workingDir.toString() + "/preparedInfo/publication") - .map(item -> OBJECT_MAPPER.readValue(item, ResultPidsList.class)); - - org.apache.spark.sql.Dataset verificationDataset = spark - .createDataset(tmp.rdd(), Encoders.bean(ResultPidsList.class)); - - Assertions.assertEquals(31, verificationDataset.count()); - - verificationDataset.createOrReplaceTempView("check"); - - Assertions - .assertEquals( - 31, spark - .sql( - "Select resultId " + - "from check " + - "lateral view explode (resultAllowedPids) r as resallowed " + - " where resallowed.key = 'doi'") - .count()); - - Dataset check = spark - .sql( - "Select resultId, pids.value orcid, resallowed.key pid_type, resallowed.value pid " + - "from check" + - " lateral view explode(authorAllowedPids) a as authallowed " + - " lateral view explode(authallowed) p as pids " + - " lateral view explode (resultAllowedPids) r as resallowed " + - "where pids.key = 'orcid'"); - - Assertions.assertEquals(2, check.count()); - - Assertions - .assertEquals(1, check.filter("resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e'").count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e' " + - "and orcid = '0000-0002-1114-4216'") - .count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|base_oa_____::1a700385222228181f20835bae60a71e' " + - "and pid = '10.1016/j.jrmge.2016.11.005'") - .count()); - - Assertions - .assertEquals(1, check.filter("resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f'").count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f' " + - "and orcid = '0000-0001-9317-9350'") - .count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f' " + - "and pid = '10.1016/j.jotr.2014.10.003'") - .count()); - - } - - @Test - public void testDataset() throws Exception { - final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset") - .getPath(); - - SparkPrepareResultPids.main(new String[] { - "-isSparkSessionManaged", Boolean.FALSE.toString(), - "-outputPath", workingDir.toString() + "/preparedInfo", - "-sourcePath", sourcePath, - "-allowedResultPids", "[\"doi\",\"arxiv\",\"pmc\",\"pmid\",\"pdb\"]", - "-allowedAuthorPids", "[\"orcid\"]", - "-resultTableName", "eu.dnetlib.dhp.schema.oaf.Dataset" - }); - - final JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); - - JavaRDD tmp = sc - .textFile(workingDir.toString() + "/preparedInfo/dataset") - .map(item -> OBJECT_MAPPER.readValue(item, ResultPidsList.class)); - - org.apache.spark.sql.Dataset verificationDataset = spark - .createDataset(tmp.rdd(), Encoders.bean(ResultPidsList.class)); - - Assertions.assertEquals(3, verificationDataset.count()); - - verificationDataset.createOrReplaceTempView("check"); - - Dataset check = spark - .sql( - "Select resultId, pids.value orcid, resallowed.key pid_type, resallowed.value pid " + - "from check" + - " lateral view explode(authorAllowedPids) a as authallowed " + - " lateral view explode(authallowed) p as pids " + - " lateral view explode (resultAllowedPids) r as resallowed "); - - Assertions.assertEquals(4, check.count()); - - Assertions - .assertEquals(4, check.filter("resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02'").count()); - Assertions - .assertEquals( - 2, check - .filter( - "resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02' " + - "and (orcid = '0000-0001-9317-9350' or orcid = '0000-0002-1114-4216') and " + - "pid = '10.1016/fake' and pid_type = 'doi' ") - .count()); - - Assertions - .assertEquals( - 2, check - .filter( - "resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02' " + - "and (orcid = '0000-0001-9317-9350' or orcid = '0000-0002-1114-4216') and " + - "pid = '10443fake' and pid_type = 'pmid' ") - .count()); - - check = spark - .sql( - "Select resultId, authorAllowedPids, resallowed.key pid_type, resallowed.value pid " + - "from check" + - " lateral view explode (resultAllowedPids) r as resallowed "); - - Assertions.assertEquals(5, check.count()); - - Assertions - .assertEquals(2, check.filter("resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02'").count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02' " + - " and pid = '10.1016/fake' and pid_type = 'doi' ") - .count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|_____OmicsDI::00899d9cb1163754943a3277365adc02' " + - " and pid = '10443fake' and pid_type = 'pmid' ") - .count()); - - Assertions - .assertEquals(1, check.filter("resultId = '50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379'").count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379' " + - " and pid = 'fakepdb' and pid_type = 'pdb' ") - .count()); - - Assertions - .assertEquals(2, check.filter("resultId = '50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386'").count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386' " + - " and pid = '10.1016/j.tcs.2012.06.029' and pid_type = 'doi' ") - .count()); - Assertions - .assertEquals( - 1, check - .filter( - "resultId = '50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386' " + - " and pid = 'fake_arxiv' and pid_type = 'arXiv' ") - .count()); - - } -} diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo/preparedInfo b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo/preparedInfo deleted file mode 100644 index aee3987ea9..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfo/preparedInfo +++ /dev/null @@ -1,34 +0,0 @@ -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/2069087.2069102"}],"resultId":"50|acm_________::72f7ad968fa42cfbf0d3d7b245e43477"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/1805974.1805977"}],"resultId":"50|acm_________::cbd6814ee33b6357c7cea7c008a72b80"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":""}],"resultId":"50|acm_________::faed5b7a1bd8f51118d13ed29cfaee09"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"}],"resultId":"50|base_oa_____::020ca6ee0ae16e1e9c1405207087a671"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jacc.2014.06.769"}],"resultId":"50|base_oa_____::02715dd9fc09b87966f3bad613aec7f9"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0042-6822(02)00051-x"}],"resultId":"50|base_oa_____::035f21f0844d85933ada45818ab13f5d"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-247x(68)90176-5"}],"resultId":"50|base_oa_____::06505050e503a2e7f9167ba704fbeaac"} -{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jotr.2014.10.003"}],"resultId":"50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0377-0427(02)00443-0"}],"resultId":"50|base_oa_____::0a4c1442ae16ccfe614b1230a1700ce5"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.phpro.2012.03.506"}],"resultId":"50|base_oa_____::0cd5cf2933ecbdee82c39799961c8b18"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0168-0072(84)90037-x"}],"resultId":"50|base_oa_____::0f7eb47f3d0e591efedcaacc0ad312aa"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0213-9111(03)71806-8"}],"resultId":"50|base_oa_____::10f021134185727435d60679a30a9705"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.joca.2015.02.572"}],"resultId":"50|base_oa_____::111ab11c5644629db0779ba0041f8e0b"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0024-3795(94)00213-w"}],"resultId":"50|base_oa_____::11366a19965f0d8ecadef4df4a7e9ccc"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.ijid.2014.03.993"}],"resultId":"50|base_oa_____::1382fc03144c27085955624f9727e699"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.virol.2006.03.025"}],"resultId":"50|base_oa_____::1757e43719aee1289faee6b2c9538d1d"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0075-9511(01)80047-5"}],"resultId":"50|base_oa_____::17da7b56aa049a6bd67d6f3b2399a8ee"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.visres.2008.12.014"}],"resultId":"50|base_oa_____::1825ff5d845c3c25cecd779583829b6b"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0120-3347(10)81002-0"}],"resultId":"50|base_oa_____::1854b6c6e615c64bb886b20e3c51f099"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s1995-7645(12)60117-5"}],"resultId":"50|base_oa_____::187f25dc2d40ec7ed34eb488236eef17"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.arabjc.2014.01.016"}],"resultId":"50|base_oa_____::1a11ffdca7bff691d9be29074694ed28"} -{"authorAllowedPids":[[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jrmge.2016.11.005"}],"resultId":"50|base_oa_____::1a700385222228181f20835bae60a71e"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jval.2015.09.2195"}],"resultId":"50|base_oa_____::1b63c2f6ce1dc7ba9598fe6ec08affdc"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-0000(90)90015-d"}],"resultId":"50|base_oa_____::1be5adb74414a30ec46c74dfa20d7562"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.artint.2010.07.002"}],"resultId":"50|base_oa_____::1c62e28a5d3faf1da7717a81e05f6cf4"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jmaa.2004.08.018"}],"resultId":"50|base_oa_____::1d561e2e20c1bb6eb50b2e309ed5658f"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0166-8641(01)00188-2"}],"resultId":"50|base_oa_____::1e805d44f8076ae1c11f0093cf9679ca"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.bbmt.2007.01.017"}],"resultId":"50|base_oa_____::1e922204b8bfd042c5b9fbeb29848b53"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0741-5214(03)00428-2"}],"resultId":"50|base_oa_____::1fe2ad6be2235cd0e494baad6184efaa"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.riai.2013.09.004"}],"resultId":"50|base_oa_____::2122d7837eac59f792a6f11f85bec960"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0092-8674(00)81616-5"}],"resultId":"50|base_oa_____::23375ea29b261a29a7891b6f890460ae"} -{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"},{"key":"mag","value":"fakeMag"}],[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/fake"},{"key":"pmid","value":"10443fake"}],"resultId":"50|_____OmicsDI::00899d9cb1163754943a3277365adc02"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"pdb","value":"fakepdb"}],"resultId":"50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"},{"key":"arXiv","value":"fake_arxiv"}],"resultId":"50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR/preparedInfo b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR/preparedInfo deleted file mode 100644 index 757cfb8e45..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoDR/preparedInfo +++ /dev/null @@ -1,34 +0,0 @@ -{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"},{"key":"mag","value":"fakeMag"}],[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1145/2069087.2069102"}],"resultId":"50|acm_________::72f7ad968fa42cfbf0d3d7b245e43477"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/1805974.1805977"}],"resultId":"50|acm_________::cbd6814ee33b6357c7cea7c008a72b80"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":""}],"resultId":"50|acm_________::faed5b7a1bd8f51118d13ed29cfaee09"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"}],"resultId":"50|base_oa_____::020ca6ee0ae16e1e9c1405207087a671"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jacc.2014.06.769"}],"resultId":"50|base_oa_____::02715dd9fc09b87966f3bad613aec7f9"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0042-6822(02)00051-x"}],"resultId":"50|base_oa_____::035f21f0844d85933ada45818ab13f5d"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-247x(68)90176-5"}],"resultId":"50|base_oa_____::06505050e503a2e7f9167ba704fbeaac"} -{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jotr.2014.10.003"}],"resultId":"50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0377-0427(02)00443-0"}],"resultId":"50|base_oa_____::0a4c1442ae16ccfe614b1230a1700ce5"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.phpro.2012.03.506"}],"resultId":"50|base_oa_____::0cd5cf2933ecbdee82c39799961c8b18"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0168-0072(84)90037-x"}],"resultId":"50|base_oa_____::0f7eb47f3d0e591efedcaacc0ad312aa"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0213-9111(03)71806-8"}],"resultId":"50|base_oa_____::10f021134185727435d60679a30a9705"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.joca.2015.02.572"}],"resultId":"50|base_oa_____::111ab11c5644629db0779ba0041f8e0b"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0024-3795(94)00213-w"}],"resultId":"50|base_oa_____::11366a19965f0d8ecadef4df4a7e9ccc"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.ijid.2014.03.993"}],"resultId":"50|base_oa_____::1382fc03144c27085955624f9727e699"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.virol.2006.03.025"}],"resultId":"50|base_oa_____::1757e43719aee1289faee6b2c9538d1d"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0075-9511(01)80047-5"}],"resultId":"50|base_oa_____::17da7b56aa049a6bd67d6f3b2399a8ee"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.visres.2008.12.014"}],"resultId":"50|base_oa_____::1825ff5d845c3c25cecd779583829b6b"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0120-3347(10)81002-0"}],"resultId":"50|base_oa_____::1854b6c6e615c64bb886b20e3c51f099"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s1995-7645(12)60117-5"}],"resultId":"50|base_oa_____::187f25dc2d40ec7ed34eb488236eef17"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.arabjc.2014.01.016"}],"resultId":"50|base_oa_____::1a11ffdca7bff691d9be29074694ed28"} -{"authorAllowedPids":[[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jrmge.2016.11.005"}],"resultId":"50|base_oa_____::1a700385222228181f20835bae60a71e"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jval.2015.09.2195"}],"resultId":"50|base_oa_____::1b63c2f6ce1dc7ba9598fe6ec08affdc"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-0000(90)90015-d"}],"resultId":"50|base_oa_____::1be5adb74414a30ec46c74dfa20d7562"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.artint.2010.07.002"}],"resultId":"50|base_oa_____::1c62e28a5d3faf1da7717a81e05f6cf4"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jmaa.2004.08.018"}],"resultId":"50|base_oa_____::1d561e2e20c1bb6eb50b2e309ed5658f"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0166-8641(01)00188-2"}],"resultId":"50|base_oa_____::1e805d44f8076ae1c11f0093cf9679ca"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.bbmt.2007.01.017"}],"resultId":"50|base_oa_____::1e922204b8bfd042c5b9fbeb29848b53"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0741-5214(03)00428-2"}],"resultId":"50|base_oa_____::1fe2ad6be2235cd0e494baad6184efaa"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.riai.2013.09.004"}],"resultId":"50|base_oa_____::2122d7837eac59f792a6f11f85bec960"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0092-8674(00)81616-5"}],"resultId":"50|base_oa_____::23375ea29b261a29a7891b6f890460ae"} -{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"},{"key":"mag","value":"fakeMag"}],[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/fake"},{"key":"pmid","value":"10443fake"}],"resultId":"50|_____OmicsDI::00899d9cb1163754943a3277365adc02"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"pdb","value":"fakepdb"}],"resultId":"50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"},{"key":"arXiv","value":"fake_arxiv"}],"resultId":"50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/dataset/preparedInfo.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/dataset/preparedInfo.json deleted file mode 100644 index 03895da69c..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/dataset/preparedInfo.json +++ /dev/null @@ -1,3 +0,0 @@ -{"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"},{"key":"mag","value":"fakeMag"}],[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/fake"},{"key":"pmid","value":"10443fake"}],"resultId":"50|_____OmicsDI::00899d9cb1163754943a3277365adc02"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"pdb","value":"fakepdb"}],"resultId":"50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379"} -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"},{"key":"arXiv","value":"fake_arxiv"}],"resultId":"50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/otherresearchproduct/preparedInfo.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/otherresearchproduct/preparedInfo.json deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/publication/preparedInfo.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/publication/preparedInfo.json deleted file mode 100644 index 55c9120129..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/publication/preparedInfo.json +++ /dev/null @@ -1 +0,0 @@ -{"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/2069087.2069102"}],"resultId":"50|acm_________::72f7ad968fa42cfbf0d3d7b245e43477"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1145/1805974.1805977"}],"resultId":"50|acm_________::cbd6814ee33b6357c7cea7c008a72b80"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":""}],"resultId":"50|acm_________::faed5b7a1bd8f51118d13ed29cfaee09"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.tcs.2012.06.029"}],"resultId":"50|base_oa_____::020ca6ee0ae16e1e9c1405207087a671"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jacc.2014.06.769"}],"resultId":"50|base_oa_____::02715dd9fc09b87966f3bad613aec7f9"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0042-6822(02)00051-x"}],"resultId":"50|base_oa_____::035f21f0844d85933ada45818ab13f5d"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-247x(68)90176-5"}],"resultId":"50|base_oa_____::06505050e503a2e7f9167ba704fbeaac"} {"authorAllowedPids":[[{"key":"orcid","value":"0000-0001-9317-9350"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jotr.2014.10.003"}],"resultId":"50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0377-0427(02)00443-0"}],"resultId":"50|base_oa_____::0a4c1442ae16ccfe614b1230a1700ce5"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.phpro.2012.03.506"}],"resultId":"50|base_oa_____::0cd5cf2933ecbdee82c39799961c8b18"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0168-0072(84)90037-x"}],"resultId":"50|base_oa_____::0f7eb47f3d0e591efedcaacc0ad312aa"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0213-9111(03)71806-8"}],"resultId":"50|base_oa_____::10f021134185727435d60679a30a9705"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.joca.2015.02.572"}],"resultId":"50|base_oa_____::111ab11c5644629db0779ba0041f8e0b"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0024-3795(94)00213-w"}],"resultId":"50|base_oa_____::11366a19965f0d8ecadef4df4a7e9ccc"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.ijid.2014.03.993"}],"resultId":"50|base_oa_____::1382fc03144c27085955624f9727e699"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.virol.2006.03.025"}],"resultId":"50|base_oa_____::1757e43719aee1289faee6b2c9538d1d"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0075-9511(01)80047-5"}],"resultId":"50|base_oa_____::17da7b56aa049a6bd67d6f3b2399a8ee"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.visres.2008.12.014"}],"resultId":"50|base_oa_____::1825ff5d845c3c25cecd779583829b6b"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0120-3347(10)81002-0"}],"resultId":"50|base_oa_____::1854b6c6e615c64bb886b20e3c51f099"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s1995-7645(12)60117-5"}],"resultId":"50|base_oa_____::187f25dc2d40ec7ed34eb488236eef17"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.arabjc.2014.01.016"}],"resultId":"50|base_oa_____::1a11ffdca7bff691d9be29074694ed28"} {"authorAllowedPids":[[{"key":"orcid","value":"0000-0002-1114-4216"}]],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jrmge.2016.11.005"}],"resultId":"50|base_oa_____::1a700385222228181f20835bae60a71e"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jval.2015.09.2195"}],"resultId":"50|base_oa_____::1b63c2f6ce1dc7ba9598fe6ec08affdc"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/0022-0000(90)90015-d"}],"resultId":"50|base_oa_____::1be5adb74414a30ec46c74dfa20d7562"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.artint.2010.07.002"}],"resultId":"50|base_oa_____::1c62e28a5d3faf1da7717a81e05f6cf4"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.jmaa.2004.08.018"}],"resultId":"50|base_oa_____::1d561e2e20c1bb6eb50b2e309ed5658f"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0166-8641(01)00188-2"}],"resultId":"50|base_oa_____::1e805d44f8076ae1c11f0093cf9679ca"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.bbmt.2007.01.017"}],"resultId":"50|base_oa_____::1e922204b8bfd042c5b9fbeb29848b53"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0741-5214(03)00428-2"}],"resultId":"50|base_oa_____::1fe2ad6be2235cd0e494baad6184efaa"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/j.riai.2013.09.004"}],"resultId":"50|base_oa_____::2122d7837eac59f792a6f11f85bec960"} {"authorAllowedPids":[],"resultAllowedPids":[{"key":"doi","value":"10.1016/s0092-8674(00)81616-5"}],"resultId":"50|base_oa_____::23375ea29b261a29a7891b6f890460ae"} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/software/preparedInfo.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/preparedInfoSplit/software/preparedInfo.json deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset/mixedPids.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset/mixedPids.json deleted file mode 100644 index e3b396a579..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/dataset/mixedPids.json +++ /dev/null @@ -1,3 +0,0 @@ -{"author":[{"fullname":"Jaiswal, Atin","name":"Atin","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0001-9317-9350"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"mag","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"fakemag"}],"rank":3,"surname":"Jaiswal"},{"fullname":"Rahmouni, Abdelaali","name":"Abdelaali","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0002-1114-4216"}],"rank":1,"surname":"Rahmouni"}],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-04-22"},"dateofcollection":"","dateoftransformation":"2020-07-18T16:50:43.118Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"The mapping and functional analysis of quantitative traits in Brassica rapa can be greatly improved with the availability of physically positioned, gene-based genetic markers and accurate genome annotation. In this study, deep transcriptome RNA sequencing (RNA-Seq) of Brassica rapa was undertaken with two objectives: SNP detection and improved transcriptome annotation. We performed SNP detection on two varieties that are parents of a mapping population to aid in development of a marker system for this population and subsequent development of high-resolution genetic map. An improved Brassica rapa transcriptome was constructed to detect novel transcripts and to improve the current genome annotation. Deep RNA-Seq of two Brassica rapa genotypes—R500 (var. trilocularis, Yellow Sarson) and IMB211 (a rapid cycling variety)—using eight different tissues (root, internode, leaf, petiole, apical meristem, floral meristem, silique, and seedling) grown across three different environments (growth chamber, greenhouse and field) and under two different treatments (simulated sun and simulated shade) generated 2.3 billion high-quality Illumina reads. In this experiment, two pools were made, with one pool consisting of 66 samples collected from growth chamber and another pool consisting of 60 samples collected from greenhouse and field. Each pool was sequenced on eight lanes (total 16 lanes) of an Illumina Genome Analyzer (GAIIx) as 100-bp paired end reads."}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|_____OmicsDI::00899d9cb1163754943a3277365adc02","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-04-22"},"distributionlocation":"","hostedby":{"key":"10|re3data_____::1c26a459a4359f97be44b0f9e3522d3d","value":"ArrayExpress Archive of Functional Genomics Data"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["https://www.omicsdi.org/dataset/arrayexpress-repository/E-MTAB-4276"]}],"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349236793,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"https%3A%2F%2Fwww.omicsdi.org%2Fws%2Fdataset%2Fsearch","datestamp":"","harvestDate":"2020-07-18T14:00:53.566Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/fake"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"pmid","classname":"pmid","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10443fake"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Transcriptomics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"iis::document_classes","inferred":true,"invisible":false,"provenanceaction":{"classid":"iis","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.8397"},"qualifier":{"classid":"mesheuropmc","classname":"Medical Subject Headings","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"food and beverages"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"iis::document_classes","inferred":true,"invisible":false,"provenanceaction":{"classid":"iis","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.7713"},"qualifier":{"classid":"mesheuropmc","classname":"Medical Subject Headings","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"fungi"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Transcription profiling by high throughput sequencing of two Brassica rapa genotypes grown in different environments"}]} -{"author":[],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2019-12-03"},"dateofcollection":"","dateoftransformation":"2020-07-18T16:53:00.367Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"HCC827 cells were treated with 0.1 microM erlotinib for 0, 2, 6, and 24 hours. Cell lysates were immunoprecipitated with TBK1 antibody. Antibody enriched protein samples were run on SDS-PAGE gels and submitted to UT Southwestern Proteomics Core Facility for Mass Spectrometry. Protein gel pieces were digested overnight with trypsin (Pierce) following reduction and alkylation with DTT and iodoacetamide (Sigma Aldrich. The samples then underwent solid-phase extraction cleanup with Oasis HLB microelution plates (Waters) and the resulting samples were analyzed by LC-MS-MS, using an Orbitrap Fusion Lumos mass spectrometer (Thermo Electron) coupled to an Ultimate 3000 RSLC-Nano liquid chromatography systems (Dionex)."}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|_____OmicsDI::023fd1fcbb64f0f7df0671798a62f379","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2019-12-03"},"distributionlocation":"","hostedby":{"key":"10|omicsdi_____::7ab3f388bbf5200ebf5e501260ecddcc","value":"MassIVE Database (Mass Spectrometry Interactive Virtual Environment)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["https://www.omicsdi.org/dataset/massive/MSV000084654"]}],"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349577614,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"https%3A%2F%2Fwww.omicsdi.org%2Fws%2Fdataset%2Fsearch","datestamp":"","harvestDate":"2020-07-18T15:06:08.42Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"pdb","classname":"pdb","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"fakepdb"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Proteomics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"EGFR inhibition triggers an adaptive response by co-opting antiviral signaling pathways in lung cancer"}]} -{"author":[],"bestaccessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-03-12"},"dateofcollection":"","dateoftransformation":"2020-07-18T16:54:27.981Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"abundance based on Spectral counting, fromGPM,Aug,2014
    Interaction consistency score: 12.15 Coverage: 62"}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"geolocation":[],"id":"50|_____OmicsDI::036d65211a6ac14237c6e2d7cc223386","instance":[{"accessright":{"classid":"UNKNOWN","classname":"not available","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|rest________::f63e28997bb5aee636a4d21ab2a0a5f9","value":"Omics Discovery Index (OmicsDI)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-03-12"},"distributionlocation":"","hostedby":{"key":"10|omicsdi_____::af42d1d42806d603c5c6560497a0893e","value":"PAXDB (protein abundance database)"},"instancetype":{"classid":"0021","classname":"Dataset","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["https://www.omicsdi.org/dataset/paxdb/15887870"]}],"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349264188,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"https%3A%2F%2Fwww.omicsdi.org%2Fws%2Fdataset%2Fsearch","datestamp":"","harvestDate":"2020-07-18T16:41:20.077Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.tcs.2012.06.029"}, {"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"arXiv","classname":"arXiv","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"fake_arxiv"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"dataset","classname":"dataset","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Proteomics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:datasetarchive","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"S.aureus Mu50 - Whole organism, SC (GPM,Aug,2014)"}]} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/otherresearchproduct/other_empty.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/otherresearchproduct/other_empty.json deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication/doi_orcid.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication/doi_orcid.json deleted file mode 100644 index 1e25552107..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/publication/doi_orcid.json +++ /dev/null @@ -1,32 +0,0 @@ -{"author":[{"fullname":"Ben Romdhanne Bilel","pid":[],"rank":1},{"fullname":"Nikaein Navid","pid":[],"rank":2},{"fullname":"Knopp Raymond","pid":[],"rank":3},{"fullname":"Bonnet Christian","pid":[],"rank":4}],"bestaccessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2011-10-31"},"dateofcollection":"2015-01-20T00:00:00Z","dateoftransformation":"2016-03-12T12:49:39.131Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|acm_________::72f7ad968fa42cfbf0d3d7b245e43477","instance":[{"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2011-10-31"},"distributionlocation":"","hostedby":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dl.acm.org/citation.cfm?id=2069102"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349285551,"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1145/2069087.2069102"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"OpenAirInterface large-scale wireless emulation platform and methodology"}]} -{"author":[{"fullname":"Gilles Barthe","pid":[],"rank":1},{"fullname":"Tamara Rezk","pid":[],"rank":2},{"fullname":"Alejandro Russo","pid":[],"rank":3},{"fullname":"Andrei Sabelfeld","pid":[],"rank":4}],"bestaccessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-07-30"},"dateofcollection":"2015-01-20T00:00:00Z","dateoftransformation":"2016-03-12T12:49:39.575Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|acm_________::cbd6814ee33b6357c7cea7c008a72b80","instance":[{"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-07-30"},"distributionlocation":"","hostedby":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dl.acm.org/citation.cfm?id=1805977"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349287209,"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1145/1805974.1805977"}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Security of multithreaded programs by compilation"}]} -{"author":[{"fullname":"Klaus Ostermann","pid":[],"rank":1},{"fullname":"Paolo Giarrusso","pid":[],"rank":2},{"fullname":"Christian Kästner","name":"Christian K.","pid":[],"rank":3,"surname":"Stner"},{"fullname":"Tillmann Rendel","pid":[],"rank":4}],"bestaccessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2011-07-25"},"dateofcollection":"2015-01-20T00:00:00Z","dateoftransformation":"2016-03-12T12:49:39.741Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|acm_________::faed5b7a1bd8f51118d13ed29cfaee09","instance":[{"accessright":{"classid":"CLOSED","classname":"Closed Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2011-07-25"},"distributionlocation":"","hostedby":{"key":"10|openaire____::02b55e4f52388520bfe11f959f836e68","value":"ACM Digital Library"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dl.acm.org/citation.cfm?id=2032509"]}],"language":{"classid":"und","classname":"Undetermined","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349288013,"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":""}],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:mining:repository","classname":"Inferred by OpenAIRE","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Revisiting information hiding"}]} -{"author":[{"fullname":"Hernandez Lopezomoza, Mario Andres","name":"Mario Andres","pid":[],"rank":1,"surname":"Hernandez Lopezomoza"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|driver______::66c20c26ac26136628f5207819ae1abc","value":"Archives des thèses et mémoires de l’ISAE (ArTeMIS)"}],"context":[],"contributor":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Institut Supérieur de l'Aéronautique et de l'Espace"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Biannic, Jean-Marc"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Jouhaud, Frank"}],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-09-21"},"dateofcollection":"2016-02-26T12:03:21.28Z","dateoftransformation":"2020-07-22T07:55:56.328Z","description":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Ce travail de thèse est consacré à l'extension de l'Inversion Dynamique non-linéaire (NDI-Nonlinear Dynamic Inversion) pour un ensemble plus grand de systèmes non-linéaires, tout en garantissant des conditions de stabilité suffisantes. La NDI a été étudiée dans le cas de diverses applications, y compris en aéronautique et en aérospatiale. Elle permet de calculer des lois de contrôle capables de linéariser et de découpler un modèle non-linéaire à tout point de fonctionnement de son enveloppe d'état. Cependant cette méthode est intrinsèquement non-robuste aux erreurs de modélisation et aux saturations en entrée. En outre, dans un contexte non-linéaire, l'obtention d'une garantie quantifiable du domaine de stabilité atteint reste à l'heure actuelle complexe. Contrairement aux approches classiques de la NDI, notre méthodologie peut être considérée comme un cadre de compensation non-linéaire généralisé qui permet d'intégrer les incertitudes et les saturations en entrée dans le processus de conception. En utilisant des stratégies de contrôle antiwindup, la loi de pilotage peut être calculée grâce à un simple processus en deux phases. Dans ce cadre de travail généralisé des transformations linéaires fractionnaires (LFT - Linear Fractional Transformations) de la boucle fermée non-linéaire peuvent être facilement déduites pour l'analyse de la stabilité robuste en utilisant des outils standards pour de systèmes linéaires. La méthode proposée est testée pour le pilotage d'un véhicule de rentrée atmosphérique de type aile delta lors de ses phases hypersonique, transsonique et subsonique. Pour cette thèse, un simulateur du vol incluant divers facteurs externes ainsi que des erreurs de modélisation a été développé dans Simulink.\n\nThis thesis work is devoted to extending Nonlinear Dynamic Inversion (NDI) for a large scale of\nnonlinear systems while guaranteeing sufficient stability conditions. NDI has been studied in a wide range of applications, including aeronautics and aerospace. It allows to compute nonlinear control laws able to decouple and linearize a model at any operating point of its state envelope. However, this method is inherently non-robust to modelling errors and input saturations. Moreover, obtaining a quantifiable guarantee of the attained stability domain in a nonlinear control context is not a very straightforward task. Unlike standard NDI approaches, our methodology can be viewed as a generalized nonlinear compensation framework which allows to incorporate uncertainties and input saturations in the design process. Paralleling anti-windup strategies, the controller can be computed through a single multichannel optimization problem or through a simple two-step process. Within this framework, linear fractional transformations of the nonlinear closed-loop can be easily derived for robust stability analysis using standard tools for linear systems. The proposed method is tested for the flight control of a delta wing type reentry vehicle at hypersonic, transonic and subsonic phases of the atmospheric reentry. For this thesis work, a Flight Mechanics simulator including diverse external factors and modelling errors was developed in Simulink."}],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|artemis___fr::630e47d8b572e3df0e91327d6d8f036d","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|driver______::66c20c26ac26136628f5207819ae1abc","value":"Archives des thèses et mémoires de l’ISAE (ArTeMIS)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-09-21"},"distributionlocation":"","hostedby":{"key":"10|driver______::66c20c26ac26136628f5207819ae1abc","value":"Archives des thèses et mémoires de l’ISAE (ArTeMIS)"},"instancetype":{"classid":"0038","classname":"Other literature type","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://depozit.isae.fr/theses/2012/2012_Hernandez_Lopezomoza_Mario_Andres.pdf"]}],"language":{"classid":"eng","classname":"English","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349470657,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"http://ori-oai.isae.fr/ori-oai-repository/OAIHandler","datestamp":"2013-06-13","harvestDate":"2016-02-26T12:03:21.28Z","identifier":"oai:isae-repo.fr:isae-371","metadataNamespace":"http://www.openarchives.org/OAI/2.0/oai_dc/"}},"originalId":["oai:isae-repo.fr:isae-371"],"pid":[],"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Compensation non-linéaire généralisée"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Inversion dynamic non-linéaire"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Commande anti-windup"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Commande robuste"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Transformations linéaires fractionnaires"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Commande H-infinie non-lisse"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Rentrée atmosphérique"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Generalized nonlinear compensation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Nonlinear dynamic inversion"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Anti-windup control"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Robust control"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Linear fractional transformation, Nonsmooth H-infinity control"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"Atmospheric reentry"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"keyword","classname":"keyword","schemeid":"dnet:result_subject","schemename":"dnet:result_subject"},"value":"629.8"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Cadre de travail généralisé de compensation non-linéaire robuste : application à la rentrée atmosphérique"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"A generalized framework for robust nonlinear compensation : application to an atmospheric reentry control problem"}]} -{"author":[{"fullname":"Manea, Florin","name":"Florin","pid":[],"rank":1,"surname":"Manea"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-10-01"},"dateofcollection":"2017-09-25T17:25:29.95Z","dateoftransformation":"2019-01-23T10:12:38.35Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::020ca6ee0ae16e1e9c1405207087a671","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-10-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.tcs.2012.06.029"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"79","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"0304-3975","name":"Theoretical Computer Science","sp":"65","vol":"456"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349290078,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:25:29.95Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.tcs.2012.06.029"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Theoretical Computer Science"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computer Science(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Complexity results for deciding Networks of Evolutionary Processors"}]} -{"author":[{"fullname":"Yanlong, Yin","name":"Yin","pid":[],"rank":1,"surname":"Yanlong"},{"fullname":"Mingkai, Yao","name":"Yao","pid":[],"rank":2,"surname":"Mingkai"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-10-01"},"dateofcollection":"2017-09-25T17:16:18.455Z","dateoftransformation":"2019-01-23T10:13:00.54Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::02715dd9fc09b87966f3bad613aec7f9","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-10-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jacc.2014.06.769"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"16","issnLinking":"","issnOnline":"","issnPrinted":"0735-1097","name":"Journal of the American College of Cardiology","sp":"","vol":"64"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349297171,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:16:18.455Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jacc.2014.06.769"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Cardiology and Cardiovascular Medicine"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"GW25-e1474 Radiofrequency catheter ablation via radial artery approach for left-sided atrioventricuar accessory pathways"}]} -{"author":[{"fullname":"Reed, Jonathan C","name":"Jonathan C.","pid":[],"rank":1,"surname":"Reed"},{"fullname":"Kasschau, Kristin D","name":"Kristin D.","pid":[],"rank":2,"surname":"Kasschau"},{"fullname":"Prokhnevsky, Alexey I","name":"Alexey I.","pid":[],"rank":3,"surname":"Prokhnevsky"},{"fullname":"Gopinath, Kodetham","name":"Kodetham","pid":[],"rank":4,"surname":"Gopinath"},{"fullname":"Pogue, Gregory P","name":"Gregory P.","pid":[],"rank":5,"surname":"Pogue"},{"fullname":"Carrington, James C","name":"James C.","pid":[],"rank":6,"surname":"Carrington"},{"fullname":"Dolja, Valerian V","name":"Valerian V.","pid":[],"rank":7,"surname":"Dolja"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-02-01"},"dateofcollection":"2017-09-25T17:22:28.969Z","dateoftransformation":"2019-01-23T10:13:50.503Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::035f21f0844d85933ada45818ab13f5d","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0042-6822(02)00051-x"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"209","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0042-6822","name":"Virology","sp":"203","vol":"306"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349312955,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:22:28.969Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0042-6822(02)00051-x"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Virology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Suppressor of RNA silencing encoded by Beet yellows virus"}]} -{"author":[{"fullname":"Miller, R.K","name":"R. K.","pid":[],"rank":1,"surname":"Miller"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1968-05-01"},"dateofcollection":"2017-09-25T17:23:20.638Z","dateoftransformation":"2019-01-23T10:16:13.468Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::06505050e503a2e7f9167ba704fbeaac","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1968-05-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/0022-247x(68)90176-5"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"340","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0022-247X","name":"Journal of Mathematical Analysis and Applications","sp":"319","vol":"22"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349364849,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:23:20.638Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/0022-247x(68)90176-5"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Applied Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Analysis"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"On Volterra integral equations with nonnegative integrable resolvents"}]} -{"author":[{"fullname":"Chatterjee, Rupak","name":"Rupak","pid":[],"rank":1,"surname":"Chatterjee"},{"fullname":"Sabui, Kanchan","name":"Kanchan","pid":[],"rank":2,"surname":"Sabui"},{"fullname":"Jaiswal, Atin","name":"Atin","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0001-9317-9350"}],"rank":3,"surname":"Jaiswal"},{"fullname":"Mandal, Jayanta","name":"Jayanta","pid":[],"rank":4,"surname":"Mandal"},{"fullname":"Kumar, Mukesh","name":"Mukesh","pid":[],"rank":5,"surname":"Kumar"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-06-01"},"dateofcollection":"2017-09-25T17:25:36.162Z","dateoftransformation":"2019-01-23T10:16:14.171Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::06546a1ad6b1c71e5e366ef15b9ade1f","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-06-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::03d3da3bc6d4be6ed3c0a77efc904672","value":"Journal of Orthopaedics, Trauma and Rehabilitation"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jotr.2014.10.003"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"57","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"2210-4917","name":"Journal of Orthopaedics, Trauma and Rehabilitation","sp":"55","vol":"19"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349365125,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:25:36.162Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jotr.2014.10.003"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Physical Therapy, Sports Therapy and Rehabilitation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Rehabilitation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Orthopedics and Sports Medicine"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Tuberculous Osteomyelitis of the Patella"}]} -{"author":[{"fullname":"Ding, Xie Ping","name":"Xie Ping","pid":[],"rank":1,"surname":"Ding"},{"fullname":"Xia, Fu Quan","name":"Fu Quan","pid":[],"rank":2,"surname":"Xia"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2002-10-01"},"dateofcollection":"2017-09-25T17:15:07.008Z","dateoftransformation":"2019-01-23T10:19:19.133Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::0a4c1442ae16ccfe614b1230a1700ce5","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2002-10-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0377-0427(02)00443-0"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"383","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0377-0427","name":"Journal of Computational and Applied Mathematics","sp":"369","vol":"147"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349046152,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:15:07.008Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0377-0427(02)00443-0"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Applied Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computational Mathematics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"A new class of completely generalized quasi-variational inclusions in Banach spaces"}]} -{"author":[{"fullname":"Kondo, N.","name":"N.","pid":[],"rank":1,"surname":"Kondo"},{"fullname":"Yokoyama, K.","name":"K.","pid":[],"rank":2,"surname":"Yokoyama"},{"fullname":"Hosaka, S.","name":"S.","pid":[],"rank":3,"surname":"Hosaka"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-01-01"},"dateofcollection":"2017-09-25T17:21:06.299Z","dateoftransformation":"2019-01-23T10:21:12.263Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::0cd5cf2933ecbdee82c39799961c8b18","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-01-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/3.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.phpro.2012.03.506"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"443","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"1875-3892","name":"Physics Procedia","sp":"440","vol":"27"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349092691,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:21:06.299Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.phpro.2012.03.506"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Physics and Astronomy(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Magnetic separation of organic dyes using superconducting bulk magnets"}]} -{"author":[{"fullname":"Guichard, David R.","name":"David R.","pid":[],"rank":1,"surname":"Guichard"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1984-02-01"},"dateofcollection":"2017-09-25T17:10:39.074Z","dateoftransformation":"2019-01-23T10:23:08.168Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::0f7eb47f3d0e591efedcaacc0ad312aa","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1984-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/0168-0072(84)90037-x"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"9","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0168-0072","name":"Annals of Pure and Applied Logic","sp":"1","vol":"26"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349140964,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:10:39.074Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/0168-0072(84)90037-x"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Logic"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"A note on r-maximal subspaces of V∞"}]} -{"author":[{"fullname":"Ruano, Alberto","name":"Alberto","pid":[],"rank":1,"surname":"Ruano"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-01-01"},"dateofcollection":"2017-09-25T17:15:22.043Z","dateoftransformation":"2019-01-23T10:24:10.631Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::10f021134185727435d60679a30a9705","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-01-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::3f856cc4c8830ede48af1aaffbe61c83","value":"Gaceta Sanitaria"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0213-9111(03)71806-8"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"6","issnLinking":"","issnOnline":"","issnPrinted":"0213-9111","name":"Gaceta Sanitaria","sp":"","vol":"17"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349167887,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:15:22.043Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0213-9111(03)71806-8"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Public Health, Environmental and Occupational Health"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Tabaco y cáncer de pulmón en Asturias"}]} -{"author":[{"fullname":"Kloefkorn, H.E.","name":"H. E.","pid":[],"rank":1,"surname":"Kloefkorn"},{"fullname":"Allen, K.D.","name":"K. D.","pid":[],"rank":2,"surname":"Allen"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-04-01"},"dateofcollection":"2017-09-25T17:14:25.074Z","dateoftransformation":"2019-01-23T10:24:17.711Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::111ab11c5644629db0779ba0041f8e0b","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-04-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.joca.2015.02.572"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"1063-4584","name":"Osteoarthritis and Cartilage","sp":"","vol":"23"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349170715,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:14:25.074Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.joca.2015.02.572"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Rheumatology"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Orthopedics and Sports Medicine"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Biomedical Engineering"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Histological changes in the subchondral bone and synovium relate to heightened limb sensitivity in a rat OA model"}]} -{"author":[{"fullname":"Gustafson, Karl","name":"Karl","pid":[],"rank":1,"surname":"Gustafson"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1995-03-01"},"dateofcollection":"2017-09-25T17:23:52.405Z","dateoftransformation":"2019-01-23T10:24:22.219Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::11366a19965f0d8ecadef4df4a7e9ccc","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1995-03-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/0024-3795(94)00213-w"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"140","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"0024-3795","name":"Linear Algebra and its Applications","sp":"117","vol":"217"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349172780,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:23:52.405Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/0024-3795(94)00213-w"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Geometry and Topology"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Algebra and Number Theory"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Numerical Analysis"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Discrete Mathematics and Combinatorics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Matrix trigonometry"}]} -{"author":[{"fullname":"Boykinova, O.B.","name":"O. B.","pid":[],"rank":1,"surname":"Boykinova"},{"fullname":"Novakov, S.S.","name":"S. S.","pid":[],"rank":2,"surname":"Novakov"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-04-01"},"dateofcollection":"2017-09-25T17:19:21.468Z","dateoftransformation":"2019-01-23T10:26:02.481Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1382fc03144c27085955624f9727e699","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-04-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::3f0c1d3f035cc27c14b4a799568d3e98","value":"International Journal of Infectious Diseases"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.ijid.2014.03.993"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"1201-9712","name":"International Journal of Infectious Diseases","sp":"","vol":"21"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349214775,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:19:21.468Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.ijid.2014.03.993"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Microbiology (medical)"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Infectious Diseases"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Infectious diseases with changing geography"}]} -{"author":[{"fullname":"Lísal, Jiří","name":"Jiří","pid":[],"rank":1,"surname":"Lísal"},{"fullname":"Kainov, Denis E.","name":"Denis E.","pid":[],"rank":2,"surname":"Kainov"},{"fullname":"Lam, TuKiet T.","name":"Tukiet T.","pid":[],"rank":3,"surname":"Lam"},{"fullname":"Emmett, Mark R.","name":"Mark R.","pid":[],"rank":4,"surname":"Emmett"},{"fullname":"Wei, Hui","name":"Hui","pid":[],"rank":5,"surname":"Wei"},{"fullname":"Gottlieb, Paul","name":"Paul","pid":[],"rank":6,"surname":"Gottlieb"},{"fullname":"Marshall, Alan G.","name":"Alan G.","pid":[],"rank":7,"surname":"Marshall"},{"fullname":"Tuma, Roman","name":"Roman","pid":[],"rank":8,"surname":"Tuma"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2006-07-01"},"dateofcollection":"2017-09-25T17:17:34.511Z","dateoftransformation":"2019-01-23T10:28:46.873Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1757e43719aee1289faee6b2c9538d1d","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2006-07-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.virol.2006.03.025"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"79","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0042-6822","name":"Virology","sp":"73","vol":"351"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349283923,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:17:34.511Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.virol.2006.03.025"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Virology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Interaction of packaging motor with the polymerase complex of dsRNA bacteriophage"}]} -{"author":[{"fullname":"Wysujack, Klaus","name":"Klaus","pid":[],"rank":1,"surname":"Wysujack"},{"fullname":"Laude, Uwe","name":"Uwe","pid":[],"rank":2,"surname":"Laude"},{"fullname":"Anwand, Karl","name":"Karl","pid":[],"rank":3,"surname":"Anwand"},{"fullname":"Mehner, Thomas","name":"Thomas","pid":[],"rank":4,"surname":"Mehner"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2001-04-01"},"dateofcollection":"2017-09-25T17:10:32.226Z","dateoftransformation":"2019-01-23T10:29:07.35Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::17da7b56aa049a6bd67d6f3b2399a8ee","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2001-04-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0075-9511(01)80047-5"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"51","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0075-9511","name":"Limnologica - Ecology and Management of Inland Waters","sp":"45","vol":"31"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349293060,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:10:32.226Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0075-9511(01)80047-5"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Aquatic Science"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Stocking, population development and food composition of pike Esox lucius in the biomanipulated Feldberger Haussee (Germany) — Implications for fisheries management"}]} -{"author":[{"fullname":"McDonald, J. Scott","name":"J. Scott","pid":[],"rank":1,"surname":"Mcdonald"},{"fullname":"Seymour, Kiley J.","name":"Kiley J.","pid":[],"rank":2,"surname":"Seymour"},{"fullname":"Schira, Mark M.","name":"Mark M.","pid":[],"rank":3,"surname":"Schira"},{"fullname":"Spehar, Branka","name":"Branka","pid":[],"rank":4,"surname":"Spehar"},{"fullname":"Clifford, Colin W.G.","name":"Colin W. G.","pid":[],"rank":5,"surname":"Clifford"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2009-06-01"},"dateofcollection":"2017-09-25T17:22:18.233Z","dateoftransformation":"2019-01-23T10:29:19.967Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1825ff5d845c3c25cecd779583829b6b","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2009-06-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.visres.2008.12.014"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"1405","iss":"11","issnLinking":"","issnOnline":"","issnPrinted":"0042-6989","name":"Vision Research","sp":"1397","vol":"49"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349298278,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:22:18.233Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.visres.2008.12.014"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Ophthalmology"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Sensory Systems"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Orientation-specific contextual modulation of the fMRI BOLD response to luminance and chromatic gratings in human visual cortex"}]} -{"author":[{"fullname":"Grueso Angulo, Reinaldo","name":"Reinaldo","pid":[],"rank":1,"surname":"Grueso Angulo"},{"fullname":"Sanín Hoyos, Alejandra","name":"Alejandra","pid":[],"rank":2,"surname":"Sanín Hoyos"},{"fullname":"Bonilla Ramírez, Antonio J.","name":"Antonio J.","pid":[],"rank":3,"surname":"Bonilla Ramírez"},{"fullname":"García Carreño, Andrés","name":"Andrés","pid":[],"rank":4,"surname":"García Carreño"},{"fullname":"Cubillos Salcedo, Javier","name":"Javier","pid":[],"rank":5,"surname":"Cubillos Salcedo"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-02-01"},"dateofcollection":"2017-09-25T17:11:00.136Z","dateoftransformation":"2019-01-23T10:29:27.46Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1854b6c6e615c64bb886b20e3c51f099","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/3.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0120-3347(10)81002-0"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"32","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0120-3347","name":"Revista Colombiana de Anestesiología","sp":"22","vol":"38"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349301458,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:11:00.136Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0120-3347(10)81002-0"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Anesthesiology and Pain Medicine"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Critical Care and Intensive Care Medicine"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Comparación entre la técnica de multi-inyección y la inyección única con localización del nervio mediano en el bloqueo infraclavicular para cirugía del miembro superior"}]} -{"author":[{"fullname":"Liang, Zeng","name":"Zeng","pid":[],"rank":1,"surname":"Liang"},{"fullname":"Gao, Li-Hua","name":"Li-Hua","pid":[],"rank":2,"surname":"Gao"},{"fullname":"Cao, Li-Jun","name":"Li-Jun","pid":[],"rank":3,"surname":"Cao"},{"fullname":"Feng, De-Yun","name":"De-Yun","pid":[],"rank":4,"surname":"Feng"},{"fullname":"Cao, Ya","name":"Ya","pid":[],"rank":5,"surname":"Cao"},{"fullname":"Luo, Qi-Zhi","name":"Qi-Zhi","pid":[],"rank":6,"surname":"Luo"},{"fullname":"Yu, Ping","name":"Ping","pid":[],"rank":7,"surname":"Yu"},{"fullname":"Li, Ming","name":"Ming","pid":[],"rank":8,"surname":"Li"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-09-01"},"dateofcollection":"2017-09-25T17:23:36.518Z","dateoftransformation":"2019-01-23T10:29:34.511Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::187f25dc2d40ec7ed34eb488236eef17","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2012-09-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s1995-7645(12)60117-5"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"742","iss":"9","issnLinking":"","issnOnline":"","issnPrinted":"1995-7645","name":"Asian Pacific Journal of Tropical Medicine","sp":"738","vol":"5"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349304355,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:23:36.518Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s1995-7645(12)60117-5"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Medicine(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Detection of STAT2 in early stage of cervical premalignancy and in cervical cancer"}]} -{"author":[{"fullname":"Abdul Rahiman, Ali Fathima Sabirneeza","name":"Ali Fathima Sabirneeza","pid":[],"rank":1,"surname":"Abdul Rahiman"},{"fullname":"Sethumanickam, Subhashini","name":"Subhashini","pid":[],"rank":2,"surname":"Sethumanickam"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-02-01"},"dateofcollection":"2017-09-25T17:09:12.748Z","dateoftransformation":"2019-01-23T10:30:39.329Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1a11ffdca7bff691d9be29074694ed28","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2014-02-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::fde6cb86e1367ee2c3f02f4760134db0","value":"Arabian Journal of Chemistry"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/3.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.arabjc.2014.01.016"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"","issnLinking":"","issnOnline":"","issnPrinted":"1878-5352","name":"Arabian Journal of Chemistry","sp":"","vol":""},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349333854,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:09:12.748Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.arabjc.2014.01.016"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Chemistry(all)"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Chemical Engineering(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Corrosion inhibition, adsorption and thermodynamic properties of poly(vinyl alcohol-cysteine) in molar HCl"}]} -{"author":[{"fullname":"Rahmouni, Abdelaali","name":"Abdelaali","pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"orcid","classname":"Open Researcher and Contributor ID","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"0000-0002-1114-4216"}],"rank":1,"surname":"Rahmouni"},{"fullname":"Boulanouar, Abderrahim","name":"Abderrahim","pid":[],"rank":2,"surname":"Boulanouar"},{"fullname":"Samaouali, Abderrahim","name":"Abderrahim","pid":[],"rank":3,"surname":"Samaouali"},{"fullname":"Boukalouch, Mohamed","name":"Mohamed","pid":[],"rank":4,"surname":"Boukalouch"},{"fullname":"Géraud, Yves","name":"Yves","pid":[],"rank":5,"surname":"Géraud"},{"fullname":"Sebbani, Jamal","name":"Jamal","pid":[],"rank":6,"surname":"Sebbani"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2017-02-01"},"dateofcollection":"2017-09-25T17:25:12.979Z","dateoftransformation":"2019-01-23T10:30:54.608Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1a700385222228181f20835bae60a71e","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2017-02-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::636dedde598e3adc89ff3d872ebd30f1","value":"Journal of Rock Mechanics and Geotechnical Engineering"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jrmge.2016.11.005"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"83","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"1674-7755","name":"Journal of Rock Mechanics and Geotechnical Engineering","sp":"74","vol":"9"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349340911,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:25:12.979Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jrmge.2016.11.005"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Prediction of elastic and acoustic behaviors of calcarenite used for construction of historical monuments of Rabat, Morocco"}]} -{"author":[{"fullname":"Maan, R","name":"R.","pid":[],"rank":1,"surname":"Maan"},{"fullname":"Zaim, R","name":"R.","pid":[],"rank":2,"surname":"Zaim"},{"fullname":"van der Meer, A","name":"A.","pid":[],"rank":3,"surname":"Meer"},{"fullname":"Feld, J","name":"J.","pid":[],"rank":4,"surname":"Feld"},{"fullname":"Wedemeyer, H","name":"H.","pid":[],"rank":5,"surname":"Wedemeyer"},{"fullname":"Dufour, J","name":"J.","pid":[],"rank":6,"surname":"Dufour"},{"fullname":"Lammert, F","name":"F.","pid":[],"rank":7,"surname":"Lammert"},{"fullname":"Manns, M","name":"M.","pid":[],"rank":8,"surname":"Manns"},{"fullname":"Zeuzem, S","name":"S.","pid":[],"rank":9,"surname":"Zeuzem"},{"fullname":"Hansen, B","name":"B.","pid":[],"rank":10,"surname":"Hansen"},{"fullname":"Janssen, H","name":"H.","pid":[],"rank":11,"surname":"Janssen"},{"fullname":"Veldt, B","name":"B.","pid":[],"rank":12,"surname":"Veldt"},{"fullname":"de Knegt, R","name":"R.","pid":[],"rank":13,"surname":"Knegt"},{"fullname":"Uyl-de Groot, C","name":"C.","pid":[],"rank":14,"surname":"Uyl-De Groot"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-11-01"},"dateofcollection":"2017-09-25T17:17:11.336Z","dateoftransformation":"2019-01-23T10:31:34.227Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1b63c2f6ce1dc7ba9598fe6ec08affdc","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2015-11-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jval.2015.09.2195"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"7","issnLinking":"","issnOnline":"","issnPrinted":"1098-3015","name":"Value in Health","sp":"","vol":"18"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349356246,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:17:11.336Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jval.2015.09.2195"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Public Health, Environmental and Occupational Health"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Health Policy"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Real-World Medical Costs of Antiviral Therapy Among Patients With Chronic Hcv Infection and Advanced Hepatic Fibrosis"}]} -{"author":[{"fullname":"Van Wyk, Christopher J.","name":"Christopher J.","pid":[],"rank":1,"surname":"Wyk"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1990-02-01"},"dateofcollection":"2017-09-25T17:22:11.445Z","dateoftransformation":"2019-01-23T10:31:54.934Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1be5adb74414a30ec46c74dfa20d7562","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1990-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/0022-0000(90)90015-d"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"1","issnLinking":"","issnOnline":"","issnPrinted":"0022-0000","name":"Journal of Computer and System Sciences","sp":"","vol":"40"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349365336,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:22:11.445Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/0022-0000(90)90015-d"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Theoretical Computer Science"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computer Networks and Communications"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computational Theory and Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Applied Mathematics"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Editor's foreword"}]} -{"author":[{"fullname":"Pita, James","name":"James","pid":[],"rank":1,"surname":"Pita"},{"fullname":"Jain, Manish","name":"Manish","pid":[],"rank":2,"surname":"Jain"},{"fullname":"Tambe, Milind","name":"Milind","pid":[],"rank":3,"surname":"Tambe"},{"fullname":"Ordóñez, Fernando","name":"Fernando","pid":[],"rank":4,"surname":"Ordóñez"},{"fullname":"Kraus, Sarit","name":"Sarit","pid":[],"rank":5,"surname":"Kraus"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-10-01"},"dateofcollection":"2017-09-25T17:11:56.937Z","dateoftransformation":"2019-01-23T10:32:15.67Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1c62e28a5d3faf1da7717a81e05f6cf4","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2010-10-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.artint.2010.07.002"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"1171","iss":"15","issnLinking":"","issnOnline":"","issnPrinted":"0004-3702","name":"Artificial Intelligence","sp":"1142","vol":"174"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349374470,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:11:56.937Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.artint.2010.07.002"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Artificial Intelligence"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Robust solutions to Stackelberg games: Addressing bounded rationality and limited observations in human cognition"}]} -{"author":[{"fullname":"Duggal, B.P.","name":"B. P.","pid":[],"rank":1,"surname":"Duggal"},{"fullname":"Djordjević, S.V.","name":"S. V.","pid":[],"rank":2,"surname":"Djordjević"},{"fullname":"Kubrusly, Carlos","name":"Carlos","pid":[],"rank":3,"surname":"Kubrusly"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2005-09-01"},"dateofcollection":"2017-09-25T17:20:31.413Z","dateoftransformation":"2019-01-23T10:32:55.692Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1d561e2e20c1bb6eb50b2e309ed5658f","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2005-09-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.jmaa.2004.08.018"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"441","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0022-247X","name":"Journal of Mathematical Analysis and Applications","sp":"433","vol":"309"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349393684,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:20:31.413Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.jmaa.2004.08.018"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Applied Mathematics"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Analysis"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Kato type operators and Weyl's theorem"}]} -{"author":[{"fullname":"Ichihara, Kazuhiro","name":"Kazuhiro","pid":[],"rank":1,"surname":"Ichihara"},{"fullname":"Ohtouge, Masahiro","name":"Masahiro","pid":[],"rank":2,"surname":"Ohtouge"},{"fullname":"Teragaito, Masakazu","name":"Masakazu","pid":[],"rank":3,"surname":"Teragaito"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2002-08-01"},"dateofcollection":"2017-09-25T17:24:17.225Z","dateoftransformation":"2019-01-23T10:33:45.13Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1e805d44f8076ae1c11f0093cf9679ca","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2002-08-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0166-8641(01)00188-2"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"478","iss":"3","issnLinking":"","issnOnline":"","issnPrinted":"0166-8641","name":"Topology and its Applications","sp":"467","vol":"122"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349415858,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:24:17.225Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0166-8641(01)00188-2"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Geometry and Topology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Boundary slopes of non-orientable Seifert surfaces for knots"}]} -{"author":[{"fullname":"Klinger, E.F.","name":"E. F.","pid":[],"rank":1,"surname":"Klinger"},{"fullname":"Daum, C.D.","name":"C. D.","pid":[],"rank":2,"surname":"Daum"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2007-02-01"},"dateofcollection":"2017-09-25T17:14:47.856Z","dateoftransformation":"2019-01-23T10:33:48.2Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1e922204b8bfd042c5b9fbeb29848b53","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2007-02-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/4.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.bbmt.2007.01.017"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"1083-8791","name":"Biology of Blood and Marrow Transplantation","sp":"","vol":"13"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349417247,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:14:47.856Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.bbmt.2007.01.017"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Transplantation"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Hematology"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"387: A reimmunization program for pediatric hematopoietic progenitor cell transplant (HPCT) recipients"}]} -{"author":[{"fullname":"Lin, Peter H","name":"Peter H.","pid":[],"rank":1,"surname":"Lin"},{"fullname":"Bush, Ruth L","name":"Ruth L.","pid":[],"rank":2,"surname":"Bush"},{"fullname":"Lumsden, Alan B","name":"Alan B.","pid":[],"rank":3,"surname":"Lumsden"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-08-01"},"dateofcollection":"2017-09-25T17:20:36.713Z","dateoftransformation":"2019-01-23T10:34:47.354Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::1fe2ad6be2235cd0e494baad6184efaa","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2003-08-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0741-5214(03)00428-2"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"","iss":"2","issnLinking":"","issnOnline":"","issnPrinted":"0741-5214","name":"Journal of Vascular Surgery","sp":"","vol":"38"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349009240,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:20:36.713Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0741-5214(03)00428-2"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Surgery"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Cardiology and Cardiovascular Medicine"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Successful stent-graft exclusion of a bovine patch-related carotid artery pseudoaneurysm"}]} -{"author":[{"fullname":"Dormido, Sebastián","name":"Sebastián","pid":[],"rank":1,"surname":"Dormido"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2013-10-01"},"dateofcollection":"2017-09-25T17:18:50.22Z","dateoftransformation":"2019-01-23T10:35:38.06Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::2122d7837eac59f792a6f11f85bec960","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"2013-10-01"},"distributionlocation":"","hostedby":{"key":"10|doajarticles::0fb834eff254befa80c0b975a98101db","value":"Revista Iberoamericana de Automática e Informática Industrial RIAI"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://creativecommons.org/licenses/by-nc-nd/3.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/j.riai.2013.09.004"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"481","iss":"4","issnLinking":"","issnOnline":"","issnPrinted":"1697-7912","name":"Revista Iberoamericana de Automática e Informática Industrial RIAI","sp":"477","vol":"10"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349030805,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:18:50.22Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/j.riai.2013.09.004"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Control and Systems Engineering"},{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Computer Science(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Entrevista con Javier Aracil Santonja: Creador de la escuela sevillana de control automático. 3ª Parte"}]} -{"author":[{"fullname":"Neul, Jeffrey L","name":"Jeffrey L.","pid":[],"rank":1,"surname":"Neul"},{"fullname":"Ferguson, Edwin L","name":"Edwin L.","pid":[],"rank":2,"surname":"Ferguson"}],"bestaccessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":[{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"}],"context":[],"contributor":[],"country":[],"coverage":[],"dataInfo":{"deletedbyinference":true,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1998-11-01"},"dateofcollection":"2017-09-25T17:11:44.911Z","dateoftransformation":"2019-01-23T10:37:07.581Z","description":[],"externalReference":[],"extraInfo":[],"format":[],"fulltext":[],"id":"50|base_oa_____::23375ea29b261a29a7891b6f890460ae","instance":[{"accessright":{"classid":"OPEN","classname":"Open Access","schemeid":"dnet:access_modes","schemename":"dnet:access_modes"},"collectedfrom":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"dateofacceptance":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"1998-11-01"},"distributionlocation":"","hostedby":{"key":"10|openaire____::df45502607927471ecf8a6ae83683ff5","value":"BASE (Open Access Aggregator)"},"instancetype":{"classid":"0001","classname":"Article","schemeid":"dnet:publication_resource","schemename":"dnet:publication_resource"},"license":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"http://www.elsevier.com/open-access/userlicense/1.0/"},"refereed":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:review_levels","schemename":"dnet:review_levels"},"url":["http://dx.doi.org/10.1016/s0092-8674(00)81616-5"]}],"journal":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"edition":"","ep":"494","iss":"4","issnLinking":"","issnOnline":"","issnPrinted":"0092-8674","name":"Cell","sp":"483","vol":"95"},"language":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:languages","schemename":"dnet:languages"},"lastupdatetimestamp":1597349065858,"oaiprovenance":{"originDescription":{"altered":true,"baseURL":"file:///mnt/downloaded_dumps/mdstore/base/base_winnower_elsevier.xml.gz","datestamp":"","harvestDate":"2017-09-25T17:11:44.911Z","identifier":"","metadataNamespace":""}},"originalId":[""],"pid":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"doi","classname":"doi","schemeid":"dnet:pid_types","schemename":"dnet:pid_types"},"value":"10.1016/s0092-8674(00)81616-5"}],"publisher":{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"value":"Elsevier BV"},"relevantdate":[],"resourcetype":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:dataCite_resource","schemename":"dnet:dataCite_resource"},"resulttype":{"classid":"publication","classname":"publication","schemeid":"dnet:result_typologies","schemename":"dnet:result_typologies"},"source":[],"subject":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"UNKNOWN","classname":"UNKNOWN","schemeid":"dnet:subject_classification_typologies","schemename":"dnet:subject_classification_typologies"},"value":"Biochemistry, Genetics and Molecular Biology(all)"}],"title":[{"dataInfo":{"deletedbyinference":false,"inferenceprovenance":"","inferred":false,"invisible":false,"provenanceaction":{"classid":"sysimport:crosswalk:repository","classname":"Harvested","schemeid":"dnet:provenanceActions","schemename":"dnet:provenanceActions"},"trust":"0.9"},"qualifier":{"classid":"main title","classname":"main title","schemeid":"dnet:dataCite_title","schemename":"dnet:dataCite_title"},"value":"Spatially Restricted Activation of the SAX Receptor by SCW Modulates DPP/TKV Signaling in Drosophila Dorsal–Ventral Patterning"}]} \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/software/software_empty.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/pid/result/software/software_empty.json deleted file mode 100644 index e69de29bb2..0000000000 From 6a89f59be9ca306f8b622ea7773a655b2dc14064 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:13:59 +0100 Subject: [PATCH 089/103] removed commented lines --- .../eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 122 ------------------ 1 file changed, 122 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index 7d8013c53d..08c7ee90e9 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -70,127 +70,5 @@ public class MakeTar implements Serializable { } -// private static TarArchiveOutputStream getTar(FileSystem fileSystem, String outputPath) throws IOException { -// Path hdfsWritePath = new Path(outputPath); -// FSDataOutputStream fsDataOutputStream = null; -// if (fileSystem.exists(hdfsWritePath)) { -// fileSystem.delete(hdfsWritePath, true); -// -// } -// fsDataOutputStream = fileSystem.create(hdfsWritePath); -// -// return new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); -// } -// -// private static void writeMaxSize(FileSystem fileSystem, String inputPath, String outputPath, String dir_name, -// int gBperSplit) throws IOException { -// final long bytesPerSplit = 1024L * 1024L * 1024L * gBperSplit; -// -// long sourceSize = fileSystem.getContentSummary(new Path(inputPath)).getSpaceConsumed(); -// -// final long numberOfSplits = sourceSize / bytesPerSplit; -// -// if (numberOfSplits < 2) { -// write(fileSystem, inputPath, outputPath + ".tar", dir_name); -// } else { -// int partNum = 0; -// -// RemoteIterator fileStatusListIterator = fileSystem -// .listFiles( -// new Path(inputPath), true); -// boolean next = fileStatusListIterator.hasNext(); -// while (sourceSize > 0 && next) { -// TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + (partNum + 1) + ".tar"); -// -// long current_size = 0; -// while (next && current_size < bytesPerSplit) { -// LocatedFileStatus fileStatus = fileStatusListIterator.next(); -// -// Path p = fileStatus.getPath(); -// String p_string = p.toString(); -// if (!p_string.endsWith("_SUCCESS")) { -// String name = p_string.substring(p_string.lastIndexOf("/") + 1); -// if (name.trim().equalsIgnoreCase("communities_infrastructures")) { -// name = "communities_infrastructures.json"; -// } -// TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); -// entry.setSize(fileStatus.getLen()); -// current_size += fileStatus.getLen(); -// ar.putArchiveEntry(entry); -// -// InputStream is = fileSystem.open(fileStatus.getPath()); -// -// BufferedInputStream bis = new BufferedInputStream(is); -// -// int count; -// byte data[] = new byte[1024]; -// while ((count = bis.read(data, 0, data.length)) != -1) { -// ar.write(data, 0, count); -// } -// bis.close(); -// ar.closeArchiveEntry(); -// -// } -// next = fileStatusListIterator.hasNext(); -// -// } -// sourceSize = sourceSize - current_size; -// partNum += 1; -// ar.close(); -// } -// -// } -// -// } -// -// private static void write(FileSystem fileSystem, String inputPath, String outputPath, String dir_name) -// throws IOException { -// -// Path hdfsWritePath = new Path(outputPath); -// FSDataOutputStream fsDataOutputStream = null; -// if (fileSystem.exists(hdfsWritePath)) { -// fileSystem.delete(hdfsWritePath, true); -// -// } -// fsDataOutputStream = fileSystem.create(hdfsWritePath); -// -// TarArchiveOutputStream ar = new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); -// -// RemoteIterator fileStatusListIterator = fileSystem -// .listFiles( -// new Path(inputPath), true); -// -// while (fileStatusListIterator.hasNext()) { -// LocatedFileStatus fileStatus = fileStatusListIterator.next(); -// -// Path p = fileStatus.getPath(); -// String p_string = p.toString(); -// if (!p_string.endsWith("_SUCCESS")) { -// String name = p_string.substring(p_string.lastIndexOf("/") + 1); -// if (name.trim().equalsIgnoreCase("communities_infrastructures")) { -// name = "communities_infrastructures.json"; -// } -// TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); -// entry.setSize(fileStatus.getLen()); -// ar.putArchiveEntry(entry); -// -// InputStream is = fileSystem.open(fileStatus.getPath()); -// -// BufferedInputStream bis = new BufferedInputStream(is); -// -// int count; -// byte data[] = new byte[1024]; -// while ((count = bis.read(data, 0, data.length)) != -1) { -// ar.write(data, 0, count); -// } -// bis.close(); -// ar.closeArchiveEntry(); -// -// } -// -// } -// -// ar.close(); -// } } From 56698909342f2a9e71b87bcd955b9c48cfe05e29 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:15:21 +0100 Subject: [PATCH 090/103] removed commented lines --- .../eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java index 9bb6653d0b..4c3bc0dd52 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/ResultMapper.java @@ -156,7 +156,6 @@ public class ResultMapper implements Serializable { .ifPresent(value -> value.stream().forEach(c -> contributorList.add(c.getValue()))); out.setContributor(contributorList); - // List countryList = new ArrayList<>(); Optional .ofNullable(input.getCountry()) .ifPresent( @@ -188,8 +187,6 @@ public class ResultMapper implements Serializable { .filter(Objects::nonNull) .collect(Collectors.toList()))); - // out.setCountry(countryList); - final List coverageList = new ArrayList<>(); Optional .ofNullable(input.getCoverage()) @@ -397,12 +394,7 @@ public class ResultMapper implements Serializable { } - private static void setCommonValue(eu.dnetlib.dhp.schema.oaf.Instance i, I instance) {// - // I - // getInstance(eu.dnetlib.dhp.schema.oaf.Instance - // i, boolean graph) { + private static void setCommonValue(eu.dnetlib.dhp.schema.oaf.Instance i, I instance) { Optional opAr = Optional .ofNullable(i.getAccessright()); if (opAr.isPresent()) { @@ -427,7 +419,6 @@ public class ResultMapper implements Serializable { Optional .ofNullable(i.getRefereed()) .ifPresent(value -> instance.setRefereed(value.getClassname())); - // .ifPresent(value -> instance.setRefereed(value.getValue())); Optional .ofNullable(i.getInstancetype()) .ifPresent(value -> instance.setType(value.getClassname())); @@ -437,10 +428,8 @@ public class ResultMapper implements Serializable { private static List getUniqueProvenance(List provenance) { Provenance iProv = new Provenance(); - // iProv.setProvenance(Constants.INFERRED); Provenance hProv = new Provenance(); - // hProv.setProvenance(Constants.HARVESTED); Provenance lProv = new Provenance(); for (Provenance p : provenance) { From 9c9d50f486bd39d86c023895f6f5b20ad258549f Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:26:22 +0100 Subject: [PATCH 091/103] removed code specific for pid graph dump --- .../eu/dnetlib/dhp/oa/graph/dump/Utils.java | 31 ------------------- 1 file changed, 31 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java index 524ec0eb1a..62e721a3f6 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java @@ -81,36 +81,5 @@ public class Utils { return new Gson().fromJson(sb.toString(), CommunityMap.class); } - public static List getRelationPair(String pid1, String pid2, String type1, String type2, - String semtype, String rel1, String rel2) { - List ret = new ArrayList<>(); - ret - .add( - Relation - .newInstance( - Node.newInstance(pid1, type1), - Node.newInstance(pid2, type2), - RelType.newInstance(rel1, semtype), - null)); - ret - .add( - Relation - .newInstance( - Node.newInstance(pid2, type2), - Node.newInstance(pid1, type1), - RelType.newInstance(rel2, semtype), - null)); - - return ret; - } - - public static Entity getEntity(String fund, String code) throws DocumentException { - { - final Document doc; - doc = new SAXReader().read(new StringReader(fund)); - String name = ((org.dom4j.Node) (doc.selectNodes("//funder/shortname").get(0))).getText(); - return Entity.newInstance(name + ":" + code); - } - } } From bac307155a4efa0ba7dfba0fee381fe2f0363796 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:28:04 +0100 Subject: [PATCH 092/103] removed properties specific for pid graph dump --- .../eu/dnetlib/dhp/oa/graph/dump/Constants.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Constants.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Constants.java index 202839866f..a466cf0742 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Constants.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Constants.java @@ -15,19 +15,6 @@ public class Constants { public static final String HARVESTED = "Harvested"; public static final String DEFAULT_TRUST = "0.9"; public static final String USER_CLAIM = "Linked by user";; - public static final String SIMILARITY = "similarity"; - - public static final String RESULT = "result"; - public static final String AUTHOR = "author"; - public static final String ORGANIZATION = "organization"; - public static final String PROJECT = "project"; - - public static final String RESPID_RESPID_RELATION = "hasOtherManifestation"; - public static final String RES_AUTHOR_RELATION = "hasAuthor"; - public static final String AUTHOR_RES_RELATION = "isAuthorOf"; - public static final String AUTHOR_AUTHOR_RELATION = "hasCoAuthor"; - public static final String AUTHORSHIP = "authorship"; - public static final String SAME_AS = "sameAs"; public static String COAR_ACCESS_RIGHT_SCHEMA = "http://vocabularies.coar-repositories.org/documentation/access_rights/"; From b90a945c49810d64245fba08dcdc971cb903d38e Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:28:33 +0100 Subject: [PATCH 093/103] removed property files for pid graph dump --- .../graph/dump_pid/input_collectandsave.json | 22 ---------- .../oa/graph/dump_pid/input_dump_author.json | 28 ------------- .../dump_pid/input_dump_organization.json | 28 ------------- .../dump_pid/input_dump_organizationrels.json | 34 ---------------- .../oa/graph/dump_pid/input_dump_project.json | 23 ----------- .../dump_pid/input_dump_projectrels.json | 28 ------------- .../oa/graph/dump_pid/input_dump_result.json | 22 ---------- .../graph/dump_pid/input_dump_resultrels.json | 22 ---------- .../oa/graph/dump_pid/input_parameters.json | 40 ------------------- 9 files changed, 247 deletions(-) delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_resultrels.json delete mode 100644 dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json deleted file mode 100644 index 03199f303a..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_collectandsave.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "paramName":"pip", - "paramLongName":"preparedInfoPath", - "paramDescription": "the path of the prepared resultid of allowed pids file to read", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store the entire set of the prepared info", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - } -] - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json deleted file mode 100644 index 3a78dd6c26..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_author.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "paramName":"s", - "paramLongName":"sourcePath", - "paramDescription": "the path of the prepared resultid sequence of allowed pids file to read", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store the dumped entities", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - }, - { - "paramName": "aap", - "paramLongName": "allowedAuthorPids", - "paramDescription": "the allowed list of accepted pids for authors", - "paramRequired": true - } -] - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json deleted file mode 100644 index b35b32bb16..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organization.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "paramName":"aop", - "paramLongName":"allowedOrganizationPids", - "paramDescription": "the set of pid allowed to be dumped for the organization", - "paramRequired": true - }, - { - "paramName":"s", - "paramLongName":"sourcePath", - "paramDescription": "the path of the information to read", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store the dumped entities", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - } -] - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json deleted file mode 100644 index 23d9dbe236..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_organizationrels.json +++ /dev/null @@ -1,34 +0,0 @@ -[ - { - "paramName":"aop", - "paramLongName":"allowedOrganizationPids", - "paramDescription": "the set of pid allowed to be dumped for the organization", - "paramRequired": true - }, - { - "paramName":"s", - "paramLongName":"sourcePath", - "paramDescription": "the path of the information to be dumped", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store the dumped relation", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - }, - { - "paramName":"ppi", - "paramLongName":"preparedInfoPath", - "paramDescription": "the path of the prepared info", - "paramRequired": true - } -] - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json deleted file mode 100644 index 2bb9b4b58a..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_project.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - - { - "paramName":"s", - "paramLongName":"sourcePath", - "paramDescription": "the path of the information to read", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store the dumped entities", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - } -] - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json deleted file mode 100644 index 7dd1564c3f..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_projectrels.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "paramName":"s", - "paramLongName":"sourcePath", - "paramDescription": "the path of the information to be dumped", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store the dumped relation", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - }, - { - "paramName":"ppi", - "paramLongName":"preparedInfoPath", - "paramDescription": "the path of the prepared info", - "paramRequired": true - } -] - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json deleted file mode 100644 index 404d8a3129..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_result.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "paramName":"ppi", - "paramLongName":"preparedInfoPath", - "paramDescription": "the path of the prepared resultid sequence of allowed pids file to read", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store the dumped entities", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - } -] - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_resultrels.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_resultrels.json deleted file mode 100644 index be781c1809..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_dump_resultrels.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "paramName":"pip", - "paramLongName":"preparedInfoPath", - "paramDescription": "the path of the prepared resultid of allowed pids file to read", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store the dumped relations", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - } -] - - diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json deleted file mode 100644 index a9c171a4c4..0000000000 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_pid/input_parameters.json +++ /dev/null @@ -1,40 +0,0 @@ -[ - { - "paramName":"arp", - "paramLongName":"allowedResultPids", - "paramDescription": "the set of pid allowed to be dumped for the result", - "paramRequired": true - }, - { - "paramName":"aap", - "paramLongName":"allowedAuthorPids", - "paramDescription": "the set of pid allowed to be dumped for the author", - "paramRequired": true - }, - { - "paramName":"s", - "paramLongName":"sourcePath", - "paramDescription": "the path of the file to read", - "paramRequired": true - }, - { - "paramName": "out", - "paramLongName": "outputPath", - "paramDescription": "the path used to store temporary output files", - "paramRequired": true - }, - { - "paramName": "ssm", - "paramLongName": "isSparkSessionManaged", - "paramDescription": "true if the spark session is managed, false otherwise", - "paramRequired": false - }, - { - "paramName":"tn", - "paramLongName":"resultTableName", - "paramDescription": "the name of the result table we are currently working on", - "paramRequired": true - } -] - - From e9d948786d08c9af6cd53d863c9dabed3c1e5d25 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:30:51 +0100 Subject: [PATCH 094/103] removed commented code --- .../dhp/schema/dump/oaf/community/Funder.java | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Funder.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Funder.java index 83c2302964..adb41634aa 100644 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Funder.java +++ b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/community/Funder.java @@ -10,38 +10,9 @@ import java.io.Serializable; * store the jurisdiction of the funder */ public class Funder extends eu.dnetlib.dhp.schema.dump.oaf.Funder { -// private String shortName; -// -// private String name; private String fundingStream; -// private String jurisdiction; - -// public String getJurisdiction() { -// return jurisdiction; -// } -// -// public void setJurisdiction(String jurisdiction) { -// this.jurisdiction = jurisdiction; -// } -// -// public String getShortName() { -// return shortName; -// } -// -// public void setShortName(String shortName) { -// this.shortName = shortName; -// } -// -// public String getName() { -// return name; -// } -// -// public void setName(String name) { -// this.name = name; -// } - public String getFundingStream() { return fundingStream; } From f45c23316f0908a07ae08f4afe6f7890500afa9f Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 17:31:24 +0100 Subject: [PATCH 095/103] removed entities added for the pid graph dump --- .../dhp/schema/dump/pidgraph/Entity.java | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/pidgraph/Entity.java diff --git a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/pidgraph/Entity.java b/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/pidgraph/Entity.java deleted file mode 100644 index 52a7a93bcf..0000000000 --- a/dhp-schemas/src/main/java/eu/dnetlib/dhp/schema/dump/pidgraph/Entity.java +++ /dev/null @@ -1,23 +0,0 @@ - -package eu.dnetlib.dhp.schema.dump.pidgraph; - -import java.io.Serializable; - -public class Entity implements Serializable { - private String id; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public static Entity newInstance(String id) { - Entity entity = new Entity(); - entity.id = id; - - return entity; - } -} From e9ac471ae9a925ff57340c8207cca0d91e88d241 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Wed, 4 Nov 2020 18:04:42 +0100 Subject: [PATCH 096/103] removed dependency from classes for the pid graph dump --- .../java/eu/dnetlib/dhp/oa/graph/dump/Utils.java | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java index 62e721a3f6..bd2738eaab 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java @@ -4,9 +4,7 @@ package eu.dnetlib.dhp.oa.graph.dump; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; -import java.io.StringReader; -import java.util.ArrayList; -import java.util.List; + import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -14,9 +12,7 @@ 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.SparkSession; -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.io.SAXReader; + import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; @@ -24,10 +20,7 @@ import com.google.gson.Gson; import eu.dnetlib.dhp.common.HdfsSupport; import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; import eu.dnetlib.dhp.oa.graph.dump.graph.Constants; -import eu.dnetlib.dhp.schema.dump.oaf.graph.Node; -import eu.dnetlib.dhp.schema.dump.oaf.graph.RelType; -import eu.dnetlib.dhp.schema.dump.oaf.graph.Relation; -import eu.dnetlib.dhp.schema.dump.pidgraph.Entity; + import eu.dnetlib.dhp.utils.DHPUtils; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; From 4625b7486e5cda16a0f8460d63ba4c13e92dc4bb Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Wed, 4 Nov 2020 18:12:43 +0100 Subject: [PATCH 097/103] code formatting --- .../eu/dnetlib/dhp/common/MakeTarArchive.java | 166 +++++++++--------- .../dhp/oa/graph/clean/CleaningFunctions.java | 28 +-- .../eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 13 +- .../eu/dnetlib/dhp/oa/graph/dump/Utils.java | 4 - 4 files changed, 103 insertions(+), 108 deletions(-) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/MakeTarArchive.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/MakeTarArchive.java index 5dff1d0a8f..4047fdca4f 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/MakeTarArchive.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/MakeTarArchive.java @@ -1,119 +1,117 @@ -package eu.dnetlib.dhp.common; -import org.apache.commons.compress.archivers.tar.TarArchiveEntry; -import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; -import org.apache.hadoop.fs.*; +package eu.dnetlib.dhp.common; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.io.Serializable; +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; +import org.apache.hadoop.fs.*; + public class MakeTarArchive implements Serializable { - private static TarArchiveOutputStream getTar(FileSystem fileSystem, String outputPath) throws IOException { - Path hdfsWritePath = new Path(outputPath); - FSDataOutputStream fsDataOutputStream = null; - if (fileSystem.exists(hdfsWritePath)) { - fileSystem.delete(hdfsWritePath, true); + private static TarArchiveOutputStream getTar(FileSystem fileSystem, String outputPath) throws IOException { + Path hdfsWritePath = new Path(outputPath); + FSDataOutputStream fsDataOutputStream = null; + if (fileSystem.exists(hdfsWritePath)) { + fileSystem.delete(hdfsWritePath, true); - } - fsDataOutputStream = fileSystem.create(hdfsWritePath); + } + fsDataOutputStream = fileSystem.create(hdfsWritePath); - return new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); - } + return new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); + } - private static void write(FileSystem fileSystem, String inputPath, String outputPath, String dir_name) - throws IOException { + private static void write(FileSystem fileSystem, String inputPath, String outputPath, String dir_name) + throws IOException { - Path hdfsWritePath = new Path(outputPath); - FSDataOutputStream fsDataOutputStream = null; - if (fileSystem.exists(hdfsWritePath)) { - fileSystem.delete(hdfsWritePath, true); + Path hdfsWritePath = new Path(outputPath); + FSDataOutputStream fsDataOutputStream = null; + if (fileSystem.exists(hdfsWritePath)) { + fileSystem.delete(hdfsWritePath, true); - } - fsDataOutputStream = fileSystem.create(hdfsWritePath); + } + fsDataOutputStream = fileSystem.create(hdfsWritePath); - TarArchiveOutputStream ar = new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); + TarArchiveOutputStream ar = new TarArchiveOutputStream(fsDataOutputStream.getWrappedStream()); - RemoteIterator fileStatusListIterator = fileSystem - .listFiles( - new Path(inputPath), true); + RemoteIterator fileStatusListIterator = fileSystem + .listFiles( + new Path(inputPath), true); - while (fileStatusListIterator.hasNext()) { - writeCurrentFile(fileSystem, dir_name, fileStatusListIterator, ar, 0); - } + while (fileStatusListIterator.hasNext()) { + writeCurrentFile(fileSystem, dir_name, fileStatusListIterator, ar, 0); + } - ar.close(); - } + ar.close(); + } - public static void tarMaxSize(FileSystem fileSystem, String inputPath, String outputPath, String dir_name, - int gBperSplit) throws IOException { - final long bytesPerSplit = 1024L * 1024L * 1024L * gBperSplit; + public static void tarMaxSize(FileSystem fileSystem, String inputPath, String outputPath, String dir_name, + int gBperSplit) throws IOException { + final long bytesPerSplit = 1024L * 1024L * 1024L * gBperSplit; - long sourceSize = fileSystem.getContentSummary(new Path(inputPath)).getSpaceConsumed(); + long sourceSize = fileSystem.getContentSummary(new Path(inputPath)).getSpaceConsumed(); - if (sourceSize < bytesPerSplit) { - write(fileSystem, inputPath, outputPath + ".tar", dir_name); - } else { - int partNum = 0; + if (sourceSize < bytesPerSplit) { + write(fileSystem, inputPath, outputPath + ".tar", dir_name); + } else { + int partNum = 0; - RemoteIterator fileStatusListIterator = fileSystem - .listFiles( - new Path(inputPath), true); - boolean next = fileStatusListIterator.hasNext(); - while (next) { - TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + (partNum + 1) + ".tar"); + RemoteIterator fileStatusListIterator = fileSystem + .listFiles( + new Path(inputPath), true); + boolean next = fileStatusListIterator.hasNext(); + while (next) { + TarArchiveOutputStream ar = getTar(fileSystem, outputPath + "_" + (partNum + 1) + ".tar"); - long current_size = 0; - while (next && current_size < bytesPerSplit) { - current_size = writeCurrentFile(fileSystem, dir_name, fileStatusListIterator, ar, current_size); - next = fileStatusListIterator.hasNext(); + long current_size = 0; + while (next && current_size < bytesPerSplit) { + current_size = writeCurrentFile(fileSystem, dir_name, fileStatusListIterator, ar, current_size); + next = fileStatusListIterator.hasNext(); - } + } - partNum += 1; - ar.close(); - } + partNum += 1; + ar.close(); + } - } + } - } + } - private static long writeCurrentFile(FileSystem fileSystem, String dir_name, - RemoteIterator fileStatusListIterator, - TarArchiveOutputStream ar, long current_size) throws IOException { - LocatedFileStatus fileStatus = fileStatusListIterator.next(); + private static long writeCurrentFile(FileSystem fileSystem, String dir_name, + RemoteIterator fileStatusListIterator, + TarArchiveOutputStream ar, long current_size) throws IOException { + LocatedFileStatus fileStatus = fileStatusListIterator.next(); - Path p = fileStatus.getPath(); - String p_string = p.toString(); - if (!p_string.endsWith("_SUCCESS")) { - String name = p_string.substring(p_string.lastIndexOf("/") + 1); - if (name.trim().equalsIgnoreCase("communities_infrastructures")) { - name = "communities_infrastructures.json"; - } - TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); - entry.setSize(fileStatus.getLen()); - current_size += fileStatus.getLen(); - ar.putArchiveEntry(entry); + Path p = fileStatus.getPath(); + String p_string = p.toString(); + if (!p_string.endsWith("_SUCCESS")) { + String name = p_string.substring(p_string.lastIndexOf("/") + 1); + if (name.trim().equalsIgnoreCase("communities_infrastructures")) { + name = "communities_infrastructures.json"; + } + TarArchiveEntry entry = new TarArchiveEntry(dir_name + "/" + name); + entry.setSize(fileStatus.getLen()); + current_size += fileStatus.getLen(); + ar.putArchiveEntry(entry); - InputStream is = fileSystem.open(fileStatus.getPath()); - - BufferedInputStream bis = new BufferedInputStream(is); - - int count; - byte data[] = new byte[1024]; - while ((count = bis.read(data, 0, data.length)) != -1) { - ar.write(data, 0, count); - } - bis.close(); - ar.closeArchiveEntry(); - - } - return current_size; - } + InputStream is = fileSystem.open(fileStatus.getPath()); + BufferedInputStream bis = new BufferedInputStream(is); + int count; + byte data[] = new byte[1024]; + while ((count = bis.read(data, 0, data.length)) != -1) { + ar.write(data, 0, count); + } + bis.close(); + ar.closeArchiveEntry(); + } + return current_size; + } } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java index 12543d8c7e..56a4aaf5a1 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java @@ -109,20 +109,20 @@ public class CleaningFunctions { } if (Objects.nonNull(r.getPid())) { r - .setPid( - r - .getPid() - .stream() - .filter(Objects::nonNull) - .filter(sp -> StringUtils.isNotBlank(StringUtils.trim(sp.getValue()))) - .filter(sp -> NONE.equalsIgnoreCase(sp.getValue())) - .filter(sp -> Objects.nonNull(sp.getQualifier())) - .filter(sp -> StringUtils.isNotBlank(sp.getQualifier().getClassid())) - .map(sp -> { - sp.setValue(StringUtils.trim(sp.getValue())); - return sp; - }) - .collect(Collectors.toList())); + .setPid( + r + .getPid() + .stream() + .filter(Objects::nonNull) + .filter(sp -> StringUtils.isNotBlank(StringUtils.trim(sp.getValue()))) + .filter(sp -> NONE.equalsIgnoreCase(sp.getValue())) + .filter(sp -> Objects.nonNull(sp.getQualifier())) + .filter(sp -> StringUtils.isNotBlank(sp.getQualifier().getClassid())) + .map(sp -> { + sp.setValue(StringUtils.trim(sp.getValue())); + return sp; + }) + .collect(Collectors.toList())); } if (Objects.isNull(r.getResourcetype()) || StringUtils.isBlank(r.getResourcetype().getClassid())) { r diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index 08c7ee90e9..00ddcb5a86 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -4,7 +4,6 @@ package eu.dnetlib.dhp.oa.graph.dump; import java.io.*; import java.util.Optional; -import eu.dnetlib.dhp.common.MakeTarArchive; import org.apache.commons.compress.archivers.ar.ArArchiveEntry; import org.apache.commons.compress.archivers.ar.ArArchiveOutputStream; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; @@ -16,6 +15,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.common.MakeTarArchive; import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; public class MakeTar implements Serializable { @@ -41,9 +41,10 @@ public class MakeTar implements Serializable { final String inputPath = parser.get("sourcePath"); log.info("input path : {}", inputPath); - final int gBperSplit = Optional.ofNullable(parser.get("splitSize")) - .map(Integer::valueOf) - .orElse(10); + final int gBperSplit = Optional + .ofNullable(parser.get("splitSize")) + .map(Integer::valueOf) + .orElse(10); Configuration conf = new Configuration(); conf.set("fs.defaultFS", hdfsNameNode); @@ -54,7 +55,8 @@ public class MakeTar implements Serializable { } - public static void makeTArArchive(FileSystem fileSystem, String inputPath, String outputPath, int gBperSplit) throws IOException { + public static void makeTArArchive(FileSystem fileSystem, String inputPath, String outputPath, int gBperSplit) + throws IOException { RemoteIterator dir_iterator = fileSystem.listLocatedStatus(new Path(inputPath)); @@ -70,5 +72,4 @@ public class MakeTar implements Serializable { } - } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java index bd2738eaab..f88980f15e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java @@ -5,7 +5,6 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; - import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.spark.api.java.function.MapFunction; @@ -13,14 +12,12 @@ import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.SparkSession; - import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import eu.dnetlib.dhp.common.HdfsSupport; import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; import eu.dnetlib.dhp.oa.graph.dump.graph.Constants; - import eu.dnetlib.dhp.utils.DHPUtils; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; @@ -74,5 +71,4 @@ public class Utils { return new Gson().fromJson(sb.toString(), CommunityMap.class); } - } From 2148a51fae42dec9b2e836e4d5dca8a6ea19c96c Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Thu, 5 Nov 2020 11:24:12 +0100 Subject: [PATCH 098/103] minor changes --- .../dhp/oa/graph/dump/oozie_app/workflow.xml | 79 +++++++++---------- .../graph/dump_whole/oozie_app/workflow.xml | 32 +++----- 2 files changed, 52 insertions(+), 59 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml index 7321fd0764..baf9ae37a2 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml @@ -1,18 +1,18 @@ - - sourcePath - the source path - - - isLookUpUrl - the isLookup service endpoint - - - outputPath - the output path - + + sourcePath + the source path + + + isLookUpUrl + the isLookup service endpoint + + + outputPath + the output path + accessToken the access token used for the deposition in Zenodo @@ -320,6 +320,7 @@ + yarn @@ -344,6 +345,7 @@ + yarn @@ -371,43 +373,42 @@ - - - yarn - cluster - Split dumped result for community - eu.dnetlib.dhp.oa.graph.dump.community.SparkSplitForCommunity - dhp-graph-mapper-${projectVersion}.jar - - --executor-memory=${sparkExecutorMemory} - --executor-cores=${sparkExecutorCores} - --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.sql.warehouse.dir=${sparkSqlWarehouseDir} - - --sourcePath${workingDir}/ext - --outputPath${workingDir}/split - --communityMapPath${workingDir}/communityMap - - - - + + + yarn + cluster + Split dumped result for community + eu.dnetlib.dhp.oa.graph.dump.community.SparkSplitForCommunity + dhp-graph-mapper-${projectVersion}.jar + + --executor-memory=${sparkExecutorMemory} + --executor-cores=${sparkExecutorCores} + --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.sql.warehouse.dir=${sparkSqlWarehouseDir} + + --sourcePath${workingDir}/ext + --outputPath${workingDir}/split + --communityMapPath${workingDir}/communityMap + + + + eu.dnetlib.dhp.oa.graph.dump.MakeTar --hdfsPath${outputPath} --nameNode${nameNode} - --sourcePath${workingDir}/split + --sourcePath${workingDir}/split - eu.dnetlib.dhp.oa.graph.dump.SendToZenodoHDFS @@ -424,8 +425,6 @@ - - \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml index 793c1ed333..e5001bf437 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml @@ -1,18 +1,18 @@ - - sourcePath - the source path - - - isLookUpUrl - the isLookup service endpoint - - - outputPath - the output path - + + sourcePath + the source path + + + isLookUpUrl + the isLookup service endpoint + + + outputPath + the output path + resultAggregation true if all the result type have to be dumped under result. false otherwise @@ -357,10 +357,8 @@ - - @@ -389,7 +387,6 @@ - yarn @@ -418,7 +415,6 @@ - @@ -530,7 +526,6 @@ - @@ -568,8 +563,7 @@ - - + eu.dnetlib.dhp.oa.graph.dump.SendToZenodoHDFS From be5ed8f5540c3601c123d89ff1bc25686692811d Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Thu, 5 Nov 2020 16:10:17 +0100 Subject: [PATCH 099/103] added check to avoid sending empty metadata. --- .../java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java | 13 +++++++------ .../dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java | 4 +++- .../java/eu/dnetlib/dhp/oa/graph/dump/Utils.java | 4 ---- .../dhp/oa/graph/dump/oozie_app/workflow.xml | 2 +- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java index 08c7ee90e9..00ddcb5a86 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/MakeTar.java @@ -4,7 +4,6 @@ package eu.dnetlib.dhp.oa.graph.dump; import java.io.*; import java.util.Optional; -import eu.dnetlib.dhp.common.MakeTarArchive; import org.apache.commons.compress.archivers.ar.ArArchiveEntry; import org.apache.commons.compress.archivers.ar.ArArchiveOutputStream; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; @@ -16,6 +15,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import eu.dnetlib.dhp.application.ArgumentApplicationParser; +import eu.dnetlib.dhp.common.MakeTarArchive; import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; public class MakeTar implements Serializable { @@ -41,9 +41,10 @@ public class MakeTar implements Serializable { final String inputPath = parser.get("sourcePath"); log.info("input path : {}", inputPath); - final int gBperSplit = Optional.ofNullable(parser.get("splitSize")) - .map(Integer::valueOf) - .orElse(10); + final int gBperSplit = Optional + .ofNullable(parser.get("splitSize")) + .map(Integer::valueOf) + .orElse(10); Configuration conf = new Configuration(); conf.set("fs.defaultFS", hdfsNameNode); @@ -54,7 +55,8 @@ public class MakeTar implements Serializable { } - public static void makeTArArchive(FileSystem fileSystem, String inputPath, String outputPath, int gBperSplit) throws IOException { + public static void makeTArArchive(FileSystem fileSystem, String inputPath, String outputPath, int gBperSplit) + throws IOException { RemoteIterator dir_iterator = fileSystem.listLocatedStatus(new Path(inputPath)); @@ -70,5 +72,4 @@ public class MakeTar implements Serializable { } - } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java index 23cd274494..fd8262544c 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/SendToZenodoHDFS.java @@ -98,8 +98,10 @@ public class SendToZenodoHDFS implements Serializable { } } + if (!metadata.equals("")) { + zenodoApiClient.sendMretadata(metadata); + } - zenodoApiClient.sendMretadata(metadata); if (publish) zenodoApiClient.publish(); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java index bd2738eaab..f88980f15e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java @@ -5,7 +5,6 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; - import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.spark.api.java.function.MapFunction; @@ -13,14 +12,12 @@ import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Encoders; import org.apache.spark.sql.SparkSession; - import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import eu.dnetlib.dhp.common.HdfsSupport; import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; import eu.dnetlib.dhp.oa.graph.dump.graph.Constants; - import eu.dnetlib.dhp.utils.DHPUtils; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; @@ -74,5 +71,4 @@ public class Utils { return new Gson().fromJson(sb.toString(), CommunityMap.class); } - } diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml index 7321fd0764..98081c2851 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml @@ -418,7 +418,7 @@ --metadata${metadata} --communityMapPath${workingDir}/communityMap --conceptRecordId${conceptRecordId} - --newDeposition${newDeposition} + --depositionType${depositionType} From 7ebdfacee99ceb65ad3e44800d15f30413af24b4 Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Thu, 5 Nov 2020 16:30:36 +0100 Subject: [PATCH 100/103] removed commented code and added documentation to new method --- .../dhp/common/api/ZenodoAPIClient.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java index 634336c461..1f267733d1 100644 --- a/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java +++ b/dhp-common/src/main/java/eu/dnetlib/dhp/common/api/ZenodoAPIClient.java @@ -59,8 +59,6 @@ public class ZenodoAPIClient implements Serializable { String json = "{}"; OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); - // RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json); - RequestBody body = RequestBody.create(json, MEDIA_TYPE_JSON); Request request = new Request.Builder() @@ -128,7 +126,6 @@ public class ZenodoAPIClient implements Serializable { OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); - // RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, metadata); RequestBody body = RequestBody.create(metadata, MEDIA_TYPE_JSON); Request request = new Request.Builder() @@ -166,7 +163,6 @@ public class ZenodoAPIClient implements Serializable { Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/publish") .addHeader("Authorization", "Bearer " + access_token) - // .post(RequestBody.create(MEDIA_TYPE_JSON, json)) .post(body) .build(); @@ -202,7 +198,6 @@ public class ZenodoAPIClient implements Serializable { Request request = new Request.Builder() .url(urlString + "/" + deposition_id + "/actions/newversion") .addHeader("Authorization", "Bearer " + access_token) - // .post(RequestBody.create(MEDIA_TYPE_JSON, json)) .post(body) .build(); @@ -220,18 +215,26 @@ public class ZenodoAPIClient implements Serializable { } } + /** + * To finish uploading a version or new deposition not published + * It sets the deposition_id and the bucket to be used + * + * + * @param deposition_id the deposition id of the not yet published upload + * concept_rec_id = 656930 + * @return response code + * @throws IOException + * @throws MissingConceptDoiException + */ public int uploadOpenDeposition(String deposition_id) throws IOException, MissingConceptDoiException { this.deposition_id = deposition_id; - String json = "{}"; - OkHttpClient httpClient = new OkHttpClient.Builder().connectTimeout(600, TimeUnit.SECONDS).build(); Request request = new Request.Builder() .url(urlString + "/" + deposition_id) .addHeader("Authorization", "Bearer " + access_token) - // .post(RequestBody.create(MEDIA_TYPE_JSON, json)) .build(); try (Response response = httpClient.newCall(request).execute()) { From d10447e747cdcd1dfa0d9f8cf5101132110f0b28 Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Thu, 5 Nov 2020 17:38:18 +0100 Subject: [PATCH 101/103] re-packaged graph dump workflow sources --- .../eu/dnetlib/dhp/oa/graph/dump/Utils.java | 2 +- .../dump/{graph => complete}/Constants.java | 2 +- .../dump/{graph => complete}/ContextInfo.java | 2 +- .../CreateContextEntities.java | 4 +-- .../CreateContextRelation.java | 4 +-- .../DumpGraphEntities.java | 3 +- .../dump/{graph => complete}/Extractor.java | 2 +- .../dump/{graph => complete}/MergedRels.java | 2 +- .../{graph => complete}/OrganizationMap.java | 2 +- .../dump/{graph => complete}/Process.java | 2 +- .../QueryInformationSystem.java | 8 +---- .../SparkCollectAndSave.java | 4 +-- .../SparkDumpEntitiesJob.java | 4 +-- .../SparkDumpRelationJob.java | 7 ++-- .../SparkExtractRelationFromEntities.java | 5 +-- .../SparkOrganizationRelation.java | 4 +-- .../oozie_app/config-default.xml | 0 .../{ => community}/oozie_app/workflow.xml | 0 .../complete}/input_collect_and_save.json | 0 .../complete}/input_entity_parameter.json | 0 .../input_organization_parameters.json | 0 .../complete}/input_parameters.json | 0 .../input_relationdump_parameters.json | 0 .../complete}/oozie_app/config-default.xml | 0 .../complete}/oozie_app/workflow.xml | 32 +++++++++---------- .../community_infrastructure_schema.json | 0 .../complete}/schema/datasource_schema.json | 0 .../complete}/schema/organization_schema.json | 0 .../complete}/schema/project_schema.json | 0 .../complete}/schema/relation_schema.json | 0 .../complete}/schema/result_schema.json | 0 .../{graph => complete}/CreateEntityTest.java | 3 +- .../CreateRelationTest.java | 2 +- ...DumpOrganizationProjectDatasourceTest.java | 8 ++--- .../{graph => complete}/DumpRelationTest.java | 2 +- .../ExtractRelationFromEntityTest.java | 10 +----- .../FunderParsingTest.java | 2 +- .../QueryInformationSystemTest.java | 2 +- .../RelationFromOrganizationTest.java | 9 ++---- .../datasource/datasource.json | 0 .../organization/organization.json | 0 .../{graph => complete}/project/project.json | 0 .../{graph => complete}/relation/relation | 0 43 files changed, 50 insertions(+), 77 deletions(-) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/Constants.java (94%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/ContextInfo.java (97%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/CreateContextEntities.java (96%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/CreateContextRelation.java (97%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/DumpGraphEntities.java (99%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/Extractor.java (99%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/MergedRels.java (91%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/OrganizationMap.java (87%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/Process.java (98%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/QueryInformationSystem.java (92%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/SparkCollectAndSave.java (96%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/SparkDumpEntitiesJob.java (93%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/SparkDumpRelationJob.java (95%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/SparkExtractRelationFromEntities.java (89%) rename dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/SparkOrganizationRelation.java (97%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/{ => community}/oozie_app/config-default.xml (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/{ => community}/oozie_app/workflow.xml (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/input_collect_and_save.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/input_entity_parameter.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/input_organization_parameters.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/input_parameters.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/input_relationdump_parameters.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/oozie_app/config-default.xml (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/oozie_app/workflow.xml (94%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/schema/community_infrastructure_schema.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/schema/datasource_schema.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/schema/organization_schema.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/schema/project_schema.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/schema/relation_schema.json (100%) rename dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/{dump_whole => dump/complete}/schema/result_schema.json (100%) rename dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/CreateEntityTest.java (99%) rename dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/CreateRelationTest.java (99%) rename dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/DumpOrganizationProjectDatasourceTest.java (95%) rename dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/DumpRelationTest.java (98%) rename dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/ExtractRelationFromEntityTest.java (88%) rename dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/FunderParsingTest.java (98%) rename dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/QueryInformationSystemTest.java (99%) rename dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/RelationFromOrganizationTest.java (96%) rename dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/datasource/datasource.json (100%) rename dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/organization/organization.json (100%) rename dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/project/project.json (100%) rename dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/{graph => complete}/relation/relation (100%) diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java index f88980f15e..984e8b128c 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/Utils.java @@ -17,7 +17,7 @@ import com.google.gson.Gson; import eu.dnetlib.dhp.common.HdfsSupport; import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; -import eu.dnetlib.dhp.oa.graph.dump.graph.Constants; +import eu.dnetlib.dhp.oa.graph.dump.complete.Constants; import eu.dnetlib.dhp.utils.DHPUtils; import eu.dnetlib.dhp.utils.ISLookupClientFactory; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Constants.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Constants.java similarity index 94% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Constants.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Constants.java index 50e61f7cf1..eb546624e5 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Constants.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Constants.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.Serializable; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/ContextInfo.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/ContextInfo.java similarity index 97% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/ContextInfo.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/ContextInfo.java index 7befaaf6f3..982a69afb9 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/ContextInfo.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/ContextInfo.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.Serializable; import java.util.List; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateContextEntities.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateContextEntities.java similarity index 96% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateContextEntities.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateContextEntities.java index 0f28438afb..23224f8dba 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateContextEntities.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateContextEntities.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.BufferedWriter; import java.io.IOException; @@ -38,7 +38,7 @@ public class CreateContextEntities implements Serializable { .toString( CreateContextEntities.class .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_whole/input_entity_parameter.json")); + "/eu/dnetlib/dhp/oa/graph/dump/complete/input_entity_parameter.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateContextRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateContextRelation.java similarity index 97% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateContextRelation.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateContextRelation.java index 1290779321..102406315b 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateContextRelation.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateContextRelation.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.BufferedWriter; import java.io.IOException; @@ -44,7 +44,7 @@ public class CreateContextRelation implements Serializable { .toString( CreateContextRelation.class .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_whole/input_entity_parameter.json")); + "/eu/dnetlib/dhp/oa/graph/dump/complete/input_entity_parameter.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpGraphEntities.java similarity index 99% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpGraphEntities.java index 76e9ed87fc..773068dfb2 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpGraphEntities.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpGraphEntities.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; @@ -26,7 +26,6 @@ import eu.dnetlib.dhp.schema.dump.oaf.graph.*; import eu.dnetlib.dhp.schema.dump.oaf.graph.Funder; import eu.dnetlib.dhp.schema.dump.oaf.graph.Project; import eu.dnetlib.dhp.schema.oaf.Field; -import eu.dnetlib.dhp.schema.oaf.H2020Programme; import eu.dnetlib.dhp.schema.oaf.Journal; import eu.dnetlib.dhp.schema.oaf.OafEntity; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Extractor.java similarity index 99% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Extractor.java index e0556ff721..31886d1b13 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Extractor.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Extractor.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/MergedRels.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/MergedRels.java similarity index 91% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/MergedRels.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/MergedRels.java index 5f59750eac..30088e8d01 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/MergedRels.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/MergedRels.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.Serializable; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/OrganizationMap.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/OrganizationMap.java similarity index 87% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/OrganizationMap.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/OrganizationMap.java index 11db7c25e4..bf6cdbd14c 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/OrganizationMap.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/OrganizationMap.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.util.ArrayList; import java.util.HashMap; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Process.java similarity index 98% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Process.java index 465254a1a4..31d105b66f 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/Process.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/Process.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.Serializable; import java.util.ArrayList; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/QueryInformationSystem.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/QueryInformationSystem.java similarity index 92% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/QueryInformationSystem.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/QueryInformationSystem.java index e74d8a44c7..c33a693a54 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/QueryInformationSystem.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/QueryInformationSystem.java @@ -1,13 +1,9 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.StringReader; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; import java.util.*; import java.util.function.Consumer; -import java.util.stream.Collectors; import org.dom4j.Document; import org.dom4j.DocumentException; @@ -16,8 +12,6 @@ import org.dom4j.Node; import org.dom4j.io.SAXReader; import org.jetbrains.annotations.NotNull; -import eu.dnetlib.dhp.schema.common.ModelSupport; -import eu.dnetlib.dhp.schema.dump.oaf.graph.ResearchInitiative; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException; import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkCollectAndSave.java similarity index 96% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkCollectAndSave.java index 147f5478b5..671bccd25c 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkCollectAndSave.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkCollectAndSave.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; @@ -31,7 +31,7 @@ public class SparkCollectAndSave implements Serializable { .toString( SparkCollectAndSave.class .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_whole/input_collect_and_save.json")); + "/eu/dnetlib/dhp/oa/graph/dump/complete/input_collect_and_save.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpEntitiesJob.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkDumpEntitiesJob.java similarity index 93% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpEntitiesJob.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkDumpEntitiesJob.java index 441cfa32de..8b282386f8 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpEntitiesJob.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkDumpEntitiesJob.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.Serializable; import java.util.Optional; @@ -22,7 +22,7 @@ public class SparkDumpEntitiesJob implements Serializable { .toString( SparkDumpEntitiesJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_whole/input_parameters.json")); + "/eu/dnetlib/dhp/oa/graph/dump/complete/input_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkDumpRelationJob.java similarity index 95% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkDumpRelationJob.java index e83bdb6efc..11c3600dd9 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkDumpRelationJob.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkDumpRelationJob.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; @@ -7,7 +7,6 @@ import java.io.Serializable; import java.util.Optional; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.MapFunction; import org.apache.spark.sql.Dataset; @@ -17,8 +16,6 @@ import org.apache.spark.sql.SparkSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.gson.Gson; - import eu.dnetlib.dhp.application.ArgumentApplicationParser; import eu.dnetlib.dhp.oa.graph.dump.Utils; import eu.dnetlib.dhp.schema.common.ModelSupport; @@ -40,7 +37,7 @@ public class SparkDumpRelationJob implements Serializable { .toString( SparkDumpRelationJob.class .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_whole/input_relationdump_parameters.json")); + "/eu/dnetlib/dhp/oa/graph/dump/complete/input_relationdump_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkExtractRelationFromEntities.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkExtractRelationFromEntities.java similarity index 89% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkExtractRelationFromEntities.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkExtractRelationFromEntities.java index f910dbee41..ec91bd8d67 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkExtractRelationFromEntities.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkExtractRelationFromEntities.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.Serializable; import java.util.*; @@ -9,9 +9,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import eu.dnetlib.dhp.application.ArgumentApplicationParser; -import eu.dnetlib.dhp.oa.graph.dump.QueryInformationSystem; -import eu.dnetlib.dhp.oa.graph.dump.Utils; -import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; import eu.dnetlib.dhp.schema.oaf.Result; /** diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkOrganizationRelation.java similarity index 97% rename from dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java rename to dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkOrganizationRelation.java index 6a01c0061a..868fa89fe1 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/graph/SparkOrganizationRelation.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/dump/complete/SparkOrganizationRelation.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession; @@ -39,7 +39,7 @@ public class SparkOrganizationRelation implements Serializable { .toString( SparkOrganizationRelation.class .getResourceAsStream( - "/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json")); + "/eu/dnetlib/dhp/oa/graph/dump/complete/input_organization_parameters.json")); final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration); parser.parseArgument(args); diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/config-default.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/community/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/config-default.xml rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/community/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/community/oozie_app/workflow.xml similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/oozie_app/workflow.xml rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/community/oozie_app/workflow.xml diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_collect_and_save.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_collect_and_save.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_collect_and_save.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_collect_and_save.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_entity_parameter.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_entity_parameter.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_entity_parameter.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_entity_parameter.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_organization_parameters.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_organization_parameters.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_organization_parameters.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_parameters.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_parameters.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_parameters.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_relationdump_parameters.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_relationdump_parameters.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/input_relationdump_parameters.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/input_relationdump_parameters.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/config-default.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/oozie_app/config-default.xml similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/config-default.xml rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/oozie_app/config-default.xml diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/oozie_app/workflow.xml similarity index 94% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/oozie_app/workflow.xml index e5001bf437..4c286e4a24 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/oozie_app/workflow.xml @@ -156,7 +156,7 @@ yarn cluster Dump table publication - eu.dnetlib.dhp.oa.graph.dump.graph.SparkDumpEntitiesJob + eu.dnetlib.dhp.oa.graph.dump.complete.SparkDumpEntitiesJob dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -182,7 +182,7 @@ yarn cluster Dump table dataset - eu.dnetlib.dhp.oa.graph.dump.graph.SparkDumpEntitiesJob + eu.dnetlib.dhp.oa.graph.dump.complete.SparkDumpEntitiesJob dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -208,7 +208,7 @@ yarn cluster Dump table ORP - eu.dnetlib.dhp.oa.graph.dump.graph.SparkDumpEntitiesJob + eu.dnetlib.dhp.oa.graph.dump.complete.SparkDumpEntitiesJob dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -234,7 +234,7 @@ yarn cluster Dump table software - eu.dnetlib.dhp.oa.graph.dump.graph.SparkDumpEntitiesJob + eu.dnetlib.dhp.oa.graph.dump.complete.SparkDumpEntitiesJob dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -260,7 +260,7 @@ yarn cluster Dump table organization - eu.dnetlib.dhp.oa.graph.dump.graph.SparkDumpEntitiesJob + eu.dnetlib.dhp.oa.graph.dump.complete.SparkDumpEntitiesJob dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -286,7 +286,7 @@ yarn cluster Dump table project - eu.dnetlib.dhp.oa.graph.dump.graph.SparkDumpEntitiesJob + eu.dnetlib.dhp.oa.graph.dump.complete.SparkDumpEntitiesJob dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -312,7 +312,7 @@ yarn cluster Dump table datasource - eu.dnetlib.dhp.oa.graph.dump.graph.SparkDumpEntitiesJob + eu.dnetlib.dhp.oa.graph.dump.complete.SparkDumpEntitiesJob dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -338,7 +338,7 @@ yarn cluster Dump table relation - eu.dnetlib.dhp.oa.graph.dump.graph.SparkDumpRelationJob + eu.dnetlib.dhp.oa.graph.dump.complete.SparkDumpRelationJob dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -367,7 +367,7 @@ - eu.dnetlib.dhp.oa.graph.dump.graph.CreateContextEntities + eu.dnetlib.dhp.oa.graph.dump.complete.CreateContextEntities --hdfsPath${workingDir}/collect/communities_infrastructures --nameNode${nameNode} --isLookUpUrl${isLookUpUrl} @@ -378,7 +378,7 @@ - eu.dnetlib.dhp.oa.graph.dump.graph.CreateContextRelation + eu.dnetlib.dhp.oa.graph.dump.complete.CreateContextRelation --hdfsPath${workingDir}/relation/context --nameNode${nameNode} --isLookUpUrl${isLookUpUrl} @@ -392,7 +392,7 @@ yarn cluster Dump table relation - eu.dnetlib.dhp.oa.graph.dump.graph.SparkOrganizationRelation + eu.dnetlib.dhp.oa.graph.dump.complete.SparkOrganizationRelation dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -427,7 +427,7 @@ yarn cluster Extract Relations from publication - eu.dnetlib.dhp.oa.graph.dump.graph.SparkExtractRelationFromEntities + eu.dnetlib.dhp.oa.graph.dump.complete.SparkExtractRelationFromEntities dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -453,7 +453,7 @@ yarn cluster Dump table dataset - eu.dnetlib.dhp.oa.graph.dump.graph.SparkExtractRelationFromEntities + eu.dnetlib.dhp.oa.graph.dump.complete.SparkExtractRelationFromEntities dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -479,7 +479,7 @@ yarn cluster Dump table ORP - eu.dnetlib.dhp.oa.graph.dump.graph.SparkExtractRelationFromEntities + eu.dnetlib.dhp.oa.graph.dump.complete.SparkExtractRelationFromEntities dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -505,7 +505,7 @@ yarn cluster Dump table software - eu.dnetlib.dhp.oa.graph.dump.graph.SparkExtractRelationFromEntities + eu.dnetlib.dhp.oa.graph.dump.complete.SparkExtractRelationFromEntities dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} @@ -533,7 +533,7 @@ yarn cluster Collect Results and Relations and put them in the right path - eu.dnetlib.dhp.oa.graph.dump.graph.SparkCollectAndSave + eu.dnetlib.dhp.oa.graph.dump.complete.SparkCollectAndSave dhp-graph-mapper-${projectVersion}.jar --executor-memory=${sparkExecutorMemory} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/community_infrastructure_schema.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/community_infrastructure_schema.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/community_infrastructure_schema.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/datasource_schema.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/datasource_schema.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/datasource_schema.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/organization_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/organization_schema.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/organization_schema.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/organization_schema.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/project_schema.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/project_schema.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/project_schema.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/relation_schema.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/relation_schema.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/relation_schema.json diff --git a/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/result_schema.json b/dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/result_schema.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump_whole/schema/result_schema.json rename to dhp-workflows/dhp-graph-mapper/src/main/resources/eu/dnetlib/dhp/oa/graph/dump/complete/schema/result_schema.json diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateEntityTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateEntityTest.java similarity index 99% rename from dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateEntityTest.java rename to dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateEntityTest.java index 181dc8f1e0..411e6f4b01 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateEntityTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateEntityTest.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import static org.mockito.Mockito.lenient; @@ -7,7 +7,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; import java.util.function.Consumer; import org.junit.jupiter.api.Assertions; diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateRelationTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateRelationTest.java similarity index 99% rename from dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateRelationTest.java rename to dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateRelationTest.java index bb2e402b20..b556fa2d66 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/CreateRelationTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/CreateRelationTest.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.util.*; import java.util.function.Consumer; diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpOrganizationProjectDatasourceTest.java similarity index 95% rename from dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java rename to dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpOrganizationProjectDatasourceTest.java index 676c5302d5..62c7bf93c0 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpOrganizationProjectDatasourceTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpOrganizationProjectDatasourceTest.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.IOException; import java.nio.file.Files; @@ -72,7 +72,7 @@ public class DumpOrganizationProjectDatasourceTest { public void dumpOrganizationTest() throws Exception { final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/graph/organization") + .getResource("/eu/dnetlib/dhp/oa/graph/dump/complete/organization") .getPath(); DumpGraphEntities dg = new DumpGraphEntities(); @@ -101,7 +101,7 @@ public class DumpOrganizationProjectDatasourceTest { public void dumpProjectTest() { final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/graph/project") + .getResource("/eu/dnetlib/dhp/oa/graph/dump/complete/project") .getPath(); DumpGraphEntities dg = new DumpGraphEntities(); @@ -129,7 +129,7 @@ public class DumpOrganizationProjectDatasourceTest { @Test public void dumpDatasourceTest() { final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/graph/datasource") + .getResource("/eu/dnetlib/dhp/oa/graph/dump/complete/datasource") .getPath(); DumpGraphEntities dg = new DumpGraphEntities(); diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpRelationTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpRelationTest.java similarity index 98% rename from dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpRelationTest.java rename to dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpRelationTest.java index 611b49fcb2..fa3c2c1316 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/DumpRelationTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/DumpRelationTest.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.IOException; import java.nio.file.Files; diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/ExtractRelationFromEntityTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/ExtractRelationFromEntityTest.java similarity index 88% rename from dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/ExtractRelationFromEntityTest.java rename to dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/ExtractRelationFromEntityTest.java index 820a899ce0..3d42f124e3 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/ExtractRelationFromEntityTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/ExtractRelationFromEntityTest.java @@ -1,31 +1,23 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.HashMap; 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.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.*; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; -import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap; import eu.dnetlib.dhp.schema.dump.oaf.graph.Relation; -import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; public class ExtractRelationFromEntityTest { diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/FunderParsingTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/FunderParsingTest.java similarity index 98% rename from dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/FunderParsingTest.java rename to dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/FunderParsingTest.java index 0374a1568a..75d5a26735 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/FunderParsingTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/FunderParsingTest.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import org.dom4j.DocumentException; import org.junit.jupiter.api.Assertions; diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/QueryInformationSystemTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/QueryInformationSystemTest.java similarity index 99% rename from dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/QueryInformationSystemTest.java rename to dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/QueryInformationSystemTest.java index 074bed1985..d769aa138a 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/QueryInformationSystemTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/QueryInformationSystemTest.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import static org.mockito.Mockito.lenient; diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/RelationFromOrganizationTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/RelationFromOrganizationTest.java similarity index 96% rename from dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/RelationFromOrganizationTest.java rename to dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/RelationFromOrganizationTest.java index b5f54bdb4d..b92d19d463 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/graph/RelationFromOrganizationTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/oa/graph/dump/complete/RelationFromOrganizationTest.java @@ -1,5 +1,5 @@ -package eu.dnetlib.dhp.oa.graph.dump.graph; +package eu.dnetlib.dhp.oa.graph.dump.complete; import java.io.IOException; import java.nio.file.Files; @@ -7,13 +7,10 @@ import java.nio.file.Path; import java.util.HashMap; import org.apache.commons.io.FileUtils; -import org.apache.neethi.Assertion; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; -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; @@ -24,9 +21,7 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; -import eu.dnetlib.dhp.oa.graph.dump.Utils; import eu.dnetlib.dhp.schema.dump.oaf.graph.Relation; -import eu.dnetlib.dhp.utils.DHPUtils; public class RelationFromOrganizationTest { private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); @@ -77,7 +72,7 @@ public class RelationFromOrganizationTest { public void test1() throws Exception { final String sourcePath = getClass() - .getResource("/eu/dnetlib/dhp/oa/graph/dump/graph/relation") + .getResource("/eu/dnetlib/dhp/oa/graph/dump/relation") .getPath(); final String communityMapPath = getClass() diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/graph/datasource/datasource.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/complete/datasource/datasource.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/graph/datasource/datasource.json rename to dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/complete/datasource/datasource.json diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/graph/organization/organization.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/complete/organization/organization.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/graph/organization/organization.json rename to dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/complete/organization/organization.json diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/graph/project/project.json b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/complete/project/project.json similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/graph/project/project.json rename to dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/complete/project/project.json diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/graph/relation/relation b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/complete/relation/relation similarity index 100% rename from dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/graph/relation/relation rename to dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/oa/graph/dump/complete/relation/relation From cd27df91a1acc8d8c721bbff0954321b63723a85 Mon Sep 17 00:00:00 2001 From: Sandro La Bruzzo Date: Fri, 6 Nov 2020 17:12:31 +0100 Subject: [PATCH 102/103] fixed bug on missing relation in ANDS --- .../eu/dnetlib/dhp/doiboost/QueryTest.scala | 9 ++- .../dhp/oa/graph/clean/CleaningFunctions.java | 28 ++++---- .../eu/dnetlib/dhp/sx/graph/IdReplace.scala | 3 + .../sx/graph/SparkSplitOafTODLIEntities.scala | 69 ++++++++++++++++++- .../dhp/sx/graph/ScholexplorerParserTest.java | 23 +++++++ .../resources/eu/dnetlib/dhp/sx/graph/dmf.xml | 67 ++++++++---------- .../resources/eu/dnetlib/dhp/sx/graph/pmf.xml | 25 +++++++ .../dhp/provision/scholix/Scholix.java | 26 ++++--- .../dhp/sx/index/oozie_app/config-default.xml | 4 ++ .../dhp/sx/index/oozie_app/workflow.xml | 47 ++++++++----- .../dhp/sx/provision/oozie_app/workflow.xml | 54 --------------- 11 files changed, 216 insertions(+), 139 deletions(-) create mode 100644 dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/IdReplace.scala create mode 100644 dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/pmf.xml diff --git a/dhp-workflows/dhp-doiboost/src/test/java/eu/dnetlib/dhp/doiboost/QueryTest.scala b/dhp-workflows/dhp-doiboost/src/test/java/eu/dnetlib/dhp/doiboost/QueryTest.scala index b3402ee9f4..61c1f51119 100644 --- a/dhp-workflows/dhp-doiboost/src/test/java/eu/dnetlib/dhp/doiboost/QueryTest.scala +++ b/dhp-workflows/dhp-doiboost/src/test/java/eu/dnetlib/dhp/doiboost/QueryTest.scala @@ -1,6 +1,6 @@ package eu.dnetlib.dhp.doiboost -import eu.dnetlib.dhp.schema.oaf.Publication +import eu.dnetlib.dhp.schema.oaf.{Publication, Relation} import org.apache.spark.SparkContext import org.apache.spark.sql.{Dataset, Encoder, Encoders, SparkSession} import org.codehaus.jackson.map.{ObjectMapper, SerializationConfig} @@ -21,6 +21,13 @@ class QueryTest { + } + + + def has_ands(r:Relation) :Boolean = { + + r.getCollectedfrom!= null && r.getCollectedfrom.asScala.count(k => k.getValue.contains("Australian")) > 0 + } def hasInstanceWithUrl(p:Publication):Boolean = { diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java index 12543d8c7e..56a4aaf5a1 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/oa/graph/clean/CleaningFunctions.java @@ -109,20 +109,20 @@ public class CleaningFunctions { } if (Objects.nonNull(r.getPid())) { r - .setPid( - r - .getPid() - .stream() - .filter(Objects::nonNull) - .filter(sp -> StringUtils.isNotBlank(StringUtils.trim(sp.getValue()))) - .filter(sp -> NONE.equalsIgnoreCase(sp.getValue())) - .filter(sp -> Objects.nonNull(sp.getQualifier())) - .filter(sp -> StringUtils.isNotBlank(sp.getQualifier().getClassid())) - .map(sp -> { - sp.setValue(StringUtils.trim(sp.getValue())); - return sp; - }) - .collect(Collectors.toList())); + .setPid( + r + .getPid() + .stream() + .filter(Objects::nonNull) + .filter(sp -> StringUtils.isNotBlank(StringUtils.trim(sp.getValue()))) + .filter(sp -> NONE.equalsIgnoreCase(sp.getValue())) + .filter(sp -> Objects.nonNull(sp.getQualifier())) + .filter(sp -> StringUtils.isNotBlank(sp.getQualifier().getClassid())) + .map(sp -> { + sp.setValue(StringUtils.trim(sp.getValue())); + return sp; + }) + .collect(Collectors.toList())); } if (Objects.isNull(r.getResourcetype()) || StringUtils.isBlank(r.getResourcetype().getClassid())) { r diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/IdReplace.scala b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/IdReplace.scala new file mode 100644 index 0000000000..8d375600ce --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/IdReplace.scala @@ -0,0 +1,3 @@ +package eu.dnetlib.dhp.sx.graph + +case class IdReplace(newId:String, oldId:String) {} diff --git a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkSplitOafTODLIEntities.scala b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkSplitOafTODLIEntities.scala index 822b162632..f359f73f9a 100644 --- a/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkSplitOafTODLIEntities.scala +++ b/dhp-workflows/dhp-graph-mapper/src/main/java/eu/dnetlib/dhp/sx/graph/SparkSplitOafTODLIEntities.scala @@ -1,12 +1,15 @@ package eu.dnetlib.dhp.sx.graph import eu.dnetlib.dhp.application.ArgumentApplicationParser -import eu.dnetlib.dhp.schema.oaf.{Oaf, Relation} +import eu.dnetlib.dhp.schema.oaf.{Oaf, Relation, Result} import eu.dnetlib.dhp.schema.scholexplorer.{DLIDataset, DLIPublication, DLIUnknown} import eu.dnetlib.dhp.sx.ebi.EBIAggregator import org.apache.commons.io.IOUtils +import org.apache.commons.lang3.StringUtils import org.apache.spark.sql.{Dataset, Encoder, Encoders, SaveMode, SparkSession} import org.slf4j.LoggerFactory +import org.apache.spark.sql.functions.col + object SparkSplitOafTODLIEntities { @@ -83,14 +86,42 @@ object SparkSplitOafTODLIEntities { } + def extract_ids(o:Oaf) :(String, String) = { + + o match { + case p: DLIPublication => + val prefix = StringUtils.substringBefore(p.getId, "|") + val original = StringUtils.substringAfter(p.getOriginalObjIdentifier, "::") + (p.getId, s"$prefix|$original") + case p: DLIDataset => + val prefix = StringUtils.substringBefore(p.getId, "|") + val original = StringUtils.substringAfter(p.getOriginalObjIdentifier, "::") + (p.getId, s"$prefix|$original") + case _ =>null + } + } + def extract_relations(spark:SparkSession, workingPath:String) :Unit = { implicit val oafEncoder: Encoder[Oaf] = Encoders.kryo[Oaf] implicit val relEncoder: Encoder[Relation] = Encoders.kryo[Relation] + import spark.implicits._ val OAFDataset:Dataset[Oaf] = spark.read.load(s"$workingPath/input/OAFDataset").as[Oaf] val ebi_relation:Dataset[Relation] = spark.read.load(s"$workingPath/ebi/baseline_relation_ebi").as[Relation].repartition(2000) + + OAFDataset + .filter(o => o.isInstanceOf[Result]) + .map(extract_ids)(Encoders.tuple(Encoders.STRING, Encoders.STRING)) + .filter(r => r != null) + .where("_1 != _2") + .select(col("_1").alias("newId"), col("_2").alias("oldId")) + .distinct() + .map(f => IdReplace(f.getString(0), f.getString(1))) + .write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/id_replace") + + OAFDataset .filter(s => s != null && s.isInstanceOf[Relation]) .map(s =>s.asInstanceOf[Relation]) @@ -100,7 +131,41 @@ object SparkSplitOafTODLIEntities { .agg(EBIAggregator.getRelationAggregator().toColumn) .map(p => p._2) .repartition(4000) - .write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/relation") + .write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/relation_unfixed") + + + val relations = spark.read.load(s"$workingPath/graph/relation_unfixed").as[Relation] + val ids = spark.read.load(s"$workingPath/graph/id_replace").as[IdReplace] + + relations + .map(r => (r.getSource, r))(Encoders.tuple(Encoders.STRING, relEncoder)) + .joinWith(ids, col("_1").equalTo(ids("oldId")), "left") + .map(i =>{ + val r = i._1._2 + if (i._2 != null) + { + val id = i._2.newId + r.setSource(id) + } + r + }).write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/rel_f_source") + + val rel_source:Dataset[Relation] = spark.read.load(s"$workingPath/graph/rel_f_source").as[Relation] + + rel_source + .map(r => (r.getTarget, r))(Encoders.tuple(Encoders.STRING, relEncoder)) + .joinWith(ids, col("_1").equalTo(ids("oldId")), "left") + .map(i =>{ + val r:Relation = i._1._2 + if (i._2 != null) + { + val id = i._2.newId + r.setTarget(id) + } + r + }).write.mode(SaveMode.Overwrite).save(s"$workingPath/graph/relation") + + } diff --git a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/sx/graph/ScholexplorerParserTest.java b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/sx/graph/ScholexplorerParserTest.java index d418da594d..67226a031e 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/sx/graph/ScholexplorerParserTest.java +++ b/dhp-workflows/dhp-graph-mapper/src/test/java/eu/dnetlib/dhp/sx/graph/ScholexplorerParserTest.java @@ -12,6 +12,7 @@ import com.fasterxml.jackson.databind.SerializationFeature; import eu.dnetlib.dhp.schema.oaf.Oaf; import eu.dnetlib.dhp.sx.graph.parser.DatasetScholexplorerParser; +import eu.dnetlib.dhp.sx.graph.parser.PublicationScholexplorerParser; import eu.dnetlib.scholexplorer.relation.RelationMapper; public class ScholexplorerParserTest { @@ -37,4 +38,26 @@ public class ScholexplorerParserTest { } }); } + + @Test + public void testPublicationParser() throws Exception { + String xml = IOUtils.toString(this.getClass().getResourceAsStream("pmf.xml")); + + PublicationScholexplorerParser p = new PublicationScholexplorerParser(); + List oaves = p.parseObject(xml, RelationMapper.load()); + + ObjectMapper m = new ObjectMapper(); + m.enable(SerializationFeature.INDENT_OUTPUT); + + oaves + .forEach( + oaf -> { + try { + System.out.println(m.writeValueAsString(oaf)); + System.out.println("----------------------------"); + } catch (JsonProcessingException e) { + + } + }); + } } diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/dmf.xml b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/dmf.xml index 836e0b9a09..503d44bf7f 100644 --- a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/dmf.xml +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/dmf.xml @@ -1,51 +1,38 @@ - - aaadf8b3-01a8-4cc2-9964-63cfb19df3b4_UmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZXMvUmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZVR5cGU= - oai:pangaea.de:doi:10.1594/PANGAEA.432865 - r3d100010134 - r3d100010134::00002f60593fd1f758fb838fafb46795 - 2020-02-18T03:05:02.534Z - - oai:pangaea.de:doi:10.1594/PANGAEA.432865 - citable topicOceans + xmlns="http://namespace.openaire.eu/"> + + r3d100010464::0002882a9d38c4f4612e7666ad768ccd + https://research.jcu.edu.au/researchdata/published/detail/9079e05370d830eb8d416c77c0b761ce::url + 2020-11-02T16:14:07.831Z + ands_UmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZXMvUmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZVR5cGU= + r3d100010464 - - - 10.1594/pangaea.432865 - - Daily sea level from coastal tide gauge station Woods_Hole in 1978 (Research quality database) + + + https://research.jcu.edu.au/researchdata/published/detail/9079e05370d830eb8d416c77c0b761ce + + Vertebrate monitoring in the Australian Wet Tropics rainforest at CU6A1 (145.30367623, -16.57767628, 600.0m above MSL) collected by Reptile Surveys - PANGAEA - Data Publisher for Earth & Environmental Science - 2006 - - 1978-01-01T12:00:00/1978-12-31T12:00:00 + James Cook University + + 2013-05-07 - - - WOCE Sea Level, WSL - - - - DATE/TIME - Sea level - Tide gauge station - SeaLevel - World Ocean Circulation Experiment (WOCE) - - - - http://store.pangaea.de/Projects/WOCE/SeaLevel_rqds/Woods_Hole.txt + + Dataset + + r3d100010464::57793c5aa995172db237d9da17353f8b - - + + - + complete collected diff --git a/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/pmf.xml b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/pmf.xml new file mode 100644 index 0000000000..7b9abd158c --- /dev/null +++ b/dhp-workflows/dhp-graph-mapper/src/test/resources/eu/dnetlib/dhp/sx/graph/pmf.xml @@ -0,0 +1,25 @@ + + + + r3d100010464::57793c5aa995172db237d9da17353f8b + 10.1111/j.1365-2486.2005.00995.x::doi + 2020-11-02T16:14:07.831Z + ands_UmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZXMvUmVwb3NpdG9yeVNlcnZpY2VSZXNvdXJjZVR5cGU= + r3d100010464 + + + 10.1111/j.1365-2486.2005.00995.x + 10.1111/j.1365-2486.2005.00995.x + Potential decoupling of trends in distribution area and population size of species with climate change. + publication + + + + + complete + collected + + + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/scholix/Scholix.java b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/scholix/Scholix.java index 6ea8ff735c..ec3da5cfc9 100644 --- a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/scholix/Scholix.java +++ b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/java/eu/dnetlib/dhp/provision/scholix/Scholix.java @@ -97,12 +97,17 @@ public class Scholix implements Serializable { } private List mergeScholixEntityId(final List a, final List b) { - final List m = new ArrayList<>(a); + final List m = a != null ? new ArrayList<>(a) : new ArrayList<>(); if (b != null) b.forEach(s -> { - int tt = (int) m.stream().filter(t -> t.getName().equalsIgnoreCase(s.getName())).count(); - if (tt == 0) { - m.add(s); + if (s != null) { + int tt = (int) m + .stream() + .filter(t -> t != null && t.getName() != null && t.getName().equalsIgnoreCase(s.getName())) + .count(); + if (tt == 0) { + m.add(s); + } } }); return m; @@ -110,7 +115,7 @@ public class Scholix implements Serializable { private List mergeScholixIdnetifier(final List a, final List b) { - final List m = new ArrayList<>(a); + final List m = a != null ? new ArrayList<>(a) : new ArrayList<>(); if (b != null) b.forEach(s -> { int tt = (int) m.stream().filter(t -> t.getIdentifier().equalsIgnoreCase(s.getIdentifier())).count(); @@ -123,7 +128,7 @@ public class Scholix implements Serializable { private List mergeScholixCollectedFrom(final List a, final List b) { - final List m = new ArrayList<>(a); + final List m = a != null ? new ArrayList<>(a) : new ArrayList<>(); if (b != null) b.forEach(s -> { int tt = (int) m @@ -139,14 +144,15 @@ public class Scholix implements Serializable { private ScholixRelationship mergeRelationships(final ScholixRelationship a, final ScholixRelationship b) { ScholixRelationship result = new ScholixRelationship(); - result.setName(StringUtils.isEmpty(a.getName()) ? b.getName() : a.getName()); - result.setInverse(StringUtils.isEmpty(a.getInverse()) ? b.getInverse() : a.getInverse()); - result.setSchema(StringUtils.isEmpty(a.getSchema()) ? b.getSchema() : a.getSchema()); + result.setName(a == null || StringUtils.isEmpty(a.getName()) ? b.getName() : a.getName()); + result.setInverse(a == null || StringUtils.isEmpty(a.getInverse()) ? b.getInverse() : a.getInverse()); + result.setSchema(a == null || StringUtils.isEmpty(a.getSchema()) ? b.getSchema() : a.getSchema()); return result; } private ScholixResource mergeResource(final ScholixResource a, final ScholixResource b) { - + if (a == null) + return b; final ScholixResource result = new ScholixResource(); result.setCollectedFrom(mergeScholixCollectedFrom(a.getCollectedFrom(), b.getCollectedFrom())); result.setCreator(mergeScholixEntityId(a.getCreator(), b.getCreator())); diff --git a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/index/oozie_app/config-default.xml b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/index/oozie_app/config-default.xml index 6fb2a1253c..7c1a43e513 100644 --- a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/index/oozie_app/config-default.xml +++ b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/index/oozie_app/config-default.xml @@ -7,4 +7,8 @@ oozie.action.sharelib.for.spark spark2 + + oozie.launcher.mapreduce.user.classpath.first + true + \ No newline at end of file diff --git a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/index/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/index/oozie_app/workflow.xml index 4f5c7bbf6e..d98164afb2 100644 --- a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/index/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/index/oozie_app/workflow.xml @@ -1,9 +1,17 @@ - + workingDirPath the source path + + index + the index name + + + esCluster + the Index cluster + sparkDriverMemory memory for driver process @@ -12,39 +20,43 @@ sparkExecutorMemory memory for individual executor - - index - index name - - - - indexHost - index host name - - + Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}] + + + + ${jobTracker} + ${nameNode} + eu.dnetlib.dhp.provision.DropAndCreateESIndex + -i${index} + -c${esCluster} + + + + + + ${jobTracker} ${nameNode} yarn-cluster cluster - index Summary + index summary eu.dnetlib.dhp.provision.SparkIndexCollectionOnES dhp-graph-provision-scholexplorer-${projectVersion}.jar - --executor-memory ${sparkExecutorMemory} --driver-memory=${sparkDriverMemory} ${sparkExtraOPT} --conf spark.dynamicAllocation.maxExecutors="32" + --executor-memory ${sparkExecutorMemory} --driver-memory=${sparkDriverMemory} ${sparkExtraOPT} --conf spark.dynamicAllocation.maxExecutors="8" -mt yarn-cluster - --sourcePath${workingDirPath}/summary + --sourcePath${workingDirPath}/summary_json --index${index}_object - --esHost${indexHost} --idPathid - --typesummary + --cluster${esCluster} @@ -63,9 +75,8 @@ -mt yarn-cluster --sourcePath${workingDirPath}/scholix_json --index${index}_scholix - --esHost${indexHost} --idPathidentifier - --typescholix + --cluster${esCluster} diff --git a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/provision/oozie_app/workflow.xml b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/provision/oozie_app/workflow.xml index c2c2a78fb3..4c0d6c1da7 100644 --- a/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/provision/oozie_app/workflow.xml +++ b/dhp-workflows/dhp-graph-provision-scholexplorer/src/main/resources/eu/dnetlib/dhp/sx/provision/oozie_app/workflow.xml @@ -112,59 +112,5 @@ - - - - ${jobTracker} - ${nameNode} - eu.dnetlib.dhp.provision.DropAndCreateESIndex - -i${index} - -c${esCluster} - - - - - - - - - ${jobTracker} - ${nameNode} - yarn-cluster - cluster - index summary - eu.dnetlib.dhp.provision.SparkIndexCollectionOnES - dhp-graph-provision-scholexplorer-${projectVersion}.jar - --executor-memory ${sparkExecutorMemory} --driver-memory=${sparkDriverMemory} ${sparkExtraOPT} --conf spark.dynamicAllocation.maxExecutors="8" - -mt yarn-cluster - --sourcePath${workingDirPath}/summary_json - --index${index}_object - --idPathid - --cluster${esCluster} - - - - - - - - ${jobTracker} - ${nameNode} - yarn-cluster - cluster - index scholix - eu.dnetlib.dhp.provision.SparkIndexCollectionOnES - dhp-graph-provision-scholexplorer-${projectVersion}.jar - --executor-memory ${sparkExecutorMemory} --driver-memory=${sparkDriverMemory} ${sparkExtraOPT} --conf spark.dynamicAllocation.maxExecutors="8" - -mt yarn-cluster - --sourcePath${workingDirPath}/scholix_json - --index${index}_scholix - --idPathidentifier - --cluster${esCluster} - - - - - \ No newline at end of file From 18d9aad70cfce5c21e23c36c32a3275722e6103f Mon Sep 17 00:00:00 2001 From: Claudio Atzori Date: Tue, 10 Nov 2020 11:48:55 +0100 Subject: [PATCH 103/103] improved documentation in dhp-graph-provision --- dhp-workflows/dhp-graph-provision/README.md | 21 +++++++++++++++++ .../oa/provision/AdjacencyListBuilderJob.java | 20 +--------------- .../CreateRelatedEntitiesJob_phase1.java | 23 +++---------------- .../CreateRelatedEntitiesJob_phase2.java | 20 +--------------- .../dhp/oa/provision/PrepareRelationsJob.java | 22 ++---------------- .../dhp/oa/provision/XmlConverterJob.java | 18 +-------------- 6 files changed, 29 insertions(+), 95 deletions(-) create mode 100644 dhp-workflows/dhp-graph-provision/README.md diff --git a/dhp-workflows/dhp-graph-provision/README.md b/dhp-workflows/dhp-graph-provision/README.md new file mode 100644 index 0000000000..973a5909d8 --- /dev/null +++ b/dhp-workflows/dhp-graph-provision/README.md @@ -0,0 +1,21 @@ +Joins the graph nodes by resolving the links of distance = 1 to create an adjacency list of linked objects. The +operation considers all the entity types (publication, dataset, software, ORP, project, datasource, organization, and +all the possible relationships (similarity links produced by the Dedup process are excluded). + +The operation is implemented by sequentially joining one entity type at time (E) with the relationships (R), and +again by E, finally grouped by E.id; + +The workflow is organized in different parts aimed to to reduce the complexity of the operation + +1) PrepareRelationsJob: only consider relationships that are not virtually deleted ($.dataInfo.deletedbyinference == +false), each entity can be linked at most to 100 other objects + +2) CreateRelatedEntitiesJob: (phase 1): prepare tuples [relation - target entity] (R - T): for each entity type +E_i map E_i as RelatedEntity T_i to simplify the model and extracting only the necessary information join (R.target = +T_i.id) save the tuples (R_i, T_i) (phase 2): create the union of all the entity types E, hash by id read the tuples +(R, T), hash by R.source join E.id = (R, T).source, where E becomes the Source Entity S save the tuples (S, R, T) + +3) AdjacencyListBuilderJob: given the tuple (S - R - T) we need to group by S.id -> List [ R - T ], mapping the +result as JoinedEntity + +4) XmlConverterJob: convert the JoinedEntities as XML records diff --git a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/AdjacencyListBuilderJob.java b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/AdjacencyListBuilderJob.java index d9cc03cd5c..0bc270e8f7 100644 --- a/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/AdjacencyListBuilderJob.java +++ b/dhp-workflows/dhp-graph-provision/src/main/java/eu/dnetlib/dhp/oa/provision/AdjacencyListBuilderJob.java @@ -25,26 +25,8 @@ import scala.collection.JavaConverters; import scala.collection.Seq; /** - * Joins the graph nodes by resolving the links of distance = 1 to create an adjacency list of linked objects. The - * operation considers all the entity types (publication, dataset, software, ORP, project, datasource, organization, and - * all the possible relationships (similarity links produced by the Dedup process are excluded). - *