diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/AccessRight.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/AccessRight.java index b69b423..195da21 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/AccessRight.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/AccessRight.java @@ -1,8 +1,6 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - /** * 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 @@ -10,7 +8,7 @@ import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; public class AccessRight extends BestAccessRight { - @JsonSchema(description = "The type of OpenAccess applied to the result ") + private OpenAccessRoute openAccessRoute ; @@ -30,4 +28,3 @@ public class AccessRight extends BestAccessRight { this.openAccessRoute = openAccessRoute; } } - diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Author.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Author.java index 4a4eebe..ef035a1 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Author.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Author.java @@ -1,8 +1,6 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; /** @@ -29,8 +27,7 @@ public class Author implements Serializable { private Integer rank; - @JsonSchema(description="The author's persistent identifiers") - private AuthorPid pid; + private Pid pid; public String getFullname() { return fullname; @@ -64,11 +61,11 @@ public class Author implements Serializable { this.rank = rank; } - public AuthorPid getPid() { + public Pid getPid() { return pid; } - public void setPid(AuthorPid pid) { + public void setPid(Pid pid) { this.pid = pid; } diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/AuthorPid.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/AuthorPid.java deleted file mode 100644 index 0fb42db..0000000 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/AuthorPid.java +++ /dev/null @@ -1,89 +0,0 @@ - -package eu.dnetlib.dhp.schema.dump.oaf; - -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - -import java.io.Serializable; - -/** - * 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; - } - - -} - -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; - } -} - - diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/BestAccessRight.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/BestAccessRight.java index 7d73e72..71a3c34 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/BestAccessRight.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/BestAccessRight.java @@ -1,26 +1,16 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - -import java.io.Serializable; - /** - * BestAccessRight. Used to represent the result best access rights. Values for this element are found against the + * BestAccessRight. Used to represent the result best access rights. It extends the eu.dnet.lib.dhp.schema.dump.oaf.Qualifier + * element with a parameter scheme of type String to store the scheme. 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 { +public class BestAccessRight extends Qualifier { - @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() { @@ -31,29 +21,11 @@ public class BestAccessRight implements Serializable { 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; + ar.setCode(code); + ar.setLabel(label); + ar.setScheme(scheme); return ar; } } - diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Container.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Container.java index 85fcff7..ad9ea48 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Container.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Container.java @@ -1,8 +1,6 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; /** @@ -24,7 +22,6 @@ import java.io.Serializable; */ public class Container implements Serializable { - @JsonSchema(description="Name of the journal or conference") private String name; private String issnPrinted; @@ -33,18 +30,14 @@ public class Container implements Serializable { private String issnLinking; - @JsonSchema(description="End page") private String ep; - @JsonSchema(description="Journal issue") private String iss; - @JsonSchema(description="Start page") private String sp; private String vol; - @JsonSchema(description="Edition of the journal or conference proceeding") private String edition; private String conferenceplace; diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ControlledField.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ControlledField.java index feb1610..cad7b8b 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ControlledField.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ControlledField.java @@ -1,19 +1,14 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; /** - * To represent the information described by a scheme and a value in that scheme (i.e. doi). It has two parameters: - + * To represent the information described by a scheme and a value in that scheme (i.e. pid). It has two parameters: - * scheme of type String to store the scheme - value of type String to store the value in that scheme */ public class ControlledField implements Serializable { - @JsonSchema(description="The scheme used to express the value (i.e. doi)") private String scheme; - - @JsonSchema(description="The value expressed in the scheme (i.e. 10.1000/182)") private String value; public String getScheme() { diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Country.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Country.java index 4378389..3ab4d90 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Country.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Country.java @@ -1,12 +1,8 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - -import java.io.Serializable; - /** - * Represents the country associated to the generic entity. It extends eu.dnetlib.dhp.schema.dump.oaf.Qualifier with a + * Represents the country associated to this result. 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 @@ -14,36 +10,28 @@ import java.io.Serializable; * 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 +public class Country extends Qualifier { - @JsonSchema(description="The label for that code (i.e. Italy)") - private String label; // the classname in the Qualifier + private Provenance provenance; - public String getCode() { - return code; + public Provenance getProvenance() { + return provenance; } - public void setCode(String code) { - this.code = code; + public void setProvenance(Provenance provenance) { + this.provenance = provenance; } - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } - - public static Country newInstance(String code, String label) { + public static Country newInstance(String code, String label, Provenance provenance) { Country c = new Country(); + c.setProvenance(provenance); c.setCode(code); c.setLabel(label); return c; } - + public static Country newInstance(String code, String label, String provenance, String trust) { + return newInstance(code, label, Provenance.newInstance(provenance, trust)); + } } diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java index 4820456..a13af02 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Instance.java @@ -1,10 +1,5 @@ - package eu.dnetlib.dhp.schema.dump.oaf; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; -import org.apache.commons.lang3.StringUtils; - import java.io.Serializable; import java.util.List; @@ -27,37 +22,24 @@ import java.util.List; */ public class Instance implements Serializable { - @JsonSchema(description = "Measures computed for this instance, for example Bip!Finder ones") - private List measures; + private List measures; - private List pid; + private List 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; + private List 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 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 - - - public String getLicense() { return license; } @@ -114,101 +96,27 @@ public class Instance implements Serializable { this.articleprocessingcharge = articleprocessingcharge; } - public List getPid() { + public List getPid() { return pid; } - public void setPid(List pid) { + public void setPid(List pid) { this.pid = pid; } - public List getAlternateIdentifier() { + public List getAlternateIdentifier() { return alternateIdentifier; } - public void setAlternateIdentifier(List alternateIdentifier) { + public void setAlternateIdentifier(List alternateIdentifier) { this.alternateIdentifier = alternateIdentifier; } - public List getMeasures() { + public List getMeasures() { return measures; } - public void setMeasures(List measures) { + public void setMeasures(List measures) { this.measures = measures; } -} - -class Measure implements Serializable{ - @JsonSchema(description = "The measure (i.e. popularity)") - 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 inst = new Measure(); - inst.key = key; - inst.value = value; - return inst; - } - - @JsonIgnore - public boolean isBlank() { - return StringUtils.isBlank(key) && StringUtils.isBlank(value); - } - -} - -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; - } -} - - +} \ No newline at end of file diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Language.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Language.java deleted file mode 100644 index 8e147e2..0000000 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Language.java +++ /dev/null @@ -1,38 +0,0 @@ -package eu.dnetlib.dhp.schema.dump.oaf; - -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - -import java.io.Serializable; - -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; - } -} - diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Pid.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Pid.java new file mode 100644 index 0000000..20848c6 --- /dev/null +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Pid.java @@ -0,0 +1,44 @@ +package eu.dnetlib.dhp.schema.dump.oaf; + +import java.io.Serializable; + +/** + * To represent the generic persistent identifier. It has two parameters: - id of type + * eu.dnetlib.dhp.schema.dump.oaf.ControlledField 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 Pid implements Serializable { + private ControlledField id; + private Provenance provenance; + + public ControlledField getId() { + return id; + } + + public void setId(ControlledField pid) { + this.id = pid; + } + + public Provenance getProvenance() { + return provenance; + } + + public void setProvenance(Provenance provenance) { + this.provenance = provenance; + } + + public static Pid newInstance(ControlledField pid, Provenance provenance) { + Pid p = new Pid(); + p.id = pid; + p.provenance = provenance; + + return p; + } + + public static Pid newInstance(ControlledField pid) { + Pid p = new Pid(); + p.id = pid; + + return p; + } +} \ No newline at end of file diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Provenance.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Provenance.java index 8217cd5..28fb3aa 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Provenance.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Provenance.java @@ -1,8 +1,6 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; /** @@ -11,13 +9,7 @@ import java.io.Serializable; * store the trust associated to the information */ public class Provenance implements Serializable { - - @JsonSchema(description="The process that produced/provided the information") private String provenance; - - @JsonSchema(description="The confidence on the goodness of the information. It is in the range [0,1]. Greater the number, more the trust. " + - "Harvested information has typically a high trust (0.9). The trust of inferred information is calculated by the inference algorithm that generated it," + - " as described in https://graph.openaire.eu/about#architecture (Enrichment --> Mining)") private String trust; public String getProvenance() { diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Qualifier.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Qualifier.java index 67ccf61..fd21424 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Qualifier.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Qualifier.java @@ -1,8 +1,6 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; /** @@ -12,10 +10,7 @@ import java.io.Serializable; */ public class Qualifier implements Serializable { - @JsonSchema(description="A code in vocabulary ") private String code; // the classid in the Qualifier - - @JsonSchema(description="A label for that code ") private String label; // the classname in the Qualifier public String getCode() { diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java index bffa647..e5ee9b2 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Result.java @@ -1,24 +1,18 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; import java.util.List; /** * 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 + * Initiative/Infrastructures. It has the following parameters: - author of type * List 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 + * 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 + * resulttype.classname of the dumped result - language of type eu.dnetlib.dhp.schema.dump.oaf.Qualifier 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 to store the country + * corresponds to language.classname - country of type List 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 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 @@ -70,97 +64,72 @@ import java.util.List; */ public class Result implements Serializable { + + private List author; // resulttype allows subclassing results into publications | datasets | software - @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; + private Qualifier language; - @JsonSchema(description="The list of countries associated to this result") - private List country; + private List country; - @JsonSchema(description="Keywords associated to the result") private List 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 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 source; private List format; - @JsonSchema(description="Contributors for the result") private List contributor; private List 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 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 contactperson; // orp - @JsonSchema(description="Only for results with type 'software': Information on the group responsible for providing further information regarding the resource") private List 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 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; // dataset - @JsonSchema(description = "The OpenAIRE identifiers for this result") private String id; - @JsonSchema(description = "Identifiers of the record at the original sources") private List originalId; - @JsonSchema(description = "Persistent identifiers of the result") - private List pid; + private List 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; - public Long getLastupdatetimestamp() { return lastupdatetimestamp; } @@ -185,11 +154,11 @@ public class Result implements Serializable { this.originalId = originalId; } - public List getPid() { + public List getPid() { return pid; } - public void setPid(List pid) { + public void setPid(List pid) { this.pid = pid; } @@ -225,19 +194,19 @@ public class Result implements Serializable { this.author = author; } - public Language getLanguage() { + public Qualifier getLanguage() { return language; } - public void setLanguage(Language language) { + public void setLanguage(Qualifier language) { this.language = language; } - public List getCountry() { + public List getCountry() { return country; } - public void setCountry(List country) { + public void setCountry(List country) { this.country = country; } diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ResultCountry.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ResultCountry.java deleted file mode 100644 index 5401a36..0000000 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ResultCountry.java +++ /dev/null @@ -1,41 +0,0 @@ -package eu.dnetlib.dhp.schema.dump.oaf; - - -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)); - } -} diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ResultPid.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ResultPid.java deleted file mode 100644 index e0a29ee..0000000 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/ResultPid.java +++ /dev/null @@ -1,42 +0,0 @@ -package eu.dnetlib.dhp.schema.dump.oaf; - -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - -import java.io.Serializable; - -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; - } -} - diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Subject.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Subject.java index f91cb50..5c4bbef 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Subject.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/Subject.java @@ -1,31 +1,25 @@ package eu.dnetlib.dhp.schema.dump.oaf; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; /** - * 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 + * To represent keywords associated to the result. It has two parameters: - subject of type + * eu.dnetlib.dhp.schema.dump.oaf.ControlledField 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 ControlledField subject; private Provenance provenance; - public SubjectSchemeValue getSubject() { + public ControlledField getSubject() { return subject; } - public void setSubject(SubjectSchemeValue subject) { + public void setSubject(ControlledField subject) { this.subject = subject; } @@ -38,38 +32,3 @@ public class Subject implements Serializable { } } - -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; - } - -} - diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java index b60140a..1675f9e 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/GraphResult.java @@ -3,7 +3,6 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.util.List; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; import eu.dnetlib.dhp.schema.dump.oaf.Instance; import eu.dnetlib.dhp.schema.dump.oaf.Result; @@ -13,7 +12,6 @@ import eu.dnetlib.dhp.schema.dump.oaf.Result; * 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; public List getInstance() { diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Node.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Node.java index 11aecc6..00f1a29 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Node.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Node.java @@ -1,8 +1,6 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; /** @@ -12,10 +10,7 @@ import java.io.Serializable; * while the node representing the project will have as id the id of the project and as type project */ public class Node implements Serializable { - @JsonSchema(description = "The OpenAIRE id of the entity") private String id; - - @JsonSchema(description = "The type of the entity (i.e. organisation)") private String type; public String getId() { diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Organization.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Organization.java index 13ceac0..c1fd0e9 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Organization.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Organization.java @@ -4,36 +4,25 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; import java.util.List; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - -import eu.dnetlib.dhp.schema.dump.oaf.Country; +import eu.dnetlib.dhp.schema.dump.oaf.ControlledField; +import eu.dnetlib.dhp.schema.dump.oaf.Qualifier; /** - * To represent the generic organizaiton. It has the following parameters: - * - private String legalshortname to store the legalshortname of the organizaiton - * - private String legalname to store the legal name of the organization - * - private String websiteurl to store the websiteurl of the organization - * - private List alternativenames to store the alternative names of the organization - * - private Country country to store the country of the organization - * - private String id to store the openaire id of the organization - * - private List pid to store the list of pids for the organization + * To represent the generic organizaiton. It has the following parameters: - private String legalshortname to store the + * legalshortname of the organizaiton - private String legalname to store the legal name of the organization - private + * String websiteurl to store the websiteurl of the organization - private List alternativenames to store the + * alternative names of the organization - private Qualifier country to store the country of the organization - private + * String id to store the id of the organization - private List pid to store the list of pids for the + * organization */ public class Organization implements Serializable { private String legalshortname; private String legalname; private String websiteurl; - - @JsonSchema(description="Alternative names that identify the organisation") private List alternativenames; - - @JsonSchema(description="The organisation country") - private Country country; - - @JsonSchema(description="The OpenAIRE id for the organisation") + private Qualifier country; private String id; - - @JsonSchema(description="Persistent identifiers for the organisation i.e. isni 0000000090326370") - private List pid; + private List pid; public String getLegalshortname() { return legalshortname; @@ -67,11 +56,11 @@ public class Organization implements Serializable { this.alternativenames = alternativenames; } - public Country getCountry() { + public Qualifier getCountry() { return country; } - public void setCountry(Country country) { + public void setCountry(Qualifier country) { this.country = country; } @@ -83,41 +72,12 @@ public class Organization implements Serializable { this.id = id; } - public List getPid() { + public List getPid() { return pid; } - public void setPid(List pid) { + public void setPid(List pid) { this.pid = pid; } } - - -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; - } -} - - - - diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java index f2a4a75..612be9d 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Project.java @@ -34,13 +34,13 @@ import java.util.List; * - private List h2020programme to store the list of programmes the project is related to */ -public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project { - //private String id; +public class Project implements Serializable { + private String id; private String websiteurl; - //private String code; - //private String acronym; - //private String title; + private String code; + private String acronym; + private String title; private String startdate; private String enddate; @@ -62,13 +62,13 @@ public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project { private List h2020programme; -// public String getId() { -// return id; -// } -// -// public void setId(String id) { -// this.id = id; -// } + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } public String getWebsiteurl() { return websiteurl; @@ -78,29 +78,29 @@ public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project { 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 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; diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/RelType.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/RelType.java index 618fff1..629b30e 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/RelType.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/RelType.java @@ -1,8 +1,6 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; - import java.io.Serializable; /** @@ -13,10 +11,7 @@ import java.io.Serializable; * represented in theinternal model */ public class RelType implements Serializable { - @JsonSchema(description = "The semantics of the relation (i.e. isAuthorInstitutionOf). ") private String name; // relclass - - @JsonSchema(description = "The type of the relation (i.e. affiliation)") private String type; // subreltype public String getName() { @@ -42,4 +37,3 @@ public class RelType implements Serializable { return rel; } } - diff --git a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Relation.java b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Relation.java index fe42211..ee580b6 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Relation.java +++ b/src/main/java/eu/dnetlib/dhp/schema/dump/oaf/graph/Relation.java @@ -4,7 +4,6 @@ package eu.dnetlib.dhp.schema.dump.oaf.graph; import java.io.Serializable; import java.util.Objects; -import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema; import eu.dnetlib.dhp.schema.dump.oaf.Provenance; /** @@ -14,22 +13,11 @@ import eu.dnetlib.dhp.schema.dump.oaf.Provenance; * provenance of the relation */ public class Relation implements Serializable { - @JsonSchema(description = "The node source in the relation") private Node source; - - @JsonSchema(description = "The node target in the relation") private Node target; - - @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 Node getSource() { @@ -80,7 +68,6 @@ public class Relation implements Serializable { return validationDate; } - @Override public int hashCode() {