Compare commits
26 Commits
master
...
SKGIF-deno
Author | SHA1 | Date |
---|---|---|
Miriam Baglioni | 87370338bb | |
Miriam Baglioni | f85db930d9 | |
Miriam Baglioni | 292c69d819 | |
Miriam Baglioni | 059b275a06 | |
Miriam Baglioni | 4c7e24df81 | |
Miriam Baglioni | 8fe452b61d | |
Miriam Baglioni | 9f9ade077b | |
Miriam Baglioni | 3c4c4e8ce0 | |
Miriam Baglioni | 98bec3d2d2 | |
Miriam Baglioni | 3126907d09 | |
Miriam Baglioni | 187b91a699 | |
Miriam Baglioni | b176bbef1d | |
Miriam Baglioni | e8f19ad003 | |
Miriam Baglioni | 2811e2ebd7 | |
Miriam Baglioni | cb9a081236 | |
Miriam Baglioni | d6a8db5202 | |
Miriam Baglioni | 0f40ed6b11 | |
Miriam Baglioni | a6a6922f11 | |
Miriam Baglioni | 7b715b2bb8 | |
Miriam Baglioni | 752fd896e4 | |
Miriam Baglioni | 0c887ca015 | |
Miriam Baglioni | ebde629d49 | |
Miriam Baglioni | e2b9989199 | |
Miriam Baglioni | c3be9a7b14 | |
Miriam Baglioni | 9a8a9ac7df | |
Miriam Baglioni | b1b48a90dc |
|
@ -12,8 +12,7 @@ import com.fasterxml.jackson.databind.SerializationFeature;
|
|||
import com.github.imifou.jsonschema.module.addon.AddonModule;
|
||||
import com.github.victools.jsonschema.generator.*;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.community.CommunityResult;
|
||||
import eu.dnetlib.dhp.oa.model.graph.*;
|
||||
import eu.dnetlib.dhp.skgif.model.*;
|
||||
|
||||
public class ExecCreateSchemas {
|
||||
final static String DIRECTORY = "/eu/dnetlib/dhp/schema/dump/jsonschemas/";
|
||||
|
@ -61,14 +60,13 @@ public class ExecCreateSchemas {
|
|||
|
||||
ExecCreateSchemas ecs = new ExecCreateSchemas();
|
||||
ecs.init();
|
||||
ecs.generate(GraphResult.class, DIRECTORY, "result_schema.json");
|
||||
ecs.generate(ResearchCommunity.class, DIRECTORY, "community_infrastructure_schema.json");
|
||||
ecs.generate(Datasource.class, DIRECTORY, "datasource_schema.json");
|
||||
ecs.generate(Project.class, DIRECTORY, "project_schema.json");
|
||||
ecs.generate(Relation.class, DIRECTORY, "relation_schema.json");
|
||||
ecs.generate(Organization.class, DIRECTORY, "organization_schema.json");
|
||||
|
||||
ecs.generate(CommunityResult.class, DIRECTORY, "community_result_schema.json");
|
||||
ecs.generate(Venue.class, DIRECTORY, "venue.json");
|
||||
ecs.generate(Grant.class, DIRECTORY, "grant.json");
|
||||
ecs.generate(ResearchProduct.class, DIRECTORY, "product.json");
|
||||
ecs.generate(Persons.class, DIRECTORY, "person.json");
|
||||
ecs.generate(Topic.class, DIRECTORY, "topic.json");
|
||||
ecs.generate(Organization.class, DIRECTORY, "organization.json");
|
||||
ecs.generate(Datasource.class, DIRECTORY, "datasource.json");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Used to refer to the Article Processing Charge information. It contains two parameters: -
|
||||
* currency of type String to store the currency of the APC - amount of type String to stores the charged amount
|
||||
*/
|
||||
public class APC implements Serializable {
|
||||
private String currency;
|
||||
private String amount;
|
||||
|
||||
public String getCurrency() {
|
||||
return currency;
|
||||
}
|
||||
|
||||
public void setCurrency(String currency) {
|
||||
this.currency = currency;
|
||||
}
|
||||
|
||||
public String getAmount() {
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void setAmount(String amount) {
|
||||
this.amount = amount;
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
/**
|
||||
* AccessRight. Used to represent the result access rights. It extends the eu.dnet.lib.dhp.schema.dump.oaf.BestAccessRight
|
||||
* element with value for the openaccess route
|
||||
*/
|
||||
public class AccessRight extends BestAccessRight {
|
||||
|
||||
private OpenAccessRoute openAccessRoute;
|
||||
|
||||
public static AccessRight newInstance(String code, String label, String scheme) {
|
||||
AccessRight ar = new AccessRight();
|
||||
ar.setCode(code);
|
||||
ar.setLabel(label);
|
||||
ar.setScheme(scheme);
|
||||
return ar;
|
||||
}
|
||||
|
||||
public OpenAccessRoute getOpenAccessRoute() {
|
||||
return openAccessRoute;
|
||||
}
|
||||
|
||||
public void setOpenAccessRoute(OpenAccessRoute openAccessRoute) {
|
||||
this.openAccessRoute = openAccessRoute;
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class AlternateIdentifier implements Serializable {
|
||||
@JsonSchema(
|
||||
description = "The scheme of the identifier. It can be a persistent identifier (i.e. doi). If it is present in the alternate identifiers "
|
||||
+
|
||||
"it means it has not been forged by an authority for that pid. For example we collect metadata from an institutional repository that provides "
|
||||
+
|
||||
"as identifier for the result also the doi")
|
||||
private String scheme;
|
||||
|
||||
@JsonSchema(description = "The value expressed in the scheme")
|
||||
private String value;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static AlternateIdentifier newInstance(String scheme, String value) {
|
||||
AlternateIdentifier cf = new AlternateIdentifier();
|
||||
|
||||
cf.setScheme(scheme);
|
||||
cf.setValue(value);
|
||||
|
||||
return cf;
|
||||
}
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* Used to represent the generic author of the result. It has six parameters: - name of type String to store the given
|
||||
* name of the author. The value for this parameter corresponds to eu.dnetlib.dhp.schema.oaf.Author name - surname of
|
||||
* type String to store the family name of the author. The value for this parameter corresponds to
|
||||
* eu.dnetlib.dhp.schema.oaf.Author surname - fullname of type String to store the fullname of the author. The value for
|
||||
* this parameter corresponds to eu.dnetlib.dhp.schema.oaf.Author fullname - rank of type Integer to store the rank on
|
||||
* the author in the result's authors list. The value for this parameter corresponds to eu.dnetlib.dhp.schema.oaf.Author
|
||||
* rank - pid of type eu.dnetlib.dhp.schema.dump.oaf.Pid to store the persistent identifier for the author. For the
|
||||
* moment only ORCID identifiers will be dumped. - The id element is instantiated by using the following values in the
|
||||
* eu.dnetlib.dhp.schema.oaf.Result pid: * Qualifier.classid for scheme * value for value - The provenance element is
|
||||
* instantiated only if the dataInfo is set for the pid in the result to be dumped. The provenance element is
|
||||
* instantiated by using the following values in the eu.dnetlib.dhp.schema.oaf.Result pid: *
|
||||
* dataInfo.provenanceaction.classname for provenance * dataInfo.trust for trust
|
||||
*/
|
||||
public class Author implements Serializable {
|
||||
|
||||
private String fullname;
|
||||
|
||||
private String name;
|
||||
|
||||
private String surname;
|
||||
|
||||
private Integer rank;
|
||||
|
||||
@JsonSchema(description = "The author's persistent identifiers")
|
||||
private AuthorPid pid;
|
||||
|
||||
public String getFullname() {
|
||||
return fullname;
|
||||
}
|
||||
|
||||
public void setFullname(String fullname) {
|
||||
this.fullname = fullname;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getSurname() {
|
||||
return surname;
|
||||
}
|
||||
|
||||
public void setSurname(String surname) {
|
||||
this.surname = surname;
|
||||
}
|
||||
|
||||
public Integer getRank() {
|
||||
return rank;
|
||||
}
|
||||
|
||||
public void setRank(Integer rank) {
|
||||
this.rank = rank;
|
||||
}
|
||||
|
||||
public AuthorPid getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
public void setPid(AuthorPid pid) {
|
||||
this.pid = pid;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* To represent the generic persistent identifier. It has two parameters:
|
||||
* - id of type
|
||||
* eu.dnetlib.dhp.schema.dump.oaf.AuthorPidSchemeValue to store the scheme and value of the Persistent Identifier.
|
||||
* - provenance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance to store the provenance and trust of the information
|
||||
*/
|
||||
public class AuthorPid implements Serializable {
|
||||
|
||||
private AuthorPidSchemeValue id;
|
||||
|
||||
@JsonSchema(description = "The reason why the pid was associated to the author")
|
||||
private Provenance provenance;
|
||||
|
||||
public AuthorPidSchemeValue getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(AuthorPidSchemeValue pid) {
|
||||
this.id = pid;
|
||||
}
|
||||
|
||||
public Provenance getProvenance() {
|
||||
return provenance;
|
||||
}
|
||||
|
||||
public void setProvenance(Provenance provenance) {
|
||||
this.provenance = provenance;
|
||||
}
|
||||
|
||||
public static AuthorPid newInstance(AuthorPidSchemeValue pid, Provenance provenance) {
|
||||
AuthorPid p = new AuthorPid();
|
||||
p.id = pid;
|
||||
p.provenance = provenance;
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
public static AuthorPid newInstance(AuthorPidSchemeValue pid) {
|
||||
AuthorPid p = new AuthorPid();
|
||||
p.id = pid;
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class AuthorPidSchemeValue implements Serializable {
|
||||
|
||||
@JsonSchema(description = "The author's pid scheme. OpenAIRE currently supports 'ORCID'")
|
||||
private String scheme;
|
||||
|
||||
@JsonSchema(description = "The author's pid value in that scheme (i.e. 0000-1111-2222-3333)")
|
||||
private String value;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static AuthorPidSchemeValue newInstance(String scheme, String value) {
|
||||
AuthorPidSchemeValue cf = new AuthorPidSchemeValue();
|
||||
|
||||
cf.setScheme(scheme);
|
||||
cf.setValue(value);
|
||||
|
||||
return cf;
|
||||
}
|
||||
}
|
|
@ -1,60 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* BestAccessRight. Used to represent the result best access rights. Values for this element are found against the
|
||||
* COAR access right scheme. The classid of the element accessright in eu.dnetlib.dhp.schema.oaf.Result is used to get
|
||||
* the COAR corresponding code whose value will be used to set the code parameter. The COAR label corresponding to the
|
||||
* COAR code will be used to set the label parameter. The scheme value will always be the one referring to the COAR
|
||||
* access right scheme
|
||||
*/
|
||||
|
||||
public class BestAccessRight implements Serializable {
|
||||
|
||||
@JsonSchema(
|
||||
description = "COAR access mode code: http://vocabularies.coar-repositories.org/documentation/access_rights/")
|
||||
private String code; // the classid in the Qualifier
|
||||
|
||||
@JsonSchema(description = "Label for the access mode")
|
||||
private String label; // the classname in the Qualifier
|
||||
|
||||
@JsonSchema(
|
||||
description = "Scheme of reference for access right code. Always set to COAR access rights vocabulary: http://vocabularies.coar-repositories.org/documentation/access_rights/")
|
||||
private String scheme;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public static BestAccessRight newInstance(String code, String label, String scheme) {
|
||||
BestAccessRight ar = new BestAccessRight();
|
||||
ar.code = code;
|
||||
ar.label = label;
|
||||
ar.scheme = scheme;
|
||||
return ar;
|
||||
}
|
||||
}
|
|
@ -1,143 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* To store information about the conference or journal where the result has been presented or published. It contains
|
||||
* eleven parameters: - name of type String to store the name of the journal or conference. It corresponds to the
|
||||
* parameter name of eu.dnetlib.dhp.schema.oaf.Journal - issnPrinted ot type String to store the journal printed issn.
|
||||
* It corresponds to the parameter issnPrinted of eu.dnetlib.dhp.schema.oaf.Journal - issnOnline of type String to store
|
||||
* the journal online issn. It corresponds to the parameter issnOnline of eu.dnetlib.dhp.schema.oaf.Journal -
|
||||
* issnLinking of type String to store the journal linking issn. It corresponds to the parameter issnLinking of
|
||||
* eu.dnetlib.dhp.schema.oaf.Journal - ep of type String to store the end page. It corresponds to the parameter ep of
|
||||
* eu.dnetlib.dhp.schema.oaf.Journal - iss of type String to store the journal issue. It corresponds to the parameter
|
||||
* iss of eu.dnetlib.dhp.schema.oaf.Journal - sp of type String to store the start page. It corresponds to the parameter
|
||||
* sp of eu.dnetlib.dhp.schema.oaf.Journal - vol of type String to store the Volume. It corresponds to the parameter vol
|
||||
* of eu.dnetlib.dhp.schema.oaf.Journal - edition of type String to store the edition of the journal or conference
|
||||
* proceeding. It corresponds to the parameter edition of eu.dnetlib.dhp.schema.oaf.Journal - conferenceplace of type
|
||||
* String to store the place of the conference. It corresponds to the parameter conferenceplace of
|
||||
* eu.dnetlib.dhp.schema.oaf.Journal - conferencedate of type String to store the date of the conference. It corresponds
|
||||
* to the parameter conferencedate of eu.dnetlib.dhp.schema.oaf.Journal
|
||||
*/
|
||||
public class Container implements Serializable {
|
||||
|
||||
@JsonSchema(description = "Name of the journal or conference")
|
||||
private String name;
|
||||
|
||||
private String issnPrinted;
|
||||
|
||||
private String issnOnline;
|
||||
|
||||
private String issnLinking;
|
||||
|
||||
@JsonSchema(description = "End page")
|
||||
private String ep;
|
||||
|
||||
@JsonSchema(description = "Journal issue number")
|
||||
private String iss;
|
||||
|
||||
@JsonSchema(description = "Start page")
|
||||
private String sp;
|
||||
|
||||
@JsonSchema(description = "Volume")
|
||||
private String vol;
|
||||
|
||||
@JsonSchema(description = "Edition of the journal or conference proceeding")
|
||||
private String edition;
|
||||
|
||||
private String conferenceplace;
|
||||
|
||||
private String conferencedate;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getIssnPrinted() {
|
||||
return issnPrinted;
|
||||
}
|
||||
|
||||
public void setIssnPrinted(String issnPrinted) {
|
||||
this.issnPrinted = issnPrinted;
|
||||
}
|
||||
|
||||
public String getIssnOnline() {
|
||||
return issnOnline;
|
||||
}
|
||||
|
||||
public void setIssnOnline(String issnOnline) {
|
||||
this.issnOnline = issnOnline;
|
||||
}
|
||||
|
||||
public String getIssnLinking() {
|
||||
return issnLinking;
|
||||
}
|
||||
|
||||
public void setIssnLinking(String issnLinking) {
|
||||
this.issnLinking = issnLinking;
|
||||
}
|
||||
|
||||
public String getEp() {
|
||||
return ep;
|
||||
}
|
||||
|
||||
public void setEp(String ep) {
|
||||
this.ep = ep;
|
||||
}
|
||||
|
||||
public String getIss() {
|
||||
return iss;
|
||||
}
|
||||
|
||||
public void setIss(String iss) {
|
||||
this.iss = iss;
|
||||
}
|
||||
|
||||
public String getSp() {
|
||||
return sp;
|
||||
}
|
||||
|
||||
public void setSp(String sp) {
|
||||
this.sp = sp;
|
||||
}
|
||||
|
||||
public String getVol() {
|
||||
return vol;
|
||||
}
|
||||
|
||||
public void setVol(String vol) {
|
||||
this.vol = vol;
|
||||
}
|
||||
|
||||
public String getEdition() {
|
||||
return edition;
|
||||
}
|
||||
|
||||
public void setEdition(String edition) {
|
||||
this.edition = edition;
|
||||
}
|
||||
|
||||
public String getConferenceplace() {
|
||||
return conferenceplace;
|
||||
}
|
||||
|
||||
public void setConferenceplace(String conferenceplace) {
|
||||
this.conferenceplace = conferenceplace;
|
||||
}
|
||||
|
||||
public String getConferencedate() {
|
||||
return conferencedate;
|
||||
}
|
||||
|
||||
public void setConferencedate(String conferencedate) {
|
||||
this.conferencedate = conferencedate;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* Represents the country associated to the generic entity. It extends eu.dnetlib.dhp.schema.dump.oaf.Qualifier with a
|
||||
* provenance parameter of type eu.dnetlib.dhp.schema.dumo.oaf.Provenance. The country in not mapped if its value in the
|
||||
* result reprensented in the internal format is Unknown. The value for this element correspond to: - code corresponds
|
||||
* to the classid of eu.dnetlib.dhp.schema.oaf.Country - label corresponds to the classname of
|
||||
* eu.dnetlib.dhp.schema.oaf.Country - provenance set only if the dataInfo associated to the Country of the result to be
|
||||
* dumped is not null. In this case : - provenance corresponds to dataInfo.provenanceaction.classid (to be modified with
|
||||
* datainfo.provenanceaction.classname) - trust corresponds to dataInfo.trust
|
||||
*/
|
||||
public class Country implements Serializable {
|
||||
@JsonSchema(description = "ISO 3166-1 alpha-2 country code (i.e. IT)")
|
||||
private String code; // the classid in the Qualifier
|
||||
|
||||
@JsonSchema(description = "The label for that code (i.e. Italy)")
|
||||
private String label; // the classname in the Qualifier
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public static Country newInstance(String code, String label) {
|
||||
Country c = new Country();
|
||||
c.setCode(code);
|
||||
c.setLabel(label);
|
||||
return c;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class Funder implements Serializable {
|
||||
|
||||
@JsonSchema(description = "The short name of the funder (EC)")
|
||||
private String shortName;
|
||||
|
||||
@JsonSchema(description = "The name of the funder (European Commission)")
|
||||
private String name;
|
||||
|
||||
@JsonSchema(
|
||||
description = "Geographical jurisdiction (e.g. for European Commission is EU, for Croatian Science Foundation is HR)")
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
|
||||
/**
|
||||
* Represents the geolocation information. It has three parameters: - point of type String to store the point
|
||||
* information. It corresponds to eu.dnetlib.dhp.schema.oaf.GeoLocation point - box ot type String to store the box
|
||||
* information. It corresponds to eu.dnetlib.dhp.schema.oaf.GeoLocation box - place of type String to store the place
|
||||
* information. It corresponds to eu.dnetlib.dhp.schema.oaf.GeoLocation place
|
||||
*/
|
||||
public class GeoLocation implements Serializable {
|
||||
|
||||
private String point;
|
||||
|
||||
private String box;
|
||||
|
||||
private String place;
|
||||
|
||||
public String getPoint() {
|
||||
return point;
|
||||
}
|
||||
|
||||
public void setPoint(String point) {
|
||||
this.point = point;
|
||||
}
|
||||
|
||||
public String getBox() {
|
||||
return box;
|
||||
}
|
||||
|
||||
public void setBox(String box) {
|
||||
this.box = box;
|
||||
}
|
||||
|
||||
public String getPlace() {
|
||||
return place;
|
||||
}
|
||||
|
||||
public void setPlace(String place) {
|
||||
this.place = place;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public boolean isBlank() {
|
||||
return StringUtils.isBlank(point) && StringUtils.isBlank(box) && StringUtils.isBlank(place);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 07/11/22
|
||||
*/
|
||||
public class ImpactIndicators implements Serializable {
|
||||
Score influence;
|
||||
Score influence_alt;
|
||||
Score popularity;
|
||||
Score popularity_alt;
|
||||
Score impulse;
|
||||
|
||||
public Score getInfluence() {
|
||||
return influence;
|
||||
}
|
||||
|
||||
public void setInfluence(Score influence) {
|
||||
this.influence = influence;
|
||||
}
|
||||
|
||||
public Score getInfluence_alt() {
|
||||
return influence_alt;
|
||||
}
|
||||
|
||||
public void setInfluence_alt(Score influence_alt) {
|
||||
this.influence_alt = influence_alt;
|
||||
}
|
||||
|
||||
public Score getPopularity() {
|
||||
return popularity;
|
||||
}
|
||||
|
||||
public void setPopularity(Score popularity) {
|
||||
this.popularity = popularity;
|
||||
}
|
||||
|
||||
public Score getPopularity_alt() {
|
||||
return popularity_alt;
|
||||
}
|
||||
|
||||
public void setPopularity_alt(Score popularity_alt) {
|
||||
this.popularity_alt = popularity_alt;
|
||||
}
|
||||
|
||||
public Score getImpulse() {
|
||||
return impulse;
|
||||
}
|
||||
|
||||
public void setImpulse(Score impulse) {
|
||||
this.impulse = impulse;
|
||||
}
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class Indicator implements Serializable {
|
||||
@JsonSchema(description = "The impact measures (i.e. popularity)")
|
||||
List<Score> bipIndicators;
|
||||
|
||||
@JsonSchema(description = "The usage counts (i.e. downloads)")
|
||||
UsageCounts usageCounts;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<Score> getBipIndicators() {
|
||||
return bipIndicators;
|
||||
}
|
||||
|
||||
public void setBipIndicators(List<Score> bipIndicators) {
|
||||
this.bipIndicators = bipIndicators;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public UsageCounts getUsageCounts() {
|
||||
return usageCounts;
|
||||
}
|
||||
|
||||
public void setUsageCounts(UsageCounts usageCounts) {
|
||||
this.usageCounts = usageCounts;
|
||||
}
|
||||
}
|
|
@ -1,152 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* 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
|
||||
* 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<String> 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 the review status of the instance. Possible values are 'Unknown',
|
||||
* 'nonPeerReviewed', 'peerReviewed'. It corresponds to refereed.classname of the instance to be dumped
|
||||
* - articleprocessingcharge of type APC to store the article processing charges possibly associated to the instance
|
||||
* -pid of type List<ControlledField> that is the list of pids associated to the result coming from authoritative sources for that pid
|
||||
* -alternateIdentifier of type List<ControlledField> that is the list of pids associated to the result coming from NON authoritative
|
||||
* sources for that pid
|
||||
* -measure list<KeyValue> to represent the measure computed for this instance (for example the Bip!Finder ones). It corresponds to measures in the model
|
||||
*/
|
||||
public class Instance implements Serializable {
|
||||
|
||||
// @JsonSchema(description = "Indicators computed for this instance, for example Bip!Finder ones")
|
||||
// private Indicator indicators;
|
||||
|
||||
private List<ResultPid> pid;
|
||||
|
||||
@JsonSchema(
|
||||
description = "All the identifiers other than pids forged by an authorithy for the pid type (i.e. Crossref for DOIs")
|
||||
private List<AlternateIdentifier> alternateIdentifier;
|
||||
|
||||
private String license;
|
||||
|
||||
@JsonSchema(description = "The accessRights for this materialization of the result")
|
||||
private AccessRight accessright;
|
||||
|
||||
@JsonSchema(
|
||||
description = "The specific sub-type of this instance (see https://api.openaire.eu/vocabularies/dnet:result_typologies following the links)")
|
||||
private String type;
|
||||
|
||||
@JsonSchema(
|
||||
description = "URLs to the instance. They may link to the actual full-text or to the landing page at the hosting source. ")
|
||||
private List<String> url;
|
||||
|
||||
@JsonSchema(
|
||||
description = "The money spent to make this book or article available in Open Access. Source for this information is the OpenAPC initiative.")
|
||||
private APC articleprocessingcharge;
|
||||
|
||||
@JsonSchema(description = "Date of the research product")
|
||||
private String publicationdate;// dateofacceptance;
|
||||
|
||||
@JsonSchema(
|
||||
description = "If this instance has been peer-reviewed or not. Allowed values are peerReviewed, " +
|
||||
"nonPeerReviewed, UNKNOWN (as defined in https://api.openaire.eu/vocabularies/dnet:review_levels)")
|
||||
private String refereed; // peer-review status
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getLicense() {
|
||||
return license;
|
||||
}
|
||||
|
||||
public void setLicense(String license) {
|
||||
this.license = license;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public AccessRight getAccessright() {
|
||||
return accessright;
|
||||
}
|
||||
|
||||
public void setAccessright(AccessRight accessright) {
|
||||
this.accessright = accessright;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(List<String> url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getPublicationdate() {
|
||||
return publicationdate;
|
||||
}
|
||||
|
||||
public void setPublicationdate(String publicationdate) {
|
||||
this.publicationdate = publicationdate;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getRefereed() {
|
||||
return refereed;
|
||||
}
|
||||
|
||||
public void setRefereed(String refereed) {
|
||||
this.refereed = refereed;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public APC getArticleprocessingcharge() {
|
||||
return articleprocessingcharge;
|
||||
}
|
||||
|
||||
public void setArticleprocessingcharge(APC articleprocessingcharge) {
|
||||
this.articleprocessingcharge = articleprocessingcharge;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<ResultPid> getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
public void setPid(List<ResultPid> pid) {
|
||||
this.pid = pid;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<AlternateIdentifier> getAlternateIdentifier() {
|
||||
return alternateIdentifier;
|
||||
}
|
||||
|
||||
public void setAlternateIdentifier(List<AlternateIdentifier> alternateIdentifier) {
|
||||
this.alternateIdentifier = alternateIdentifier;
|
||||
}
|
||||
|
||||
// @JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
// public Indicator getIndicators() {
|
||||
// return indicators;
|
||||
// }
|
||||
//
|
||||
// public void setIndicators(Indicator indicators) {
|
||||
// this.indicators = indicators;
|
||||
// }
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class Language implements Serializable {
|
||||
|
||||
@JsonSchema(description = "alpha-3/ISO 639-2 code of the language")
|
||||
private String code; // the classid in the Qualifier
|
||||
|
||||
@JsonSchema(description = "Language label in English")
|
||||
private String label; // the classname in the Qualifier
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
public static Language newInstance(String code, String value) {
|
||||
Language qualifier = new Language();
|
||||
qualifier.setCode(code);
|
||||
qualifier.setLabel(value);
|
||||
return qualifier;
|
||||
}
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 03/08/22
|
||||
*/
|
||||
public class Measure implements Serializable {
|
||||
@JsonSchema(description = "The measure (i.e. class)")
|
||||
private String key;
|
||||
|
||||
@JsonSchema(description = "The value for that measure")
|
||||
private String value;
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static Measure newInstance(String key, String value) {
|
||||
Measure mes = new Measure();
|
||||
mes.key = key;
|
||||
mes.value = value;
|
||||
return mes;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public boolean isBlank() {
|
||||
return StringUtils.isBlank(key) && StringUtils.isBlank(value);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 19/12/23
|
||||
*/
|
||||
/**
|
||||
* The OpenAccess color meant to be used on the result level
|
||||
*/
|
||||
public enum OpenAccessColor {
|
||||
|
||||
gold, hybrid, bronze
|
||||
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
/**
|
||||
* This Enum models the OpenAccess status, currently including only the values from Unpaywall
|
||||
*
|
||||
* https://support.unpaywall.org/support/solutions/articles/44001777288-what-do-the-types-of-oa-status-green-gold-hybrid-and-bronze-mean-
|
||||
*/
|
||||
public enum OpenAccessRoute {
|
||||
|
||||
gold, green, hybrid, bronze
|
||||
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* 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 {
|
||||
@JsonSchema(description = "The OpenAIRE id for the project")
|
||||
protected String id;// OpenAIRE id
|
||||
|
||||
@JsonSchema(description = "The grant agreement number")
|
||||
protected String code;
|
||||
|
||||
@JsonSchema(description = "The acronym of the project")
|
||||
protected String acronym;
|
||||
|
||||
protected String title;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Indicates the process that produced (or provided) the information, and the trust associated to the information. It
|
||||
* has two parameters: - provenance of type String to store the provenance of the information, - trust of type String to
|
||||
* store the trust associated to the information
|
||||
*/
|
||||
public class Provenance implements Serializable {
|
||||
private String provenance;
|
||||
private String trust;
|
||||
|
||||
public String getProvenance() {
|
||||
return provenance;
|
||||
}
|
||||
|
||||
public void setProvenance(String provenance) {
|
||||
this.provenance = provenance;
|
||||
}
|
||||
|
||||
public String getTrust() {
|
||||
return trust;
|
||||
}
|
||||
|
||||
public void setTrust(String trust) {
|
||||
this.trust = trust;
|
||||
}
|
||||
|
||||
public static Provenance newInstance(String provenance, String trust) {
|
||||
Provenance p = new Provenance();
|
||||
p.provenance = provenance;
|
||||
p.trust = trust;
|
||||
return p;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return provenance + trust;
|
||||
}
|
||||
}
|
|
@ -1,511 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* To represent the dumped result. It will be extended in the dump for Research Communities - Research
|
||||
* Initiative/Infrastructures. It has the following parameters:
|
||||
* - author of type
|
||||
* List<eu.dnetlib.dhpschema.dump.oaf.Author> to describe the authors of a result. For each author in the result
|
||||
* represented in the internal model one author in the esternal model is produced.
|
||||
* - type of type String to represent
|
||||
* the category of the result. Possible values are publication, dataset, software, other. It corresponds to
|
||||
* resulttype.classname of the dumped result
|
||||
* - language of type eu.dnetlib.dhp.schema.dump.oaf.Language to store
|
||||
* information about the language of the result. It is dumped as - code corresponds to language.classid - value
|
||||
* corresponds to language.classname
|
||||
* - country of type List<eu.dnetlib.dhp.schema.dump.oaf.Country> to store the country
|
||||
* list to which the result is associated. For each country in the result respresented in the internal model one country
|
||||
* in the external model is produces - subjects of type List<eu.dnetlib.dhp.dump.oaf.Subject> to store the subjects for
|
||||
* the result. For each subject in the result represented in the internal model one subject in the external model is
|
||||
* produced - maintitle of type String to store the main title of the result. It corresponds to the value of the first
|
||||
* title in the resul to be dumped having classid equals to "main title" - subtitle of type String to store the subtitle
|
||||
* of the result. It corresponds to the value of the first title in the resul to be dumped having classid equals to
|
||||
* "subtitle" - description of type List<String> to store the description of the result. It corresponds to the list of
|
||||
* description.value in the result represented in the internal model - publicationdate of type String to store the
|
||||
* pubblication date. It corresponds to dateofacceptance.value in the result represented in the internal model -
|
||||
* publisher of type String to store information about the publisher. It corresponds to publisher.value of the result
|
||||
* represented in the intrenal model - embargoenddate of type String to store the embargo end date. It corresponds to
|
||||
* embargoenddate.value of the result represented in the internal model - source of type List<String> See definition of
|
||||
* Dublin Core field dc:source. It corresponds to the list of source.value in the result represented in the internal
|
||||
* model - format of type List<String> It corresponds to the list of format.value in the result represented in the
|
||||
* internal model - contributor of type List<String> to represent contributors for this result. It corresponds to the
|
||||
* list of contributor.value in the result represented in the internal model - coverage of type String. It corresponds
|
||||
* 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<String> (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<String> (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<String> (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<String> (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<eu.dnetlib.dhp.schema.dump.oaf.GeoLocation> (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<String> 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<eu.dnetlib.dhp.schema.dump.oaf.ControlledField> 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 {
|
||||
|
||||
private List<Author> author;
|
||||
|
||||
// resulttype allows subclassing results into publications | datasets | software
|
||||
|
||||
@JsonProperty("isGreen")
|
||||
@JsonSchema(description = "True if the result is green Open Access")
|
||||
private Boolean isGreen;
|
||||
|
||||
@JsonSchema(description = "The Open Access Color of the publication")
|
||||
private OpenAccessColor openAccessColor;
|
||||
|
||||
@JsonProperty("isInDiamondJournal")
|
||||
@JsonSchema(description = "True if the result is published in a Diamond Journal")
|
||||
private Boolean isInDiamondJournal;
|
||||
|
||||
@JsonSchema(description = "True if the result is outcome of a project")
|
||||
private Boolean publiclyFunded;
|
||||
|
||||
public Boolean getGreen() {
|
||||
return isGreen;
|
||||
}
|
||||
|
||||
public void setGreen(Boolean green) {
|
||||
isGreen = green;
|
||||
}
|
||||
|
||||
public OpenAccessColor getOpenAccessColor() {
|
||||
return openAccessColor;
|
||||
}
|
||||
|
||||
public void setOpenAccessColor(OpenAccessColor openAccessColor) {
|
||||
this.openAccessColor = openAccessColor;
|
||||
}
|
||||
|
||||
public Boolean getInDiamondJournal() {
|
||||
return isInDiamondJournal;
|
||||
}
|
||||
|
||||
public void setInDiamondJournal(Boolean inDiamondJournal) {
|
||||
isInDiamondJournal = inDiamondJournal;
|
||||
}
|
||||
|
||||
public Boolean getPubliclyFunded() {
|
||||
return publiclyFunded;
|
||||
}
|
||||
|
||||
public void setPubliclyFunded(Boolean publiclyFunded) {
|
||||
this.publiclyFunded = publiclyFunded;
|
||||
}
|
||||
|
||||
@JsonSchema(
|
||||
description = "Type of the result: one of 'publication', 'dataset', 'software', 'other' (see also https://api.openaire.eu/vocabularies/dnet:result_typologies)")
|
||||
private String type; // resulttype
|
||||
|
||||
// common fields
|
||||
private Language language;
|
||||
|
||||
@JsonSchema(description = "The list of countries associated to this result")
|
||||
private List<ResultCountry> country;
|
||||
|
||||
@JsonSchema(description = "Keywords associated to the result")
|
||||
private List<Subject> subjects;
|
||||
|
||||
@JsonSchema(
|
||||
description = "A name or title by which a scientific result is known. May be the title of a publication, of a dataset or the name of a piece of software.")
|
||||
private String maintitle;
|
||||
|
||||
@JsonSchema(description = "Explanatory or alternative name by which a scientific result is known.")
|
||||
private String subtitle;
|
||||
|
||||
private List<String> description;
|
||||
|
||||
@JsonSchema(
|
||||
description = "Main date of the research product: typically the publication or issued date. In case of a research result with different versions with different dates, the date of the result is selected as the most frequent well-formatted date. If not available, then the most recent and complete date among those that are well-formatted. For statistics, the year is extracted and the result is counted only among the result of that year. Example: Pre-print date: 2019-02-03, Article date provided by repository: 2020-02, Article date provided by Crossref: 2020, OpenAIRE will set as date 2019-02-03, because it’s the most recent among the complete and well-formed dates. If then the repository updates the metadata and set a complete date (e.g. 2020-02-12), then this will be the new date for the result because it becomes the most recent most complete date. However, if OpenAIRE then collects the pre-print from another repository with date 2019-02-03, then this will be the “winning date” because it becomes the most frequent well-formatted date.")
|
||||
private String publicationdate; // dateofacceptance;
|
||||
|
||||
@JsonSchema(
|
||||
description = "The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.")
|
||||
private String publisher;
|
||||
|
||||
@JsonSchema(description = "Date when the embargo ends and this result turns Open Access")
|
||||
private String embargoenddate;
|
||||
|
||||
@JsonSchema(description = "See definition of Dublin Core field dc:source")
|
||||
private List<String> source;
|
||||
|
||||
private List<String> format;
|
||||
|
||||
@JsonSchema(description = "Contributors for the result")
|
||||
private List<String> contributor;
|
||||
|
||||
private List<String> coverage;
|
||||
|
||||
@JsonSchema(description = "The openest of the access rights of this result.")
|
||||
private BestAccessRight bestaccessright;
|
||||
|
||||
@JsonSchema(
|
||||
description = "Container has information about the conference or journal where the result has been presented or published")
|
||||
private Container container;// Journal
|
||||
|
||||
@JsonSchema(description = "Only for results with type 'software': URL to the software documentation")
|
||||
private List<String> documentationUrl; // software
|
||||
|
||||
@JsonSchema(description = "Only for results with type 'software': the URL to the repository with the source code")
|
||||
private String codeRepositoryUrl; // software
|
||||
|
||||
@JsonSchema(description = "Only for results with type 'software': the programming language")
|
||||
private String programmingLanguage; // software
|
||||
|
||||
@JsonSchema(
|
||||
description = "Only for results with type 'software': Information on the person responsible for providing further information regarding the resource")
|
||||
private List<String> contactperson; // orp
|
||||
|
||||
@JsonSchema(
|
||||
description = "Only for results with type 'software': Information on the group responsible for providing further information regarding the resource")
|
||||
private List<String> contactgroup; // orp
|
||||
|
||||
@JsonSchema(
|
||||
description = "Only for results with type 'other': tool useful for the interpretation and/or re-used of the research product")
|
||||
private List<String> tool; // orp
|
||||
|
||||
@JsonSchema(description = "Only for results with type 'dataset': the declared size of the dataset")
|
||||
private String size; // dataset
|
||||
|
||||
@JsonSchema(description = "Version of the result")
|
||||
private String version; // dataset
|
||||
|
||||
@JsonSchema(description = "Geolocation information")
|
||||
private List<GeoLocation> geolocation; // dataset
|
||||
|
||||
@JsonSchema(description = "The OpenAIRE identifiers for this result")
|
||||
private String id;
|
||||
|
||||
@JsonSchema(description = "Identifiers of the record at the original sources")
|
||||
private List<String> originalId;
|
||||
|
||||
@JsonSchema(description = "Persistent identifiers of the result")
|
||||
private List<ResultPid> pid;
|
||||
|
||||
@JsonSchema(description = "When OpenAIRE collected the record the last time")
|
||||
private String dateofcollection;
|
||||
|
||||
@JsonSchema(description = "Timestamp of last update of the record in OpenAIRE")
|
||||
private Long lastupdatetimestamp;
|
||||
|
||||
@JsonSchema(description = "Indicators computed for this result, for example UsageCount ones")
|
||||
private Indicator indicators;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public Indicator getIndicators() {
|
||||
return indicators;
|
||||
}
|
||||
|
||||
public void setIndicators(Indicator indicators) {
|
||||
this.indicators = indicators;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public Long getLastupdatetimestamp() {
|
||||
return lastupdatetimestamp;
|
||||
}
|
||||
|
||||
public void setLastupdatetimestamp(Long lastupdatetimestamp) {
|
||||
this.lastupdatetimestamp = lastupdatetimestamp;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getOriginalId() {
|
||||
return originalId;
|
||||
}
|
||||
|
||||
public void setOriginalId(List<String> originalId) {
|
||||
this.originalId = originalId;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<ResultPid> getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
public void setPid(List<ResultPid> pid) {
|
||||
this.pid = pid;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getDateofcollection() {
|
||||
return dateofcollection;
|
||||
}
|
||||
|
||||
public void setDateofcollection(String dateofcollection) {
|
||||
this.dateofcollection = dateofcollection;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<Author> getAuthor() {
|
||||
return author;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public Container getContainer() {
|
||||
return container;
|
||||
}
|
||||
|
||||
public void setContainer(Container container) {
|
||||
this.container = container;
|
||||
}
|
||||
|
||||
public void setAuthor(List<Author> author) {
|
||||
this.author = author;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public Language getLanguage() {
|
||||
return language;
|
||||
}
|
||||
|
||||
public void setLanguage(Language language) {
|
||||
this.language = language;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<ResultCountry> getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public void setCountry(List<ResultCountry> country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<Subject> getSubjects() {
|
||||
return subjects;
|
||||
}
|
||||
|
||||
public void setSubjects(List<Subject> subjects) {
|
||||
this.subjects = subjects;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getMaintitle() {
|
||||
return maintitle;
|
||||
}
|
||||
|
||||
public void setMaintitle(String maintitle) {
|
||||
this.maintitle = maintitle;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getSubtitle() {
|
||||
return subtitle;
|
||||
}
|
||||
|
||||
public void setSubtitle(String subtitle) {
|
||||
this.subtitle = subtitle;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(List<String> description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getPublicationdate() {
|
||||
return publicationdate;
|
||||
}
|
||||
|
||||
public void setPublicationdate(String publicationdate) {
|
||||
this.publicationdate = publicationdate;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getPublisher() {
|
||||
return publisher;
|
||||
}
|
||||
|
||||
public void setPublisher(String publisher) {
|
||||
this.publisher = publisher;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getEmbargoenddate() {
|
||||
return embargoenddate;
|
||||
}
|
||||
|
||||
public void setEmbargoenddate(String embargoenddate) {
|
||||
this.embargoenddate = embargoenddate;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getSource() {
|
||||
return source;
|
||||
}
|
||||
|
||||
public void setSource(List<String> source) {
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getFormat() {
|
||||
return format;
|
||||
}
|
||||
|
||||
public void setFormat(List<String> format) {
|
||||
this.format = format;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getContributor() {
|
||||
return contributor;
|
||||
}
|
||||
|
||||
public void setContributor(List<String> contributor) {
|
||||
this.contributor = contributor;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getCoverage() {
|
||||
return coverage;
|
||||
}
|
||||
|
||||
public void setCoverage(List<String> coverage) {
|
||||
this.coverage = coverage;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public BestAccessRight getBestaccessright() {
|
||||
return bestaccessright;
|
||||
}
|
||||
|
||||
public void setBestaccessright(BestAccessRight bestaccessright) {
|
||||
this.bestaccessright = bestaccessright;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getDocumentationUrl() {
|
||||
return documentationUrl;
|
||||
}
|
||||
|
||||
public void setDocumentationUrl(List<String> documentationUrl) {
|
||||
this.documentationUrl = documentationUrl;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getCodeRepositoryUrl() {
|
||||
return codeRepositoryUrl;
|
||||
}
|
||||
|
||||
public void setCodeRepositoryUrl(String codeRepositoryUrl) {
|
||||
this.codeRepositoryUrl = codeRepositoryUrl;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getProgrammingLanguage() {
|
||||
return programmingLanguage;
|
||||
}
|
||||
|
||||
public void setProgrammingLanguage(String programmingLanguage) {
|
||||
this.programmingLanguage = programmingLanguage;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getContactperson() {
|
||||
return contactperson;
|
||||
}
|
||||
|
||||
public void setContactperson(List<String> contactperson) {
|
||||
this.contactperson = contactperson;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getContactgroup() {
|
||||
return contactgroup;
|
||||
}
|
||||
|
||||
public void setContactgroup(List<String> contactgroup) {
|
||||
this.contactgroup = contactgroup;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<String> getTool() {
|
||||
return tool;
|
||||
}
|
||||
|
||||
public void setTool(List<String> tool) {
|
||||
this.tool = tool;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setSize(String size) {
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<GeoLocation> getGeolocation() {
|
||||
return geolocation;
|
||||
}
|
||||
|
||||
public void setGeolocation(List<GeoLocation> geolocation) {
|
||||
this.geolocation = geolocation;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* Represents the country associated to the generic result. It extends eu.dnetlib.dhp.schema.dump.oaf.Country with a
|
||||
* provenance parameter of type eu.dnetlib.dhp.schema.dumo.oaf.Provenance. The country is not mapped if its value in the
|
||||
* result reprensented in the internal format is Unknown. The value for this element correspond to:
|
||||
* - code corresponds to the classid of eu.dnetlib.dhp.schema.oaf.Country
|
||||
* - label corresponds to the classname of eu.dnetlib.dhp.schema.oaf.Country
|
||||
* - provenance set only if the dataInfo associated to the Country of the result to be dumped is not null. In this case:
|
||||
* - provenance corresponds to dataInfo.provenanceaction.classid (to be modified with datainfo.provenanceaction.classname)
|
||||
* - trust corresponds to dataInfo.trust
|
||||
*/
|
||||
|
||||
public class ResultCountry extends Country {
|
||||
|
||||
@JsonSchema(description = "Why this result is associated to the country.")
|
||||
private Provenance provenance;
|
||||
|
||||
public Provenance getProvenance() {
|
||||
return provenance;
|
||||
}
|
||||
|
||||
public void setProvenance(Provenance provenance) {
|
||||
this.provenance = provenance;
|
||||
}
|
||||
|
||||
public static ResultCountry newInstance(String code, String label, Provenance provenance) {
|
||||
ResultCountry c = new ResultCountry();
|
||||
c.setProvenance(provenance);
|
||||
c.setCode(code);
|
||||
c.setLabel(label);
|
||||
return c;
|
||||
}
|
||||
|
||||
public static ResultCountry newInstance(String code, String label, String provenance, String trust) {
|
||||
return newInstance(code, label, Provenance.newInstance(provenance, trust));
|
||||
}
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class ResultPid implements Serializable {
|
||||
@JsonSchema(
|
||||
description = "The scheme of the persistent identifier for the result (i.e. doi). " +
|
||||
"If the pid is here it means the information for the pid has been collected from an authority for " +
|
||||
"that pid type (i.e. Crossref/Datacite for doi). The set of authoritative pid is: doi when collected from Crossref or Datacite "
|
||||
+
|
||||
"pmid when collected from EuroPubmed, arxiv when collected from arXiv, handle from the repositories")
|
||||
private String scheme;
|
||||
|
||||
@JsonSchema(description = "The value expressed in the scheme (i.e. 10.1000/182)")
|
||||
private String value;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static ResultPid newInstance(String scheme, String value) {
|
||||
ResultPid cf = new ResultPid();
|
||||
|
||||
cf.setScheme(scheme);
|
||||
cf.setValue(value);
|
||||
|
||||
return cf;
|
||||
}
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonGetter;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonSetter;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 07/11/22
|
||||
*/
|
||||
public class Score implements Serializable {
|
||||
private String indicator;
|
||||
private String score;
|
||||
|
||||
@JsonProperty("class")
|
||||
private String clazz;
|
||||
|
||||
public String getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
public void setScore(String score) {
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
@JsonGetter("class")
|
||||
public String getClazz() {
|
||||
return clazz;
|
||||
}
|
||||
|
||||
@JsonSetter("class")
|
||||
public void setClazz(String clazz) {
|
||||
this.clazz = clazz;
|
||||
}
|
||||
|
||||
public String getIndicator() {
|
||||
return indicator;
|
||||
}
|
||||
|
||||
public void setIndicator(String indicator) {
|
||||
this.indicator = indicator;
|
||||
}
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* To represent keywords associated to the result. It has two parameters:
|
||||
* - subject of type eu.dnetlib.dhp.schema.dump.oaf.SubjectSchemeValue to describe the subject. It mapped as:
|
||||
* - schema it corresponds to qualifier.classid of the dumped subject
|
||||
* - value it corresponds to the subject value
|
||||
* - provenance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance to represent the provenance of the subject. It is dumped only if dataInfo
|
||||
* is not null. In this case:
|
||||
* - provenance corresponds to dataInfo.provenanceaction.classname
|
||||
* - trust corresponds to dataInfo.trust
|
||||
*/
|
||||
public class Subject implements Serializable {
|
||||
private SubjectSchemeValue subject;
|
||||
|
||||
@JsonSchema(description = "Why this subject is associated to the result")
|
||||
private Provenance provenance;
|
||||
|
||||
public SubjectSchemeValue getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public void setSubject(SubjectSchemeValue subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
|
||||
public Provenance getProvenance() {
|
||||
return provenance;
|
||||
}
|
||||
|
||||
public void setProvenance(Provenance provenance) {
|
||||
this.provenance = provenance;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class SubjectSchemeValue implements Serializable {
|
||||
@JsonSchema(
|
||||
description = "OpenAIRE subject classification scheme (https://api.openaire.eu/vocabularies/dnet:subject_classification_typologies).")
|
||||
private String scheme;
|
||||
|
||||
@JsonSchema(
|
||||
description = "The value for the subject in the selected scheme. When the scheme is 'keyword', it means that the subject is free-text (i.e. not a term from a controlled vocabulary).")
|
||||
private String value;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static SubjectSchemeValue newInstance(String scheme, String value) {
|
||||
SubjectSchemeValue cf = new SubjectSchemeValue();
|
||||
|
||||
cf.setScheme(scheme);
|
||||
cf.setValue(value);
|
||||
|
||||
return cf;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 07/11/22
|
||||
*/
|
||||
public class UsageCounts implements Serializable {
|
||||
private String downloads;
|
||||
private String views;
|
||||
|
||||
public String getDownloads() {
|
||||
return downloads;
|
||||
}
|
||||
|
||||
public void setDownloads(String downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
|
||||
public String getViews() {
|
||||
return views;
|
||||
}
|
||||
|
||||
public void setViews(String views) {
|
||||
this.views = views;
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.community;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class CfHbKeyValue implements Serializable {
|
||||
|
||||
@JsonSchema(description = "the OpenAIRE identifier of the data source")
|
||||
private String key;
|
||||
|
||||
@JsonSchema(description = "the name of the data source")
|
||||
private String value;
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static CfHbKeyValue newInstance(String key, String value) {
|
||||
CfHbKeyValue inst = new CfHbKeyValue();
|
||||
inst.key = key;
|
||||
inst.value = value;
|
||||
return inst;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public boolean isBlank() {
|
||||
return StringUtils.isBlank(key) && StringUtils.isBlank(value);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.community;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.Instance;
|
||||
|
||||
/**
|
||||
* 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 {
|
||||
@JsonSchema(description = "Information about the source from which the instance can be viewed or downloaded.")
|
||||
private CfHbKeyValue hostedby;
|
||||
|
||||
@JsonSchema(description = "Information about the source from which the record has been collected")
|
||||
private CfHbKeyValue collectedfrom;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public CfHbKeyValue getHostedby() {
|
||||
return hostedby;
|
||||
}
|
||||
|
||||
public void setHostedby(CfHbKeyValue hostedby) {
|
||||
this.hostedby = hostedby;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public CfHbKeyValue getCollectedfrom() {
|
||||
return collectedfrom;
|
||||
}
|
||||
|
||||
public void setCollectedfrom(CfHbKeyValue collectedfrom) {
|
||||
this.collectedfrom = collectedfrom;
|
||||
}
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.community;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.Result;
|
||||
|
||||
/**
|
||||
* extends eu.dnetlib.dhp.schema.dump.oaf.Result with the following parameters: - projects of type
|
||||
* List<eu.dnetlib.dhp.schema.dump.oaf.community.Project> 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<eu.dnetlib.dhp.schema.dump.oaf.community.Context> 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<eu.dnetliv.dhp.schema.dump.oaf.KeyValue> 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<eu.dnetlib.dhp.schema.dump.oaf.community.CommunityInstance> 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 {
|
||||
|
||||
@JsonSchema(description = "List of projects (i.e. grants) that (co-)funded the production ofn the research results")
|
||||
private List<Project> projects;
|
||||
|
||||
@JsonSchema(
|
||||
description = "Reference to a relevant research infrastructure, initiative or community (RI/RC) among those collaborating with OpenAIRE. Please see https://connect.openaire.eu")
|
||||
private List<Context> context;
|
||||
|
||||
@JsonSchema(description = "Information about the sources from which the record has been collected")
|
||||
protected List<CfHbKeyValue> collectedfrom;
|
||||
|
||||
@JsonSchema(
|
||||
description = "Each instance is one specific materialisation or version of the result. For example, you can have one result with three instance: one is the pre-print, one is the post-print, one is te published version")
|
||||
private List<CommunityInstance> instance;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<CommunityInstance> getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(List<CommunityInstance> instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<CfHbKeyValue> getCollectedfrom() {
|
||||
return collectedfrom;
|
||||
}
|
||||
|
||||
public void setCollectedfrom(List<CfHbKeyValue> collectedfrom) {
|
||||
this.collectedfrom = collectedfrom;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<Project> getProjects() {
|
||||
return projects;
|
||||
}
|
||||
|
||||
public void setProjects(List<Project> projects) {
|
||||
this.projects = projects;
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public List<Context> getContext() {
|
||||
return context;
|
||||
}
|
||||
|
||||
public void setContext(List<Context> context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.community;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.Provenance;
|
||||
|
||||
/**
|
||||
* Reference to a relevant research infrastructure, initiative or community (RI/RC) among those collaborating with
|
||||
* OpenAIRE. It extend eu.dnetlib.dhp.shema.dump.oaf.Qualifier with a parameter provenance of type
|
||||
* List<eu.dnetlib.dhp.schema.dump.oaf.Provenance> to store the provenances of the association between the result and
|
||||
* the RC/RI. The values for this element correspond to: - code: it corresponds to the id of the context in the result
|
||||
* to be mapped. If the context id refers to a RC/RI and contains '::' only the part of the id before the first "::"
|
||||
* will be used as value for code - label it corresponds to the label associated to the id. The information id taken
|
||||
* from the profile of the RC/RI - provenance it is set only if the dataInfo associated to the contenxt element of the
|
||||
* result to be dumped is not null. For each dataInfo one instance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance is
|
||||
* instantiated if the element datainfo.provenanceaction is not null. In this case - provenance corresponds to
|
||||
* dataInfo.provenanceaction.classname - trust corresponds to dataInfo.trust
|
||||
*/
|
||||
public class Context {
|
||||
@JsonSchema(description = "Code identifying the RI/RC")
|
||||
private String code;
|
||||
|
||||
@JsonSchema(description = "Label of the RI/RC")
|
||||
private String label;
|
||||
|
||||
@JsonSchema(description = "Why this result is associated to the RI/RC.")
|
||||
private List<Provenance> provenance;
|
||||
|
||||
public List<Provenance> getProvenance() {
|
||||
return provenance;
|
||||
}
|
||||
|
||||
public void setProvenance(List<Provenance> provenance) {
|
||||
this.provenance = provenance;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getLabel() {
|
||||
return label;
|
||||
}
|
||||
|
||||
public void setLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final String p = Optional
|
||||
.ofNullable(getProvenance())
|
||||
.map(
|
||||
prov -> prov
|
||||
.stream()
|
||||
.map(Provenance::toString)
|
||||
.collect(Collectors.joining()))
|
||||
.orElse("");
|
||||
|
||||
return Objects.hash(getCode(), getLabel(), p);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.community;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* To store information about the funder funding the project related to the result. It has the following parameters: -
|
||||
* shortName of type String to store the funder short name (e.c. AKA). - name of type String to store the funder name
|
||||
* (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 extends eu.dnetlib.dhp.oa.model.Funder {
|
||||
|
||||
@JsonSchema(description = "Stream of funding (e.g. for European Commission can be H2020 or FP7)")
|
||||
private String fundingStream;
|
||||
|
||||
public String getFundingStream() {
|
||||
return fundingStream;
|
||||
}
|
||||
|
||||
public void setFundingStream(String fundingStream) {
|
||||
this.fundingStream = fundingStream;
|
||||
}
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.community;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.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
|
||||
*/
|
||||
public class Project extends eu.dnetlib.dhp.oa.model.Project {
|
||||
|
||||
@JsonSchema(description = "Information about the funder funding the project")
|
||||
private Funder funder;
|
||||
|
||||
private Provenance provenance;
|
||||
|
||||
private Validated validated;
|
||||
|
||||
public void setValidated(Validated validated) {
|
||||
this.validated = validated;
|
||||
}
|
||||
|
||||
public Validated getValidated() {
|
||||
return validated;
|
||||
}
|
||||
|
||||
public Provenance getProvenance() {
|
||||
return provenance;
|
||||
}
|
||||
|
||||
public void setProvenance(Provenance provenance) {
|
||||
this.provenance = provenance;
|
||||
}
|
||||
|
||||
public Funder getFunder() {
|
||||
return funder;
|
||||
}
|
||||
|
||||
public void setFunder(Funder funders) {
|
||||
this.funder = funders;
|
||||
}
|
||||
|
||||
public static Project newInstance(String id, String code, String acronym, String title, Funder funder) {
|
||||
Project project = new Project();
|
||||
project.setAcronym(acronym);
|
||||
project.setCode(code);
|
||||
project.setFunder(funder);
|
||||
project.setId(id);
|
||||
project.setTitle(title);
|
||||
return project;
|
||||
}
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.community;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* To store information about the funder funding the project related to the result. It has the following parameters: -
|
||||
* shortName of type String to store the funder short name (e.c. AKA). - name of type String to store the funder name
|
||||
* (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 Validated implements Serializable {
|
||||
|
||||
private String validationDate;
|
||||
private Boolean validatedByFunder;
|
||||
|
||||
public void setValidationDate(String validationDate) {
|
||||
this.validationDate = validationDate;
|
||||
}
|
||||
|
||||
public String getValidationDate() {
|
||||
return validationDate;
|
||||
}
|
||||
|
||||
public void setValidatedByFunder(Boolean validated) {
|
||||
this.validatedByFunder = validated;
|
||||
}
|
||||
|
||||
public Boolean getValidatedByFunder() {
|
||||
return validatedByFunder;
|
||||
}
|
||||
|
||||
public static Validated newInstance(Boolean validated, String validationDate) {
|
||||
Validated v = new Validated();
|
||||
v.validatedByFunder = validated;
|
||||
v.validationDate = validationDate;
|
||||
return v;
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class Constants implements Serializable {
|
||||
// collectedFrom va con isProvidedBy -> becco da ModelSupport
|
||||
|
||||
public static final String HOSTED_BY = "isHostedBy";
|
||||
public static final String HOSTS = "hosts";
|
||||
|
||||
// community result uso isrelatedto
|
||||
|
||||
public static final String RESULT_ENTITY = "result";
|
||||
public static final String DATASOURCE_ENTITY = "datasource";
|
||||
public static final String CONTEXT_ENTITY = "context";
|
||||
|
||||
public static final String CONTEXT_ID = "60";
|
||||
public static final String CONTEXT_NS_PREFIX = "context____";
|
||||
|
||||
}
|
|
@ -1,358 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.Container;
|
||||
import eu.dnetlib.dhp.oa.model.Indicator;
|
||||
|
||||
/**
|
||||
* To store information about the datasource OpenAIRE collects information from. It contains the following parameters: -
|
||||
* id of type String to store the OpenAIRE id for the datasource. It corresponds to the parameter id of the datasource
|
||||
* represented in the internal model - originalId of type List<String> to store the list of original ids associated to
|
||||
* the datasource. It corresponds to the parameter originalId of the datasource represented in the internal model. The
|
||||
* null values are filtered out - pid of type List<eu.dnetlib.shp.schema.dump.oaf.ControlledField> to store the
|
||||
* persistent identifiers for the datasource. For each pid in the datasource represented in the internal model one pid
|
||||
* in the external model is produced as : - schema corresponds to pid.qualifier.classid of the datasource represented in
|
||||
* the internal model - value corresponds to pid.value of the datasource represented in the internal model -
|
||||
* datasourceType of type eu.dnetlib.dhp.schema.dump.oaf.ControlledField to store the datasource type (e.g.
|
||||
* pubsrepository::institutional, Institutional Repository) as in the dnet vocabulary dnet:datasource_typologies. It
|
||||
* corresponds to datasourcetype of the datasource represented in the internal model and : - code corresponds to
|
||||
* datasourcetype.classid - value corresponds to datasourcetype.classname - openairecompatibility of type String to
|
||||
* store information about the OpenAIRE compatibility of the ingested results (which guidelines they are compliant to).
|
||||
* It corresponds to openairecompatibility.classname of the datasource represented in the internal model - officialname
|
||||
* of type Sgtring to store the official name of the datasource. It correspond to officialname.value of the datasource
|
||||
* represented in the internal model - englishname of type String to store the English name of the datasource. It
|
||||
* corresponds to englishname.value of the datasource represented in the internal model - websiteurl of type String to
|
||||
* store the URL of the website of the datasource. It corresponds to websiteurl.value of the datasource represented in
|
||||
* the internal model - logourl of type String to store the URL of the logo for the datasource. It corresponds to
|
||||
* logourl.value of the datasource represented in the internal model - dateofvalidation of type String to store the data
|
||||
* of validation against the guidelines for the datasource records. It corresponds to dateofvalidation.value of the
|
||||
* datasource represented in the internal model - description of type String to store the description for the
|
||||
* datasource. It corresponds to description.value of the datasource represented in the internal model
|
||||
*/
|
||||
public class Datasource implements Serializable {
|
||||
@JsonSchema(description = "The OpenAIRE id of the data source")
|
||||
private String id; // string
|
||||
|
||||
@JsonSchema(description = "Original identifiers for the datasource")
|
||||
private List<String> originalId; // list string
|
||||
|
||||
@JsonSchema(description = "Persistent identifiers of the datasource")
|
||||
private List<DatasourcePid> pid; // list<String>
|
||||
|
||||
@JsonSchema(
|
||||
description = "The type of the datasource. See https://api.openaire.eu/vocabularies/dnet:datasource_typologies")
|
||||
private DatasourceSchemeValue datasourcetype; // value
|
||||
|
||||
@JsonSchema(
|
||||
description = "OpenAIRE guidelines the data source comply with. See also https://guidelines.openaire.eu.")
|
||||
private String openairecompatibility; // value
|
||||
|
||||
@JsonSchema(description = "The official name of the datasource")
|
||||
private String officialname; // string
|
||||
|
||||
@JsonSchema(description = "The English name of the datasource")
|
||||
private String englishname; // string
|
||||
|
||||
private String websiteurl; // string
|
||||
|
||||
private String logourl; // string
|
||||
|
||||
@JsonSchema(description = "The date of last validation against the OpenAIRE guidelines for the datasource records")
|
||||
private String dateofvalidation; // string
|
||||
|
||||
private String description; // description
|
||||
|
||||
@JsonSchema(description = "List of subjects associated to the datasource")
|
||||
private List<String> subjects; // List<String>
|
||||
|
||||
// opendoar specific fields (od*)
|
||||
|
||||
@JsonSchema(description = "The languages present in the data source's content, as defined by OpenDOAR.")
|
||||
private List<String> languages; // odlanguages List<String>
|
||||
|
||||
@JsonSchema(description = "Types of content in the data source, as defined by OpenDOAR")
|
||||
private List<String> contenttypes; // odcontent types List<String>
|
||||
|
||||
// re3data fields
|
||||
@JsonSchema(description = "Releasing date of the data source, as defined by re3data.org")
|
||||
private String releasestartdate; // string
|
||||
|
||||
@JsonSchema(
|
||||
description = "Date when the data source went offline or stopped ingesting new research data. As defined by re3data.org")
|
||||
private String releaseenddate; // string
|
||||
|
||||
@JsonSchema(
|
||||
description = "The URL of a mission statement describing the designated community of the data source. As defined by re3data.org")
|
||||
private String missionstatementurl; // string
|
||||
|
||||
@JsonSchema(
|
||||
description = "Type of access to the data source, as defined by re3data.org. Possible values: " +
|
||||
"{open, restricted, closed}")
|
||||
private String accessrights; // databaseaccesstype string
|
||||
|
||||
// {open, restricted or closed}
|
||||
@JsonSchema(description = "Type of data upload. As defined by re3data.org: one of {open, restricted,closed}")
|
||||
private String uploadrights; // datauploadtype string
|
||||
|
||||
@JsonSchema(
|
||||
description = "Access restrinctions to the data source, as defined by re3data.org. One of {feeRequired, registration, other}")
|
||||
private String databaseaccessrestriction; // string
|
||||
|
||||
@JsonSchema(
|
||||
description = "Upload restrictions applied by the datasource, as defined by re3data.org. One of {feeRequired, registration, other}")
|
||||
private String datauploadrestriction; // string
|
||||
|
||||
@JsonSchema(description = "As defined by redata.org: 'yes' if the data source supports versioning, 'no' otherwise.")
|
||||
private Boolean versioning; // boolean
|
||||
|
||||
@JsonSchema(
|
||||
description = "The URL of the data source providing information on how to cite its items. As defined by re3data.org.")
|
||||
private String citationguidelineurl; // string
|
||||
|
||||
// {yes, no, uknown}
|
||||
@JsonSchema(
|
||||
description = "The persistent identifier system that is used by the data source. As defined by re3data.org")
|
||||
private String pidsystems; // string
|
||||
|
||||
@JsonSchema(
|
||||
description = "The certificate, seal or standard the data source complies with. As defined by re3data.org.")
|
||||
private String certificates; // string
|
||||
|
||||
@JsonSchema(description = "Policies of the data source, as defined in OpenDOAR.")
|
||||
private List<String> policies; //
|
||||
|
||||
@JsonSchema(description = "Information about the journal, if this data source is of type Journal.")
|
||||
private Container journal; // issn etc del Journal
|
||||
|
||||
// @JsonSchema(description = "Indicators computed for this Datasource, for example UsageCount ones")
|
||||
// private Indicator indicators;
|
||||
//
|
||||
// public Indicator getIndicators() {
|
||||
// return indicators;
|
||||
// }
|
||||
//
|
||||
// public void setIndicators(Indicator indicators) {
|
||||
// this.indicators = indicators;
|
||||
// }
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public List<String> getOriginalId() {
|
||||
return originalId;
|
||||
}
|
||||
|
||||
public void setOriginalId(List<String> originalId) {
|
||||
this.originalId = originalId;
|
||||
}
|
||||
|
||||
public List<DatasourcePid> getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
public void setPid(List<DatasourcePid> pid) {
|
||||
this.pid = pid;
|
||||
}
|
||||
|
||||
public DatasourceSchemeValue getDatasourcetype() {
|
||||
return datasourcetype;
|
||||
}
|
||||
|
||||
public void setDatasourcetype(DatasourceSchemeValue datasourcetype) {
|
||||
this.datasourcetype = datasourcetype;
|
||||
}
|
||||
|
||||
public String getOpenairecompatibility() {
|
||||
return openairecompatibility;
|
||||
}
|
||||
|
||||
public void setOpenairecompatibility(String openairecompatibility) {
|
||||
this.openairecompatibility = openairecompatibility;
|
||||
}
|
||||
|
||||
public String getOfficialname() {
|
||||
return officialname;
|
||||
}
|
||||
|
||||
public void setOfficialname(String officialname) {
|
||||
this.officialname = officialname;
|
||||
}
|
||||
|
||||
public String getEnglishname() {
|
||||
return englishname;
|
||||
}
|
||||
|
||||
public void setEnglishname(String englishname) {
|
||||
this.englishname = englishname;
|
||||
}
|
||||
|
||||
public String getWebsiteurl() {
|
||||
return websiteurl;
|
||||
}
|
||||
|
||||
public void setWebsiteurl(String websiteurl) {
|
||||
this.websiteurl = websiteurl;
|
||||
}
|
||||
|
||||
public String getLogourl() {
|
||||
return logourl;
|
||||
}
|
||||
|
||||
public void setLogourl(String logourl) {
|
||||
this.logourl = logourl;
|
||||
}
|
||||
|
||||
public String getDateofvalidation() {
|
||||
return dateofvalidation;
|
||||
}
|
||||
|
||||
public void setDateofvalidation(String dateofvalidation) {
|
||||
this.dateofvalidation = dateofvalidation;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public List<String> getSubjects() {
|
||||
return subjects;
|
||||
}
|
||||
|
||||
public void setSubjects(List<String> subjects) {
|
||||
this.subjects = subjects;
|
||||
}
|
||||
|
||||
public List<String> getLanguages() {
|
||||
return languages;
|
||||
}
|
||||
|
||||
public void setLanguages(List<String> languages) {
|
||||
this.languages = languages;
|
||||
}
|
||||
|
||||
public List<String> getContenttypes() {
|
||||
return contenttypes;
|
||||
}
|
||||
|
||||
public void setContenttypes(List<String> contenttypes) {
|
||||
this.contenttypes = contenttypes;
|
||||
}
|
||||
|
||||
public String getReleasestartdate() {
|
||||
return releasestartdate;
|
||||
}
|
||||
|
||||
public void setReleasestartdate(String releasestartdate) {
|
||||
this.releasestartdate = releasestartdate;
|
||||
}
|
||||
|
||||
public String getReleaseenddate() {
|
||||
return releaseenddate;
|
||||
}
|
||||
|
||||
public void setReleaseenddate(String releaseenddate) {
|
||||
this.releaseenddate = releaseenddate;
|
||||
}
|
||||
|
||||
public String getMissionstatementurl() {
|
||||
return missionstatementurl;
|
||||
}
|
||||
|
||||
public void setMissionstatementurl(String missionstatementurl) {
|
||||
this.missionstatementurl = missionstatementurl;
|
||||
}
|
||||
|
||||
public String getAccessrights() {
|
||||
return accessrights;
|
||||
}
|
||||
|
||||
public void setAccessrights(String accessrights) {
|
||||
this.accessrights = accessrights;
|
||||
}
|
||||
|
||||
public String getUploadrights() {
|
||||
return uploadrights;
|
||||
}
|
||||
|
||||
public void setUploadrights(String uploadrights) {
|
||||
this.uploadrights = uploadrights;
|
||||
}
|
||||
|
||||
public String getDatabaseaccessrestriction() {
|
||||
return databaseaccessrestriction;
|
||||
}
|
||||
|
||||
public void setDatabaseaccessrestriction(String databaseaccessrestriction) {
|
||||
this.databaseaccessrestriction = databaseaccessrestriction;
|
||||
}
|
||||
|
||||
public String getDatauploadrestriction() {
|
||||
return datauploadrestriction;
|
||||
}
|
||||
|
||||
public void setDatauploadrestriction(String datauploadrestriction) {
|
||||
this.datauploadrestriction = datauploadrestriction;
|
||||
}
|
||||
|
||||
public Boolean getVersioning() {
|
||||
return versioning;
|
||||
}
|
||||
|
||||
public void setVersioning(Boolean versioning) {
|
||||
this.versioning = versioning;
|
||||
}
|
||||
|
||||
public String getCitationguidelineurl() {
|
||||
return citationguidelineurl;
|
||||
}
|
||||
|
||||
public void setCitationguidelineurl(String citationguidelineurl) {
|
||||
this.citationguidelineurl = citationguidelineurl;
|
||||
}
|
||||
|
||||
public String getPidsystems() {
|
||||
return pidsystems;
|
||||
}
|
||||
|
||||
public void setPidsystems(String pidsystems) {
|
||||
this.pidsystems = pidsystems;
|
||||
}
|
||||
|
||||
public String getCertificates() {
|
||||
return certificates;
|
||||
}
|
||||
|
||||
public void setCertificates(String certificates) {
|
||||
this.certificates = certificates;
|
||||
}
|
||||
|
||||
public List<String> getPolicies() {
|
||||
return policies;
|
||||
}
|
||||
|
||||
public void setPolicies(List<String> policiesr3) {
|
||||
this.policies = policiesr3;
|
||||
}
|
||||
|
||||
public Container getJournal() {
|
||||
return journal;
|
||||
}
|
||||
|
||||
public void setJournal(Container journal) {
|
||||
this.journal = journal;
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public class DatasourcePid implements Serializable {
|
||||
|
||||
@JsonSchema(description = "The scheme used to express the value ")
|
||||
private String scheme;
|
||||
|
||||
@JsonSchema(description = "The value expressed in the scheme ")
|
||||
private String value;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static DatasourcePid newInstance(String scheme, String value) {
|
||||
DatasourcePid cf = new DatasourcePid();
|
||||
|
||||
cf.setScheme(scheme);
|
||||
cf.setValue(value);
|
||||
|
||||
return cf;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public // TODO change the DatasourceSchemaValue to DatasourceKeyValue. The scheme is always the dnet one. What we show
|
||||
// here is the entry in the scheme (the key) and its understandable value
|
||||
class DatasourceSchemeValue implements Serializable {
|
||||
@JsonSchema(description = "The scheme used to express the value (i.e. pubsrepository::journal)")
|
||||
private String scheme;
|
||||
|
||||
@JsonSchema(description = "The value expressed in the scheme (Journal)")
|
||||
private String value;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static DatasourceSchemeValue newInstance(String scheme, String value) {
|
||||
DatasourceSchemeValue cf = new DatasourceSchemeValue();
|
||||
|
||||
cf.setScheme(scheme);
|
||||
cf.setValue(value);
|
||||
|
||||
return cf;
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* 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.oa.model.Funder {
|
||||
|
||||
@JsonSchema(description = "Description of the funding stream")
|
||||
private Fundings funding_stream;
|
||||
|
||||
public Fundings getFunding_stream() {
|
||||
return funding_stream;
|
||||
}
|
||||
|
||||
public void setFunding_stream(Fundings funding_stream) {
|
||||
this.funding_stream = funding_stream;
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* 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 {
|
||||
|
||||
@JsonSchema(description = "Id of the funding stream")
|
||||
private String id;
|
||||
private String description;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* 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 {
|
||||
@JsonSchema(description = "The currency of the granted amount (e.g. EUR)")
|
||||
private String currency;
|
||||
|
||||
@JsonSchema(description = "The total cost of the project")
|
||||
private float totalcost;
|
||||
|
||||
@JsonSchema(description = "The funded amount")
|
||||
private float fundedamount;
|
||||
|
||||
public String getCurrency() {
|
||||
return currency;
|
||||
}
|
||||
|
||||
public void setCurrency(String currency) {
|
||||
this.currency = currency;
|
||||
}
|
||||
|
||||
public float getTotalcost() {
|
||||
return totalcost;
|
||||
}
|
||||
|
||||
public void setTotalcost(float totalcost) {
|
||||
this.totalcost = totalcost;
|
||||
}
|
||||
|
||||
public float getFundedamount() {
|
||||
return fundedamount;
|
||||
}
|
||||
|
||||
public void setFundedamount(float fundedamount) {
|
||||
this.fundedamount = fundedamount;
|
||||
}
|
||||
|
||||
public static Granted newInstance(String currency, float totalcost, float fundedamount) {
|
||||
Granted granted = new Granted();
|
||||
granted.currency = currency;
|
||||
granted.totalcost = totalcost;
|
||||
granted.fundedamount = fundedamount;
|
||||
return granted;
|
||||
}
|
||||
|
||||
public static Granted newInstance(String currency, float fundedamount) {
|
||||
Granted granted = new Granted();
|
||||
granted.currency = currency;
|
||||
granted.fundedamount = fundedamount;
|
||||
return granted;
|
||||
}
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.Instance;
|
||||
import eu.dnetlib.dhp.oa.model.Result;
|
||||
|
||||
/**
|
||||
* It extends the eu.dnetlib.dhp.schema.dump.oaf.Result with - instance of type
|
||||
* List<eu.dnetlib.dhp.schema.dump.oaf.Instance> 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 {
|
||||
@JsonSchema(
|
||||
description = "Each instance is one specific materialisation or version of the result. For example, you can have one result with three instance: one is the pre-print, one is the post-print, one is te published version")
|
||||
private List<Instance> instance;
|
||||
|
||||
public List<Instance> getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void setInstance(List<Instance> instance) {
|
||||
this.instance = instance;
|
||||
}
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* To store information about the classification for the project. The classification depends on the programme. For example
|
||||
* H2020-EU.3.4.5.3 can be classified as
|
||||
* H2020-EU.3. => Societal Challenges (level1)
|
||||
* H2020-EU.3.4. => Transport (level2)
|
||||
* H2020-EU.3.4.5. => CLEANSKY2 (level3)
|
||||
* H2020-EU.3.4.5.3. => IADP Fast Rotorcraft (level4)
|
||||
*
|
||||
* We decided to explicitly represent up to three levels in the classification.
|
||||
*
|
||||
* H2020Classification has the following parameters:
|
||||
* - private Programme programme to store the information about the programme related to this classification
|
||||
* - private String level1 to store the information about the level 1 of the classification (Priority or Pillar of the EC)
|
||||
* - private String level2 to store the information about the level2 af the classification (Objectives (?))
|
||||
* - private String level3 to store the information about the level3 of the classification
|
||||
* - private String classification to store the entire classification related to the programme
|
||||
*/
|
||||
public class H2020Classification implements Serializable {
|
||||
private Programme programme;
|
||||
|
||||
private String level1;
|
||||
private String level2;
|
||||
private String level3;
|
||||
|
||||
private String classification;
|
||||
|
||||
public Programme getProgramme() {
|
||||
return programme;
|
||||
}
|
||||
|
||||
public void setProgramme(Programme programme) {
|
||||
this.programme = programme;
|
||||
}
|
||||
|
||||
public String getLevel1() {
|
||||
return level1;
|
||||
}
|
||||
|
||||
public void setLevel1(String level1) {
|
||||
this.level1 = level1;
|
||||
}
|
||||
|
||||
public String getLevel2() {
|
||||
return level2;
|
||||
}
|
||||
|
||||
public void setLevel2(String level2) {
|
||||
this.level2 = level2;
|
||||
}
|
||||
|
||||
public String getLevel3() {
|
||||
return level3;
|
||||
}
|
||||
|
||||
public void setLevel3(String level3) {
|
||||
this.level3 = level3;
|
||||
}
|
||||
|
||||
public String getClassification() {
|
||||
return classification;
|
||||
}
|
||||
|
||||
public void setClassification(String classification) {
|
||||
this.classification = classification;
|
||||
}
|
||||
|
||||
public static H2020Classification newInstance(String programme_code, String programme_description, String level1,
|
||||
String level2, String level3, String classification) {
|
||||
H2020Classification h2020classification = new H2020Classification();
|
||||
h2020classification.programme = Programme.newInstance(programme_code, programme_description);
|
||||
h2020classification.level1 = level1;
|
||||
h2020classification.level2 = level2;
|
||||
h2020classification.level3 = level3;
|
||||
h2020classification.classification = classification;
|
||||
return h2020classification;
|
||||
}
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.Country;
|
||||
|
||||
/**
|
||||
* 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<String> alternativenames to store the alternative names of the organization
|
||||
* - private Country country to store the country of the organization
|
||||
* - private String id to store the openaire id of the organization
|
||||
* - private List<OrganizationPid> pid to store the list of pids for the organization
|
||||
*/
|
||||
public class Organization implements Serializable {
|
||||
private String legalshortname;
|
||||
private String legalname;
|
||||
private String websiteurl;
|
||||
|
||||
@JsonSchema(description = "Alternative names that identify the organisation")
|
||||
private List<String> alternativenames;
|
||||
|
||||
@JsonSchema(description = "The organisation country")
|
||||
private Country country;
|
||||
|
||||
@JsonSchema(description = "The OpenAIRE id for the organisation")
|
||||
private String id;
|
||||
|
||||
@JsonSchema(description = "Persistent identifiers for the organisation i.e. isni 0000000090326370")
|
||||
private List<OrganizationPid> pid;
|
||||
|
||||
public String getLegalshortname() {
|
||||
return legalshortname;
|
||||
}
|
||||
|
||||
public void setLegalshortname(String legalshortname) {
|
||||
this.legalshortname = legalshortname;
|
||||
}
|
||||
|
||||
public String getLegalname() {
|
||||
return legalname;
|
||||
}
|
||||
|
||||
public void setLegalname(String legalname) {
|
||||
this.legalname = legalname;
|
||||
}
|
||||
|
||||
public String getWebsiteurl() {
|
||||
return websiteurl;
|
||||
}
|
||||
|
||||
public void setWebsiteurl(String websiteurl) {
|
||||
this.websiteurl = websiteurl;
|
||||
}
|
||||
|
||||
public List<String> getAlternativenames() {
|
||||
return alternativenames;
|
||||
}
|
||||
|
||||
public void setAlternativenames(List<String> alternativenames) {
|
||||
this.alternativenames = alternativenames;
|
||||
}
|
||||
|
||||
public Country getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public void setCountry(Country country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public List<OrganizationPid> getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
public void setPid(List<OrganizationPid> pid) {
|
||||
this.pid = pid;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
public
|
||||
|
||||
class OrganizationPid implements Serializable {
|
||||
@JsonSchema(description = "The scheme of the identifier (i.e. isni)")
|
||||
private String scheme;
|
||||
|
||||
@JsonSchema(description = "The value in the schema (i.e. 0000000090326370)")
|
||||
private String value;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static OrganizationPid newInstance(String scheme, String value) {
|
||||
OrganizationPid cf = new OrganizationPid();
|
||||
|
||||
cf.setScheme(scheme);
|
||||
cf.setValue(value);
|
||||
|
||||
return cf;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* 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 {
|
||||
@JsonSchema(description = "The code of the programme")
|
||||
private String code;
|
||||
|
||||
@JsonSchema(description = "The description of the programme")
|
||||
private String description;
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public static Programme newInstance(String code, String description) {
|
||||
Programme p = new Programme();
|
||||
p.code = code;
|
||||
p.description = description;
|
||||
return p;
|
||||
}
|
||||
}
|
|
@ -1,211 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.Indicator;
|
||||
|
||||
/**
|
||||
* 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<String> subject to store the list of subjects of the project
|
||||
* - private List<Funder> 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> h2020programme to store the list of programmes the project is related to
|
||||
*/
|
||||
|
||||
public class Project implements Serializable {
|
||||
private String id;
|
||||
|
||||
private String websiteurl;
|
||||
private String code;
|
||||
private String acronym;
|
||||
private String title;
|
||||
|
||||
private String startdate;
|
||||
|
||||
private String enddate;
|
||||
|
||||
private String callidentifier;
|
||||
|
||||
private String keywords;
|
||||
|
||||
private boolean openaccessmandateforpublications;
|
||||
|
||||
private boolean openaccessmandatefordataset;
|
||||
private List<String> subject;
|
||||
|
||||
@JsonSchema(description = "Funding information for the project")
|
||||
private List<Funder> funding;
|
||||
|
||||
private String summary;
|
||||
|
||||
@JsonSchema(description = "The money granted to the project")
|
||||
private Granted granted;
|
||||
|
||||
@JsonSchema(description = "The h2020 programme funding the project")
|
||||
private List<Programme> h2020programme;
|
||||
|
||||
// @JsonSchema(description = "Indicators computed for this project, for example UsageCount ones")
|
||||
// private Indicator indicators;
|
||||
//
|
||||
// public Indicator getIndicators() {
|
||||
// return indicators;
|
||||
// }
|
||||
//
|
||||
// public void setIndicators(Indicator indicators) {
|
||||
// this.indicators = indicators;
|
||||
// }
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getWebsiteurl() {
|
||||
return websiteurl;
|
||||
}
|
||||
|
||||
public void setWebsiteurl(String websiteurl) {
|
||||
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;
|
||||
}
|
||||
|
||||
public void setStartdate(String startdate) {
|
||||
this.startdate = startdate;
|
||||
}
|
||||
|
||||
public String getEnddate() {
|
||||
return enddate;
|
||||
}
|
||||
|
||||
public void setEnddate(String enddate) {
|
||||
this.enddate = enddate;
|
||||
}
|
||||
|
||||
public String getCallidentifier() {
|
||||
return callidentifier;
|
||||
}
|
||||
|
||||
public void setCallidentifier(String callidentifier) {
|
||||
this.callidentifier = callidentifier;
|
||||
}
|
||||
|
||||
public String getKeywords() {
|
||||
return keywords;
|
||||
}
|
||||
|
||||
public void setKeywords(String keywords) {
|
||||
this.keywords = keywords;
|
||||
}
|
||||
|
||||
public boolean isOpenaccessmandateforpublications() {
|
||||
return openaccessmandateforpublications;
|
||||
}
|
||||
|
||||
public void setOpenaccessmandateforpublications(boolean openaccessmandateforpublications) {
|
||||
this.openaccessmandateforpublications = openaccessmandateforpublications;
|
||||
}
|
||||
|
||||
public boolean isOpenaccessmandatefordataset() {
|
||||
return openaccessmandatefordataset;
|
||||
}
|
||||
|
||||
public void setOpenaccessmandatefordataset(boolean openaccessmandatefordataset) {
|
||||
this.openaccessmandatefordataset = openaccessmandatefordataset;
|
||||
}
|
||||
|
||||
public List<String> getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public void setSubject(List<String> subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
|
||||
public List<Funder> getFunding() {
|
||||
return funding;
|
||||
}
|
||||
|
||||
public void setFunding(List<Funder> funding) {
|
||||
this.funding = funding;
|
||||
}
|
||||
|
||||
public String getSummary() {
|
||||
return summary;
|
||||
}
|
||||
|
||||
public void setSummary(String summary) {
|
||||
this.summary = summary;
|
||||
}
|
||||
|
||||
public Granted getGranted() {
|
||||
return granted;
|
||||
}
|
||||
|
||||
public void setGranted(Granted granted) {
|
||||
this.granted = granted;
|
||||
}
|
||||
|
||||
public List<Programme> getH2020programme() {
|
||||
return h2020programme;
|
||||
}
|
||||
|
||||
public void setH2020programme(List<Programme> h2020programme) {
|
||||
this.h2020programme = h2020programme;
|
||||
}
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.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
|
||||
*/
|
||||
public class RelType implements Serializable {
|
||||
private String name; // relclass
|
||||
private String type; // subreltype
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public static RelType newInstance(String name, String type) {
|
||||
RelType rel = new RelType();
|
||||
rel.name = name;
|
||||
rel.type = type;
|
||||
return rel;
|
||||
}
|
||||
}
|
|
@ -1,124 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.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
|
||||
*/
|
||||
public class Relation implements Serializable {
|
||||
@JsonSchema(description = "The identifier of the source in the relation")
|
||||
private String source;
|
||||
|
||||
@JsonSchema(description = "The entity type of the source in the relation")
|
||||
private String sourceType;
|
||||
|
||||
@JsonSchema(description = "The identifier of the target in the relation")
|
||||
private String target;
|
||||
|
||||
@JsonSchema(description = "The entity type of the target in the relation")
|
||||
private String targetType;
|
||||
|
||||
@JsonSchema(description = "To represent the semantics of a relation between two entities")
|
||||
private RelType reltype;
|
||||
|
||||
@JsonSchema(description = "The reason why OpenAIRE holds the relation ")
|
||||
private Provenance provenance;
|
||||
|
||||
@JsonSchema(
|
||||
description = "True if the relation is related to a project and it has been collected from an authoritative source (i.e. the funder)")
|
||||
private boolean validated;
|
||||
|
||||
@JsonSchema(description = "The date when the relation was collected from OpenAIRE")
|
||||
private String validationDate;
|
||||
|
||||
public String getSource() {
|
||||
return source;
|
||||
}
|
||||
|
||||
public void setSource(String source) {
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
public String getSourceType() {
|
||||
return sourceType;
|
||||
}
|
||||
|
||||
public void setSourceType(String sourceType) {
|
||||
this.sourceType = sourceType;
|
||||
}
|
||||
|
||||
public String getTarget() {
|
||||
return target;
|
||||
}
|
||||
|
||||
public void setTarget(String target) {
|
||||
this.target = target;
|
||||
}
|
||||
|
||||
public String getTargetType() {
|
||||
return targetType;
|
||||
}
|
||||
|
||||
public void setTargetType(String targetType) {
|
||||
this.targetType = targetType;
|
||||
}
|
||||
|
||||
public RelType getReltype() {
|
||||
return reltype;
|
||||
}
|
||||
|
||||
public void setReltype(RelType reltype) {
|
||||
this.reltype = reltype;
|
||||
}
|
||||
|
||||
public Provenance getProvenance() {
|
||||
return provenance;
|
||||
}
|
||||
|
||||
public void setProvenance(Provenance provenance) {
|
||||
this.provenance = provenance;
|
||||
}
|
||||
|
||||
public void setValidated(boolean validate) {
|
||||
this.validated = validate;
|
||||
}
|
||||
|
||||
public boolean getValidated() {
|
||||
return validated;
|
||||
}
|
||||
|
||||
public void setValidationDate(String validationDate) {
|
||||
this.validationDate = validationDate;
|
||||
}
|
||||
|
||||
public String getValidationDate() {
|
||||
return validationDate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
|
||||
return Objects.hash(source, target, reltype.getType() + ":" + reltype.getName());
|
||||
}
|
||||
|
||||
public static Relation newInstance(String source, String sourceType, String target, String targetType,
|
||||
RelType reltype, Provenance provenance) {
|
||||
Relation relation = new Relation();
|
||||
relation.source = source;
|
||||
relation.sourceType = sourceType;
|
||||
relation.target = target;
|
||||
relation.targetType = targetType;
|
||||
relation.reltype = reltype;
|
||||
relation.provenance = provenance;
|
||||
return relation;
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* To represent RC entities. It extends eu.dnetlib.dhp.dump.oaf.grap.ResearchInitiative by adding the parameter subject
|
||||
* to store the list of subjects related to the community
|
||||
*/
|
||||
public class ResearchCommunity extends ResearchInitiative {
|
||||
@JsonSchema(
|
||||
description = "Only for research communities: the list of the subjects associated to the research community")
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
private List<String> subject;
|
||||
|
||||
public List<String> getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public void setSubject(List<String> subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
}
|
|
@ -1,89 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.model.graph;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||
|
||||
/**
|
||||
* 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 {
|
||||
@JsonSchema(description = "The OpenAIRE id for the community/research infrastructure")
|
||||
private String id; // openaireId
|
||||
|
||||
@JsonSchema(description = "The acronym of the community")
|
||||
private String acronym; // context id
|
||||
|
||||
@JsonSchema(description = "The long name of the community")
|
||||
private String name; // context name
|
||||
|
||||
@JsonSchema(description = "One of {Research Community, Research infrastructure}")
|
||||
private String type; // context type: research initiative or research community
|
||||
|
||||
@JsonSchema(description = "Description of the research community/research infrastructure")
|
||||
private String description;
|
||||
|
||||
@JsonSchema(
|
||||
description = "The URL of the Zenodo community associated to the Research community/Research infrastructure")
|
||||
private String zenodo_community;
|
||||
|
||||
public String getZenodo_community() {
|
||||
return zenodo_community;
|
||||
}
|
||||
|
||||
public void setZenodo_community(String zenodo_community) {
|
||||
this.zenodo_community = zenodo_community;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String label) {
|
||||
this.name = label;
|
||||
}
|
||||
|
||||
public String getAcronym() {
|
||||
return acronym;
|
||||
}
|
||||
|
||||
public void setAcronym(String acronym) {
|
||||
this.acronym = acronym;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/09/23
|
||||
*/
|
||||
public enum AccessRight {
|
||||
OPEN("open"), CLOSED("closed"), EMBARGO("embargo"), RESTRICTED("restricted"), UNAVAILABLE("unavailable");
|
||||
|
||||
public final String label;
|
||||
|
||||
private AccessRight(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 05/09/23
|
||||
*/
|
||||
public class Affiliation implements Serializable {
|
||||
private String organization;
|
||||
@JsonProperty("start_date")
|
||||
private String start_date;
|
||||
@JsonProperty("end_date")
|
||||
private String end_date;
|
||||
|
||||
public String getOrganization() {
|
||||
return organization;
|
||||
}
|
||||
|
||||
public void setOrganization(String organization) {
|
||||
this.organization = organization;
|
||||
}
|
||||
|
||||
public String getStart_date() {
|
||||
return start_date;
|
||||
}
|
||||
|
||||
public void setStart_date(String start_date) {
|
||||
this.start_date = start_date;
|
||||
}
|
||||
|
||||
public String getEnd_date() {
|
||||
return end_date;
|
||||
}
|
||||
|
||||
public void setEnd_date(String end_date) {
|
||||
this.end_date = end_date;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class Biblio implements Serializable {
|
||||
private String issue;
|
||||
@JsonProperty("start_page")
|
||||
private String start_page;
|
||||
@JsonProperty("end_page")
|
||||
private String end_page;
|
||||
private String volume;
|
||||
private String edition;
|
||||
private String number;
|
||||
private String publisher;
|
||||
private String series;
|
||||
|
||||
public String getIssue() {
|
||||
return issue;
|
||||
}
|
||||
|
||||
public void setIssue(String issue) {
|
||||
this.issue = issue;
|
||||
}
|
||||
|
||||
public String getStart_page() {
|
||||
return start_page;
|
||||
}
|
||||
|
||||
public void setStart_page(String start_page) {
|
||||
this.start_page = start_page;
|
||||
}
|
||||
|
||||
public String getEnd_page() {
|
||||
return end_page;
|
||||
}
|
||||
|
||||
public void setEnd_page(String end_page) {
|
||||
this.end_page = end_page;
|
||||
}
|
||||
|
||||
public String getVolume() {
|
||||
return volume;
|
||||
}
|
||||
|
||||
public void setVolume(String volume) {
|
||||
this.volume = volume;
|
||||
}
|
||||
|
||||
public String getEdition() {
|
||||
return edition;
|
||||
}
|
||||
|
||||
public void setEdition(String edition) {
|
||||
this.edition = edition;
|
||||
}
|
||||
|
||||
public String getNumber() {
|
||||
return number;
|
||||
}
|
||||
|
||||
public void setNumber(String number) {
|
||||
this.number = number;
|
||||
}
|
||||
|
||||
public String getPublisher() {
|
||||
return publisher;
|
||||
}
|
||||
|
||||
public void setPublisher(String publisher) {
|
||||
this.publisher = publisher;
|
||||
}
|
||||
|
||||
public String getSeries() {
|
||||
return series;
|
||||
}
|
||||
|
||||
public void setSeries(String series) {
|
||||
this.series = series;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class Contribution implements Serializable {
|
||||
private MinPerson person;
|
||||
@JsonProperty("declared_affiliations")
|
||||
private List<String> declared_affiliation;
|
||||
private List<String> roles;
|
||||
private Integer rank;
|
||||
|
||||
public MinPerson getPerson() {
|
||||
return person;
|
||||
}
|
||||
|
||||
public void setPerson(MinPerson person) {
|
||||
this.person = person;
|
||||
}
|
||||
|
||||
public List<String> getDeclared_affiliation() {
|
||||
return declared_affiliation;
|
||||
}
|
||||
|
||||
public void setDeclared_affiliation(List<String> declared_affiliation) {
|
||||
this.declared_affiliation = declared_affiliation;
|
||||
}
|
||||
|
||||
public List<String> getRoles() {
|
||||
return roles;
|
||||
}
|
||||
|
||||
public void setRoles(List<String> roles) {
|
||||
this.roles = roles;
|
||||
}
|
||||
|
||||
public Integer getRank() {
|
||||
return rank;
|
||||
}
|
||||
|
||||
public void setRank(Integer rank) {
|
||||
this.rank = rank;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 22/02/24
|
||||
*/
|
||||
public class Contributor implements Serializable {
|
||||
private MinPerson person; // I would not map it because we have only information regarding the person (if any)
|
||||
// associated to the leading organization
|
||||
private String organization; // contributors.person
|
||||
|
||||
private String role;// private
|
||||
|
||||
public MinPerson getPerson() {
|
||||
return person;
|
||||
}
|
||||
|
||||
public void setPerson(MinPerson person) {
|
||||
this.person = person;
|
||||
}
|
||||
|
||||
public String getOrganization() {
|
||||
return organization;
|
||||
}
|
||||
|
||||
public void setOrganization(String organization) {
|
||||
this.organization = organization;
|
||||
}
|
||||
|
||||
public String getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public void setRole(String role) {
|
||||
this.role = role;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,163 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 21/02/24
|
||||
*/
|
||||
public class Datasource implements Serializable {
|
||||
private String local_identifier;// id
|
||||
private List<Identifier> identifiers; // .schema pid.qualifier.classid;identifiers.value pid.value
|
||||
private String name; // officialname.value
|
||||
private String submission_policy_url;// submissionpolicyurl
|
||||
private String preservation_policy_url;// preservationpolicyurl
|
||||
private Boolean version_control;// versioncontrol bool
|
||||
private List<PersistentIdentitySystems> persistent_identity_systems;// . product_type researchentitytype list type
|
||||
// to be remapped to the eosc types
|
||||
// persistent_identity_systems. pid_scheme pidsystems.value when not null. It can be a string with multiple values
|
||||
private String jurisdiction;// jurisdiction.classname
|
||||
private String data_source_classification;// eoscdatasourcetype.classname
|
||||
private List<String> research_product_type;// researchentitytype list type to be remapped to the eosc types
|
||||
private Boolean thematic;// thematic bool
|
||||
private List<Licence> research_product_license; // .name not mappable listresearch_product_license.url not mappable
|
||||
private List<String> research_product_access_policy;// "databaseaccesstype if open => open access
|
||||
// (https://vocabularies.coar-repositories.org/access_rights/c_abf2/)
|
||||
// if restricted => restricted access (https://vocabularies.coar-repositories.org/access_rights/c_16ec/)
|
||||
// if closed => metadata only access (https://vocabularies.coar-repositories.org/access_rights/c_14cb/) " list
|
||||
private List<Licence> research_product_metadata_license; // .name not mappable list
|
||||
// research_product_metadata_license.url not mappable
|
||||
private List<String> research_product_metadata_access_policy;// researchproductmetadataccesspolicies list with the
|
||||
// same mapping of research_product_access_policy
|
||||
private List<MinOrganization> organization;
|
||||
|
||||
public List<MinOrganization> getOrganization() {
|
||||
return organization;
|
||||
}
|
||||
|
||||
public void setOrganization(List<MinOrganization> organization) {
|
||||
this.organization = organization;
|
||||
}
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public List<Identifier> getIdentifiers() {
|
||||
return identifiers;
|
||||
}
|
||||
|
||||
public void setIdentifiers(List<Identifier> identifiers) {
|
||||
this.identifiers = identifiers;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getSubmission_policy_url() {
|
||||
return submission_policy_url;
|
||||
}
|
||||
|
||||
public void setSubmission_policy_url(String submission_policy_url) {
|
||||
this.submission_policy_url = submission_policy_url;
|
||||
}
|
||||
|
||||
public String getPreservation_policy_url() {
|
||||
return preservation_policy_url;
|
||||
}
|
||||
|
||||
public void setPreservation_policy_url(String preservation_policy_url) {
|
||||
this.preservation_policy_url = preservation_policy_url;
|
||||
}
|
||||
|
||||
public Boolean getVersion_control() {
|
||||
return version_control;
|
||||
}
|
||||
|
||||
public void setVersion_control(Boolean version_control) {
|
||||
this.version_control = version_control;
|
||||
}
|
||||
|
||||
public List<PersistentIdentitySystems> getPersistent_identity_systems() {
|
||||
return persistent_identity_systems;
|
||||
}
|
||||
|
||||
public void setPersistent_identity_systems(List<PersistentIdentitySystems> persistent_identity_systems) {
|
||||
this.persistent_identity_systems = persistent_identity_systems;
|
||||
}
|
||||
|
||||
public String getJurisdiction() {
|
||||
return jurisdiction;
|
||||
}
|
||||
|
||||
public void setJurisdiction(String jurisdiction) {
|
||||
this.jurisdiction = jurisdiction;
|
||||
}
|
||||
|
||||
public String getData_source_classification() {
|
||||
return data_source_classification;
|
||||
}
|
||||
|
||||
public void setData_source_classification(String data_source_classification) {
|
||||
this.data_source_classification = data_source_classification;
|
||||
}
|
||||
|
||||
public List<String> getResearch_product_type() {
|
||||
return research_product_type;
|
||||
}
|
||||
|
||||
public void setResearch_product_type(List<String> research_product_type) {
|
||||
this.research_product_type = research_product_type;
|
||||
}
|
||||
|
||||
public Boolean getThematic() {
|
||||
return thematic;
|
||||
}
|
||||
|
||||
public void setThematic(Boolean thematic) {
|
||||
this.thematic = thematic;
|
||||
}
|
||||
|
||||
public List<Licence> getResearch_product_license() {
|
||||
return research_product_license;
|
||||
}
|
||||
|
||||
public void setResearch_product_license(List<Licence> research_product_license) {
|
||||
this.research_product_license = research_product_license;
|
||||
}
|
||||
|
||||
public List<String> getResearch_product_access_policy() {
|
||||
return research_product_access_policy;
|
||||
}
|
||||
|
||||
public void setResearch_product_access_policy(List<String> research_product_access_policy) {
|
||||
this.research_product_access_policy = research_product_access_policy;
|
||||
}
|
||||
|
||||
public List<Licence> getResearch_product_metadata_license() {
|
||||
return research_product_metadata_license;
|
||||
}
|
||||
|
||||
public void setResearch_product_metadata_license(List<Licence> research_product_metadata_license) {
|
||||
this.research_product_metadata_license = research_product_metadata_license;
|
||||
}
|
||||
|
||||
public List<String> getResearch_product_metadata_access_policy() {
|
||||
return research_product_metadata_access_policy;
|
||||
}
|
||||
|
||||
public void setResearch_product_metadata_access_policy(List<String> research_product_metadata_access_policy) {
|
||||
this.research_product_metadata_access_policy = research_product_metadata_access_policy;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class Dates implements Serializable {
|
||||
private String value;
|
||||
private String type;
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public static Dates newInstance(String value, String type) {
|
||||
Dates d = new Dates();
|
||||
d.value = value;
|
||||
d.type = type;
|
||||
return d;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/04/24
|
||||
*/
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/04/24
|
||||
*/
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
public class DownloadsAndViews implements Serializable {
|
||||
private String views;
|
||||
private String downloads;
|
||||
|
||||
public String getViews() {
|
||||
return views;
|
||||
}
|
||||
|
||||
public void setViews(String views) {
|
||||
this.views = views;
|
||||
}
|
||||
|
||||
public String getDownloads() {
|
||||
return downloads;
|
||||
}
|
||||
|
||||
public void setDownloads(String downloads) {
|
||||
this.downloads = downloads;
|
||||
}
|
||||
|
||||
public static DownloadsAndViews newInstance(String views, String downloads) {
|
||||
DownloadsAndViews uc = new DownloadsAndViews();
|
||||
uc.setViews(views);
|
||||
uc.setDownloads(downloads);
|
||||
return uc;
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return StringUtils.isEmpty(this.downloads) || StringUtils.isEmpty(this.views);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,164 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.codehaus.jackson.annotate.JsonProperty;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 22/02/24
|
||||
*/
|
||||
public class Grant implements Serializable {
|
||||
private String local_identifier;// id
|
||||
private List<Identifier> identifiers;// .schema pid.qualifier.classid identifiers.value pid.value
|
||||
// identifiers.schema funder acronym to be used the xpath //fundingtree/funder/shortname
|
||||
// identifiers.value project.code
|
||||
|
||||
private String title;// title.value
|
||||
@JsonProperty(value = "abstract")
|
||||
private String summary;// summary.value
|
||||
private String acronym; // acronym.value
|
||||
private String funder;// fundingtree to be used the xpath //funder/name
|
||||
private String funding_stream;// fundingtree to be used the xpath //funding_level_[n]
|
||||
private String currency;// currency.value
|
||||
private Float funded_amount;// ' fundedamount.value
|
||||
private List<String> keywords;// subject.value
|
||||
private String start_date;// startdate.value
|
||||
private String end_date;// enddate.value
|
||||
private String website;// websiteurl.value
|
||||
private List<MinOrganization> beneficiaries;// organization.id for the organizations in the relation with semantic
|
||||
// class
|
||||
// isParticipant produces the list of organization internal identifiers
|
||||
private List<Contributor> contributors;//
|
||||
private String grantCode;
|
||||
|
||||
public String getGrantCode() {
|
||||
return grantCode;
|
||||
}
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public List<Identifier> getIdentifiers() {
|
||||
return identifiers;
|
||||
}
|
||||
|
||||
public void setIdentifiers(List<Identifier> identifiers) {
|
||||
this.identifiers = identifiers;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getSummary() {
|
||||
return summary;
|
||||
}
|
||||
|
||||
public void setSummary(String summary) {
|
||||
this.summary = summary;
|
||||
}
|
||||
|
||||
public String getAcronym() {
|
||||
return acronym;
|
||||
}
|
||||
|
||||
public void setAcronym(String acronym) {
|
||||
this.acronym = acronym;
|
||||
}
|
||||
|
||||
public String getFunder() {
|
||||
return funder;
|
||||
}
|
||||
|
||||
public void setFunder(String funder) {
|
||||
this.funder = funder;
|
||||
}
|
||||
|
||||
public String getFunding_stream() {
|
||||
return funding_stream;
|
||||
}
|
||||
|
||||
public void setFunding_stream(String funding_stream) {
|
||||
this.funding_stream = funding_stream;
|
||||
}
|
||||
|
||||
public String getCurrency() {
|
||||
return currency;
|
||||
}
|
||||
|
||||
public void setCurrency(String currency) {
|
||||
this.currency = currency;
|
||||
}
|
||||
|
||||
public Float getFunded_amount() {
|
||||
return funded_amount;
|
||||
}
|
||||
|
||||
public void setFunded_amount(Float funded_amount) {
|
||||
this.funded_amount = funded_amount;
|
||||
}
|
||||
|
||||
public List<String> getKeywords() {
|
||||
return keywords;
|
||||
}
|
||||
|
||||
public void setKeywords(List<String> keywords) {
|
||||
this.keywords = keywords;
|
||||
}
|
||||
|
||||
public String getStart_date() {
|
||||
return start_date;
|
||||
}
|
||||
|
||||
public void setStart_date(String start_date) {
|
||||
this.start_date = start_date;
|
||||
}
|
||||
|
||||
public String getEnd_date() {
|
||||
return end_date;
|
||||
}
|
||||
|
||||
public void setEnd_date(String end_date) {
|
||||
this.end_date = end_date;
|
||||
}
|
||||
|
||||
public String getWebsite() {
|
||||
return website;
|
||||
}
|
||||
|
||||
public void setWebsite(String website) {
|
||||
this.website = website;
|
||||
}
|
||||
|
||||
public List<MinOrganization> getBeneficiaries() {
|
||||
return beneficiaries;
|
||||
}
|
||||
|
||||
public void setBeneficiaries(List<MinOrganization> beneficiaries) {
|
||||
this.beneficiaries = beneficiaries;
|
||||
}
|
||||
|
||||
public List<Contributor> getContributors() {
|
||||
return contributors;
|
||||
}
|
||||
|
||||
public void setContributors(List<Contributor> contributors) {
|
||||
this.contributors = contributors;
|
||||
}
|
||||
|
||||
public void setGrantCode(String value) {
|
||||
grantCode = value;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class Identifier implements Serializable {
|
||||
private String scheme;
|
||||
private String value;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static Identifier newInstance(String scheme, String value) {
|
||||
Identifier i = new Identifier();
|
||||
i.value = value;
|
||||
i.scheme = scheme;
|
||||
return i;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/04/24
|
||||
*/
|
||||
public class Indicator implements Serializable {
|
||||
private DownloadsAndViews downloadsAndViews;
|
||||
|
||||
public DownloadsAndViews getDownloadsAndViews() {
|
||||
return downloadsAndViews;
|
||||
}
|
||||
|
||||
public void setDownloadsAndViews(DownloadsAndViews downloadsAndViews) {
|
||||
this.downloadsAndViews = downloadsAndViews;
|
||||
}
|
||||
|
||||
public static Indicator newInstance(DownloadsAndViews uc) {
|
||||
Indicator i = new Indicator();
|
||||
i.setDownloadsAndViews(uc);
|
||||
return i;
|
||||
}
|
||||
|
||||
public static Indicator newInstance(String downloads, String views) {
|
||||
Indicator i = new Indicator();
|
||||
i.setDownloadsAndViews(DownloadsAndViews.newInstance(views, downloads));
|
||||
return i;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 21/02/24
|
||||
*/
|
||||
public class Licence implements Serializable {
|
||||
}
|
|
@ -0,0 +1,148 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class Manifestation implements Serializable {
|
||||
@JsonProperty("product_local_type")
|
||||
private String product_local_type;
|
||||
@JsonProperty("product_local_type_schema")
|
||||
private String product_local_type_schema;
|
||||
private List<Dates> dates;
|
||||
@JsonProperty("peer_review")
|
||||
private String peer_review;
|
||||
@JsonProperty("metadata_curation")
|
||||
private String metadata_curation;
|
||||
private String url;
|
||||
private String pid;
|
||||
@JsonProperty("access_right")
|
||||
private String access_right;
|
||||
private String licence;
|
||||
@JsonProperty("licance_schema")
|
||||
private String licence_schema;
|
||||
private Biblio biblio;
|
||||
private MinVenue venue;
|
||||
private List<String> eoscId;
|
||||
|
||||
public List<String> getEoscId() {
|
||||
return eoscId;
|
||||
}
|
||||
|
||||
public void setEoscId(List<String> eoscId) {
|
||||
this.eoscId = eoscId;
|
||||
}
|
||||
|
||||
@JsonProperty("hosting_datasource")
|
||||
private MinVenue hosting_datasource;
|
||||
|
||||
public String getProduct_local_type() {
|
||||
return product_local_type;
|
||||
}
|
||||
|
||||
public void setProduct_local_type(String product_local_type) {
|
||||
this.product_local_type = product_local_type;
|
||||
}
|
||||
|
||||
public String getProduct_local_type_schema() {
|
||||
return product_local_type_schema;
|
||||
}
|
||||
|
||||
public void setProduct_local_type_schema(String product_local_type_schema) {
|
||||
this.product_local_type_schema = product_local_type_schema;
|
||||
}
|
||||
|
||||
public List<Dates> getDates() {
|
||||
return dates;
|
||||
}
|
||||
|
||||
public void setDates(List<Dates> dates) {
|
||||
this.dates = dates;
|
||||
}
|
||||
|
||||
public String getPeer_review() {
|
||||
return peer_review;
|
||||
}
|
||||
|
||||
public void setPeer_review(String peer_review) {
|
||||
this.peer_review = peer_review;
|
||||
}
|
||||
|
||||
public String getMetadata_curation() {
|
||||
return metadata_curation;
|
||||
}
|
||||
|
||||
public void setMetadata_curation(String metadata_curation) {
|
||||
this.metadata_curation = metadata_curation;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public String getPid() {
|
||||
return pid;
|
||||
}
|
||||
|
||||
public void setPid(String pid) {
|
||||
this.pid = pid;
|
||||
}
|
||||
|
||||
public String getAccess_right() {
|
||||
return access_right;
|
||||
}
|
||||
|
||||
public void setAccess_right(String access_right) {
|
||||
this.access_right = access_right;
|
||||
}
|
||||
|
||||
public String getLicence() {
|
||||
return licence;
|
||||
}
|
||||
|
||||
public void setLicence(String licence) {
|
||||
this.licence = licence;
|
||||
}
|
||||
|
||||
public String getLicence_schema() {
|
||||
return licence_schema;
|
||||
}
|
||||
|
||||
public void setLicence_schema(String licence_schema) {
|
||||
this.licence_schema = licence_schema;
|
||||
}
|
||||
|
||||
public Biblio getBiblio() {
|
||||
return biblio;
|
||||
}
|
||||
|
||||
public void setBiblio(Biblio biblio) {
|
||||
this.biblio = biblio;
|
||||
}
|
||||
|
||||
public MinVenue getVenue() {
|
||||
return venue;
|
||||
}
|
||||
|
||||
public void setVenue(MinVenue venue) {
|
||||
this.venue = venue;
|
||||
}
|
||||
|
||||
public MinVenue getHosting_datasource() {
|
||||
return hosting_datasource;
|
||||
}
|
||||
|
||||
public void setHosting_datasource(MinVenue hosting_datasource) {
|
||||
this.hosting_datasource = hosting_datasource;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/09/23
|
||||
*/
|
||||
public enum MetadataCuration {
|
||||
YES("yes"), NO("no"), UNAVAILABLE("unavailable");
|
||||
|
||||
public final String label;
|
||||
|
||||
private MetadataCuration(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/03/24
|
||||
*/
|
||||
public class MinGrant implements Serializable {
|
||||
private String local_identifier;
|
||||
private String funder;
|
||||
private String code;
|
||||
private String title;
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public String getFunder() {
|
||||
return funder;
|
||||
}
|
||||
|
||||
public void setFunder(String funder) {
|
||||
this.funder = funder;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/03/24
|
||||
*/
|
||||
public class MinOrganization implements Serializable {
|
||||
private String local_identifier;
|
||||
private String name;
|
||||
private String ror;
|
||||
private String isni;
|
||||
private String fundRef;
|
||||
private String rinGold;
|
||||
private String wikidata;
|
||||
|
||||
public String getWikidata() {
|
||||
return wikidata;
|
||||
}
|
||||
|
||||
public void setWikidata(String wikidata) {
|
||||
this.wikidata = wikidata;
|
||||
}
|
||||
|
||||
public String getFundRef() {
|
||||
return fundRef;
|
||||
}
|
||||
|
||||
public String getRinGold() {
|
||||
return rinGold;
|
||||
}
|
||||
|
||||
public void setRinGold(String rinGold) {
|
||||
this.rinGold = rinGold;
|
||||
}
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getRor() {
|
||||
return ror;
|
||||
}
|
||||
|
||||
public void setRor(String ror) {
|
||||
this.ror = ror;
|
||||
}
|
||||
|
||||
public String getIsni() {
|
||||
return isni;
|
||||
}
|
||||
|
||||
public void setIsni(String isni) {
|
||||
this.isni = isni;
|
||||
}
|
||||
|
||||
public void setFundRef(String value) {
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/03/24
|
||||
*/
|
||||
public class MinPerson implements Serializable {
|
||||
private String local_identifier;
|
||||
private String full_name;
|
||||
private String orcid;
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public String getFull_name() {
|
||||
return full_name;
|
||||
}
|
||||
|
||||
public void setFull_name(String full_name) {
|
||||
this.full_name = full_name;
|
||||
}
|
||||
|
||||
public String getOrcid() {
|
||||
return orcid;
|
||||
}
|
||||
|
||||
public void setOrcid(String orcid) {
|
||||
this.orcid = orcid;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/03/24
|
||||
*/
|
||||
public class MinProduct implements Serializable {
|
||||
private String local_identifier;
|
||||
private String title;
|
||||
private String doi;
|
||||
private String pmcid;
|
||||
private String arxivid;
|
||||
private String pmid;
|
||||
|
||||
public String getPmid() {
|
||||
return pmid;
|
||||
}
|
||||
|
||||
public void setPmid(String pmid) {
|
||||
this.pmid = pmid;
|
||||
}
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getDoi() {
|
||||
return doi;
|
||||
}
|
||||
|
||||
public void setDoi(String doi) {
|
||||
this.doi = doi;
|
||||
}
|
||||
|
||||
public String getPmcid() {
|
||||
return pmcid;
|
||||
}
|
||||
|
||||
public void setPmcid(String pmcid) {
|
||||
this.pmcid = pmcid;
|
||||
}
|
||||
|
||||
public String getArxivid() {
|
||||
return arxivid;
|
||||
}
|
||||
|
||||
public void setArxivid(String arxivid) {
|
||||
this.arxivid = arxivid;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/03/24
|
||||
*/
|
||||
public class MinTopic implements Serializable {
|
||||
private String local_identifier;
|
||||
private String value;
|
||||
private String scheme;
|
||||
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
}
|
||||
|
||||
public void setScheme(String scheme) {
|
||||
this.scheme = scheme;
|
||||
}
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/03/24
|
||||
*/
|
||||
public class MinVenue implements Serializable {
|
||||
private String local_identifier;
|
||||
private String name;
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String loval_identifier) {
|
||||
this.local_identifier = loval_identifier;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public static MinVenue newInstance(String local_identifier, String name) {
|
||||
MinVenue minVenue = new MinVenue();
|
||||
minVenue.local_identifier = local_identifier;
|
||||
minVenue.name = name;
|
||||
return minVenue;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,85 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 21/02/24
|
||||
*/
|
||||
public class Organization implements Serializable {
|
||||
private String local_identifier; // id
|
||||
private List<Identifier> identifiers; // pid.qualifier.classid; pid.value list
|
||||
private String name; // legalname.value
|
||||
|
||||
private String short_name; // legalshortname.value
|
||||
private List<String> other_names;// alternative_names.value list
|
||||
private String website;// websiteurl.value
|
||||
private String country; // country.classid
|
||||
private String type; // map relevant types from the ec* fields of organisations. If no match, default to "other"
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public List<Identifier> getIdentifiers() {
|
||||
return identifiers;
|
||||
}
|
||||
|
||||
public void setIdentifiers(List<Identifier> identifiers) {
|
||||
this.identifiers = identifiers;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getShort_name() {
|
||||
return short_name;
|
||||
}
|
||||
|
||||
public void setShort_name(String short_name) {
|
||||
this.short_name = short_name;
|
||||
}
|
||||
|
||||
public List<String> getOther_names() {
|
||||
return other_names;
|
||||
}
|
||||
|
||||
public void setOther_names(List<String> other_names) {
|
||||
this.other_names = other_names;
|
||||
}
|
||||
|
||||
public String getWebsite() {
|
||||
return website;
|
||||
}
|
||||
|
||||
public void setWebsite(String website) {
|
||||
this.website = website;
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public void setCountry(String country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
public enum OrganizationTypes {
|
||||
ARCHIVE("archive"),
|
||||
|
||||
COMPANY("company"),
|
||||
|
||||
EDUCATION("education"), FACILITY("facility"), GOVERNMENT("government"), HEALTHCARE("healthcare"), NONPROFIT(
|
||||
"nonprofit"), FUNDER("funder"), OTHER("other");
|
||||
|
||||
public final String label;
|
||||
|
||||
private OrganizationTypes(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 04/09/23
|
||||
*/
|
||||
public enum PeerReview {
|
||||
PEER_REVIEWED("peer-reviewed"), NON_PEER_REVIEWED("not peer-reviewed"), DOUBLE_BLIND("double-blind"), SINGLE_BLIND(
|
||||
"single-blind"), UNAVAILABLE("unavailable"), OPEN("open peer review");
|
||||
|
||||
public final String label;
|
||||
|
||||
private PeerReview(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 21/02/24
|
||||
*/
|
||||
public class PersistentIdentitySystems implements Serializable {
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.codehaus.jackson.annotate.JsonProperty;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 05/09/23
|
||||
*/
|
||||
public class Persons implements Serializable {
|
||||
@JsonProperty("local_identifier")
|
||||
private String local_identifier;
|
||||
private List<Identifier> identifiers;
|
||||
@JsonProperty("given_name")
|
||||
private String given_name;
|
||||
@JsonProperty("family_name")
|
||||
private String family_name;
|
||||
private String agent;
|
||||
@JsonProperty("declared_affiliations")
|
||||
private List<Affiliation> declared_affiliations;
|
||||
|
||||
private String fullname;
|
||||
|
||||
public String getFullname() {
|
||||
return fullname;
|
||||
}
|
||||
|
||||
public void setFullname(String fullname) {
|
||||
this.fullname = fullname;
|
||||
}
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public List<Identifier> getIdentifiers() {
|
||||
return identifiers;
|
||||
}
|
||||
|
||||
public void setIdentifiers(List<Identifier> identifiers) {
|
||||
this.identifiers = identifiers;
|
||||
}
|
||||
|
||||
public String getGiven_name() {
|
||||
return given_name;
|
||||
}
|
||||
|
||||
public void setGiven_name(String given_name) {
|
||||
this.given_name = given_name;
|
||||
}
|
||||
|
||||
public String getFamily_name() {
|
||||
return family_name;
|
||||
}
|
||||
|
||||
public void setFamily_name(String family_name) {
|
||||
this.family_name = family_name;
|
||||
}
|
||||
|
||||
public String getAgent() {
|
||||
return agent;
|
||||
}
|
||||
|
||||
public void setAgent(String agent) {
|
||||
this.agent = agent;
|
||||
}
|
||||
|
||||
public List<Affiliation> getDeclared_affiliations() {
|
||||
return declared_affiliations;
|
||||
}
|
||||
|
||||
public void setDeclared_affiliations(List<Affiliation> declared_affiliations) {
|
||||
this.declared_affiliations = declared_affiliations;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 21/02/24
|
||||
*/
|
||||
public enum Prefixes implements Serializable {
|
||||
RESEARCH_PRODUCT("product_____::"),
|
||||
|
||||
ORGANIZATION("organization::"),
|
||||
|
||||
GRANT("grant_______::"),
|
||||
|
||||
PERSON(
|
||||
"person______::"),
|
||||
|
||||
TEMPORARY_PERSON("temp_person_::"),
|
||||
|
||||
DATASOURCE("datasource__::"), TOPIC("temp_topic__::"), VENUE("temp_venue__::");
|
||||
|
||||
public final String label;
|
||||
|
||||
private Prefixes(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class Provenance implements Serializable {
|
||||
private String type;
|
||||
private double trust;
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public double getTrust() {
|
||||
return trust;
|
||||
}
|
||||
|
||||
public void setTrust(double trust) {
|
||||
this.trust = trust;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 05/09/23
|
||||
*/
|
||||
public enum RelationType implements Serializable {
|
||||
RESULT_OUTCOME_FUNDING("isProducedBy"), RESULT_AFFILIATIED_TO_ORGANIZATION(
|
||||
"hasAuthorInstitution"), DATASOURCE_PROVIDED_BY_ORGANIZATION(
|
||||
"isProvidedBy"), PROJECT_HAS_PARTICIPANT_ORGANIZATION("hasParticipant"), SUPPLEMENT(
|
||||
"IsSupplementedBy"), DOCUMENTS(
|
||||
"IsDocumentedBy"), PART("IsPartOf"), VERSION(
|
||||
"IsNewVersionOf"), CITATION("Cites"), ORGANIZATION_PARTICIPANT_IN_PROJECT("isParticipant");
|
||||
|
||||
public final String label;
|
||||
|
||||
private RelationType(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class Relations implements Serializable {
|
||||
@JsonProperty("relation_type")
|
||||
private String relation_type;
|
||||
@JsonProperty("product_list")
|
||||
private List<MinProduct> product_list;
|
||||
|
||||
public static Relations newInstance(String relClass, List<MinProduct> target) {
|
||||
Relations r = new Relations();
|
||||
r.relation_type = relClass;
|
||||
r.product_list = target;
|
||||
return r;
|
||||
}
|
||||
|
||||
public String getRelation_type() {
|
||||
return relation_type;
|
||||
}
|
||||
|
||||
public void setRelation_type(String relation_type) {
|
||||
this.relation_type = relation_type;
|
||||
}
|
||||
|
||||
public List<MinProduct> getProduct_list() {
|
||||
return product_list;
|
||||
}
|
||||
|
||||
public void setProduct_list(List<MinProduct> product_list) {
|
||||
this.product_list = product_list;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,128 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class ResearchProduct implements Serializable {
|
||||
@JsonProperty("local_identifier")
|
||||
private String local_identifier;
|
||||
private List<Identifier> identifiers;
|
||||
private Map<String, List<String>> titles;
|
||||
private Map<String, List<String>> abstracts;
|
||||
@JsonProperty("product_type")
|
||||
private String product_type;
|
||||
private List<ResultTopic> topics;
|
||||
private List<Contribution> contributions;
|
||||
private List<Manifestation> manifestations;
|
||||
@JsonProperty("relevant_organizations")
|
||||
private List<MinOrganization> relevant_organizations;
|
||||
private List<MinGrant> funding;
|
||||
@JsonProperty("related_products")
|
||||
private List<Relations> related_products;
|
||||
|
||||
private Indicator indicator;
|
||||
|
||||
public Indicator getIndicator() {
|
||||
return indicator;
|
||||
}
|
||||
|
||||
public void setIndicator(Indicator indicator) {
|
||||
this.indicator = indicator;
|
||||
}
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public List<Identifier> getIdentifiers() {
|
||||
return identifiers;
|
||||
}
|
||||
|
||||
public void setIdentifiers(List<Identifier> identifiers) {
|
||||
this.identifiers = identifiers;
|
||||
}
|
||||
|
||||
public Map<String, List<String>> getTitles() {
|
||||
return titles;
|
||||
}
|
||||
|
||||
public void setTitles(Map<String, List<String>> titles) {
|
||||
this.titles = titles;
|
||||
}
|
||||
|
||||
public Map<String, List<String>> getAbstracts() {
|
||||
return abstracts;
|
||||
}
|
||||
|
||||
public void setAbstracts(Map<String, List<String>> abstracts) {
|
||||
this.abstracts = abstracts;
|
||||
}
|
||||
|
||||
public String getProduct_type() {
|
||||
return product_type;
|
||||
}
|
||||
|
||||
public void setProduct_type(String product_type) {
|
||||
this.product_type = product_type;
|
||||
}
|
||||
|
||||
public List<ResultTopic> getTopics() {
|
||||
return topics;
|
||||
}
|
||||
|
||||
public void setTopics(List<ResultTopic> topics) {
|
||||
this.topics = topics;
|
||||
}
|
||||
|
||||
public List<Contribution> getContributions() {
|
||||
return contributions;
|
||||
}
|
||||
|
||||
public void setContributions(List<Contribution> contributions) {
|
||||
this.contributions = contributions;
|
||||
}
|
||||
|
||||
public List<Manifestation> getManifestations() {
|
||||
return manifestations;
|
||||
}
|
||||
|
||||
public void setManifestations(List<Manifestation> manifestations) {
|
||||
this.manifestations = manifestations;
|
||||
}
|
||||
|
||||
public List<MinOrganization> getRelevant_organizations() {
|
||||
return relevant_organizations;
|
||||
}
|
||||
|
||||
public void setRelevant_organizations(List<MinOrganization> relevant_organizations) {
|
||||
this.relevant_organizations = relevant_organizations;
|
||||
}
|
||||
|
||||
public List<MinGrant> getFunding() {
|
||||
return funding;
|
||||
}
|
||||
|
||||
public void setFunding(List<MinGrant> funding) {
|
||||
this.funding = funding;
|
||||
}
|
||||
|
||||
public List<Relations> getRelated_products() {
|
||||
return related_products;
|
||||
}
|
||||
|
||||
public void setRelated_products(List<Relations> related_products) {
|
||||
this.related_products = related_products;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public enum ResearchTypes {
|
||||
LITERATURE("literature"), RESEARCH_DATA("research data"), RESEARCH_SOFTWARE("research software"), OTHER("other");
|
||||
|
||||
public final String label;
|
||||
|
||||
private ResearchTypes(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 16/02/24
|
||||
*/
|
||||
public class ResultTopic implements Serializable {
|
||||
private MinTopic topic;
|
||||
private Provenance provenance;
|
||||
|
||||
public MinTopic getTopic() {
|
||||
return topic;
|
||||
}
|
||||
|
||||
public void setTopic(MinTopic topic) {
|
||||
this.topic = topic;
|
||||
}
|
||||
|
||||
public Provenance getProvenance() {
|
||||
return provenance;
|
||||
}
|
||||
|
||||
public void setProvenance(Provenance provenance) {
|
||||
this.provenance = provenance;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 01/09/23
|
||||
*/
|
||||
public class Topic implements Serializable {
|
||||
private String local_identifier;
|
||||
private List<Identifier> identifiers;
|
||||
private String name;
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public List<Identifier> getIdentifiers() {
|
||||
return identifiers;
|
||||
}
|
||||
|
||||
public void setIdentifiers(List<Identifier> identifiers) {
|
||||
this.identifiers = identifiers;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 27/02/24
|
||||
*/
|
||||
public class Venue implements Serializable {
|
||||
private String local_identifier;
|
||||
private List<Identifier> identifiers;
|
||||
private String name;
|
||||
private String acronym;
|
||||
private String type;
|
||||
private String publisher;
|
||||
private String series;
|
||||
private Boolean is_currently_full_oa;
|
||||
|
||||
private String creation_date;
|
||||
private List<VenueContribution> contributions;
|
||||
|
||||
public String getLocal_identifier() {
|
||||
return local_identifier;
|
||||
}
|
||||
|
||||
public void setLocal_identifier(String local_identifier) {
|
||||
this.local_identifier = local_identifier;
|
||||
}
|
||||
|
||||
public List<Identifier> getIdentifiers() {
|
||||
return identifiers;
|
||||
}
|
||||
|
||||
public void setIdentifiers(List<Identifier> identifiers) {
|
||||
this.identifiers = identifiers;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getAcronym() {
|
||||
return acronym;
|
||||
}
|
||||
|
||||
public void setAcronym(String acronym) {
|
||||
this.acronym = acronym;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getPublisher() {
|
||||
return publisher;
|
||||
}
|
||||
|
||||
public void setPublisher(String publisher) {
|
||||
this.publisher = publisher;
|
||||
}
|
||||
|
||||
public String getSeries() {
|
||||
return series;
|
||||
}
|
||||
|
||||
public void setSeries(String series) {
|
||||
this.series = series;
|
||||
}
|
||||
|
||||
public Boolean getIs_currently_full_oa() {
|
||||
return is_currently_full_oa;
|
||||
}
|
||||
|
||||
public void setIs_currently_full_oa(Boolean is_currently_full_oa) {
|
||||
this.is_currently_full_oa = is_currently_full_oa;
|
||||
}
|
||||
|
||||
public String getCreation_date() {
|
||||
return creation_date;
|
||||
}
|
||||
|
||||
public void setCreation_date(String creation_date) {
|
||||
this.creation_date = creation_date;
|
||||
}
|
||||
|
||||
public List<VenueContribution> getContributions() {
|
||||
return contributions;
|
||||
}
|
||||
|
||||
public void setContributions(List<VenueContribution> contributions) {
|
||||
this.contributions = contributions;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author miriam.baglioni
|
||||
* @Date 27/02/24
|
||||
*/
|
||||
public class VenueContribution implements Serializable {
|
||||
private String person;
|
||||
private List<String> roles;
|
||||
|
||||
public String getPerson() {
|
||||
|
||||
return person;
|
||||
}
|
||||
|
||||
public void setPerson(String person) {
|
||||
this.person = person;
|
||||
}
|
||||
|
||||
public List<String> getRoles() {
|
||||
return roles;
|
||||
}
|
||||
|
||||
public void setRoles(List<String> roles) {
|
||||
this.roles = roles;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public enum VenueIdentifierType implements Serializable {
|
||||
|
||||
EISSN("eissn"), ISSN("issn"), LISSN("lissn"), ISBN("isbn"), OPENDOAR(
|
||||
"opendoar"), R3DATA("re3data.org"), FAIRSHARING("fairsharing");
|
||||
|
||||
public final String label;
|
||||
|
||||
private VenueIdentifierType(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
|
||||
package eu.dnetlib.dhp.skgif.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public enum VenueType implements Serializable {
|
||||
|
||||
REPOSITORY("repository"), JOURNAL("journal"), CONFERENCE("conference"), BOOK("book"), OTHER(
|
||||
"other"), UNKNOWN("unknown");
|
||||
|
||||
public final String label;
|
||||
|
||||
private VenueType(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
}
|
|
@ -9,9 +9,7 @@ import com.github.imifou.jsonschema.module.addon.AddonModule;
|
|||
import com.github.victools.jsonschema.generator.*;
|
||||
|
||||
import eu.dnetlib.dhp.ExecCreateSchemas;
|
||||
import eu.dnetlib.dhp.oa.model.Result;
|
||||
import eu.dnetlib.dhp.oa.model.community.CommunityResult;
|
||||
import eu.dnetlib.dhp.oa.model.graph.*;
|
||||
import eu.dnetlib.dhp.skgif.model.ResearchProduct;
|
||||
|
||||
//@Disabled
|
||||
class GenerateJsonSchema {
|
||||
|
@ -25,7 +23,7 @@ class GenerateJsonSchema {
|
|||
configBuilder.forFields().withDescriptionResolver(field -> "Description of " + field.getDeclaredName());
|
||||
SchemaGeneratorConfig config = configBuilder.build();
|
||||
SchemaGenerator generator = new SchemaGenerator(config);
|
||||
JsonNode jsonSchema = generator.generateSchema(CommunityResult.class);
|
||||
JsonNode jsonSchema = generator.generateSchema(ResearchProduct.class);
|
||||
|
||||
System.out.println(jsonSchema.toString());
|
||||
}
|
||||
|
@ -42,7 +40,7 @@ class GenerateJsonSchema {
|
|||
.without(Option.NONPUBLIC_NONSTATIC_FIELDS_WITHOUT_GETTERS);
|
||||
SchemaGeneratorConfig config = configBuilder.build();
|
||||
SchemaGenerator generator = new SchemaGenerator(config);
|
||||
JsonNode jsonSchema = generator.generateSchema(Result.class);
|
||||
JsonNode jsonSchema = generator.generateSchema(ResearchProduct.class);
|
||||
|
||||
System.out.println(jsonSchema.toString());
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.common;
|
||||
package eu.dnetlib.dhp.common;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.IOException;
|
|
@ -15,7 +15,7 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
||||
import eu.dnetlib.dhp.oa.common.MakeTarArchive;
|
||||
import eu.dnetlib.dhp.common.MakeTarArchive;
|
||||
|
||||
public class MakeTar implements Serializable {
|
||||
|
||||
|
|
|
@ -1,793 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.graph.dump;
|
||||
|
||||
import static eu.dnetlib.dhp.oa.graph.dump.Constants.*;
|
||||
import static eu.dnetlib.dhp.oa.graph.dump.Utils.ENTITY_ID_SEPARATOR;
|
||||
import static eu.dnetlib.dhp.oa.graph.dump.Utils.getEntityId;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import eu.dnetlib.dhp.oa.graph.dump.exceptions.CardinalityTooHighException;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.exceptions.NoAvailableEntityTypeException;
|
||||
import eu.dnetlib.dhp.oa.model.*;
|
||||
import eu.dnetlib.dhp.oa.model.AccessRight;
|
||||
import eu.dnetlib.dhp.oa.model.Author;
|
||||
import eu.dnetlib.dhp.oa.model.GeoLocation;
|
||||
import eu.dnetlib.dhp.oa.model.Instance;
|
||||
import eu.dnetlib.dhp.oa.model.OpenAccessColor;
|
||||
import eu.dnetlib.dhp.oa.model.OpenAccessRoute;
|
||||
import eu.dnetlib.dhp.oa.model.Result;
|
||||
import eu.dnetlib.dhp.oa.model.Subject;
|
||||
import eu.dnetlib.dhp.oa.model.community.CfHbKeyValue;
|
||||
import eu.dnetlib.dhp.oa.model.community.CommunityInstance;
|
||||
import eu.dnetlib.dhp.oa.model.community.CommunityResult;
|
||||
import eu.dnetlib.dhp.oa.model.community.Context;
|
||||
import eu.dnetlib.dhp.oa.model.graph.GraphResult;
|
||||
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
||||
import eu.dnetlib.dhp.schema.oaf.*;
|
||||
|
||||
public class ResultMapper implements Serializable {
|
||||
private static final String NULL = "null";
|
||||
|
||||
public static <E extends eu.dnetlib.dhp.schema.oaf.OafEntity> Result map(
|
||||
E in, Map<String, String> communityMap, String dumpType)
|
||||
throws NoAvailableEntityTypeException, CardinalityTooHighException {
|
||||
|
||||
Result out;
|
||||
if (Constants.DUMPTYPE.COMPLETE.getType().equals(dumpType)) {
|
||||
out = new GraphResult();
|
||||
} else {
|
||||
out = new CommunityResult();
|
||||
}
|
||||
|
||||
eu.dnetlib.dhp.schema.oaf.Result input = (eu.dnetlib.dhp.schema.oaf.Result) in;
|
||||
Optional<eu.dnetlib.dhp.schema.oaf.Qualifier> ort = Optional.ofNullable(input.getResulttype());
|
||||
if (ort.isPresent()) {
|
||||
try {
|
||||
|
||||
addTypeSpecificInformation(out, input, ort.get());
|
||||
mapAuthor(out, input);
|
||||
mapAccessRight(out, input);
|
||||
mapContributor(out, input);
|
||||
mapCountry(out, input);
|
||||
mapCoverage(out, input);
|
||||
out.setDateofcollection(input.getDateofcollection());
|
||||
out.setGreen(input.getIsGreen());
|
||||
out.setInDiamondJournal(input.getIsInDiamondJournal());
|
||||
out.setPubliclyFunded(input.getPubliclyFunded());
|
||||
mapOpenAccessColor(out, input);
|
||||
mapDescription(out, input);
|
||||
mapEmbargo(out, input);
|
||||
mapFormat(out, input);
|
||||
out.setId(getEntityId(input.getId(), ENTITY_ID_SEPARATOR));
|
||||
mapOriginalId(out, input);
|
||||
mapInstance(dumpType, out, input);
|
||||
mapLanguage(out, input);
|
||||
mapLastUpdateTimestamp(out, input);
|
||||
mapTitle(out, input);
|
||||
mapPid(out, input);
|
||||
mapDateOfAcceptance(out, input);
|
||||
mapPublisher(out, input);
|
||||
mapSource(out, input);
|
||||
mapSubject(out, input);
|
||||
out.setType(input.getResulttype().getClassid());
|
||||
mapMeasure(out, input);
|
||||
if (!Constants.DUMPTYPE.COMPLETE.getType().equals(dumpType)) {
|
||||
mapCollectedfrom((CommunityResult) out, input);
|
||||
mapContext(communityMap, (CommunityResult) out, input);
|
||||
}
|
||||
} catch (ClassCastException cce) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
|
||||
}
|
||||
|
||||
private static void mapOpenAccessColor(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
if (Optional.ofNullable(input.getOpenAccessColor()).isPresent())
|
||||
switch (input.getOpenAccessColor()) {
|
||||
case bronze:
|
||||
out.setOpenAccessColor(OpenAccessColor.bronze);
|
||||
break;
|
||||
case gold:
|
||||
out.setOpenAccessColor(OpenAccessColor.gold);
|
||||
break;
|
||||
case hybrid:
|
||||
out.setOpenAccessColor(OpenAccessColor.hybrid);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void mapContext(Map<String, String> communityMap, CommunityResult out,
|
||||
eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Set<String> communities = communityMap.keySet();
|
||||
List<Context> contextList = Optional
|
||||
.ofNullable(
|
||||
input
|
||||
.getContext())
|
||||
.map(
|
||||
value -> value
|
||||
.stream()
|
||||
.map(c -> {
|
||||
String communityId = c.getId();
|
||||
if (communityId.contains("::")) {
|
||||
communityId = communityId.substring(0, communityId.indexOf("::"));
|
||||
}
|
||||
if (communities.contains(communityId)) {
|
||||
Context context = new Context();
|
||||
context.setCode(communityId);
|
||||
context.setLabel(communityMap.get(communityId));
|
||||
Optional<List<DataInfo>> dataInfo = Optional.ofNullable(c.getDataInfo());
|
||||
if (dataInfo.isPresent()) {
|
||||
List<Provenance> provenance = new ArrayList<>();
|
||||
provenance
|
||||
.addAll(
|
||||
dataInfo
|
||||
.get()
|
||||
.stream()
|
||||
.map(
|
||||
di -> Optional
|
||||
.ofNullable(di.getProvenanceaction())
|
||||
.map(
|
||||
provenanceaction -> Provenance
|
||||
.newInstance(
|
||||
provenanceaction.getClassname(),
|
||||
di.getTrust()))
|
||||
.orElse(null))
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toSet()));
|
||||
|
||||
try {
|
||||
context.setProvenance(getUniqueProvenance(provenance));
|
||||
} catch (NoAvailableEntityTypeException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return context;
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList()))
|
||||
.orElse(new ArrayList<>());
|
||||
|
||||
if (!contextList.isEmpty()) {
|
||||
Set<Integer> hashValue = new HashSet<>();
|
||||
List<Context> remainigContext = new ArrayList<>();
|
||||
contextList.forEach(c -> {
|
||||
if (!hashValue.contains(c.hashCode())) {
|
||||
remainigContext.add(c);
|
||||
hashValue.add(c.hashCode());
|
||||
}
|
||||
});
|
||||
out.setContext(remainigContext);
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapCollectedfrom(CommunityResult out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
out
|
||||
.setCollectedfrom(
|
||||
input
|
||||
.getCollectedfrom()
|
||||
.stream()
|
||||
.map(cf -> CfHbKeyValue.newInstance(getEntityId(cf.getKey(), ENTITY_ID_SEPARATOR), cf.getValue()))
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
private static void mapMeasure(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
if (Optional.ofNullable(input.getMeasures()).isPresent() && input.getMeasures().size() > 0) {
|
||||
|
||||
out.setIndicators(Utils.getIndicator(input.getMeasures()));
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapSubject(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
List<Subject> subjectList = new ArrayList<>();
|
||||
Optional
|
||||
.ofNullable(input.getSubject())
|
||||
.ifPresent(
|
||||
value -> value
|
||||
.stream()
|
||||
// .filter(
|
||||
// s -> !((s.getQualifier().getClassid().equalsIgnoreCase("fos") &&
|
||||
// Optional.ofNullable(s.getDataInfo()).isPresent()
|
||||
// && Optional.ofNullable(s.getDataInfo().getProvenanceaction()).isPresent() &&
|
||||
// s.getDataInfo().getProvenanceaction().getClassid().equalsIgnoreCase("subject:fos"))
|
||||
// ||
|
||||
// (s.getQualifier().getClassid().equalsIgnoreCase("sdg") &&
|
||||
// Optional.ofNullable(s.getDataInfo()).isPresent()
|
||||
// && Optional.ofNullable(s.getDataInfo().getProvenanceaction()).isPresent() &&
|
||||
// s
|
||||
// .getDataInfo()
|
||||
// .getProvenanceaction()
|
||||
// .getClassid()
|
||||
// .equalsIgnoreCase("subject:sdg"))))
|
||||
.filter(s -> !s.getValue().equalsIgnoreCase(NULL))
|
||||
.forEach(s -> subjectList.add(getSubject(s))));
|
||||
|
||||
out.setSubjects(subjectList);
|
||||
}
|
||||
|
||||
private static void mapSource(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional
|
||||
.ofNullable(input.getSource())
|
||||
.ifPresent(
|
||||
value -> out.setSource(value.stream().map(Field::getValue).collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
private static void mapPublisher(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional<Field<String>> oStr;
|
||||
oStr = Optional.ofNullable(input.getPublisher());
|
||||
if (oStr.isPresent()) {
|
||||
out.setPublisher(oStr.get().getValue());
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapDateOfAcceptance(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional<Field<String>> oStr;
|
||||
oStr = Optional.ofNullable(input.getDateofacceptance());
|
||||
if (oStr.isPresent()) {
|
||||
out.setPublicationdate(oStr.get().getValue());
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapPid(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional
|
||||
.ofNullable(input.getPid())
|
||||
.ifPresent(
|
||||
value -> out
|
||||
.setPid(
|
||||
value
|
||||
.stream()
|
||||
.map(
|
||||
p -> ResultPid
|
||||
.newInstance(p.getQualifier().getClassid(), p.getValue()))
|
||||
.collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
private static void mapTitle(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional<List<StructuredProperty>> otitle = Optional.ofNullable(input.getTitle());
|
||||
if (otitle.isPresent()) {
|
||||
List<StructuredProperty> iTitle = otitle
|
||||
.get()
|
||||
.stream()
|
||||
.filter(t -> t.getQualifier().getClassid().equalsIgnoreCase("main title"))
|
||||
.collect(Collectors.toList());
|
||||
if (!iTitle.isEmpty()) {
|
||||
out.setMaintitle(iTitle.get(0).getValue());
|
||||
}
|
||||
|
||||
iTitle = otitle
|
||||
.get()
|
||||
.stream()
|
||||
.filter(t -> t.getQualifier().getClassid().equalsIgnoreCase("subtitle"))
|
||||
.collect(Collectors.toList());
|
||||
if (!iTitle.isEmpty()) {
|
||||
out.setSubtitle(iTitle.get(0).getValue());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapLastUpdateTimestamp(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional<Long> oLong = Optional.ofNullable(input.getLastupdatetimestamp());
|
||||
if (oLong.isPresent()) {
|
||||
out.setLastupdatetimestamp(oLong.get());
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapLanguage(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional<Qualifier> oL = Optional.ofNullable(input.getLanguage());
|
||||
if (oL.isPresent()) {
|
||||
Qualifier language = oL.get();
|
||||
out.setLanguage(Language.newInstance(language.getClassid(), language.getClassname()));
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapInstance(String dumpType, Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional<List<eu.dnetlib.dhp.schema.oaf.Instance>> oInst = Optional
|
||||
.ofNullable(input.getInstance());
|
||||
|
||||
if (oInst.isPresent()) {
|
||||
if (DUMPTYPE.COMPLETE.getType().equals(dumpType)) {
|
||||
((GraphResult) out)
|
||||
.setInstance(
|
||||
oInst.get().stream().map(ResultMapper::getGraphInstance).collect(Collectors.toList()));
|
||||
} else {
|
||||
((CommunityResult) out)
|
||||
.setInstance(
|
||||
oInst
|
||||
.get()
|
||||
.stream()
|
||||
.map(ResultMapper::getCommunityInstance)
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapOriginalId(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
out.setOriginalId(new ArrayList<>());
|
||||
Optional
|
||||
.ofNullable(input.getOriginalId())
|
||||
.ifPresent(
|
||||
v -> out
|
||||
.setOriginalId(
|
||||
input
|
||||
.getOriginalId()
|
||||
.stream()
|
||||
.filter(s -> !s.startsWith("50|"))
|
||||
.collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
private static void mapFormat(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
final List<String> formatList = new ArrayList<>();
|
||||
Optional
|
||||
.ofNullable(input.getFormat())
|
||||
.ifPresent(value -> value.stream().forEach(f -> formatList.add(f.getValue())));
|
||||
out.setFormat(formatList);
|
||||
}
|
||||
|
||||
private static void mapEmbargo(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional<Field<String>> oStr = Optional.ofNullable(input.getEmbargoenddate());
|
||||
if (oStr.isPresent()) {
|
||||
out.setEmbargoenddate(oStr.get().getValue());
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapDescription(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
final List<String> descriptionList = new ArrayList<>();
|
||||
Optional
|
||||
.ofNullable(input.getDescription())
|
||||
.ifPresent(value -> value.forEach(d -> descriptionList.add(d.getValue())));
|
||||
out.setDescription(descriptionList);
|
||||
}
|
||||
|
||||
private static void mapCoverage(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
final List<String> coverageList = new ArrayList<>();
|
||||
Optional
|
||||
.ofNullable(input.getCoverage())
|
||||
.ifPresent(value -> value.stream().forEach(c -> coverageList.add(c.getValue())));
|
||||
out.setCoverage(coverageList);
|
||||
}
|
||||
|
||||
private static void mapCountry(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional
|
||||
.ofNullable(input.getCountry())
|
||||
.ifPresent(
|
||||
value -> out
|
||||
.setCountry(
|
||||
value
|
||||
.stream()
|
||||
.map(
|
||||
c -> {
|
||||
if (c.getClassid().equals((ModelConstants.UNKNOWN))) {
|
||||
return null;
|
||||
}
|
||||
ResultCountry country = new ResultCountry();
|
||||
country.setCode(c.getClassid());
|
||||
country.setLabel(c.getClassname());
|
||||
Optional
|
||||
.ofNullable(c.getDataInfo())
|
||||
.ifPresent(
|
||||
provenance -> country
|
||||
.setProvenance(
|
||||
Provenance
|
||||
.newInstance(
|
||||
provenance
|
||||
.getProvenanceaction()
|
||||
.getClassname(),
|
||||
c.getDataInfo().getTrust())));
|
||||
return country;
|
||||
})
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
private static void mapContributor(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
final List<String> contributorList = new ArrayList<>();
|
||||
Optional
|
||||
.ofNullable(input.getContributor())
|
||||
.ifPresent(value -> value.stream().forEach(c -> contributorList.add(c.getValue())));
|
||||
out.setContributor(contributorList);
|
||||
}
|
||||
|
||||
private static void mapAccessRight(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
// I do not map Access Right UNKNOWN or OTHER
|
||||
|
||||
Optional<Qualifier> oar = Optional.ofNullable(input.getBestaccessright());
|
||||
if (oar.isPresent() && Constants.ACCESS_RIGHTS_COAR_MAP.containsKey(oar.get().getClassid())) {
|
||||
String code = Constants.ACCESS_RIGHTS_COAR_MAP.get(oar.get().getClassid());
|
||||
out
|
||||
.setBestaccessright(
|
||||
|
||||
BestAccessRight
|
||||
.newInstance(
|
||||
code,
|
||||
Constants.COAR_CODE_LABEL_MAP.get(code),
|
||||
Constants.COAR_ACCESS_RIGHT_SCHEMA));
|
||||
}
|
||||
}
|
||||
|
||||
private static void mapAuthor(Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||
Optional
|
||||
.ofNullable(input.getAuthor())
|
||||
.ifPresent(
|
||||
ats -> out.setAuthor(ats.stream().map(ResultMapper::getAuthor).collect(Collectors.toList())));
|
||||
}
|
||||
|
||||
private static void addTypeSpecificInformation(Result out, eu.dnetlib.dhp.schema.oaf.Result input,
|
||||
eu.dnetlib.dhp.schema.oaf.Qualifier ort) throws NoAvailableEntityTypeException {
|
||||
switch (ort.getClassid()) {
|
||||
case "publication":
|
||||
Optional<Journal> journal = Optional
|
||||
.ofNullable(((Publication) input).getJournal());
|
||||
if (journal.isPresent()) {
|
||||
Journal j = journal.get();
|
||||
Container c = new Container();
|
||||
c.setConferencedate(j.getConferencedate());
|
||||
c.setConferenceplace(j.getConferenceplace());
|
||||
c.setEdition(j.getEdition());
|
||||
c.setEp(j.getEp());
|
||||
c.setIss(j.getIss());
|
||||
c.setIssnLinking(j.getIssnLinking());
|
||||
c.setIssnOnline(j.getIssnOnline());
|
||||
c.setIssnPrinted(j.getIssnPrinted());
|
||||
c.setName(j.getName());
|
||||
c.setSp(j.getSp());
|
||||
c.setVol(j.getVol());
|
||||
out.setContainer(c);
|
||||
out.setType(ModelConstants.PUBLICATION_DEFAULT_RESULTTYPE.getClassname());
|
||||
}
|
||||
break;
|
||||
case "dataset":
|
||||
Dataset id = (Dataset) input;
|
||||
Optional.ofNullable(id.getSize()).ifPresent(v -> out.setSize(v.getValue()));
|
||||
Optional.ofNullable(id.getVersion()).ifPresent(v -> out.setVersion(v.getValue()));
|
||||
|
||||
out
|
||||
.setGeolocation(
|
||||
Optional
|
||||
.ofNullable(id.getGeolocation())
|
||||
.map(
|
||||
igl -> igl
|
||||
.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(gli -> {
|
||||
GeoLocation gl = new GeoLocation();
|
||||
gl.setBox(gli.getBox());
|
||||
gl.setPlace(gli.getPlace());
|
||||
gl.setPoint(gli.getPoint());
|
||||
return gl;
|
||||
})
|
||||
.collect(Collectors.toList()))
|
||||
.orElse(null));
|
||||
|
||||
out.setType(ModelConstants.DATASET_DEFAULT_RESULTTYPE.getClassname());
|
||||
break;
|
||||
case "software":
|
||||
|
||||
Software is = (Software) input;
|
||||
Optional
|
||||
.ofNullable(is.getCodeRepositoryUrl())
|
||||
.ifPresent(value -> out.setCodeRepositoryUrl(value.getValue()));
|
||||
Optional
|
||||
.ofNullable(is.getDocumentationUrl())
|
||||
.ifPresent(
|
||||
value -> out
|
||||
.setDocumentationUrl(
|
||||
value
|
||||
.stream()
|
||||
.map(Field::getValue)
|
||||
.collect(Collectors.toList())));
|
||||
|
||||
Optional
|
||||
.ofNullable(is.getProgrammingLanguage())
|
||||
.ifPresent(value -> out.setProgrammingLanguage(value.getClassid()));
|
||||
|
||||
out.setType(ModelConstants.SOFTWARE_DEFAULT_RESULTTYPE.getClassname());
|
||||
break;
|
||||
case "other":
|
||||
|
||||
OtherResearchProduct ir = (OtherResearchProduct) input;
|
||||
out
|
||||
.setContactgroup(
|
||||
Optional
|
||||
.ofNullable(ir.getContactgroup())
|
||||
.map(value -> value.stream().map(Field::getValue).collect(Collectors.toList()))
|
||||
.orElse(null));
|
||||
|
||||
out
|
||||
.setContactperson(
|
||||
Optional
|
||||
.ofNullable(ir.getContactperson())
|
||||
.map(value -> value.stream().map(Field::getValue).collect(Collectors.toList()))
|
||||
.orElse(null));
|
||||
out
|
||||
.setTool(
|
||||
Optional
|
||||
.ofNullable(ir.getTool())
|
||||
.map(value -> value.stream().map(Field::getValue).collect(Collectors.toList()))
|
||||
.orElse(null));
|
||||
|
||||
out.setType(ModelConstants.ORP_DEFAULT_RESULTTYPE.getClassname());
|
||||
|
||||
break;
|
||||
default:
|
||||
throw new NoAvailableEntityTypeException();
|
||||
}
|
||||
}
|
||||
|
||||
private static Instance getGraphInstance(eu.dnetlib.dhp.schema.oaf.Instance i) {
|
||||
Instance instance = new Instance();
|
||||
|
||||
setCommonValue(i, instance);
|
||||
|
||||
return instance;
|
||||
|
||||
}
|
||||
|
||||
private static CommunityInstance getCommunityInstance(eu.dnetlib.dhp.schema.oaf.Instance i) {
|
||||
CommunityInstance instance = new CommunityInstance();
|
||||
|
||||
setCommonValue(i, instance);
|
||||
|
||||
if (Optional.ofNullable(i.getCollectedfrom()).isPresent() &&
|
||||
Optional.ofNullable(i.getCollectedfrom().getKey()).isPresent() &&
|
||||
StringUtils.isNotBlank(i.getCollectedfrom().getKey()))
|
||||
instance
|
||||
.setCollectedfrom(
|
||||
CfHbKeyValue
|
||||
.newInstance(
|
||||
getEntityId(i.getCollectedfrom().getKey(), ENTITY_ID_SEPARATOR),
|
||||
i.getCollectedfrom().getValue()));
|
||||
|
||||
if (Optional.ofNullable(i.getHostedby()).isPresent() &&
|
||||
Optional.ofNullable(i.getHostedby().getKey()).isPresent() &&
|
||||
StringUtils.isNotBlank(i.getHostedby().getKey()))
|
||||
instance
|
||||
.setHostedby(
|
||||
CfHbKeyValue
|
||||
.newInstance(
|
||||
getEntityId(i.getHostedby().getKey(), ENTITY_ID_SEPARATOR), i.getHostedby().getValue()));
|
||||
|
||||
return instance;
|
||||
|
||||
}
|
||||
|
||||
private static <I extends Instance> void setCommonValue(eu.dnetlib.dhp.schema.oaf.Instance i, I instance) {
|
||||
Optional<eu.dnetlib.dhp.schema.oaf.AccessRight> opAr = Optional.ofNullable(i.getAccessright());
|
||||
|
||||
if (opAr.isPresent() && Constants.ACCESS_RIGHTS_COAR_MAP.containsKey(opAr.get().getClassid())) {
|
||||
String code = Constants.ACCESS_RIGHTS_COAR_MAP.get(opAr.get().getClassid());
|
||||
|
||||
instance
|
||||
.setAccessright(
|
||||
AccessRight
|
||||
.newInstance(
|
||||
code,
|
||||
Constants.COAR_CODE_LABEL_MAP.get(code),
|
||||
Constants.COAR_ACCESS_RIGHT_SCHEMA));
|
||||
|
||||
if (opAr.get().getOpenAccessRoute() != null) {
|
||||
switch (opAr.get().getOpenAccessRoute()) {
|
||||
case hybrid:
|
||||
instance.getAccessright().setOpenAccessRoute(OpenAccessRoute.hybrid);
|
||||
break;
|
||||
case gold:
|
||||
instance.getAccessright().setOpenAccessRoute(OpenAccessRoute.gold);
|
||||
break;
|
||||
case green:
|
||||
instance.getAccessright().setOpenAccessRoute(OpenAccessRoute.green);
|
||||
break;
|
||||
case bronze:
|
||||
instance.getAccessright().setOpenAccessRoute(OpenAccessRoute.bronze);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Optional
|
||||
.ofNullable(i.getPid())
|
||||
.ifPresent(
|
||||
pid -> instance
|
||||
.setPid(
|
||||
pid
|
||||
.stream()
|
||||
.map(p -> ResultPid.newInstance(p.getQualifier().getClassid(), p.getValue()))
|
||||
.collect(Collectors.toList())));
|
||||
|
||||
Optional
|
||||
.ofNullable(i.getAlternateIdentifier())
|
||||
.ifPresent(
|
||||
ai -> instance
|
||||
.setAlternateIdentifier(
|
||||
ai
|
||||
.stream()
|
||||
.map(p -> AlternateIdentifier.newInstance(p.getQualifier().getClassid(), p.getValue()))
|
||||
.collect(Collectors.toList())));
|
||||
|
||||
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()));
|
||||
Optional
|
||||
.ofNullable(i.getInstancetype())
|
||||
.ifPresent(value -> instance.setType(value.getClassname()));
|
||||
Optional.ofNullable(i.getUrl()).ifPresent(value -> instance.setUrl(value));
|
||||
Optional<Field<String>> oPca = Optional.ofNullable(i.getProcessingchargeamount());
|
||||
Optional<Field<String>> oPcc = Optional.ofNullable(i.getProcessingchargecurrency());
|
||||
if (oPca.isPresent() && oPcc.isPresent()) {
|
||||
Field<String> pca = oPca.get();
|
||||
Field<String> pcc = oPcc.get();
|
||||
if (!pca.getValue().trim().equals("") && !pcc.getValue().trim().equals("")) {
|
||||
APC apc = new APC();
|
||||
apc.setCurrency(oPcc.get().getValue());
|
||||
apc.setAmount(oPca.get().getValue());
|
||||
instance.setArticleprocessingcharge(apc);
|
||||
}
|
||||
|
||||
}
|
||||
Optional.ofNullable(i.getUrl()).ifPresent(instance::setUrl);
|
||||
|
||||
}
|
||||
|
||||
private static List<Provenance> getUniqueProvenance(List<Provenance> provenance)
|
||||
throws NoAvailableEntityTypeException {
|
||||
Provenance iProv = new Provenance();
|
||||
|
||||
Provenance hProv = new Provenance();
|
||||
Provenance lProv = new Provenance();
|
||||
|
||||
for (Provenance p : provenance) {
|
||||
switch (p.getProvenance()) {
|
||||
case Constants.HARVESTED:
|
||||
hProv = getHighestTrust(hProv, p);
|
||||
break;
|
||||
case Constants.INFERRED:
|
||||
iProv = getHighestTrust(iProv, p);
|
||||
// To be removed as soon as the new beta run has been done
|
||||
// this fixex issue of not set trust during bulktagging
|
||||
if (StringUtils.isEmpty(iProv.getTrust())) {
|
||||
iProv.setTrust(Constants.DEFAULT_TRUST);
|
||||
}
|
||||
break;
|
||||
case Constants.USER_CLAIM:
|
||||
lProv = getHighestTrust(lProv, p);
|
||||
break;
|
||||
default:
|
||||
throw new NoAvailableEntityTypeException();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return Arrays
|
||||
.asList(iProv, hProv, lProv)
|
||||
.stream()
|
||||
.filter(p -> !StringUtils.isEmpty(p.getProvenance()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
private static Provenance getHighestTrust(Provenance hProv, Provenance p) {
|
||||
if (StringUtils.isNoneEmpty(hProv.getTrust(), p.getTrust()))
|
||||
return hProv.getTrust().compareTo(p.getTrust()) > 0 ? hProv : p;
|
||||
|
||||
return (StringUtils.isEmpty(p.getTrust()) && !StringUtils.isEmpty(hProv.getTrust())) ? hProv : p;
|
||||
|
||||
}
|
||||
|
||||
private static Subject getSubject(StructuredProperty s) {
|
||||
Subject subject = new Subject();
|
||||
subject.setSubject(SubjectSchemeValue.newInstance(s.getQualifier().getClassid(), s.getValue()));
|
||||
Optional<DataInfo> di = Optional.ofNullable(s.getDataInfo());
|
||||
if (di.isPresent()) {
|
||||
Provenance p = new Provenance();
|
||||
p.setProvenance(di.get().getProvenanceaction().getClassname());
|
||||
if (!s.getQualifier().getClassid().equalsIgnoreCase("fos") &&
|
||||
!s.getQualifier().getClassid().equalsIgnoreCase("sdg"))
|
||||
p.setTrust(di.get().getTrust());
|
||||
subject.setProvenance(p);
|
||||
}
|
||||
|
||||
return subject;
|
||||
}
|
||||
|
||||
private static Author getAuthor(eu.dnetlib.dhp.schema.oaf.Author oa) {
|
||||
Author a = new Author();
|
||||
a.setFullname(oa.getFullname());
|
||||
a.setName(oa.getName());
|
||||
a.setSurname(oa.getSurname());
|
||||
a.setRank(oa.getRank());
|
||||
|
||||
Optional<List<StructuredProperty>> oPids = Optional
|
||||
.ofNullable(oa.getPid());
|
||||
if (oPids.isPresent()) {
|
||||
AuthorPid pid = getOrcid(oPids.get());
|
||||
if (pid != null) {
|
||||
a.setPid(pid);
|
||||
}
|
||||
}
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
private static AuthorPid getAuthorPid(StructuredProperty pid) {
|
||||
Optional<DataInfo> di = Optional.ofNullable(pid.getDataInfo());
|
||||
if (di.isPresent()) {
|
||||
return AuthorPid
|
||||
.newInstance(
|
||||
AuthorPidSchemeValue
|
||||
.newInstance(
|
||||
pid.getQualifier().getClassid(),
|
||||
pid.getValue()),
|
||||
Provenance
|
||||
.newInstance(
|
||||
di.get().getProvenanceaction().getClassname(),
|
||||
di.get().getTrust()));
|
||||
} else {
|
||||
return AuthorPid
|
||||
.newInstance(
|
||||
AuthorPidSchemeValue
|
||||
.newInstance(
|
||||
pid.getQualifier().getClassid(),
|
||||
pid.getValue())
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private static AuthorPid getOrcid(List<StructuredProperty> p) {
|
||||
List<StructuredProperty> pidList = p.stream().map(pid -> {
|
||||
if (pid.getQualifier().getClassid().equals(ModelConstants.ORCID) ||
|
||||
(pid.getQualifier().getClassid().equals(ModelConstants.ORCID_PENDING))) {
|
||||
return pid;
|
||||
}
|
||||
return null;
|
||||
}).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
|
||||
if (pidList.size() == 1) {
|
||||
return getAuthorPid(pidList.get(0));
|
||||
}
|
||||
|
||||
List<StructuredProperty> orcid = pidList
|
||||
.stream()
|
||||
.filter(
|
||||
ap -> ap
|
||||
.getQualifier()
|
||||
.getClassid()
|
||||
.equals(ModelConstants.ORCID))
|
||||
.collect(Collectors.toList());
|
||||
if (orcid.size() == 1) {
|
||||
return getAuthorPid(orcid.get(0));
|
||||
}
|
||||
orcid = pidList
|
||||
.stream()
|
||||
.filter(
|
||||
ap -> ap
|
||||
.getQualifier()
|
||||
.getClassid()
|
||||
.equals(ModelConstants.ORCID_PENDING))
|
||||
.collect(Collectors.toList());
|
||||
if (orcid.size() == 1) {
|
||||
return getAuthorPid(orcid.get(0));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,91 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.graph.dump;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Serializable;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
import org.apache.hadoop.fs.FSDataOutputStream;
|
||||
import org.apache.hadoop.fs.FileSystem;
|
||||
import org.apache.hadoop.fs.Path;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
||||
|
||||
/**
|
||||
* This class connects with the community APIs for production. It saves the information about the
|
||||
* context that will guide the dump of the results. The information saved is a HashMap. The key is the id of a community
|
||||
* - research infrastructure/initiative , the value is the label of the research community - research
|
||||
* infrastructure/initiative.
|
||||
*/
|
||||
|
||||
public class SaveCommunityMap implements Serializable {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(SaveCommunityMap.class);
|
||||
private final transient UtilCommunityAPI queryInformationSystem;
|
||||
|
||||
private final transient BufferedWriter writer;
|
||||
|
||||
public SaveCommunityMap(String hdfsPath, String hdfsNameNode) throws IOException {
|
||||
final Configuration conf = new Configuration();
|
||||
conf.set("fs.defaultFS", hdfsNameNode);
|
||||
FileSystem fileSystem = FileSystem.get(conf);
|
||||
Path hdfsWritePath = new Path(hdfsPath);
|
||||
|
||||
if (fileSystem.exists(hdfsWritePath)) {
|
||||
fileSystem.delete(hdfsWritePath, true);
|
||||
}
|
||||
|
||||
queryInformationSystem = new UtilCommunityAPI();
|
||||
|
||||
FSDataOutputStream fos = fileSystem.create(hdfsWritePath);
|
||||
writer = new BufferedWriter(new OutputStreamWriter(fos, StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
String jsonConfiguration = IOUtils
|
||||
.toString(
|
||||
SaveCommunityMap.class
|
||||
.getResourceAsStream(
|
||||
"/eu/dnetlib/dhp/oa/graph/dump/input_cm_parameters.json"));
|
||||
|
||||
final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration);
|
||||
parser.parseArgument(args);
|
||||
|
||||
final String nameNode = parser.get("nameNode");
|
||||
log.info("nameNode: {}", nameNode);
|
||||
|
||||
final String outputPath = parser.get("outputPath");
|
||||
log.info("outputPath: {}", outputPath);
|
||||
|
||||
final Boolean singleCommunity = Optional
|
||||
.ofNullable(parser.get("singleDeposition"))
|
||||
.map(Boolean::valueOf)
|
||||
.orElse(false);
|
||||
|
||||
final String community_id = Optional.ofNullable(parser.get("communityId")).orElse(null);
|
||||
|
||||
final SaveCommunityMap scm = new SaveCommunityMap(outputPath, nameNode);
|
||||
|
||||
scm.saveCommunityMap(singleCommunity, community_id);
|
||||
|
||||
}
|
||||
|
||||
private void saveCommunityMap(boolean singleCommunity, String communityId)
|
||||
throws IOException {
|
||||
final String communityMapString = Utils.OBJECT_MAPPER
|
||||
.writeValueAsString(queryInformationSystem.getCommunityMap(singleCommunity, communityId));
|
||||
log.info("communityMap {} ", communityMapString);
|
||||
writer
|
||||
.write(
|
||||
communityMapString);
|
||||
writer.close();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,203 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.graph.dump;
|
||||
|
||||
import static eu.dnetlib.dhp.utils.DHPUtils.MAPPER;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import eu.dnetlib.dhp.communityapi.model.*;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.complete.ContextInfo;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.csv.Constants;
|
||||
import eu.dnetlib.dhp.utils.DHPUtils;
|
||||
|
||||
public class UtilCommunityAPI {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(UtilCommunityAPI.class);
|
||||
|
||||
public CommunityMap getCommunityMap(boolean singleCommunity, String communityId)
|
||||
throws IOException {
|
||||
if (singleCommunity)
|
||||
return getMap(Arrays.asList(getCommunity(communityId)));
|
||||
return getMap(getValidCommunities());
|
||||
|
||||
}
|
||||
|
||||
private CommunityMap getMap(List<CommunityModel> communities) {
|
||||
final CommunityMap map = new CommunityMap();
|
||||
communities.forEach(c -> map.put(c.getId(), c.getName()));
|
||||
return map;
|
||||
}
|
||||
|
||||
public List<String> getCommunityCsv(List<String> comms) {
|
||||
return comms.stream().map(c -> {
|
||||
try {
|
||||
CommunityModel community = getCommunity(c);
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(DHPUtils.md5(community.getId()));
|
||||
builder.append(Constants.SEP);
|
||||
builder.append(community.getName());
|
||||
builder.append(Constants.SEP);
|
||||
builder.append(community.getId());
|
||||
builder.append(Constants.SEP);
|
||||
builder
|
||||
.append(
|
||||
community.getDescription());
|
||||
return builder.toString();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
private List<CommunityModel> getValidCommunities() throws IOException {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
return mapper
|
||||
.readValue(eu.dnetlib.dhp.communityapi.QueryCommunityAPI.communities(), CommunitySummary.class)
|
||||
.stream()
|
||||
.filter(
|
||||
community -> (community.getStatus().equals("all") || community.getStatus().equalsIgnoreCase("public"))
|
||||
&&
|
||||
(community.getType().equals("ri") || community.getType().equals("community")))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
private CommunityModel getCommunity(String id) throws IOException {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
return mapper
|
||||
.readValue(eu.dnetlib.dhp.communityapi.QueryCommunityAPI.community(id), CommunityModel.class);
|
||||
|
||||
}
|
||||
|
||||
public List<ContextInfo> getContextInformation() throws IOException {
|
||||
|
||||
return getValidCommunities()
|
||||
.stream()
|
||||
.map(c -> getContext(c))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
public ContextInfo getContext(CommunityModel c) {
|
||||
|
||||
ContextInfo cinfo = new ContextInfo();
|
||||
cinfo.setId(c.getId());
|
||||
cinfo.setDescription(c.getDescription());
|
||||
CommunityModel cm = null;
|
||||
try {
|
||||
cm = getCommunity(c.getId());
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
cinfo.setSubject(new ArrayList<>());
|
||||
cinfo.getSubject().addAll(cm.getSubjects());
|
||||
cinfo.setZenodocommunity(c.getZenodoCommunity());
|
||||
cinfo.setType(c.getType());
|
||||
return cinfo;
|
||||
}
|
||||
|
||||
public List<ContextInfo> getContextRelation() throws IOException {
|
||||
return getValidCommunities().stream().map(c -> {
|
||||
ContextInfo cinfo = new ContextInfo();
|
||||
cinfo.setId(c.getId());
|
||||
cinfo.setDatasourceList(getDatasourceList(c.getId()));
|
||||
cinfo.setProjectList(getProjectList(c.getId()));
|
||||
|
||||
return cinfo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private List<String> getDatasourceList(String id) {
|
||||
List<String> datasourceList = new ArrayList<>();
|
||||
try {
|
||||
|
||||
new ObjectMapper()
|
||||
.readValue(
|
||||
eu.dnetlib.dhp.communityapi.QueryCommunityAPI.communityDatasource(id),
|
||||
DatasourceList.class)
|
||||
.stream()
|
||||
.forEach(ds -> {
|
||||
if (Optional.ofNullable(ds.getOpenaireId()).isPresent()) {
|
||||
|
||||
datasourceList.add(ds.getOpenaireId());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return datasourceList;
|
||||
}
|
||||
|
||||
private List<String> getProjectList(String id) {
|
||||
int page = -1;
|
||||
int size = 100;
|
||||
ContentModel cm = null;
|
||||
;
|
||||
ArrayList<String> projectList = new ArrayList<>();
|
||||
do {
|
||||
page++;
|
||||
try {
|
||||
cm = new ObjectMapper()
|
||||
.readValue(
|
||||
eu.dnetlib.dhp.communityapi.QueryCommunityAPI
|
||||
.communityProjects(
|
||||
id, String.valueOf(page), String.valueOf(size)),
|
||||
ContentModel.class);
|
||||
if (cm.getContent().size() > 0) {
|
||||
cm.getContent().forEach(p -> {
|
||||
if (Optional.ofNullable(p.getOpenaireId()).isPresent())
|
||||
projectList.add(p.getOpenaireId());
|
||||
|
||||
});
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} while (!cm.getLast());
|
||||
|
||||
return projectList;
|
||||
}
|
||||
|
||||
/**
|
||||
* it returns for each organization the list of associated communities
|
||||
*/
|
||||
public CommunityEntityMap getCommunityOrganization() throws IOException {
|
||||
CommunityEntityMap organizationMap = new CommunityEntityMap();
|
||||
getValidCommunities()
|
||||
.forEach(community -> {
|
||||
String id = community.getId();
|
||||
try {
|
||||
List<String> associatedOrgs = MAPPER
|
||||
.readValue(
|
||||
eu.dnetlib.dhp.communityapi.QueryCommunityAPI.communityPropagationOrganization(id),
|
||||
OrganizationList.class);
|
||||
associatedOrgs.forEach(o -> {
|
||||
if (!organizationMap
|
||||
.keySet()
|
||||
.contains(o))
|
||||
organizationMap.put(o, new ArrayList<>());
|
||||
organizationMap.get(o).add(community.getId());
|
||||
});
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
|
||||
return organizationMap;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,200 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.graph.dump;
|
||||
|
||||
import static eu.dnetlib.dhp.oa.graph.dump.Constants.*;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.hadoop.fs.FileSystem;
|
||||
import org.apache.hadoop.fs.Path;
|
||||
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.jetbrains.annotations.NotNull;
|
||||
|
||||
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.complete.Constants;
|
||||
import eu.dnetlib.dhp.oa.model.Indicator;
|
||||
import eu.dnetlib.dhp.oa.model.Score;
|
||||
import eu.dnetlib.dhp.oa.model.UsageCounts;
|
||||
import eu.dnetlib.dhp.oa.model.graph.GraphResult;
|
||||
import eu.dnetlib.dhp.oa.model.graph.Relation;
|
||||
import eu.dnetlib.dhp.oa.model.graph.ResearchCommunity;
|
||||
import eu.dnetlib.dhp.schema.oaf.KeyValue;
|
||||
import eu.dnetlib.dhp.schema.oaf.Measure;
|
||||
import eu.dnetlib.dhp.utils.DHPUtils;
|
||||
import scala.Tuple2;
|
||||
|
||||
public class Utils {
|
||||
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
public static final String ENTITY_ID_SEPARATOR = "|";
|
||||
|
||||
private Utils() {
|
||||
}
|
||||
|
||||
public static void removeOutputDir(SparkSession spark, String path) {
|
||||
HdfsSupport.remove(path, spark.sparkContext().hadoopConfiguration());
|
||||
}
|
||||
|
||||
public static <R> Dataset<R> readPath(
|
||||
SparkSession spark, String inputPath, Class<R> clazz) {
|
||||
return spark
|
||||
.read()
|
||||
.textFile(inputPath)
|
||||
.map((MapFunction<String, R>) value -> OBJECT_MAPPER.readValue(value, clazz), Encoders.bean(clazz));
|
||||
}
|
||||
|
||||
public static String getContextId(String id) {
|
||||
|
||||
return String
|
||||
.format(
|
||||
"%s::%s", Constants.CONTEXT_NS_PREFIX,
|
||||
DHPUtils.md5(id));
|
||||
}
|
||||
|
||||
public static CommunityMap getCommunityMap(SparkSession spark, String communityMapPath) {
|
||||
|
||||
return new Gson().fromJson(spark.read().textFile(communityMapPath).collectAsList().get(0), CommunityMap.class);
|
||||
|
||||
}
|
||||
|
||||
public static CommunityMap readCommunityMap(FileSystem fileSystem, String communityMapPath) throws IOException {
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(fileSystem.open(new Path(communityMapPath))));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
try {
|
||||
String line;
|
||||
while ((line = br.readLine()) != null) {
|
||||
sb.append(line);
|
||||
}
|
||||
} finally {
|
||||
br.close();
|
||||
|
||||
}
|
||||
|
||||
return new Gson().fromJson(sb.toString(), CommunityMap.class);
|
||||
}
|
||||
|
||||
public static String getEntityId(String id, String separator) {
|
||||
return id.substring(id.indexOf(separator) + 1);
|
||||
}
|
||||
|
||||
public static Dataset<String> getEntitiesId(SparkSession spark, String inputPath) {
|
||||
Dataset<String> dumpedIds = Utils
|
||||
.readPath(spark, inputPath + "/publication", GraphResult.class)
|
||||
.map((MapFunction<GraphResult, String>) r -> r.getId(), Encoders.STRING())
|
||||
.union(
|
||||
Utils
|
||||
.readPath(spark, inputPath + "/dataset", GraphResult.class)
|
||||
.map((MapFunction<GraphResult, String>) r -> r.getId(), Encoders.STRING()))
|
||||
.union(
|
||||
Utils
|
||||
.readPath(spark, inputPath + "/software", GraphResult.class)
|
||||
.map((MapFunction<GraphResult, String>) r -> r.getId(), Encoders.STRING()))
|
||||
.union(
|
||||
Utils
|
||||
.readPath(spark, inputPath + "/otherresearchproduct", GraphResult.class)
|
||||
.map((MapFunction<GraphResult, String>) r -> r.getId(), Encoders.STRING()))
|
||||
.union(
|
||||
Utils
|
||||
.readPath(spark, inputPath + "/organization", eu.dnetlib.dhp.oa.model.graph.Organization.class)
|
||||
.map(
|
||||
(MapFunction<eu.dnetlib.dhp.oa.model.graph.Organization, String>) o -> o.getId(),
|
||||
Encoders.STRING()))
|
||||
.union(
|
||||
Utils
|
||||
.readPath(spark, inputPath + "/project", eu.dnetlib.dhp.oa.model.graph.Project.class)
|
||||
.map(
|
||||
(MapFunction<eu.dnetlib.dhp.oa.model.graph.Project, String>) o -> o.getId(), Encoders.STRING()))
|
||||
.union(
|
||||
Utils
|
||||
.readPath(spark, inputPath + "/datasource", eu.dnetlib.dhp.oa.model.graph.Datasource.class)
|
||||
.map(
|
||||
(MapFunction<eu.dnetlib.dhp.oa.model.graph.Datasource, String>) o -> o.getId(),
|
||||
Encoders.STRING()))
|
||||
.union(
|
||||
Utils
|
||||
.readPath(spark, inputPath + "/communities_infrastructures", ResearchCommunity.class)
|
||||
.map((MapFunction<ResearchCommunity, String>) c -> c.getId(), Encoders.STRING()));
|
||||
return dumpedIds;
|
||||
}
|
||||
|
||||
public static Dataset<Relation> getValidRelations(Dataset<Relation> relations,
|
||||
Dataset<String> entitiesIds) {
|
||||
Dataset<Tuple2<String, Relation>> relationSource = relations
|
||||
.map(
|
||||
(MapFunction<Relation, Tuple2<String, Relation>>) r -> new Tuple2<>(r.getSource(), r),
|
||||
Encoders.tuple(Encoders.STRING(), Encoders.bean(Relation.class)));
|
||||
|
||||
Dataset<Tuple2<String, Relation>> relJoinSource = relationSource
|
||||
.joinWith(entitiesIds, relationSource.col("_1").equalTo(entitiesIds.col("value")))
|
||||
.map(
|
||||
(MapFunction<Tuple2<Tuple2<String, Relation>, String>, Tuple2<String, Relation>>) t2 -> new Tuple2<>(
|
||||
t2._1()._2().getTarget(), t2._1()._2()),
|
||||
Encoders.tuple(Encoders.STRING(), Encoders.bean(Relation.class)));
|
||||
|
||||
return relJoinSource
|
||||
.joinWith(entitiesIds, relJoinSource.col("_1").equalTo(entitiesIds.col("value")))
|
||||
.map(
|
||||
(MapFunction<Tuple2<Tuple2<String, Relation>, String>, Relation>) t2 -> t2._1()._2(),
|
||||
Encoders.bean(Relation.class));
|
||||
}
|
||||
|
||||
public static Indicator getIndicator(List<Measure> measures) {
|
||||
Indicator i = new Indicator();
|
||||
for (eu.dnetlib.dhp.schema.oaf.Measure m : measures) {
|
||||
switch (m.getId()) {
|
||||
case USAGE_COUNT_DOWNLOADS:
|
||||
getUsageCounts(i).setDownloads(m.getUnit().get(0).getValue());
|
||||
break;
|
||||
case USAGE_COUNT_VIEWS:
|
||||
getUsageCounts(i).setViews(m.getUnit().get(0).getValue());
|
||||
break;
|
||||
default:
|
||||
getImpactMeasure(i).add(getScore(m.getId(), m.getUnit()));
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static UsageCounts getUsageCounts(Indicator i) {
|
||||
if (i.getUsageCounts() == null) {
|
||||
i.setUsageCounts(new UsageCounts());
|
||||
}
|
||||
return i.getUsageCounts();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static List<Score> getImpactMeasure(Indicator i) {
|
||||
if (i.getBipIndicators() == null) {
|
||||
i.setBipIndicators(new ArrayList<>());
|
||||
}
|
||||
return i.getBipIndicators();
|
||||
}
|
||||
|
||||
private static Score getScore(String indicator, List<KeyValue> unit) {
|
||||
Score s = new Score();
|
||||
s.setIndicator(indicator);
|
||||
for (KeyValue u : unit) {
|
||||
if (u.getKey().equals("score")) {
|
||||
s.setScore(u.getValue());
|
||||
} else {
|
||||
s.setClazz(u.getValue());
|
||||
}
|
||||
}
|
||||
return s;
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.graph.dump.community;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class CommunityMap extends HashMap<String, String> implements Serializable {
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.graph.dump.community;
|
||||
|
||||
import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Optional;
|
||||
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;
|
||||
import org.apache.spark.sql.SaveMode;
|
||||
import org.apache.spark.sql.SparkSession;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import eu.dnetlib.dhp.oa.graph.dump.Utils;
|
||||
import eu.dnetlib.dhp.oa.model.community.CommunityResult;
|
||||
import eu.dnetlib.dhp.oa.model.community.Context;
|
||||
|
||||
/**
|
||||
* This class splits the dumped results according to the research community - research initiative/infrastructure they
|
||||
* are related to. The information about the community is found in the element "context.id" in the result. Since the
|
||||
* context that can be found in the result can be associated not only to communities, a community Map is provided. It
|
||||
* will guide the splitting process. Note: the repartition(1) just before writing the results related to a community.
|
||||
* This is a choice due to uploading constraints (just one file for each community) As soon as a better solution will be
|
||||
* in place remove the repartition
|
||||
*/
|
||||
public class CommunitySplit implements Serializable {
|
||||
|
||||
public void run(Boolean isSparkSessionManaged, String inputPath, String outputPath, String communityMapPath) {
|
||||
SparkConf conf = new SparkConf();
|
||||
runWithSparkSession(
|
||||
conf,
|
||||
isSparkSessionManaged,
|
||||
spark -> {
|
||||
Utils.removeOutputDir(spark, outputPath);
|
||||
CommunityMap communityMap = Utils.getCommunityMap(spark, communityMapPath);
|
||||
execSplit(spark, inputPath, outputPath, communityMap);
|
||||
});
|
||||
}
|
||||
|
||||
private static void execSplit(SparkSession spark, String inputPath, String outputPath,
|
||||
CommunityMap communities) {
|
||||
|
||||
Dataset<CommunityResult> result = Utils
|
||||
.readPath(spark, inputPath + "/publication", CommunityResult.class)
|
||||
.union(Utils.readPath(spark, inputPath + "/dataset", CommunityResult.class))
|
||||
.union(Utils.readPath(spark, inputPath + "/orp", CommunityResult.class))
|
||||
.union(Utils.readPath(spark, inputPath + "/software", CommunityResult.class));
|
||||
|
||||
communities
|
||||
.keySet()
|
||||
.stream()
|
||||
.parallel()
|
||||
.forEach(c -> {
|
||||
result
|
||||
.filter(
|
||||
(FilterFunction<CommunityResult>) r -> Optional.ofNullable(r.getContext()).isPresent() &&
|
||||
r.getContext().stream().anyMatch(con -> con.getCode().equals(c)))
|
||||
.map(
|
||||
(MapFunction<CommunityResult, String>) cr -> new ObjectMapper().writeValueAsString(cr),
|
||||
Encoders.STRING())
|
||||
.write()
|
||||
.option("compression", "gzip")
|
||||
.mode(SaveMode.Overwrite)
|
||||
.text(outputPath + "/" + c.replace(" ", "_"));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.graph.dump.community;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import eu.dnetlib.dhp.oa.model.community.Project;
|
||||
|
||||
public class ResultProject implements Serializable {
|
||||
private String resultId;
|
||||
private List<Project> projectsList;
|
||||
|
||||
public String getResultId() {
|
||||
return resultId;
|
||||
}
|
||||
|
||||
public void setResultId(String resultId) {
|
||||
this.resultId = resultId;
|
||||
}
|
||||
|
||||
public List<Project> getProjectsList() {
|
||||
return projectsList;
|
||||
}
|
||||
|
||||
public void setProjectsList(List<Project> projectsList) {
|
||||
this.projectsList = projectsList;
|
||||
}
|
||||
}
|
|
@ -1,155 +0,0 @@
|
|||
|
||||
package eu.dnetlib.dhp.oa.graph.dump.community;
|
||||
|
||||
import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
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.Encoders;
|
||||
import org.apache.spark.sql.SaveMode;
|
||||
import org.apache.spark.sql.SparkSession;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.Constants;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.ResultMapper;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.Utils;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.exceptions.CardinalityTooHighException;
|
||||
import eu.dnetlib.dhp.oa.graph.dump.exceptions.NoAvailableEntityTypeException;
|
||||
import eu.dnetlib.dhp.oa.model.community.CommunityResult;
|
||||
import eu.dnetlib.dhp.schema.common.ModelSupport;
|
||||
import eu.dnetlib.dhp.schema.oaf.Context;
|
||||
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
||||
import eu.dnetlib.dhp.schema.oaf.OafEntity;
|
||||
import eu.dnetlib.dhp.schema.oaf.Result;
|
||||
|
||||
/**
|
||||
* Spark action to trigger the dump of results associated to research community - reseach initiative/infrasctructure The
|
||||
* actual dump if performed via the class DumpProducts that is used also for the entire graph dump
|
||||
*/
|
||||
public class SparkDumpCommunityProducts implements Serializable {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(SparkDumpCommunityProducts.class);
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
String jsonConfiguration = IOUtils
|
||||
.toString(
|
||||
SparkDumpCommunityProducts.class
|
||||
.getResourceAsStream(
|
||||
"/eu/dnetlib/dhp/oa/graph/dump/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);
|
||||
|
||||
String communityMapPath = Optional
|
||||
.ofNullable(parser.get("communityMapPath"))
|
||||
.orElse(null);
|
||||
|
||||
String dumpType = Optional
|
||||
.ofNullable(parser.get("dumpType"))
|
||||
.orElse(null);
|
||||
|
||||
Class<? extends Result> inputClazz = (Class<? extends Result>) Class.forName(resultClassName);
|
||||
|
||||
SparkConf conf = new SparkConf();
|
||||
|
||||
runWithSparkSession(
|
||||
conf,
|
||||
isSparkSessionManaged,
|
||||
spark -> {
|
||||
Utils.removeOutputDir(spark, outputPath);
|
||||
resultDump(
|
||||
spark, inputPath, outputPath, communityMapPath, inputClazz, dumpType);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public static <I extends OafEntity> void resultDump(
|
||||
SparkSession spark,
|
||||
String inputPath,
|
||||
String outputPath,
|
||||
String communityMapPath,
|
||||
Class<I> inputClazz,
|
||||
String dumpType) {
|
||||
|
||||
CommunityMap communityMap = null;
|
||||
if (!StringUtils.isEmpty(communityMapPath))
|
||||
communityMap = Utils.getCommunityMap(spark, communityMapPath);
|
||||
|
||||
CommunityMap finalCommunityMap = communityMap;
|
||||
Utils
|
||||
.readPath(spark, inputPath, inputClazz)
|
||||
.map(
|
||||
(MapFunction<I, CommunityResult>) value -> execMap(value, finalCommunityMap, dumpType),
|
||||
Encoders.bean(CommunityResult.class))
|
||||
.filter((FilterFunction<CommunityResult>) value -> value != null)
|
||||
.map(
|
||||
(MapFunction<CommunityResult, String>) r -> new ObjectMapper().writeValueAsString(r), Encoders.STRING())
|
||||
.write()
|
||||
.mode(SaveMode.Overwrite)
|
||||
.option("compression", "gzip")
|
||||
.text(outputPath);
|
||||
|
||||
}
|
||||
|
||||
private static <I extends OafEntity, O extends eu.dnetlib.dhp.oa.model.Result> O execMap(I value,
|
||||
CommunityMap communityMap, String dumpType) throws NoAvailableEntityTypeException, CardinalityTooHighException {
|
||||
|
||||
Optional<DataInfo> odInfo = Optional.ofNullable(value.getDataInfo());
|
||||
if (Boolean.FALSE.equals(odInfo.isPresent())) {
|
||||
return null;
|
||||
}
|
||||
if (Boolean.TRUE.equals(odInfo.get().getDeletedbyinference())
|
||||
|| Boolean.TRUE.equals(odInfo.get().getInvisible())) {
|
||||
return null;
|
||||
}
|
||||
if (StringUtils.isEmpty(dumpType)) {
|
||||
Set<String> communities = communityMap.keySet();
|
||||
|
||||
Optional<List<Context>> inputContext = Optional
|
||||
.ofNullable(((eu.dnetlib.dhp.schema.oaf.Result) value).getContext());
|
||||
if (!inputContext.isPresent()) {
|
||||
return null;
|
||||
}
|
||||
List<String> toDumpFor = inputContext.get().stream().map(c -> {
|
||||
if (communities.contains(c.getId())) {
|
||||
return c.getId();
|
||||
}
|
||||
if (c.getId().contains("::") && communities.contains(c.getId().substring(0, c.getId().indexOf("::")))) {
|
||||
return c.getId().substring(0, c.getId().indexOf("::"));
|
||||
}
|
||||
return null;
|
||||
}).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
if (toDumpFor.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return (O) ResultMapper.map(value, communityMap, Constants.DUMPTYPE.COMMUNITY.getType());
|
||||
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue