|
|
|
@ -1,10 +1,36 @@
|
|
|
|
|
|
|
|
|
|
package eu.dnetlib.dhp.oa.graph.raw;
|
|
|
|
|
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.*;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.*;
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.DATASET_DEFAULT_RESULTTYPE;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.DNET_ACCESS_MODES;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.DNET_PID_TYPES;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.IS_PRODUCED_BY;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.NOT_AVAILABLE;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.ORP_DEFAULT_RESULTTYPE;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.OUTCOME;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.PRODUCES;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.PUBLICATION_DEFAULT_RESULTTYPE;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.REPOSITORY_PROVENANCE_ACTIONS;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.RESULT_PROJECT;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.SOFTWARE_DEFAULT_RESULTTYPE;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.UNKNOWN;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.createOpenaireId;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.dataInfo;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.field;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.journal;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.keyValue;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.listFields;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.oaiIProvenance;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.qualifier;
|
|
|
|
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.structuredProperty;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.dom4j.Document;
|
|
|
|
@ -15,7 +41,24 @@ import org.dom4j.Node;
|
|
|
|
|
import eu.dnetlib.dhp.oa.graph.raw.common.VocabularyGroup;
|
|
|
|
|
import eu.dnetlib.dhp.schema.common.LicenseComparator;
|
|
|
|
|
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.*;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Author;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Context;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Dataset;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Field;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.GeoLocation;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Instance;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Journal;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.KeyValue;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.OAIProvenance;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Oaf;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.OtherResearchProduct;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Publication;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Qualifier;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Relation;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Result;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.Software;
|
|
|
|
|
import eu.dnetlib.dhp.schema.oaf.StructuredProperty;
|
|
|
|
|
|
|
|
|
|
public abstract class AbstractMdRecordToOafMapper {
|
|
|
|
|
|
|
|
|
@ -92,10 +135,10 @@ public abstract class AbstractMdRecordToOafMapper {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected String getResultType(final Document doc, final List<Instance> instances) {
|
|
|
|
|
String type = doc.valueOf("//dr:CobjCategory/@type");
|
|
|
|
|
final String type = doc.valueOf("//dr:CobjCategory/@type");
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(type) & vocs.vocabularyExists(ModelConstants.DNET_RESULT_TYPOLOGIES)) {
|
|
|
|
|
String instanceType = instances
|
|
|
|
|
final String instanceType = instances
|
|
|
|
|
.stream()
|
|
|
|
|
.map(i -> i.getInstancetype().getClassid())
|
|
|
|
|
.findFirst()
|
|
|
|
@ -256,13 +299,11 @@ public abstract class AbstractMdRecordToOafMapper {
|
|
|
|
|
r.setDataInfo(info);
|
|
|
|
|
r.setLastupdatetimestamp(lastUpdateTimestamp);
|
|
|
|
|
r.setId(createOpenaireId(50, doc.valueOf("//dri:objIdentifier"), false));
|
|
|
|
|
|
|
|
|
|
r.setOriginalId(Arrays.asList(findOriginalId(doc)));
|
|
|
|
|
|
|
|
|
|
r.setCollectedfrom(Arrays.asList(collectedFrom));
|
|
|
|
|
r.setPid(prepareResultPids(doc, info));
|
|
|
|
|
r.setDateofcollection(doc.valueOf("//dr:dateOfCollection"));
|
|
|
|
|
r.setDateoftransformation(doc.valueOf("//dr:dateOfTransformation"));
|
|
|
|
|
r.setDateofcollection(doc.valueOf("//dr:dateOfCollection|//dri:dateOfCollection"));
|
|
|
|
|
r.setDateoftransformation(doc.valueOf("//dr:dateOfTransformation|//dri:dateOfTransformation"));
|
|
|
|
|
r.setExtraInfo(new ArrayList<>()); // NOT PRESENT IN MDSTORES
|
|
|
|
|
r.setOaiprovenance(prepareOAIprovenance(doc));
|
|
|
|
|
r.setAuthor(prepareAuthors(doc, info));
|
|
|
|
|