forked from D-Net/dnet-hadoop
more pervasive use of constants from ModelConstants, especially for ORCID
This commit is contained in:
parent
ea9b00ce56
commit
6cbda49112
|
@ -26,6 +26,7 @@ import eu.dnetlib.broker.objects.OaBrokerRelatedDatasource;
|
||||||
import eu.dnetlib.broker.objects.OaBrokerRelatedPublication;
|
import eu.dnetlib.broker.objects.OaBrokerRelatedPublication;
|
||||||
import eu.dnetlib.broker.objects.OaBrokerRelatedSoftware;
|
import eu.dnetlib.broker.objects.OaBrokerRelatedSoftware;
|
||||||
import eu.dnetlib.broker.objects.OaBrokerTypedValue;
|
import eu.dnetlib.broker.objects.OaBrokerTypedValue;
|
||||||
|
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Author;
|
import eu.dnetlib.dhp.schema.oaf.Author;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Dataset;
|
import eu.dnetlib.dhp.schema.oaf.Dataset;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Datasource;
|
import eu.dnetlib.dhp.schema.oaf.Datasource;
|
||||||
|
@ -144,7 +145,7 @@ public class ConversionUtils {
|
||||||
.filter(pid -> pid != null)
|
.filter(pid -> pid != null)
|
||||||
.filter(pid -> pid.getQualifier() != null)
|
.filter(pid -> pid.getQualifier() != null)
|
||||||
.filter(pid -> pid.getQualifier().getClassid() != null)
|
.filter(pid -> pid.getQualifier().getClassid() != null)
|
||||||
.filter(pid -> pid.getQualifier().getClassid().equalsIgnoreCase("orcid"))
|
.filter(pid -> pid.getQualifier().getClassid().equalsIgnoreCase(ModelConstants.ORCID))
|
||||||
.map(pid -> pid.getValue())
|
.map(pid -> pid.getValue())
|
||||||
.map(pid -> cleanOrcid(pid))
|
.map(pid -> cleanOrcid(pid))
|
||||||
.filter(StringUtils::isNotBlank)
|
.filter(StringUtils::isNotBlank)
|
||||||
|
|
|
@ -5,6 +5,7 @@ import eu.dnetlib.dhp.schema.oaf.{DataInfo, Dataset, Field, Instance, KeyValue,
|
||||||
import eu.dnetlib.dhp.utils.DHPUtils
|
import eu.dnetlib.dhp.utils.DHPUtils
|
||||||
import org.apache.commons.lang3.StringUtils
|
import org.apache.commons.lang3.StringUtils
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper
|
import com.fasterxml.jackson.databind.ObjectMapper
|
||||||
|
import eu.dnetlib.dhp.schema.common.ModelConstants
|
||||||
import org.json4s
|
import org.json4s
|
||||||
import org.json4s.DefaultFormats
|
import org.json4s.DefaultFormats
|
||||||
import org.json4s.jackson.JsonMethods.parse
|
import org.json4s.jackson.JsonMethods.parse
|
||||||
|
@ -28,7 +29,6 @@ object DoiBoostMappingUtil {
|
||||||
//STATIC STRING
|
//STATIC STRING
|
||||||
val MAG = "microsoft"
|
val MAG = "microsoft"
|
||||||
val MAG_NAME = "Microsoft Academic Graph"
|
val MAG_NAME = "Microsoft Academic Graph"
|
||||||
val ORCID = "orcid"
|
|
||||||
val ORCID_PENDING = "orcid_pending"
|
val ORCID_PENDING = "orcid_pending"
|
||||||
val CROSSREF = "Crossref"
|
val CROSSREF = "Crossref"
|
||||||
val UNPAYWALL = "UnpayWall"
|
val UNPAYWALL = "UnpayWall"
|
||||||
|
@ -37,8 +37,6 @@ object DoiBoostMappingUtil {
|
||||||
val doiBoostNSPREFIX = "doiboost____"
|
val doiBoostNSPREFIX = "doiboost____"
|
||||||
val OPENAIRE_PREFIX = "openaire____"
|
val OPENAIRE_PREFIX = "openaire____"
|
||||||
val SEPARATOR = "::"
|
val SEPARATOR = "::"
|
||||||
val DNET_LANGUAGES = "dnet:languages"
|
|
||||||
val PID_TYPES = "dnet:pid_types"
|
|
||||||
|
|
||||||
val invalidName = List(",", "none none", "none, none", "none &na;", "(:null)", "test test test", "test test", "test", "&na; &na;")
|
val invalidName = List(",", "none none", "none, none", "none &na;", "(:null)", "test test test", "test test", "test", "&na; &na;")
|
||||||
|
|
||||||
|
@ -326,8 +324,8 @@ object DoiBoostMappingUtil {
|
||||||
def createORIDCollectedFrom(): KeyValue = {
|
def createORIDCollectedFrom(): KeyValue = {
|
||||||
|
|
||||||
val cf = new KeyValue
|
val cf = new KeyValue
|
||||||
cf.setValue(ORCID)
|
cf.setValue(ModelConstants.ORCID_DS)
|
||||||
cf.setKey("10|" + OPENAIRE_PREFIX + SEPARATOR + DHPUtils.md5(ORCID.toLowerCase))
|
cf.setKey("10|" + OPENAIRE_PREFIX + SEPARATOR + DHPUtils.md5(ModelConstants.ORCID))
|
||||||
cf
|
cf
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ case object Crossref2Oaf {
|
||||||
|
|
||||||
//MAPPING Crossref DOI into PID
|
//MAPPING Crossref DOI into PID
|
||||||
val doi: String = (json \ "DOI").extract[String]
|
val doi: String = (json \ "DOI").extract[String]
|
||||||
result.setPid(List(createSP(doi, "doi", PID_TYPES)).asJava)
|
result.setPid(List(createSP(doi, "doi", ModelConstants.DNET_PID_TYPES)).asJava)
|
||||||
|
|
||||||
//MAPPING Crossref DOI into OriginalId
|
//MAPPING Crossref DOI into OriginalId
|
||||||
//and Other Original Identifier of dataset like clinical-trial-number
|
//and Other Original Identifier of dataset like clinical-trial-number
|
||||||
|
|
|
@ -188,7 +188,7 @@ case object ConversionUtil {
|
||||||
val authors = inputParams._2
|
val authors = inputParams._2
|
||||||
|
|
||||||
val pub = new Publication
|
val pub = new Publication
|
||||||
pub.setPid(List(createSP(paper.Doi.toLowerCase, "doi", PID_TYPES)).asJava)
|
pub.setPid(List(createSP(paper.Doi.toLowerCase, "doi", ModelConstants.DNET_PID_TYPES)).asJava)
|
||||||
pub.setOriginalId(List(paper.PaperId.toString, paper.Doi.toLowerCase).asJava)
|
pub.setOriginalId(List(paper.PaperId.toString, paper.Doi.toLowerCase).asJava)
|
||||||
|
|
||||||
//Set identifier as 50|doiboost____::md5(DOI)
|
//Set identifier as 50|doiboost____::md5(DOI)
|
||||||
|
@ -247,7 +247,7 @@ case object ConversionUtil {
|
||||||
val description = inputParams._2
|
val description = inputParams._2
|
||||||
|
|
||||||
val pub = new Publication
|
val pub = new Publication
|
||||||
pub.setPid(List(createSP(paper.Doi.toLowerCase, "doi", PID_TYPES)).asJava)
|
pub.setPid(List(createSP(paper.Doi.toLowerCase, "doi", ModelConstants.DNET_PID_TYPES)).asJava)
|
||||||
pub.setOriginalId(List(paper.PaperId.toString, paper.Doi.toLowerCase).asJava)
|
pub.setOriginalId(List(paper.PaperId.toString, paper.Doi.toLowerCase).asJava)
|
||||||
|
|
||||||
//Set identifier as 50 | doiboost____::md5(DOI)
|
//Set identifier as 50 | doiboost____::md5(DOI)
|
||||||
|
|
|
@ -30,7 +30,6 @@ public class PublicationToOaf implements Serializable {
|
||||||
|
|
||||||
static Logger logger = LoggerFactory.getLogger(PublicationToOaf.class);
|
static Logger logger = LoggerFactory.getLogger(PublicationToOaf.class);
|
||||||
|
|
||||||
public static final String ORCID = "ORCID";
|
|
||||||
public final static String orcidPREFIX = "orcid_______";
|
public final static String orcidPREFIX = "orcid_______";
|
||||||
public static final String OPENAIRE_PREFIX = "openaire____";
|
public static final String OPENAIRE_PREFIX = "openaire____";
|
||||||
public static final String SEPARATOR = "::";
|
public static final String SEPARATOR = "::";
|
||||||
|
@ -69,7 +68,9 @@ public class PublicationToOaf implements Serializable {
|
||||||
private static Map<String, Pair<String, String>> datasources = new HashMap<String, Pair<String, String>>() {
|
private static Map<String, Pair<String, String>> datasources = new HashMap<String, Pair<String, String>>() {
|
||||||
|
|
||||||
{
|
{
|
||||||
put(ORCID.toLowerCase(), new Pair<>(ORCID, OPENAIRE_PREFIX + SEPARATOR + "orcid"));
|
put(
|
||||||
|
ModelConstants.ORCID,
|
||||||
|
new Pair<>(ModelConstants.ORCID_DS, OPENAIRE_PREFIX + SEPARATOR + ModelConstants.ORCID));
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -102,8 +103,6 @@ public class PublicationToOaf implements Serializable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final String PID_TYPES = "dnet:pid_types";
|
|
||||||
|
|
||||||
public Oaf generatePublicationActionsFromJson(final String json) {
|
public Oaf generatePublicationActionsFromJson(final String json) {
|
||||||
try {
|
try {
|
||||||
if (parsedPublications != null) {
|
if (parsedPublications != null) {
|
||||||
|
@ -138,8 +137,8 @@ public class PublicationToOaf implements Serializable {
|
||||||
mapQualifier(
|
mapQualifier(
|
||||||
"sysimport:actionset:orcidworks-no-doi",
|
"sysimport:actionset:orcidworks-no-doi",
|
||||||
"sysimport:actionset:orcidworks-no-doi",
|
"sysimport:actionset:orcidworks-no-doi",
|
||||||
"dnet:provenanceActions",
|
ModelConstants.DNET_PROVENANCE_ACTIONS,
|
||||||
"dnet:provenanceActions"));
|
ModelConstants.DNET_PROVENANCE_ACTIONS));
|
||||||
publication.setDataInfo(dataInfo);
|
publication.setDataInfo(dataInfo);
|
||||||
|
|
||||||
publication.setLastupdatetimestamp(new Date().getTime());
|
publication.setLastupdatetimestamp(new Date().getTime());
|
||||||
|
@ -159,7 +158,9 @@ public class PublicationToOaf implements Serializable {
|
||||||
publication
|
publication
|
||||||
.getExternalReference()
|
.getExternalReference()
|
||||||
.add(
|
.add(
|
||||||
convertExtRef(extId, classid, classname, "dnet:pid_types", "dnet:pid_types"));
|
convertExtRef(
|
||||||
|
extId, classid, classname, ModelConstants.DNET_PID_TYPES,
|
||||||
|
ModelConstants.DNET_PID_TYPES));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -505,24 +506,21 @@ public class PublicationToOaf implements Serializable {
|
||||||
|
|
||||||
private KeyValue createCollectedFrom() {
|
private KeyValue createCollectedFrom() {
|
||||||
KeyValue cf = new KeyValue();
|
KeyValue cf = new KeyValue();
|
||||||
cf.setValue(ORCID);
|
cf.setValue(ModelConstants.ORCID_DS);
|
||||||
cf.setKey("10|" + OPENAIRE_PREFIX + SEPARATOR + "806360c771262b4d6770e7cdf04b5c5a");
|
cf.setKey("10|" + OPENAIRE_PREFIX + SEPARATOR + "806360c771262b4d6770e7cdf04b5c5a");
|
||||||
return cf;
|
return cf;
|
||||||
}
|
}
|
||||||
|
|
||||||
private KeyValue createHostedBy() {
|
private KeyValue createHostedBy() {
|
||||||
KeyValue hb = new KeyValue();
|
return ModelConstants.UNKNOWN_REPOSITORY;
|
||||||
hb.setValue("Unknown Repository");
|
|
||||||
hb.setKey("10|" + OPENAIRE_PREFIX + SEPARATOR + "55045bd2a65019fd8e6741a755395c8c");
|
|
||||||
return hb;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private StructuredProperty mapAuthorId(String orcidId) {
|
private StructuredProperty mapAuthorId(String orcidId) {
|
||||||
final StructuredProperty sp = new StructuredProperty();
|
final StructuredProperty sp = new StructuredProperty();
|
||||||
sp.setValue(orcidId);
|
sp.setValue(orcidId);
|
||||||
final Qualifier q = new Qualifier();
|
final Qualifier q = new Qualifier();
|
||||||
q.setClassid(ORCID.toLowerCase());
|
q.setClassid(ModelConstants.ORCID);
|
||||||
q.setClassname(ORCID.toLowerCase());
|
q.setClassname(ModelConstants.ORCID_CLASSNAME);
|
||||||
q.setSchemeid(ModelConstants.DNET_PID_TYPES);
|
q.setSchemeid(ModelConstants.DNET_PID_TYPES);
|
||||||
q.setSchemename(ModelConstants.DNET_PID_TYPES);
|
q.setSchemename(ModelConstants.DNET_PID_TYPES);
|
||||||
sp.setQualifier(q);
|
sp.setQualifier(q);
|
||||||
|
@ -535,8 +533,8 @@ public class PublicationToOaf implements Serializable {
|
||||||
mapQualifier(
|
mapQualifier(
|
||||||
"sysimport:crosswalk:entityregistry",
|
"sysimport:crosswalk:entityregistry",
|
||||||
"Harvested",
|
"Harvested",
|
||||||
"dnet:provenanceActions",
|
ModelConstants.DNET_PROVENANCE_ACTIONS,
|
||||||
"dnet:provenanceActions"));
|
ModelConstants.DNET_PROVENANCE_ACTIONS));
|
||||||
sp.setDataInfo(dataInfo);
|
sp.setDataInfo(dataInfo);
|
||||||
return sp;
|
return sp;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package eu.dnetlib.doiboost.uw
|
package eu.dnetlib.doiboost.uw
|
||||||
|
|
||||||
|
import eu.dnetlib.dhp.schema.common.ModelConstants
|
||||||
import eu.dnetlib.dhp.schema.oaf.{Instance, Publication}
|
import eu.dnetlib.dhp.schema.oaf.{Instance, Publication}
|
||||||
import org.json4s
|
import org.json4s
|
||||||
import org.json4s.DefaultFormats
|
import org.json4s.DefaultFormats
|
||||||
|
@ -32,7 +33,7 @@ object UnpayWallToOAF {
|
||||||
val is_oa = (json\ "is_oa").extract[Boolean]
|
val is_oa = (json\ "is_oa").extract[Boolean]
|
||||||
|
|
||||||
val oaLocation:OALocation = (json \ "best_oa_location").extractOrElse[OALocation](null)
|
val oaLocation:OALocation = (json \ "best_oa_location").extractOrElse[OALocation](null)
|
||||||
pub.setPid(List(createSP(doi, "doi", PID_TYPES)).asJava)
|
pub.setPid(List(createSP(doi, "doi", ModelConstants.DNET_PID_TYPES)).asJava)
|
||||||
pub.setId(generateIdentifier(pub, doi.toLowerCase))
|
pub.setId(generateIdentifier(pub, doi.toLowerCase))
|
||||||
|
|
||||||
pub.setCollectedfrom(List(createUnpayWallCollectedFrom()).asJava)
|
pub.setCollectedfrom(List(createUnpayWallCollectedFrom()).asJava)
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -24,8 +24,6 @@ public class Constants {
|
||||||
|
|
||||||
public static String RESEARCH_INFRASTRUCTURE = "Research Infrastructure/Initiative";
|
public static String RESEARCH_INFRASTRUCTURE = "Research Infrastructure/Initiative";
|
||||||
|
|
||||||
public static String ORCID = "orcid";
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
accessRightsCoarMap.put("OPEN", "c_abf2");
|
accessRightsCoarMap.put("OPEN", "c_abf2");
|
||||||
accessRightsCoarMap.put("RESTRICTED", "c_16ec");
|
accessRightsCoarMap.put("RESTRICTED", "c_16ec");
|
||||||
|
|
|
@ -503,7 +503,7 @@ public class ResultMapper implements Serializable {
|
||||||
|
|
||||||
private static Pid getOrcid(List<StructuredProperty> p) {
|
private static Pid getOrcid(List<StructuredProperty> p) {
|
||||||
for (StructuredProperty pid : p) {
|
for (StructuredProperty pid : p) {
|
||||||
if (pid.getQualifier().getClassid().equals(Constants.ORCID)) {
|
if (pid.getQualifier().getClassid().equals(ModelConstants.ORCID)) {
|
||||||
Optional<DataInfo> di = Optional.ofNullable(pid.getDataInfo());
|
Optional<DataInfo> di = Optional.ofNullable(pid.getDataInfo());
|
||||||
if (di.isPresent()) {
|
if (di.isPresent()) {
|
||||||
return Pid
|
return Pid
|
||||||
|
|
|
@ -68,7 +68,7 @@ public abstract class AbstractMdRecordToOafMapper {
|
||||||
protected static final String DATACITE_SCHEMA_KERNEL_3 = "http://datacite.org/schema/kernel-3";
|
protected static final String DATACITE_SCHEMA_KERNEL_3 = "http://datacite.org/schema/kernel-3";
|
||||||
protected static final String DATACITE_SCHEMA_KERNEL_3_SLASH = "http://datacite.org/schema/kernel-3/";
|
protected static final String DATACITE_SCHEMA_KERNEL_3_SLASH = "http://datacite.org/schema/kernel-3/";
|
||||||
protected static final Qualifier ORCID_PID_TYPE = qualifier(
|
protected static final Qualifier ORCID_PID_TYPE = qualifier(
|
||||||
"ORCID", "Open Researcher and Contributor ID", DNET_PID_TYPES, DNET_PID_TYPES);
|
ModelConstants.ORCID_PENDING, ModelConstants.ORCID_CLASSNAME, DNET_PID_TYPES, DNET_PID_TYPES);
|
||||||
protected static final Qualifier MAG_PID_TYPE = qualifier(
|
protected static final Qualifier MAG_PID_TYPE = qualifier(
|
||||||
"MAGIdentifier", "Microsoft Academic Graph Identifier", DNET_PID_TYPES, DNET_PID_TYPES);
|
"MAGIdentifier", "Microsoft Academic Graph Identifier", DNET_PID_TYPES, DNET_PID_TYPES);
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.common.PacePerson;
|
import eu.dnetlib.dhp.common.PacePerson;
|
||||||
import eu.dnetlib.dhp.oa.graph.raw.common.VocabularyGroup;
|
import eu.dnetlib.dhp.oa.graph.raw.common.VocabularyGroup;
|
||||||
|
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Author;
|
import eu.dnetlib.dhp.schema.oaf.Author;
|
||||||
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Field;
|
import eu.dnetlib.dhp.schema.oaf.Field;
|
||||||
|
@ -61,7 +62,7 @@ public class OafToOafMapper extends AbstractMdRecordToOafMapper {
|
||||||
author.setPid(new ArrayList<>());
|
author.setPid(new ArrayList<>());
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(pid)) {
|
if (StringUtils.isNotBlank(pid)) {
|
||||||
if (type.startsWith("ORCID")) {
|
if (type.toLowerCase().startsWith(ORCID)) {
|
||||||
final String cleanedId = pid
|
final String cleanedId = pid
|
||||||
.replaceAll("http://orcid.org/", "")
|
.replaceAll("http://orcid.org/", "")
|
||||||
.replaceAll("https://orcid.org/", "");
|
.replaceAll("https://orcid.org/", "");
|
||||||
|
|
|
@ -20,6 +20,7 @@ import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.common.PacePerson;
|
import eu.dnetlib.dhp.common.PacePerson;
|
||||||
import eu.dnetlib.dhp.oa.graph.raw.common.VocabularyGroup;
|
import eu.dnetlib.dhp.oa.graph.raw.common.VocabularyGroup;
|
||||||
|
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Author;
|
import eu.dnetlib.dhp.schema.oaf.Author;
|
||||||
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Field;
|
import eu.dnetlib.dhp.schema.oaf.Field;
|
||||||
|
@ -98,7 +99,7 @@ public class OdfToOafMapper extends AbstractMdRecordToOafMapper {
|
||||||
.replaceAll(" ", "")
|
.replaceAll(" ", "")
|
||||||
.replaceAll("_", "");
|
.replaceAll("_", "");
|
||||||
|
|
||||||
if (type.startsWith("ORCID")) {
|
if (type.toLowerCase().startsWith(ModelConstants.ORCID)) {
|
||||||
final String cleanedId = id.replaceAll("http://orcid.org/", "").replaceAll("https://orcid.org/", "");
|
final String cleanedId = id.replaceAll("http://orcid.org/", "").replaceAll("https://orcid.org/", "");
|
||||||
res.add(structuredProperty(cleanedId, ORCID_PID_TYPE, info));
|
res.add(structuredProperty(cleanedId, ORCID_PID_TYPE, info));
|
||||||
} else if (type.startsWith("MAGID")) {
|
} else if (type.startsWith("MAGID")) {
|
||||||
|
|
Loading…
Reference in New Issue