forked from D-Net/dnet-hadoop
pid types
This commit is contained in:
parent
7c5cd86927
commit
f77ba34126
|
@ -11,9 +11,11 @@ import static eu.dnetlib.dhp.schema.oaf.utils.OafMapperUtils.structuredProperty;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -33,6 +35,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.actionmanager.project.SparkAtomicActionJob;
|
import eu.dnetlib.dhp.actionmanager.project.SparkAtomicActionJob;
|
||||||
|
import eu.dnetlib.dhp.actionmanager.ror.model.ExternalIdType;
|
||||||
import eu.dnetlib.dhp.actionmanager.ror.model.RorOrganization;
|
import eu.dnetlib.dhp.actionmanager.ror.model.RorOrganization;
|
||||||
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
||||||
import eu.dnetlib.dhp.common.HdfsSupport;
|
import eu.dnetlib.dhp.common.HdfsSupport;
|
||||||
|
@ -59,11 +62,6 @@ public class GenerateRorActionSetJob {
|
||||||
private static final DataInfo ROR_DATA_INFO = dataInfo(false, "", false, false, ENTITYREGISTRY_PROVENANCE_ACTION, "0.92");
|
private static final DataInfo ROR_DATA_INFO = dataInfo(false, "", false, false, ENTITYREGISTRY_PROVENANCE_ACTION, "0.92");
|
||||||
|
|
||||||
private static final Qualifier ROR_PID_TYPE = qualifier("ROR", "ROR", "dnet:pid_types", "dnet:pid_types");
|
private static final Qualifier ROR_PID_TYPE = qualifier("ROR", "ROR", "dnet:pid_types", "dnet:pid_types");
|
||||||
private static final Qualifier GRID_PID_TYPE = qualifier("GRID", "GRID", "dnet:pid_types", "dnet:pid_types");
|
|
||||||
private static final Qualifier WIKIDATA_PID_TYPE = qualifier("Wikidata", "Wikidata", "dnet:pid_types", "dnet:pid_types");
|
|
||||||
private static final Qualifier ORGREF_PID_TYPE = qualifier("OrgRef", "OrgRef", "dnet:pid_types", "dnet:pid_types");
|
|
||||||
private static final Qualifier ISNI_PID_TYPE = qualifier("ISNI", "ISNI", "dnet:pid_types", "dnet:pid_types");
|
|
||||||
private static final Qualifier FUNDREF_PID_TYPE = qualifier("FundRef", "FundRef", "dnet:pid_types", "dnet:pid_types");
|
|
||||||
|
|
||||||
public static void main(final String[] args) throws Exception {
|
public static void main(final String[] args) throws Exception {
|
||||||
|
|
||||||
|
@ -157,21 +155,28 @@ public class GenerateRorActionSetJob {
|
||||||
private static List<StructuredProperty> pids(final RorOrganization r) {
|
private static List<StructuredProperty> pids(final RorOrganization r) {
|
||||||
final List<StructuredProperty> pids = new ArrayList<>();
|
final List<StructuredProperty> pids = new ArrayList<>();
|
||||||
pids.add(structuredProperty(r.getId(), ROR_PID_TYPE, ROR_DATA_INFO));
|
pids.add(structuredProperty(r.getId(), ROR_PID_TYPE, ROR_DATA_INFO));
|
||||||
pids.add(structuredProperty(r.getExternalIds().getGrid().getAll(), GRID_PID_TYPE, ROR_DATA_INFO));
|
|
||||||
pids.addAll(pids(r.getExternalIds().getFundRef().getAll(), FUNDREF_PID_TYPE));
|
|
||||||
pids.addAll(pids(r.getExternalIds().getIsni().getAll(), ISNI_PID_TYPE));
|
|
||||||
pids.addAll(pids(r.getExternalIds().getOrgRef().getAll(), ORGREF_PID_TYPE));
|
|
||||||
pids.addAll(pids(r.getExternalIds().getWikidata().getAll(), WIKIDATA_PID_TYPE));
|
|
||||||
return pids;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<StructuredProperty> pids(final List<String> list, final Qualifier pidType) {
|
for (final Map.Entry<String, ExternalIdType> e : r.getExternalIds().entrySet()) {
|
||||||
if (list == null) { return new ArrayList<>(); }
|
final String type = e.getKey();
|
||||||
return list.stream()
|
final Object all = e.getValue().getAll();
|
||||||
.filter(StringUtils::isNotBlank)
|
if (all == null) {
|
||||||
.distinct()
|
// skip
|
||||||
.map(s -> structuredProperty(s, pidType, ROR_DATA_INFO))
|
} else if (all instanceof String) {
|
||||||
.collect(Collectors.toList());
|
pids.add(structuredProperty(all.toString(), qualifier(type, type, "dnet:pid_types", "dnet:pid_types"), ROR_DATA_INFO));
|
||||||
|
} else if (all instanceof Collection) {
|
||||||
|
for (final Object pid : (Collection<?>) all) {
|
||||||
|
pids.add(structuredProperty(pid.toString(), qualifier(type, type, "dnet:pid_types", "dnet:pid_types"), ROR_DATA_INFO));
|
||||||
|
}
|
||||||
|
} else if (all instanceof String[]) {
|
||||||
|
for (final String pid : (String[]) all) {
|
||||||
|
pids.add(structuredProperty(pid, qualifier(type, type, "dnet:pid_types", "dnet:pid_types"), ROR_DATA_INFO));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.warn("Invalid type for pid list: " + all.getClass());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return pids;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Field<String>> alternativeNames(final RorOrganization r) {
|
private static List<Field<String>> alternativeNames(final RorOrganization r) {
|
||||||
|
|
|
@ -2,26 +2,24 @@
|
||||||
package eu.dnetlib.dhp.actionmanager.ror.model;
|
package eu.dnetlib.dhp.actionmanager.ror.model;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
public class ExternalIdType implements Serializable {
|
public class ExternalIdType implements Serializable {
|
||||||
|
|
||||||
@JsonProperty("all")
|
@JsonProperty("all")
|
||||||
private List<String> all = new ArrayList<>();
|
private Object all;
|
||||||
|
|
||||||
@JsonProperty("preferred")
|
@JsonProperty("preferred")
|
||||||
private String preferred;
|
private String preferred;
|
||||||
|
|
||||||
private final static long serialVersionUID = 2616688352998387611L;
|
private final static long serialVersionUID = 2616688352998387611L;
|
||||||
|
|
||||||
public List<String> getAll() {
|
public Object getAll() {
|
||||||
return all;
|
return all;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAll(final List<String> all) {
|
public void setAll(final Object all) {
|
||||||
this.all = all;
|
this.all = all;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.actionmanager.ror.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
|
|
||||||
public class ExternalIds implements Serializable {
|
|
||||||
|
|
||||||
@JsonProperty("Wikidata")
|
|
||||||
private ExternalIdType wikidata;
|
|
||||||
|
|
||||||
@JsonProperty("OrgRef")
|
|
||||||
private ExternalIdType orgRef;
|
|
||||||
|
|
||||||
@JsonProperty("ISNI")
|
|
||||||
private ExternalIdType isni;
|
|
||||||
|
|
||||||
@JsonProperty("FundRef")
|
|
||||||
private ExternalIdType fundRef;
|
|
||||||
|
|
||||||
@JsonProperty("GRID")
|
|
||||||
private GridType grid;
|
|
||||||
|
|
||||||
private final static long serialVersionUID = 686536347353680869L;
|
|
||||||
|
|
||||||
public ExternalIdType getWikidata() {
|
|
||||||
return wikidata;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWikidata(final ExternalIdType wikidata) {
|
|
||||||
this.wikidata = wikidata;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExternalIdType getOrgRef() {
|
|
||||||
return orgRef;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrgRef(final ExternalIdType orgRef) {
|
|
||||||
this.orgRef = orgRef;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExternalIdType getIsni() {
|
|
||||||
return isni;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIsni(final ExternalIdType isni) {
|
|
||||||
this.isni = isni;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExternalIdType getFundRef() {
|
|
||||||
return fundRef;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFundRef(final ExternalIdType fundRef) {
|
|
||||||
this.fundRef = fundRef;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GridType getGrid() {
|
|
||||||
return grid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGrid(final GridType grid) {
|
|
||||||
this.grid = grid;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.actionmanager.ror.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
|
|
||||||
public class GridType implements Serializable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = -5605887658267581353L;
|
|
||||||
|
|
||||||
@JsonProperty("all")
|
|
||||||
private String all;
|
|
||||||
|
|
||||||
@JsonProperty("preferred")
|
|
||||||
private String preferred;
|
|
||||||
|
|
||||||
public String getAll() {
|
|
||||||
return all;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAll(final String all) {
|
|
||||||
this.all = all;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPreferred() {
|
|
||||||
return preferred;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPreferred(final String preferred) {
|
|
||||||
this.preferred = preferred;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -3,7 +3,9 @@ package eu.dnetlib.dhp.actionmanager.ror.model;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
@ -46,7 +48,7 @@ public class RorOrganization implements Serializable {
|
||||||
private String emailAddress;
|
private String emailAddress;
|
||||||
|
|
||||||
@JsonProperty("external_ids")
|
@JsonProperty("external_ids")
|
||||||
private ExternalIds externalIds;
|
private Map<String, ExternalIdType> externalIds = new LinkedHashMap<>();
|
||||||
|
|
||||||
@JsonProperty("id")
|
@JsonProperty("id")
|
||||||
private String id;
|
private String id;
|
||||||
|
@ -155,11 +157,11 @@ public class RorOrganization implements Serializable {
|
||||||
this.emailAddress = emailAddress;
|
this.emailAddress = emailAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExternalIds getExternalIds() {
|
public Map<String, ExternalIdType> getExternalIds() {
|
||||||
return externalIds;
|
return externalIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setExternalIds(final ExternalIds externalIds) {
|
public void setExternalIds(final Map<String, ExternalIdType> externalIds) {
|
||||||
this.externalIds = externalIds;
|
this.externalIds = externalIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.io.FileInputStream;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
@ -11,6 +12,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import eu.dnetlib.dhp.actionmanager.ror.model.RorOrganization;
|
import eu.dnetlib.dhp.actionmanager.ror.model.RorOrganization;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Organization;
|
import eu.dnetlib.dhp.schema.oaf.Organization;
|
||||||
|
|
||||||
|
@Disabled
|
||||||
class GenerateRorActionSetJobTest {
|
class GenerateRorActionSetJobTest {
|
||||||
|
|
||||||
private static final ObjectMapper mapper = new ObjectMapper();
|
private static final ObjectMapper mapper = new ObjectMapper();
|
||||||
|
|
Loading…
Reference in New Issue