Merge branch 'new_es_mapping'

# Conflicts:
#	dnet-ariadneplus-graphdb-publisher/src/main/resources/eu/dnetlib/ariadneplus/sparql/read_collection_data_template.sparql
#	dnet-ariadneplus-graphdb-publisher/src/main/resources/eu/dnetlib/ariadneplus/sparql/read_record_data_template.sparql
#	dnet-ariadneplus-graphdb-publisher/test/java/eu/dnetlib/ariadneplus/GraphDbReaderAndESIndexTest.java
This commit is contained in:
Enrico Ottonello 2021-09-08 15:56:12 +02:00
commit 3510d7d1be
27 changed files with 1473 additions and 1090 deletions

View File

@ -1,6 +1,8 @@
package eu.dnetlib.ariadneplus.elasticsearch;
import eu.dnetlib.ariadneplus.elasticsearch.model.*;
import eu.dnetlib.ariadneplus.elasticsearch.model.AriadnePlusEntry;
import eu.dnetlib.ariadneplus.elasticsearch.model.AriadneResource;
import eu.dnetlib.ariadneplus.elasticsearch.model.Spatial;
import eu.dnetlib.ariadneplus.reader.ResourceManager;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@ -12,14 +14,18 @@ import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.geo.builders.CoordinatesBuilder;
import org.elasticsearch.common.geo.builders.PolygonBuilder;
import org.elasticsearch.common.xcontent.XContentType;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
@ -58,26 +64,103 @@ public class BulkUpload {
try {
Object next = manager.next();
AriadneCatalogEntry ace = ((AriadneCatalogEntry) next);
AriadnePlusEntry ace = ((AriadnePlusEntry) next);
AriadneResource uri = new AriadneResource();
uri.setUri(ace.getTypeURI());
uri.setLabel(ace.getTypeLabel());
ace.setHas_type(uri);
if (isCollection) {
ace.setResourceType("collection");
if (ace.getSpatial()==null) {
ace.setSpatial(Arrays.asList(new Spatial()));
if (ace.getSpatial()!=null) {
ace.getSpatial()
.stream()
.filter(s -> Objects.nonNull(s.getWkt()))
.forEach(s -> {
s.setPolygon(s.getWkt());
});
}
// if (ace.getSpatial()==null) {
// ace.setSpatial(Arrays.asList(new Spatial()));
// }
}
else {
ace.setResourceType("dataset");
if (ace.getDigitalImage()!=null) {
ace.getDigitalImage()
.stream()
.filter(i -> i.getProviderUri()!=null)
.forEach(i -> {
i.setPrimary("true");
});
}
if (ace.getSpatial()!=null) {
ace.getSpatial()
.stream()
.filter(s -> Objects.nonNull(s.getLat()) && Objects.nonNull(s.getLon()))
.forEach(s -> {
double lat = Double.parseDouble(s.getLat());
double lon = Double.parseDouble(s.getLon());
org.elasticsearch.common.geo.GeoPoint geopoint = new org.elasticsearch.common.geo.GeoPoint(lat, lon);
s.setGeopoint(geopoint);
});
ace.getSpatial()
.stream()
.filter(s -> Objects.nonNull(s.getBoundingBoxMaxLat())
&& Objects.nonNull(s.getBoundingBoxMaxLon())
&& Objects.nonNull(s.getBoundingBoxMinLat())
&& Objects.nonNull(s.getBoundingBoxMinLon()))
.forEach(s -> {
double maxlat = Double.parseDouble(s.getBoundingBoxMaxLat());
double minlat = Double.parseDouble(s.getBoundingBoxMinLat());
double minlon = Double.parseDouble(s.getBoundingBoxMinLon());
double maxlon = Double.parseDouble(s.getBoundingBoxMaxLon());
CoordinatesBuilder coordinatesBuilder = new CoordinatesBuilder();
coordinatesBuilder.coordinate(minlon, maxlat);
coordinatesBuilder.coordinate(minlon, minlat);
coordinatesBuilder.coordinate(maxlon, minlat);
coordinatesBuilder.coordinate(maxlon, maxlat);
coordinatesBuilder.coordinate(minlon, maxlat);
PolygonBuilder polygonBuilder = new PolygonBuilder(coordinatesBuilder);
String wkt = polygonBuilder.toWKT();
s.setBoundingbox(wkt);
// Coordinate topLeft = new Coordinate(minlon, maxlat);
// Coordinate bottomRight = new Coordinate(maxlon, minlat);
// EnvelopeBuilder envelopeBuilder = new EnvelopeBuilder(topLeft, bottomRight);
// String wkt = envelopeBuilder.toWKT();
// s.setBoundingbox(wkt);
});
ace.getSpatial()
.stream()
.filter(s -> Objects.nonNull(s.getPolygonGeoPoints())&&s.getPolygonGeoPoints().size()>=4)
.forEach(s -> {
CoordinatesBuilder coordinatesBuilder = new CoordinatesBuilder();
s.getPolygonGeoPoints().forEach(p -> {
coordinatesBuilder.coordinate(
Double.parseDouble(p.getLon()),
Double.parseDouble(p.getLat()));
});
// PolygonBuilder polygonBuilder = new PolygonBuilder(coordinatesBuilder);
// String wkt = polygonBuilder.toWKT();
// log.debug("POLYGON "+wkt);
// s.setPolygon(wkt);
});
ace.getSpatial()
.stream()
.filter(s -> Objects.nonNull(s.getWkt()))
.forEach(s -> {
s.setPolygon(s.getWkt());
});
if (ace.getSpatial().size()==2) {
Spatial uniqueSpatial = new Spatial();
boolean uniquePlaceNameFound = ace.getSpatial().stream().filter(s -> s.getPlaceName()!=null).count()==1;
boolean uniqueLocationFound = ace.getSpatial().stream().filter(s -> s.getLocation()!=null).count()==1;
boolean uniqueLocationFound = ace.getSpatial().stream().filter(s -> s.getGeopoint()!=null).count()==1;
if (uniquePlaceNameFound&&uniqueLocationFound) {
ace.getSpatial().stream().filter(s -> s.getPlaceName()!=null).forEach(s -> {
uniqueSpatial.setPlaceName(s.getPlaceName());
});
ace.getSpatial().stream().filter(s -> s.getLocation()!=null).forEach(s -> {
uniqueSpatial.setLocation(s.getLocation());
ace.getSpatial().stream().filter(s -> s.getGeopoint()!=null).forEach(s -> {
uniqueSpatial.setGeopoint(s.getGeopoint());
});
ace.getSpatial().clear();
ace.setSpatial(Arrays.asList(uniqueSpatial));
@ -98,22 +181,23 @@ public class BulkUpload {
ace.getSpatial().clear();
ace.setSpatial(dedupSpatials);
if (ace.getSpatial().size()>1) {
ace.getSpatial().removeIf(s -> (s.getPlaceName()!=null&&s.getPlaceName().equals("Name not provided")&&Objects.isNull(s.getLocation())));
}
}
else {
ace.setSpatial(Arrays.asList(new Spatial()));
// TODO update following check according to new model definition
// if (ace.getSpatial().size()>1) {
// ace.getSpatial().removeIf(s -> (s.getPlaceName()!=null&&s.getPlaceName().equals("Name not provided")&&Objects.isNull(s.getLocation())));
// }
}
// else {
// ace.setSpatial(Arrays.asList(new Spatial()));
// }
}
if (ace.getTemporal()!=null) {
ace.getTemporal().stream()
.filter(t->t.getMatchingPeriodOName()!=null)
.forEach(t->{
t.setPeriodName(t.getMatchingPeriodOName());
});
}
// if (ace.getTemporal()!=null) {
// ace.getTemporal().stream()
// .filter(t->t.getMatchingPeriodOName()!=null)
// .forEach(t->{
// t.setPeriodName(t.getMatchingPeriodOName());
// });
// }
if (!isCollection) {
String uniqueIsPartOf = ace.getUniqueIsPartOf();
@ -124,41 +208,11 @@ public class BulkUpload {
ace.getContributor().clear();
ace.setContributor(ace.getCreator());
}
// Distribution distribution = new Distribution();
// AgentInfo distrPublisher = new AgentInfo();
// distrPublisher.setEmail("");
// distrPublisher.setName("");
// distrPublisher.setType("");
// distribution.setPublisher(Arrays.asList(distrPublisher));
// ace.setDistribution(Arrays.asList(distribution));
// ItemMetadataStructure ims = new ItemMetadataStructure();
// ace.setHasItemMetadataStructure(Arrays.asList(ims));
// MetadataRecord mr = new MetadataRecord();
// Dex dex = new Dex();
// mr.setConformsTo(Arrays.asList(dex));
// ace.setHasMetadataRecord(Arrays.asList(mr));
// if (!isCollection) {
// ace.setKeyword(Arrays.asList(new String("")));
// }
// AgentInfo sr = new AgentInfo();
// ace.setScientificResponsible(Arrays.asList(sr));
// AgentInfo tr = new AgentInfo();
// ace.setTechnicalResponsible(Arrays.asList(tr));
}
// AgentInfo testPublisher = new AgentInfo();
// testPublisher.setName("TEST");
// ace.getPublisher().add(testPublisher);
String[] splits = ace.getIdentifier().split("/");
if (ace.getAatSubjects() != null && ace.getDerivedSubject() != null) {
String aatSource = ace.getAatSubjects().get(0).getId();
ace.getDerivedSubject().forEach(d -> {
d.setSource(aatSource);
});
String [] aatSourceSplit = aatSource.split("/");
String aatSubjectId = aatSourceSplit[aatSourceSplit.length-1];
ace.getAatSubjects().forEach(s -> s.setId(aatSubjectId));
}
log.debug("JSON >>>> "+ace.toJson());
String idES = splits[splits.length-1];
request.add(new IndexRequest(elasticSearchIndexName).id(idES)
@ -171,6 +225,7 @@ public class BulkUpload {
// log.info("Indexing to ES completed with status: " + bulkResponse.status());
if (bulkResponse.hasFailures()) {
log.error("FailureMessage: " + bulkResponse.buildFailureMessage());
esResponseCode = -7;
}
}
else {
@ -208,9 +263,9 @@ public class BulkUpload {
}
String lat = "";
String lon = "";
if (!Objects.isNull(spatial.getLocation())) {
lat = Float.toString(spatial.getLocation().getLat());
lon = Float.toString(spatial.getLocation().getLon());
if (!Objects.isNull(spatial.getGeopoint())) {
lat = Double.toString(spatial.getGeopoint().getLat());
lon = Double.toString(spatial.getGeopoint().getLon());
}
String uniqueAttribute = (name) + (lat) + (lon);
return uniqueAttribute;

View File

@ -1,39 +0,0 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.*;
public class AatSubject {
private String id;
private String label;
private String lang;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getLang() {
return lang;
}
public void setLang(String lang) {
this.lang = lang;
}
public AatSubject() {
}
public static AatSubject fromJson(String json){
return new Gson().fromJson(json, AatSubject.class);
}
}

View File

@ -1,15 +1,13 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import java.util.Map;
public class AgentInfo {
private String email = new String("");
private String name = new String("");
private String phone = new String("");
private String type = new String("");
private String homepage = new String("");
private String institution = new String("");
private String name = new String("");
private String agentIdentifier = new String("");
public AgentInfo() {
@ -31,45 +29,31 @@ public class AgentInfo {
this.name = name;
}
public String getPhone() {
return phone;
public String getHomepage() {
return homepage;
}
public void setPhone(String phone) {
this.phone = phone;
public void setHomepage(String homepage) {
this.homepage = homepage;
}
public String getType() {
return type;
public String getInstitution() {
return institution;
}
public void setType(String type) {
this.type = type;
public void setInstitution(String institution) {
this.institution = institution;
}
public String getAgentIdentifier() {
return agentIdentifier;
}
public void setAgentIdentifier(String agentIdentifier) {
this.agentIdentifier = agentIdentifier;
}
public static AgentInfo fromJson(String json){
return new Gson().fromJson(json, AgentInfo.class);
}
public static AgentInfo fromRDFJson(JsonElement json){
AgentInfo pi = new AgentInfo();
for (Map.Entry<String, JsonElement> entry : json.getAsJsonObject().entrySet()){
switch (entry.getKey()){
case "https://www.ariadne-infrastructure.eu/property/name" :
pi.setName(entry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
break;
case "https://www.ariadne-infrastructure.eu/property/type":
pi.setType(entry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
break;
case "https://www.ariadne-infrastructure.eu/property/email":
pi.setEmail(entry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
break;
case "https://www.ariadne-infrastructure.eu/property/phone":
pi.setPhone(entry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
break;
}
}
return pi;
}
}

View File

@ -1,56 +0,0 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import java.util.HashMap;
import java.util.Map;
public class ArchaeologicalResourceType {
private long id = -1;
private String name;
private transient HashMap<String, Long> type =new HashMap<>();
public ArchaeologicalResourceType() {
type.put("Site/monument", new Long(10));
type.put("Fieldwork", new Long(11));
type.put("Fieldwork report", new Long(12));
type.put("Scientific analysis", new Long(13));
type.put("Date", new Long(14));
type.put("Artefact", new Long(15));
type.put("Fieldwork archive", new Long(16));
type.put("Inscription", new Long(17));
type.put("Burial", new Long(18));
type.put("Rock Art", new Long(19));
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
if (this.name==null) {
setId(-1);
}
if (type.containsKey(this.name)) {
setId(type.get(name).longValue());
}
else {
setId(-2);
}
}
public static ArchaeologicalResourceType fromJson(String json){
return new Gson().fromJson(json, ArchaeologicalResourceType.class);
}
}

View File

@ -1,393 +0,0 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import eu.dnetlib.ariadneplus.reader.utils.ESUtils;
import java.util.List;
public class AriadneCatalogEntry {
private List<AatSubject> aatSubjects;
private String accessPolicy;
private String accessRights;
private ArchaeologicalResourceType archaeologicalResourceType;
private List<AgentInfo> contributor;
private List<AgentInfo> creator;
private List<DerivedSubject> derivedSubject;
private String description;
private List <Distribution> distribution;
private List<AgentInfo> publisher;
private String title;
private List<ItemMetadataStructure> hasItemMetadataStructure;
private List<MetadataRecord> hasMetadataRecord;
private String identifier;
private List<String> isPartOf;
private transient String uniqueIsPartOf;
private String issued;
private List<String> keyword;
private String landingPage;
private String language;
private List<AgentInfo> legalResponsible;
private String modified;
private List<NativeSubject> nativeSubject;
private String originalId;
private List<AgentInfo> owner;
private String resourceType;
private String rdfType;
private List<AgentInfo> scientificResponsible;
private List<Spatial> spatial;
// private List<SpatialRegion> spatialRegion;
// private List<SpatialRegionPoint> spatialRegionPoint;
private List<AgentInfo> technicalResponsible;
private List<AriadneTemporal> temporal;
private String accrualPeriodicity;// = new String("");
private String audience;// IF PRESENT, MUST CONTAIN A VALUE !!
private String contactPoint;// = new String("");
private String extent;// IF PRESENT, MUST CONTAIN A VALUE !!
private String providerId;// = new String("");
private String packageId;// = new String("");
private String placeName;// = new String("");
private String postcode;// = new String("");
private String rdfAbout;// = new String("");
private String rights;// = new String("");
public List<AgentInfo> getContributor() {
return contributor;
}
public void setContributor(List<AgentInfo> contributor) {
this.contributor = contributor;
}
public List<AatSubject> getAatSubjects() {
return aatSubjects;
}
public void setAatSubjects(List<AatSubject> aatSubjects) {
this.aatSubjects = aatSubjects;
}
public String getAccessPolicy() {
return accessPolicy;
}
public void setAccessPolicy(String accessPolicy) {
this.accessPolicy = accessPolicy;
}
public String getAccessRights() {
return accessRights;
}
public void setAccessRights(String accessRights) {
this.accessRights = accessRights;
}
public ArchaeologicalResourceType getArchaeologicalResourceType() {
return archaeologicalResourceType;
}
public void setArchaeologicalResourceType(ArchaeologicalResourceType archaeologicalResourceType) {
this.archaeologicalResourceType = archaeologicalResourceType;
}
public String getContactPoint() {
return contactPoint;
}
public void setContactPoint(String contactPoint) {
this.contactPoint = contactPoint;
}
public List<AgentInfo> getCreator() {
return creator;
}
public void setCreator(List<AgentInfo> creator) {
this.creator = creator;
}
public List<DerivedSubject> getDerivedSubject() {
return derivedSubject;
}
public void setDerivedSubject(List<DerivedSubject> derivedSubject) {
this.derivedSubject = derivedSubject;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List<Distribution> getDistribution() {
return distribution;
}
public void setDistribution(List<Distribution> distribution) {
this.distribution = distribution;
}
public List<AgentInfo> getPublisher() {
return publisher;
}
public void setPublisher(List<AgentInfo> publisher) {
this.publisher = publisher;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getExtent() {
return extent;
}
public void setExtent(String extent) {
this.extent = extent;
}
public List<ItemMetadataStructure> getHasItemMetadataStructure() {
return hasItemMetadataStructure;
}
public void setHasItemMetadataStructure(List<ItemMetadataStructure> hasItemMetadataStructure) {
this.hasItemMetadataStructure = hasItemMetadataStructure;
}
public List<MetadataRecord> getHasMetadataRecord() {
return hasMetadataRecord;
}
public void setHasMetadataRecord(List<MetadataRecord> hasMetadataRecord) {
this.hasMetadataRecord = hasMetadataRecord;
}
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public List<String> getIsPartOf() {
return isPartOf;
}
public void setIsPartOf(List<String> isPartOf) {
this.isPartOf = isPartOf;
}
public String getIssued() {
return issued;
}
public void setIssued(String issued) {
this.issued = ESUtils.getESFormatDate(issued);
}
public List<String> getKeyword() {
return keyword;
}
public void setKeyword(List<String> keyword) {
this.keyword = keyword;
}
public String getLandingPage() {
return landingPage;
}
public void setLandingPage(String landingPage) {
this.landingPage = landingPage;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
if (language!=null && language.equals("eng")) {
this.language = "en";
}
else {
this.language = language;
}
}
public List<AgentInfo> getLegalResponsible() {
return legalResponsible;
}
public void setLegalResponsible(List<AgentInfo> legalResponsible) {
this.legalResponsible = legalResponsible;
}
public String getModified() {
return modified;
}
public void setModified(String modified) {
this.modified = ESUtils.getESFormatDate(modified);
}
public List<NativeSubject> getNativeSubject() {
return nativeSubject;
}
public void setNativeSubject(List<NativeSubject> nativeSubject) {
this.nativeSubject = nativeSubject;
}
public String getOriginalId() {
return originalId;
}
public void setOriginalId(String originalId) {
this.originalId = originalId;
}
public List<AgentInfo> getOwner() {
return owner;
}
public void setOwner(List<AgentInfo> owner) {
this.owner = owner;
}
public String getPackageId() {
return packageId;
}
public void setPackageId(String packageId) {
this.packageId = packageId;
}
public String getPlaceName() {
return placeName;
}
public void setPlaceName(String placeName) {
this.placeName = placeName;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public String getProviderId() {
return providerId;
}
public void setProviderId(String providerId) {
this.providerId = providerId;
}
public String getRdfAbout() {
return rdfAbout;
}
public void setRdfAbout(String rdfAbout) {
this.rdfAbout = rdfAbout;
}
public String getResourceType() {
return resourceType;
}
public void setResourceType(String resourceType) {
this.resourceType = resourceType;
}
public String getRights() {
return rights;
}
public void setRights(String rights) {
this.rights = rights;
}
public List<AgentInfo> getScientificResponsible() {
return scientificResponsible;
}
public void setScientificResponsible(List<AgentInfo> scientificResponsible) {
this.scientificResponsible = scientificResponsible;
}
public List<Spatial> getSpatial() {
return spatial;
}
public void setSpatial(List<Spatial> spatial) {
if (this.spatial==null) {
this.spatial = spatial;
}
else {
this.spatial.addAll(spatial);
}
}
public List<AgentInfo> getTechnicalResponsible() {
return technicalResponsible;
}
public void setTechnicalResponsible(List<AgentInfo> technicalResponsible) {
this.technicalResponsible = technicalResponsible;
}
public List<AriadneTemporal> getTemporal() {
return temporal;
}
public void setTemporal(List<AriadneTemporal> temporal) {
this.temporal = temporal;
}
public String getUniqueIsPartOf() {
return uniqueIsPartOf;
}
public void setUniqueIsPartOf(String uniqueIsPartOf) {
this.uniqueIsPartOf = uniqueIsPartOf;
}
public static AriadneCatalogEntry fromJson(String json){
return new Gson().fromJson(json, AriadneCatalogEntry.class);
}
public String toJson(){
return new Gson().toJson(this);
}
public void setAccrualPeriodicity(String accrualPeriodicity) {
this.accrualPeriodicity = accrualPeriodicity;
}
public void setAudience(String audience) {
this.audience = audience;
}
public String getRdfType() {
return rdfType;
}
public void setRdfType(String rdfType) {
this.rdfType = rdfType;
}
}

View File

@ -1,49 +1,32 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import java.util.Map;
public class AriadneGeoPoint {
private float lat;
private float lon;
private String lat;
private String lon;
public float getLat() {
public String getLat() {
return lat;
}
public void setLat(float lat) {
public void setLat(String lat) {
this.lat = lat;
}
public float getLon() {
public String getLon() {
return lon;
}
public void setLon(float lon) {
public void setLon(String lon) {
this.lon = lon;
}
public AriadneGeoPoint() {
}
public static AriadneGeoPoint fromJson (String json){
public static AriadneGeoPoint fromJson(String json){
return new Gson().fromJson(json, AriadneGeoPoint.class);
}
// public static AriadneGeoPoint fromRDFJson(JsonElement json){
// AriadneGeoPoint agp = new AriadneGeoPoint();
// for (Map.Entry<String, JsonElement> stringJsonElementEntry : json.getAsJsonObject().entrySet()) {
// switch (stringJsonElementEntry.getKey()){
// case "https://www.ariadne-infrastructure.eu/property/lat":
// agp.setLat(stringJsonElementEntry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
// break;
// case "https://www.ariadne-infrastructure.eu/property/lon":
// agp.setLon(stringJsonElementEntry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
// break;
// }
// }
// return agp;
// }
}

View File

@ -0,0 +1,314 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import eu.dnetlib.ariadneplus.reader.utils.ESUtils;
import java.util.List;
public class AriadnePlusEntry {
private List<DerivedSubject> derivedSubject;
private String accessPolicy;
private String accessRights;
private List<AriadneSubject> ariadneSubject;
private List<AgentInfo> contributor;
private List<AgentInfo> creator;
private Description description;
private String extent;
private String identifier;
private List<String> isPartOf;
private String issued;
private String landingPage;
private String language;
private String modified;
private List<NativeSubject> nativeSubject;
private String originalId;
private List<AgentInfo> owner;
private List<AgentInfo> publisher;
private List<AriadneResource> is_about;
private String resourceType;
private AriadneResource has_type;
private List<AgentInfo> responsible;
private List<Spatial> spatial;
private List<Temporal> temporal;
private String title;
private List<NativePeriod> nativePeriod;
private String wasCreated;
private List<DigitalImage> digitalImage;
private transient String uniqueIsPartOf;
private transient String typeURI;
private transient String typeLabel;
public List<AgentInfo> getContributor() {
return contributor;
}
public void setContributor(List<AgentInfo> contributor) {
this.contributor = contributor;
}
public String getAccessPolicy() {
return accessPolicy;
}
public void setAccessPolicy(String accessPolicy) {
this.accessPolicy = accessPolicy;
}
public String getAccessRights() {
return accessRights;
}
public void setAccessRights(String accessRights) {
this.accessRights = accessRights;
}
public List<AgentInfo> getCreator() {
return creator;
}
public void setCreator(List<AgentInfo> creator) {
this.creator = creator;
}
public List<DerivedSubject> getDerivedSubject() {
return derivedSubject;
}
public void setDerivedSubject(List<DerivedSubject> derivedSubject) {
this.derivedSubject = derivedSubject;
}
public List<AgentInfo> getPublisher() {
return publisher;
}
public void setPublisher(List<AgentInfo> publisher) {
this.publisher = publisher;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getExtent() {
return extent;
}
public void setExtent(String extent) {
this.extent = extent;
}
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
public List<String> getIsPartOf() {
return isPartOf;
}
public void setIsPartOf(List<String> isPartOf) {
this.isPartOf = isPartOf;
}
public String getIssued() {
return issued;
}
public void setIssued(String issued) {
this.issued = ESUtils.getESFormatDate(issued);
}
public String getLandingPage() {
return landingPage;
}
public void setLandingPage(String landingPage) {
this.landingPage = landingPage;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
if (language!=null && language.equals("eng")) {
this.language = "en";
}
else {
this.language = language;
}
}
public String getModified() {
return modified;
}
public void setModified(String modified) {
this.modified = ESUtils.getESFormatDate(modified);
}
public List<NativeSubject> getNativeSubject() {
return nativeSubject;
}
public void setNativeSubject(List<NativeSubject> nativeSubject) {
this.nativeSubject = nativeSubject;
}
public String getOriginalId() {
return originalId;
}
public void setOriginalId(String originalId) {
this.originalId = originalId;
}
public List<AgentInfo> getOwner() {
return owner;
}
public void setOwner(List<AgentInfo> owner) {
this.owner = owner;
}
public String getResourceType() {
return resourceType;
}
public void setResourceType(String resourceType) {
this.resourceType = resourceType;
}
public List<Spatial> getSpatial() {
return spatial;
}
public void setSpatial(List<Spatial> spatial) {
if (this.spatial==null) {
this.spatial = spatial;
}
else {
this.spatial.addAll(spatial);
}
}
public List<Temporal> getTemporal() {
return temporal;
}
public void setTemporal(List<Temporal> temporal) {
this.temporal = temporal;
}
public void setDescription(Description description) {
this.description = description;
}
public void setHas_type(AriadneResource has_type) {
this.has_type = has_type;
}
public void setResponsible(List<AgentInfo> responsible) {
this.responsible = responsible;
}
public void setWasCreated(String wasCreated) {
this.wasCreated = ESUtils.getESFormatDate(wasCreated);
}
public String getUniqueIsPartOf() {
return uniqueIsPartOf;
}
public void setUniqueIsPartOf(String uniqueIsPartOf) {
this.uniqueIsPartOf = uniqueIsPartOf;
}
public static AriadnePlusEntry fromJson(String json){
return new Gson().fromJson(json, AriadnePlusEntry.class);
}
public Description getDescription() {
return description;
}
public AriadneResource getHas_type() {
return has_type;
}
public List<AgentInfo> getResponsible() {
return responsible;
}
public String getWasCreated() {
return wasCreated;
}
public List<AriadneSubject> getAriadneSubject() {
return ariadneSubject;
}
public void setAriadneSubject(List<AriadneSubject> ariadneSubject) {
this.ariadneSubject = ariadneSubject;
}
public List<NativePeriod> getNativePeriod() {
return nativePeriod;
}
public void setNativePeriod(List<NativePeriod> nativePeriod) {
this.nativePeriod = nativePeriod;
}
public String getTypeURI() {
return typeURI;
}
public void setTypeURI(String typeURI) {
this.typeURI = typeURI;
}
public String getTypeLabel() {
return typeLabel;
}
public void setTypeLabel(String typeLabel) {
this.typeLabel = typeLabel;
}
public List<AriadneResource> getIs_about() {
return is_about;
}
public void setIs_about(List<AriadneResource> is_about) {
this.is_about = is_about;
}
public List<DigitalImage> getDigitalImage() {
return digitalImage;
}
public void setDigitalImage(List<DigitalImage> digitalImage) {
this.digitalImage = digitalImage;
}
public String toJson(){
return new Gson().toJson(this);
}
public void setDescription(String description) {
Description descr = new Description();
descr.setText(description);
this.description = descr;
}
}

View File

@ -0,0 +1,31 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
public class AriadneResource {
private String label;
private String uri;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public AriadneResource() {
}
public static AriadneResource fromJson(String json){
return new Gson().fromJson(json, AriadneResource.class);
}
}

View File

@ -0,0 +1,36 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import java.util.HashMap;
public class AriadneSubject {
private String prefLabel;
public String getPrefLabel() {
return prefLabel;
}
public void setPrefLabel(String prefLabel) {
this.prefLabel = prefLabel;
}
private transient HashMap<String, Long> typeValues =new HashMap<>();
public AriadneSubject() {
typeValues.put("Site/monument", new Long(10));
typeValues.put("Fieldwork", new Long(11));
typeValues.put("Fieldwork report", new Long(12));
typeValues.put("Scientific analysis", new Long(13));
typeValues.put("Date", new Long(14));
typeValues.put("Artefact", new Long(15));
typeValues.put("Fieldwork archive", new Long(16));
typeValues.put("Inscription", new Long(17));
typeValues.put("Burial", new Long(18));
typeValues.put("Rock Art", new Long(19));
}
public static AriadneSubject fromJson(String json){
return new Gson().fromJson(json, AriadneSubject.class);
}
}

View File

@ -1,84 +0,0 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import java.util.Map;
public class AriadneTemporal {
private String from;
private String periodName;
private String until;
private String uri;
private transient String matchingPeriodOName;
public static AriadneTemporal fromRDFJson(JsonElement json) {
AriadneTemporal at = new AriadneTemporal();
for (Map.Entry<String, JsonElement> entry : json.getAsJsonObject().entrySet()){
switch (entry.getKey()){
case "https://www.ariadne-infrastructure.eu/property/from" :
at.setFrom(entry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
break;
case "https://www.ariadne-infrastructure.eu/property/periodName":
at.setPeriodName(entry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
break;
case "https://www.ariadne-infrastructure.eu/property/until":
at.setUntil(entry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
break;
case "https://www.ariadne-infrastructure.eu/property/uri":
at.setUri(entry.getValue().getAsJsonArray().get(0).getAsJsonObject().get("value").getAsString());
break;
}
}
return at;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getPeriodName() {
return periodName;
}
public void setPeriodName(String periodName) {
this.periodName = periodName;
}
public String getUntil() {
return until;
}
public void setUntil(String until) {
this.until = until;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public AriadneTemporal() {
}
public static AriadneTemporal fromJson(String json){
return new Gson().fromJson(json, AriadneTemporal.class);
}
public String getMatchingPeriodOName() {
return matchingPeriodOName;
}
public void setMatchingPeriodOName(String matchingPeriodOName) {
this.matchingPeriodOName = matchingPeriodOName;
}
}

View File

@ -4,7 +4,9 @@ import com.google.gson.Gson;
public class DerivedSubject {
private String prefLabel;
private String source;
private String source;
private String id;
private String lang;
public String getPrefLabel() {
return prefLabel;
@ -22,6 +24,22 @@ public class DerivedSubject {
this.source = source;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLang() {
return lang;
}
public void setLang(String lang) {
this.lang = lang;
}
public DerivedSubject() {
}

View File

@ -0,0 +1,31 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
public class Description {
private String text;
private String language;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public Description() {
}
public static Description fromJson(String json){
return new Gson().fromJson(json, Description.class);
}
}

View File

@ -1,31 +0,0 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
public class Dex {
private String characterSet = new String("");
private String description = new String("");
public String getCharacterSet() {
return characterSet;
}
public void setCharacterSet(String characterSet) {
this.characterSet = characterSet;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Dex() {
}
public static Dex fromJson(String json){
return new Gson().fromJson(json,Dex.class);
}
}

View File

@ -0,0 +1,41 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
public class DigitalImage {
private String ariadneUri;
private String primary;
private String providerUri;
public String getAriadneUri() {
return ariadneUri;
}
public void setAriadneUri(String ariadneUri) {
this.ariadneUri = ariadneUri;
}
public String getPrimary() {
return primary;
}
public void setPrimary(String primary) {
this.primary = primary;
}
public String getProviderUri() {
return providerUri;
}
public void setProviderUri(String providerUri) {
this.providerUri = providerUri;
}
public DigitalImage() {
}
public static DigitalImage fromJson(String json){
return new Gson().fromJson(json, DigitalImage.class);
}
}

View File

@ -1,69 +0,0 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import java.util.List;
public class Distribution {
private String accessURL = new String("");
private String description = new String("");
private String issued = new String("9999");
private String modified = new String("9999");
private List<AgentInfo> publisher;
private String title = new String("");
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List<AgentInfo> getPublisher() {
return publisher;
}
public void setPublisher(List<AgentInfo> publisher) {
this.publisher = publisher;
}
public String getAccessURL() {
return accessURL;
}
public void setAccessURL(String accessURL) {
this.accessURL = accessURL;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getIssued() {
return issued;
}
public void setIssued(String issued) {
this.issued = issued;
}
public String getModified() {
return modified;
}
public void setModified(String modified) {
this.modified = modified;
}
public Distribution() {
}
public static Distribution fromJson(String json){
return new Gson().fromJson(json,Distribution.class);
}
}

View File

@ -1,22 +0,0 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
public class ItemMetadataStructure {
private String characterSet = new String("");
public String getCharacterSet() {
return characterSet;
}
public void setCharacterSet(String characterSet) {
this.characterSet = characterSet;
}
public ItemMetadataStructure() {
}
private static ItemMetadataStructure fromJson(String json){
return new Gson().fromJson(json, ItemMetadataStructure.class);
}
}

View File

@ -1,33 +0,0 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import java.util.List;
public class MetadataRecord {
private List<Dex> conformsTo;
private String xmlDoc = new String("");
public List<Dex> getConformsTo() {
return conformsTo;
}
public void setConformsTo(List<Dex> conformsTo) {
this.conformsTo = conformsTo;
}
public String getXmlDoc() {
return xmlDoc;
}
public void setXmlDoc(String xmlDoc) {
this.xmlDoc = xmlDoc;
}
public MetadataRecord() {
}
public static MetadataRecord fromJson(String json){
return new Gson().fromJson(json, MetadataRecord.class);
}
}

View File

@ -0,0 +1,41 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
public class NativePeriod {
private String from;
private String periodName;
private String until;
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getPeriodName() {
return periodName;
}
public void setPeriodName(String periodName) {
this.periodName = periodName;
}
public String getUntil() {
return until;
}
public void setUntil(String until) {
this.until = until;
}
public NativePeriod() {
}
public static NativePeriod fromJson(String json){
return new Gson().fromJson(json, NativePeriod.class);
}
}

View File

@ -9,8 +9,6 @@ public class NativeSubject {
private String prefLabel;
private String rdfAbout;
public String getPrefLabel() {
return prefLabel;
}

View File

@ -1,24 +1,29 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import org.apache.lucene.spatial3d.geom.GeoShape;
import org.elasticsearch.common.geo.GeoPoint;
import java.util.Map;
import java.util.List;
public class Spatial {
private String address;// = new String("");
private String boundingBoxMaxLat;
private String boundingBoxMaxLon;
private String boundingBoxMinLat;
private String boundingBoxMinLon;
private String coordinateSystem = new String("");
private String country;// = new String("");
private AriadneGeoPoint location;
private String placeName;
private String lat;
private String lon;
private String postcode = new String("");
private String address;
private GeoPoint geopoint;
private String boundingbox;
private String polygon;
private String spatialPrecision;
private transient String coordinatePrecision;
private transient String boundingBoxMaxLat;
private transient String boundingBoxMaxLon;
private transient String boundingBoxMinLat;
private transient String boundingBoxMinLon;
private transient String lat;
private transient String lon;
private transient List<AriadneGeoPoint> polygonGeoPoints;
private transient String wkt;
public String getAddress() {
return address;
@ -60,30 +65,6 @@ public class Spatial {
this.boundingBoxMinLon = boundingBoxMinLon;
}
public String getCoordinateSystem() {
return coordinateSystem;
}
public void setCoordinateSystem(String coordinateSystem) {
this.coordinateSystem = coordinateSystem;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public AriadneGeoPoint getLocation() {
return location;
}
public void setLocation(AriadneGeoPoint location) {
this.location = location;
}
public String getPlaceName() {
return placeName;
}
@ -92,22 +73,76 @@ public class Spatial {
this.placeName = placeName;
}
public String getSpatialPrecision() {
return spatialPrecision;
}
public void setSpatialPrecision(String spatialPrecision) {
this.spatialPrecision = spatialPrecision;
}
public String getCoordinatePrecision() {
return coordinatePrecision;
}
public void setCoordinatePrecision(String coordinatePrecision) {
this.coordinatePrecision = coordinatePrecision;
}
public String getLat() {
return lat;
}
public void setLat(String lat) {
if (this.getLocation()==null) {
this.setLocation(new AriadneGeoPoint());
}
if (lat!=null) {
this.getLocation().setLat(Float.parseFloat(lat));
}
this.lat = lat;
}
public String getLon() {
return lon;
}
public void setLon(String lon) {
if (this.getLocation()==null) {
this.setLocation(new AriadneGeoPoint());
}
if (lon!=null) {
this.getLocation().setLon(Float.parseFloat(lon));
}
this.lon = lon;
}
public String getBoundingbox() {
return boundingbox;
}
public void setBoundingbox(String boundingbox) {
this.boundingbox = boundingbox;
}
public GeoPoint getGeopoint() {
return geopoint;
}
public String getPolygon() {
return polygon;
}
public void setPolygon(String polygon) {
this.polygon = polygon;
}
public void setGeopoint(GeoPoint geopoint) {
this.geopoint = geopoint;
}
public List<AriadneGeoPoint> getPolygonGeoPoints() {
return polygonGeoPoints;
}
public void setPolygonGeoPoints(List<AriadneGeoPoint> polygonGeoPoints) {
this.polygonGeoPoints = polygonGeoPoints;
}
public String getWkt() {
return wkt;
}
public void setWkt(String wkt) {
this.wkt = wkt;
}
public Spatial() {

View File

@ -0,0 +1,52 @@
package eu.dnetlib.ariadneplus.elasticsearch.model;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import java.util.Map;
public class Temporal {
private String from;
private String periodName;
private String until;
private String uri;
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getPeriodName() {
return periodName;
}
public void setPeriodName(String periodName) {
this.periodName = periodName;
}
public String getUntil() {
return until;
}
public void setUntil(String until) {
this.until = until;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public Temporal() {
}
public static Temporal fromJson(String json){
return new Gson().fromJson(json, Temporal.class);
}
}

View File

@ -90,7 +90,7 @@ public class ResourceManager {
class_name = (String)tmp.get("value");
//TODO: Use rdf:type instead of these values that are added statically by the CONSTRUCT queries (that need to be changed as well to include the rdf:type
if (class_name.equals("Record") || class_name.equals("Collection")) {
class_name = "AriadneCatalogEntry";
class_name = "AriadnePlusEntry";
}
}

View File

@ -5,12 +5,12 @@ server.port=8281
graphdb.serverUrl=http://graphdb-test.ariadne.d4science.org:7200
graphdb.writer.user=writer
graphdb.writer.pwd=pwd
graphdb.writer.pwd=***
graphdb.repository=ariadneplus-ts01
graphdb.baseURI=https://ariadne-infrastructure.eu/
elasticsearch.hostname=elastic-test.ariadne.d4science.org
elasticsearch.indexname=catalog_test
elasticsearch.indexname=ariadneplus
catalog.entry.path=$[*][?(@['https://www.ariadne-infrastructure.eu/property/rdfType'][0]['value']=='Record')]
catalog.entry.collection.path=$[*][?(@['https://www.ariadne-infrastructure.eu/property/rdfType'][0]['value']=='Collection')]
@ -18,7 +18,52 @@ general.classpath=eu.dnetlib.ariadneplus.elasticsearch.model.
type.path=https://www.ariadne-infrastructure.eu/property/rdfType
exclude.predicates=["https://www.ariadne-infrastructure.eu/property/resourceType", "http://www.w3.org/1999/02/22-rdf-syntax-ns#type", "https://www.ariadne-infrastructure.eu/property/rdfType"]
class.map.specifications={\
"AriadneTemporal": {\
"DigitalImage": {\
"class_type": "prototype",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/primaryVisualComponent": {\
"class_field": "ProviderUri",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/visualComponent": {\
"class_field": "AriadneUri",\
"substring": "no",\
"element_type": "java.lang.String"\
}\
}\
},\
"AriadneResource": {\
"class_type": "prototype",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/aboutURILabel": {\
"class_field": "Label",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/aboutURI": {\
"class_field": "Uri",\
"substring": "no",\
"element_type": "java.lang.String"\
}\
}\
},\
"AriadneGeoPoint": {\
"class_type": "prototype",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/lat": {\
"class_field": "Lat",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/lon": {\
"class_field": "Lon",\
"substring": "no",\
"element_type": "java.lang.String"\
}\
}\
},\
"Temporal": {\
"class_type": "prototype",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/from": {\
@ -26,13 +71,8 @@ class.map.specifications={\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/nativePeriodName": {\
"class_field": "PeriodName",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/periodOName": {\
"class_field": "MatchingPeriodOName",\
"class_field": "PeriodName",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
@ -48,16 +88,21 @@ class.map.specifications={\
}\
}\
},\
"AriadneGeoPoint": {\
"class_type": "unique",\
"NativePeriod": {\
"class_type": "prototype",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/lat": {\
"class_field": "Lat",\
"https://www.ariadne-infrastructure.eu/property/nativeFrom": {\
"class_field": "From",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/lon": {\
"class_field": "Lon",\
"https://www.ariadne-infrastructure.eu/property/nativePeriodName": {\
"class_field": "PeriodName",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/nativeUntil": {\
"class_field": "Until",\
"substring": "no",\
"element_type": "java.lang.String"\
}\
@ -70,21 +115,6 @@ class.map.specifications={\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/spatialCoordinateSystem": {\
"class_field": "CoordinateSystem",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/country": {\
"class_field": "Country",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/location": {\
"class_field": "Location",\
"external_reference": "AriadneGeoPoint",\
"substring": "no"\
},\
"https://www.ariadne-infrastructure.eu/property/lat": {\
"class_field": "Lat",\
"substring": "no",\
@ -119,18 +149,25 @@ class.map.specifications={\
"class_field": "BoundingBoxMinLon",\
"substring": "no",\
"element_type": "java.lang.String"\
}}\
},\
"ArchaeologicalResourceType": {\
"class_type": "unique",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/id": {\
"class_field": "Id",\
"https://www.ariadne-infrastructure.eu/property/geoPoint": {\
"class_field": "PolygonGeoPoints",\
"substring": "no",\
"element_type": "java.lang.String",\
"external_reference": "AriadneGeoPoint"\
},\
"https://www.ariadne-infrastructure.eu/property/wkt": {\
"class_field": "Wkt",\
"substring": "no",\
"element_type": "java.lang.String"\
}\
}\
},\
"AriadneSubject": {\
"class_type": "prototype",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/name": {\
"class_field": "Name",\
"class_field": "PrefLabel",\
"substring": "no",\
"element_type": "java.lang.String"\
}\
@ -154,8 +191,18 @@ class.map.specifications={\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/phone": {\
"class_field": "Phone",\
"https://www.ariadne-infrastructure.eu/property/homepage": {\
"class_field": "Homepage",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/institution": {\
"class_field": "Institution",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/agentIdentifier": {\
"class_field": "AgentIdentifier",\
"substring": "no",\
"element_type": "java.lang.String"\
}\
@ -188,19 +235,14 @@ class.map.specifications={\
"class_field": "Source",\
"substring": "yes",\
"element_type": "java.lang.String"\
}\
}\
},\
"AatSubject": {\
"class_type": "prototype",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/id": {\
"class_field": "Id",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/label": {\
"class_field": "Label",\
"class_field": "PrefLabel",\
"substring": "yes",\
"element_type": "java.lang.String"\
},\
@ -211,9 +253,19 @@ class.map.specifications={\
}\
}\
},\
"AriadneCatalogEntry": {\
"AriadnePlusEntry": {\
"class_type": "unique",\
"mappings": {\
"https://www.ariadne-infrastructure.eu/property/typeURI": {\
"class_field": "TypeURI",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/typeLabel": {\
"class_field": "TypeLabel",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/accessPolicy": {\
"class_field": "AccessPolicy",\
"substring": "no",\
@ -230,8 +282,8 @@ class.map.specifications={\
"substring": "no"\
},\
"https://www.ariadne-infrastructure.eu/property/archeologicalResourceType": {\
"class_field": "ArchaeologicalResourceType",\
"external_reference": "ArchaeologicalResourceType",\
"class_field": "AriadneSubject",\
"external_reference": "AriadneSubject",\
"substring": "no"\
},\
"https://www.ariadne-infrastructure.eu/property/issued": {\
@ -239,6 +291,11 @@ class.map.specifications={\
"element_type": "java.lang.String",\
"substring": "no"\
},\
"https://www.ariadne-infrastructure.eu/property/created": {\
"class_field": "WasCreated",\
"element_type": "java.lang.String",\
"substring": "no"\
},\
"https://www.ariadne-infrastructure.eu/property/resourceType": {\
"class_field": "ResourceType",\
"element_type": "java.lang.String",\
@ -259,11 +316,6 @@ class.map.specifications={\
"substring": "no",\
"external_reference": "DerivedSubject"\
},\
"https://www.ariadne-infrastructure.eu/property/aatSubjects": {\
"class_field": "AatSubjects",\
"substring": "no",\
"external_reference": "AatSubject"\
},\
"https://www.ariadne-infrastructure.eu/property/spatialRegion": {\
"class_field": "Spatial",\
"substring": "no",\
@ -279,16 +331,21 @@ class.map.specifications={\
"substring": "no",\
"external_reference": "Spatial"\
},\
"https://www.ariadne-infrastructure.eu/property/spatialRegionPolygon": {\
"class_field": "Spatial",\
"substring": "no",\
"external_reference": "Spatial"\
},\
"https://www.ariadne-infrastructure.eu/property/spatialRegionWKTPolygon": {\
"class_field": "Spatial",\
"substring": "no",\
"external_reference": "Spatial"\
},\
"https://www.ariadne-infrastructure.eu/property/landingPage": {\
"class_field": "LandingPage",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/placeName": {\
"class_field": "PlaceName",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/title": {\
"class_field": "Title",\
"substring": "no",\
@ -315,7 +372,7 @@ class.map.specifications={\
"external_reference": "AgentInfo"\
},\
"https://www.ariadne-infrastructure.eu/property/legalResponsible": {\
"class_field": "LegalResponsible",\
"class_field": "Responsible",\
"substring": "no",\
"external_reference": "AgentInfo"\
},\
@ -332,7 +389,12 @@ class.map.specifications={\
"https://www.ariadne-infrastructure.eu/property/temporal": {\
"class_field": "Temporal",\
"substring": "no",\
"external_reference": "AriadneTemporal"\
"external_reference": "Temporal"\
},\
"https://www.ariadne-infrastructure.eu/property/temporalNative": {\
"class_field": "NativePeriod",\
"substring": "no",\
"external_reference": "NativePeriod"\
},\
"https://www.ariadne-infrastructure.eu/property/language": {\
"class_field": "Language",\
@ -343,7 +405,18 @@ class.map.specifications={\
"class_field": "UniqueIsPartOf",\
"substring": "no",\
"element_type": "java.lang.String"\
},\
"https://www.ariadne-infrastructure.eu/property/about": {\
"class_field": "Is_about",\
"substring": "no",\
"external_reference": "AriadneResource"\
},\
"https://www.ariadne-infrastructure.eu/property/image": {\
"class_field": "DigitalImage",\
"substring": "no",\
"external_reference": "DigitalImage"\
}\
}\
}\
}
}

View File

@ -12,28 +12,43 @@ CONSTRUCT {
%record aoprop:originalId ?originalId .
%record aoprop:issued ?issued .
%record aoprop:modified ?modified .
%record aoprop:created ?created .
%record aoprop:partOf ?partOf .
%record aoprop:creator ?creator .
?creator aoprop:name ?creatorName .
?creator aoprop:email ?creatorEmail .
?creator aoprop:homepage ?creatorHomepage .
?creator aoprop:institution ?creatorInstitution .
?creator aoprop:agentIdentifier ?creator .
%record aoprop:contributor ?contributor .
?contributor aoprop:name ?contributorName .
?contributor aoprop:email ?contributorEmail .
?contributor aoprop:homepage ?contributorHomepage .
?contributor aoprop:institution ?contributorInstitution .
?contributor aoprop:agentIdentifier ?contributor .
%record aoprop:legalResponsible ?legalResponsible .
?legalResponsible aoprop:name ?legalResponsibleName .
?legalResponsible aoprop:email ?legalResponsibleEmail .
?legalResponsible aoprop:homepage ?legalResponsibleHomepage .
?legalResponsible aoprop:institution ?legalResponsibleInstitution .
?legalResponsible aoprop:agentIdentifier ?legalResponsible .
%record aoprop:owner ?owner .
?owner aoprop:name ?ownerName .
?owner aoprop:email ?ownerEmail .
?owner aoprop:homepage ?ownerHomepage .
?owner aoprop:institution ?ownerInstitution .
?owner aoprop:agentIdentifier ?owner .
%record aoprop:publisher ?publisher .
?publisher aoprop:name ?publisherName .
?publisher aoprop:email ?publisherEmail .
?publisher aoprop:homepage ?publisherHomepage .
?publisher aoprop:institution ?publisherInstitution .
?publisher aoprop:agentIdentifier ?publisher .
%record aoprop:accessPolicy ?accessPolicy .
%record aoprop:accessRights ?accessRights .
%record aoprop:landingPage ?landingPage .
%record aoprop:spatialRegion ?spatialRegion .
?spatialRegion aoprop:placeName ?spatialPlaceName .
?spatialRegion aoprop:spatialCoordinateSystem ?spatialCoordinateSystem .
%record aoprop:spatialRegionPoint ?spatialRegionPoint .
?spatialRegionPoint aoprop:lat ?spatialLocationLat .
?spatialRegionPoint aoprop:lon ?spatialLocationLon .
@ -42,18 +57,25 @@ CONSTRUCT {
?spatialRegionBox aoprop:boxMaxLon ?spatialLocationBBMaxLon .
?spatialRegionBox aoprop:boxMinLat ?spatialLocationBBMinLat .
?spatialRegionBox aoprop:boxMinLon ?spatialLocationBBMinLon .
%record aoprop:spatialRegionWKTPolygon ?spatialRegionWKTPolygon .
?spatialRegionWKTPolygon aoprop:wkt ?wkt .
%record aoprop:temporal ?temporal .
?temporal aoprop:periodOName ?temporalPeriodName .
?temporal aoprop:from ?temporalFrom .
?temporal aoprop:until ?temporalUntil .
?temporal aoprop:uri ?temporal .
%record aoprop:temporal ?temporalNative .
%record aoprop:temporalNative ?temporalNative .
?temporalNative aoprop:nativePeriodName ?temporalNativePeriodName .
?temporalNative aoprop:from ?temporalNativeFrom .
?temporalNative aoprop:until ?temporalNativeUntil .
?temporalNative aoprop:nativeFrom ?temporalNativeFrom .
?temporalNative aoprop:nativeUntil ?temporalNativeUntil .
%record aoprop:archeologicalResourceType ?archeologicalResourceType .
?archeologicalResourceType aoprop:name ?archeologicalResourceTypeName .
%record aoprop:resourceType ?resourceType .
%record aoprop:typeURI ?typeURI .
%record aoprop:typeLabel ?typeLabel .
%record aoprop:about ?aboutURI .
?aboutURI aoprop:aboutURI ?aboutURI .
?aboutURI aoprop:aboutURILabel ?aboutLabel .
%record aoprop:nativeSubject ?nativeSubject .
?nativeSubject aoprop:prefLabel ?nativeSubjectPrefLabel .
?nativeSubject aoprop:rdfAbout ?nativeSubject .
@ -79,6 +101,12 @@ where {
?creator aocat:has_name ?creatorName .
%record aocat:has_title ?title .
%record aocat:has_type / skos:prefLabel ?resourceType .
%record aocat:has_type ?typeURI .
?typeURI skos:prefLabel ?typeLabel .
optional {
%record aocat:is_about ?aboutURI .
?aboutURI rdfs:label ?aboutLabel .
}
optional {
%record aocat:has_native_subject ?nativeSubject .
?nativeSubject skos:prefLabel ?nativeSubjectPrefLabel .
@ -112,8 +140,7 @@ where {
optional {
graph <https://ariadne-infrastructure.eu/api_________::ariadne_plus::%datasource::%collectionId> {
%record aocat:has_temporal_coverage ?temporalNative .
?temporalNative aocat:has_native_period ?p .
?p skos:prefLabel | rdfs:label ?temporalNativePeriodName .
?temporalNative aocat:has_native_period / skos:prefLabel ?temporalNativePeriodName .
optional {
?temporalNative aocat:from ?temporalNativeFrom .
?temporalNative aocat:until ?temporalNativeUntil .
@ -123,14 +150,13 @@ where {
}
}
{
select *
where {
graph <https://ariadne-infrastructure.eu/api_________::ariadne_plus::%datasource::periodoplus> {
optional {
%record aocat:has_temporal_coverage ?temporal .
optional {
graph <https://ariadne-infrastructure.eu/api_________::ariadne_plus::%datasource::%collectionId> {
%record aocat:has_temporal_coverage ?temporal .
}
graph <https://ariadne-infrastructure.eu/ariadneplus::%datasource::periodoplus> {
?temporal aocat:has_period ?label .
graph <https://ariadne-infrastructure.eu/api_________::ariadne_plus::%datasource::periodo> {
graph <https://ariadne-infrastructure.eu/ariadneplus::%datasource::periodo> {
?label skos:prefLabel ?temporalPeriodName .
}
optional {
@ -139,8 +165,6 @@ where {
}
}
}
}
}
graph <https://ariadne-infrastructure.eu/api_________::ariadne_plus::%datasource::%collectionId> {
{
@ -159,18 +183,45 @@ where {
%record aocat:has_access_rights ?accessRights .
%record aocat:has_ARIADNE_subject ?archeologicalResourceType .
?archeologicalResourceType skos:prefLabel ?archeologicalResourceTypeName .
optional {
%record aocat:was_created_on ?created .
}
optional {
?contributor aocat:has_email ?contributorEmail .
}
optional {
?contributor aocat:has_homepage ?contributorHomepage .
}
optional {
?contributor aocat:has_institution ?contributorInstitution .
}
optional {
?legalResponsible aocat:has_email ?legalResponsibleEmail .
}
optional {
?legalResponsible aocat:has_homepage ?legalResponsibleHomepage .
}
optional {
?legalResponsible aocat:has_institution ?legalResponsibleInstitution .
}
optional {
?owner aocat:has_email ?ownerEmail .
}
optional {
?owner aocat:has_homepage ?ownerHomepage .
}
optional {
?owner aocat:has_institution ?ownerInstitution .
}
optional {
?publisher aocat:has_email ?publisherEmail .
}
optional {
?publisher aocat:has_homepage ?publisherHomepage .
}
optional {
?publisher aocat:has_institution ?publisherInstitution .
}
}
}
}
@ -183,10 +234,6 @@ where {
%record aocat:has_spatial_coverage ?spatialRegion .
?spatialRegion aocat:has_place_name ?spatialPlaceName .
}
optional {
%record aocat:has_spatial_coverage ?spatialRegion .
?spatialRegion aocat:has_coordinate_system ?spatialCoordinateSystem .
}
optional {
%record aocat:has_spatial_coverage ?spatialRegionPoint .
?spatialRegionPoint aocat:has_latitude ?spatialLocationLat ;
@ -199,6 +246,11 @@ where {
aocat:has_bounding_box_min_lat ?spatialLocationBBMinLat ;
aocat:has_bounding_box_min_lon ?spatialLocationBBMinLon ;
}
optional {
%record aocat:has_spatial_coverage ?spatialRegionWKTPolygon .
?spatialRegionWKTPolygon rdf:type aocat:AO_Spatial_Region_Polygon .
?spatialRegionWKTPolygon aocat:has_polygonal_representation ?wkt .
}
}
}
}

View File

@ -12,28 +12,43 @@ CONSTRUCT {
%record aoprop:originalId ?originalId .
%record aoprop:issued ?issued .
%record aoprop:modified ?modified .
%record aoprop:created ?created .
%record aoprop:partOf ?partOf .
%record aoprop:creator ?creator .
?creator aoprop:name ?creatorName .
?creator aoprop:email ?creatorEmail .
?creator aoprop:homepage ?creatorHomepage .
?creator aoprop:institution ?creatorInstitution .
?creator aoprop:agentIdentifier ?creator .
%record aoprop:contributor ?contributor .
?contributor aoprop:name ?contributorName .
?contributor aoprop:email ?contributorEmail .
?contributor aoprop:homepage ?contributorHomepage .
?contributor aoprop:institution ?contributorInstitution .
?contributor aoprop:agentIdentifier ?contributor .
%record aoprop:legalResponsible ?legalResponsible .
?legalResponsible aoprop:name ?legalResponsibleName .
?legalResponsible aoprop:email ?legalResponsibleEmail .
?legalResponsible aoprop:homepage ?legalResponsibleHomepage .
?legalResponsible aoprop:institution ?legalResponsibleInstitution .
?legalResponsible aoprop:agentIdentifier ?legalResponsible .
%record aoprop:owner ?owner .
?owner aoprop:name ?ownerName .
?owner aoprop:email ?ownerEmail .
?owner aoprop:homepage ?ownerHomepage .
?owner aoprop:institution ?ownerInstitution .
?owner aoprop:agentIdentifier ?owner .
%record aoprop:publisher ?publisher .
?publisher aoprop:name ?publisherName .
?publisher aoprop:email ?publisherEmail .
?publisher aoprop:homepage ?publisherHomepage .
?publisher aoprop:institution ?publisherInstitution .
?publisher aoprop:agentIdentifier ?publisher .
%record aoprop:accessPolicy ?accessPolicy .
%record aoprop:accessRights ?accessRights .
%record aoprop:landingPage ?landingPage .
%record aoprop:spatialRegion ?spatialRegion .
?spatialRegion aoprop:placeName ?spatialPlaceName .
?spatialRegion aoprop:spatialCoordinateSystem ?spatialCoordinateSystem .
%record aoprop:spatialRegionPoint ?spatialRegionPoint .
?spatialRegionPoint aoprop:lat ?spatialLocationLat .
?spatialRegionPoint aoprop:lon ?spatialLocationLon .
@ -42,18 +57,29 @@ CONSTRUCT {
?spatialRegionBox aoprop:boxMaxLon ?spatialLocationBBMaxLon .
?spatialRegionBox aoprop:boxMinLat ?spatialLocationBBMinLat .
?spatialRegionBox aoprop:boxMinLon ?spatialLocationBBMinLon .
%record aoprop:spatialRegionPolygon ?spatialRegionPolygon .
?spatialRegionPolygon aoprop:geoPoint ?geoPoint .
?geoPoint aoprop:lat ?lat .
?geoPoint aoprop:lon ?lon .
%record aoprop:spatialRegionWKTPolygon ?spatialRegionWKTPolygon .
?spatialRegionWKTPolygon aoprop:wkt ?wkt .
%record aoprop:temporal ?temporal .
?temporal aoprop:periodOName ?temporalPeriodName .
?temporal aoprop:from ?temporalFrom .
?temporal aoprop:until ?temporalUntil .
?temporal aoprop:uri ?temporal .
%record aoprop:temporal ?temporalNative .
%record aoprop:temporalNative ?temporalNative .
?temporalNative aoprop:nativePeriodName ?temporalNativePeriodName .
?temporalNative aoprop:from ?temporalNativeFrom .
?temporalNative aoprop:until ?temporalNativeUntil .
?temporalNative aoprop:nativeFrom ?temporalNativeFrom .
?temporalNative aoprop:nativeUntil ?temporalNativeUntil .
%record aoprop:archeologicalResourceType ?archeologicalResourceType .
?archeologicalResourceType aoprop:name ?archeologicalResourceTypeName .
%record aoprop:resourceType ?resourceType .
%record aoprop:typeURI ?typeURI .
%record aoprop:typeLabel ?typeLabel .
%record aoprop:about ?aboutURI .
?aboutURI aoprop:aboutURI ?aboutURI .
?aboutURI aoprop:aboutURILabel ?aboutLabel .
%record aoprop:nativeSubject ?nativeSubject .
?nativeSubject aoprop:prefLabel ?nativeSubjectPrefLabel .
?nativeSubject aoprop:rdfAbout ?nativeSubject .
@ -67,6 +93,9 @@ CONSTRUCT {
%record aoprop:title ?title .
%record aoprop:description ?description .
%record aoprop:language ?language .
%record aoprop:image ?primaryVisualComponent .
?primaryVisualComponent aoprop:primaryVisualComponent ?primaryVisualComponent .
?primaryVisualComponent aoprop:visualComponent ?visualComponent .
}
where {
graph <https://ariadne-infrastructure.eu/api_________::ariadne_plus::%datasource::%collectionId> {
@ -76,7 +105,13 @@ where {
%record aocat:has_creator ?creator .
?creator aocat:has_name ?creatorName .
%record aocat:has_title ?title .
%record aocat:has_type / skos:prefLabel ?resourceType .
%record aocat:has_type / skos:prefLabel ?resourceType .
%record aocat:has_type ?typeURI .
?typeURI skos:prefLabel ?typeLabel .
optional {
%record aocat:is_about ?aboutURI .
?aboutURI rdfs:label ?aboutLabel .
}
optional {
?creator aocat:has_email ?creatorEmail .
}
@ -89,14 +124,20 @@ where {
optional {
%record aocat:has_landing_page / rdfs:label ?landingPage .
}
optional {
%record aocat:has_primary_visual_component ?primaryVisualComponent .
}
optional {
%record aocat:has_visual_component ?visualComponent .
}
}
optional {
graph <https://ariadne-infrastructure.eu/api_________::ariadne_plus::%datasource::%collectionId> {
%record aocat:has_temporal_coverage ?temporalNative .
?temporalNative aocat:has_native_period ?nativeLabel .
?nativeLabel skos:prefLabel | rdfs:label ?temporalNativePeriodName .
optional {
%record aocat:has_temporal_coverage ?temporalNative .
?temporalNative aocat:has_native_period ?nativeLabel .
?nativeLabel skos:prefLabel ?temporalNativePeriodName .
optional {
?temporalNative aocat:from ?temporalNativeFrom .
?temporalNative aocat:until ?temporalNativeUntil .
}
@ -137,18 +178,45 @@ where {
%record aocat:has_access_rights ?accessRights .
%record aocat:has_ARIADNE_subject ?archeologicalResourceType .
?archeologicalResourceType skos:prefLabel ?archeologicalResourceTypeName .
optional {
%record aocat:was_created_on ?created .
}
optional {
?contributor aocat:has_email ?contributorEmail .
}
optional {
?contributor aocat:has_homepage ?contributorHomepage .
}
optional {
?contributor aocat:has_institution ?contributorInstitution .
}
optional {
?legalResponsible aocat:has_email ?legalResponsibleEmail .
}
optional {
?legalResponsible aocat:has_homepage ?legalResponsibleHomepage .
}
optional {
?legalResponsible aocat:has_institution ?legalResponsibleInstitution .
}
optional {
?owner aocat:has_email ?ownerEmail .
}
optional {
?owner aocat:has_homepage ?ownerHomepage .
}
optional {
?owner aocat:has_institution ?ownerInstitution .
}
optional {
?publisher aocat:has_email ?publisherEmail .
}
optional {
?publisher aocat:has_homepage ?publisherHomepage .
}
optional {
?publisher aocat:has_institution ?publisherInstitution .
}
}
}
}
@ -159,10 +227,6 @@ where {
where {
%record aocat:has_spatial_coverage ?spatialRegion .
?spatialRegion aocat:has_place_name ?spatialPlaceName .
optional {
%record aocat:has_spatial_coverage ?spatialRegion .
?spatialRegion aocat:has_coordinate_system ?spatialCoordinateSystem .
}
optional {
%record aocat:has_spatial_coverage ?spatialRegionPoint .
?spatialRegionPoint aocat:has_latitude ?spatialLocationLat ;
@ -175,6 +239,17 @@ where {
aocat:has_bounding_box_min_lat ?spatialLocationBBMinLat ;
aocat:has_bounding_box_min_lon ?spatialLocationBBMinLon ;
}
optional {
%record aocat:has_spatial_coverage ?spatialRegionPolygon .
?spatialRegionPolygon aocat:has_polygonal_representation ?geoPoint .
?geoPoint aocat:has_latitude ?lat .
?geoPoint aocat:has_longitude ?lon .
}
optional {
%record aocat:has_spatial_coverage ?spatialRegionWKTPolygon .
?spatialRegionWKTPolygon rdf:type aocat:AO_Spatial_Region_Polygon .
?spatialRegionWKTPolygon aocat:has_polygonal_representation ?wkt .
}
}
}
}

View File

@ -32,10 +32,10 @@ public class GraphDbReaderAndESIndexTest {
private RunSPARQLQueryService runSPQRLQuery;
@Test
@Ignore
// @Ignore
public void uploadAMCRFieldworkTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/AIS%20CR/E61E0F4E-268F-39E4-8EDB-A431AFC505AA";
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/AMCR/E61E0F4E-268F-39E4-8EDB-A431AFC505AA";
String datasource = "amcr";
String collectionId = "oai";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
@ -43,19 +43,9 @@ public class GraphDbReaderAndESIndexTest {
@Test
// @Ignore
public void uploadAMCRFieldworkEventOnlyPeriodoTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/AIS%20CR/849F814F-5892-3408-AD5E-904938B4492A";
String datasource = "amcr";
String collectionId = "oai";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
@Ignore
public void uploadAMCRDocumentTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/AIS%20CR/FC59581D-DC3A-31DA-922A-98DE764F3D76";
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/AMCR/FC59581D-DC3A-31DA-922A-98DE764F3D76";
String datasource = "amcr";
String collectionId = "oai";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
@ -65,24 +55,24 @@ public class GraphDbReaderAndESIndexTest {
// @Ignore
public void uploadAMCRSiteTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/AIS%20CR/3C7EC936-A7CA-3720-B3DC-413A25754FD4";
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/AMCR/3C7EC936-A7CA-3720-B3DC-413A25754FD4";
String datasource = "amcr";
String collectionId = "oai";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
@Ignore
// @Ignore
public void uploadAMCRIndividualFindTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/AIS%20CR/98D717C4-410F-35C6-8072-FABA7686B4A3";
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/AMCR/98D717C4-410F-35C6-8072-FABA7686B4A3";
String datasource = "amcr";
String collectionId = "oai";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
@Ignore
// @Ignore
public void uploadADSRecordTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/34E3811A-0BAD-3832-B3A0-3139E8A0285C";
@ -92,7 +82,7 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadADSRecordWithNativeFromUntilTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/3C3C7A86-FF09-3431-95B1-B9A4AA8293AF";
@ -102,7 +92,7 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadADSRecordWithoutNativeFromUntilTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/DF5F27D3-C877-3F23-9EAA-3776362363AA";
@ -112,7 +102,7 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadZbivaRecordSpatialTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/ZRC-SAZU-Zbiva/B34517C6-8D94-3A02-B461-08522F958479";
@ -122,7 +112,7 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadHNMCollectionSpatialTest() throws Exception {
boolean isRecord = false;
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/HNM/5A7A4257-EE73-31F9-9F74-BADB371555F5";
@ -132,17 +122,17 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadHNMCollectionTemporalTest() throws Exception {
boolean isRecord = false;
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/HNM/0F1AF07E-CE63-342C-8E95-11FF1C024BD5";
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/HNM/1AE50143-45C7-304F-8367-BCF3606CEF10";
String datasource = "hnm";
String collectionId = "hnmad";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
@Ignore
// @Ignore
public void uploadADSArchivesBoundingBoxTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/90D1C95D-E249-3E74-92D9-B58FDF690CC7";
@ -152,8 +142,8 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
public void uploadDansNoSpatialTest() throws Exception {
// @Ignore
public void uploadDansSpatialTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/F100A0AD-6A7F-3976-B77F-FFAB4F5B55DD";
String datasource = "dans";
@ -162,8 +152,8 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
public void uploadDansFieldworkReportTest() throws Exception {
// @Ignore
public void uploadDansNativePeriodTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/CA076E46-5CED-322C-B77E-3B90C11B968B";
String datasource = "dans";
@ -172,7 +162,17 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadDansTemporalPolygonTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/D4E12349-E214-3F3F-BEE4-D39D9138916B";
String datasource = "dans";
String collectionId = "easy";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
// @Ignore
public void uploadSndRockartTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/SHFA/FED23426-2C68-3BB3-9BBA-24F2077C9C6A";
@ -182,7 +182,7 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadNIAMTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/NIAM-BAS%2FAKB/D4388BF5-AF3D-3F24-8C2E-2FEAD1255FB1";
@ -192,7 +192,7 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadADS398Test() throws Exception {
boolean isRecord = false;
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/ADS/AAA81A6D-56F3-341C-BAF0-791C31BC7F73";
@ -202,7 +202,7 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
// @Ignore
public void uploadROADTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/FC70B370-C489-31C5-B1D4-339CFD28CF2B";
@ -212,10 +212,20 @@ public class GraphDbReaderAndESIndexTest {
}
@Test
@Ignore
public void uploadFastiTest() throws Exception {
// @Ignore
public void uploadADS328NativeFromUntilTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/FASTIONLINE/532D492C-B141-30D0-886A-1E69C2C20474";
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/7516E8FC-7C1E-38F7-8D62-8BF96B0D2559";
String datasource = "ads";
String collectionId = "328";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
// @Ignore
public void uploadFastiMultipleAriadneSubjectTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/FASTIONLINE/FE740BC7-2D9E-3644-A88E-3E8E5A5EA95F";
String datasource = "fasti";
String collectionId = "fieldwork";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
@ -223,71 +233,21 @@ public class GraphDbReaderAndESIndexTest {
@Test
// @Ignore
public void uploadDansClosedAccessTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/D1C1D6AD-320D-3616-B75D-F2E2C3DA7F3E";
String datasource = "dans";
String collectionId = "easy";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
// @Ignore
public void uploadDansRestrictedAccessTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/221AAEC8-CC9B-310C-B800-0DFE34850E0B";
String datasource = "dans";
String collectionId = "easy";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
// @Ignore
public void uploadDansOpenAccessTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/B251A0FE-EFE0-341B-A8B3-E0813CC82856";
String datasource = "dans";
String collectionId = "easy";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
// @Ignore
public void uploadConicetCollectionTest() throws Exception {
public void uploadSNDArchivePolygonTest() throws Exception {
boolean isRecord = false;
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/IDACOR%20%28CONICET%2FUNC%29/8B238475-2BA7-3036-88C0-968E9A642E64";
String datasource = "conicet";
String collectionId = "CollectionInfo";
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/A7A2588A-1FE7-3FDD-AD66-C84EACE1860E";
String datasource = "snd";
String collectionId = "zip";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
// @Ignore
public void uploadConicetRecordTest() throws Exception {
public void uploadDIMEDigitalImageTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/CONICET/0CD6BF2E-4AB7-39B6-937E-7DD59092DD3F";
String datasource = "conicet";
String collectionId = "fieldwork";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
// @Ignore
public void uploadNaraTest() throws Exception {
boolean isRecord = true;
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/07121539-04BD-3896-8E4B-22EEDDD400A8";
String datasource = "nara";
String collectionId = "fieldworkreport";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@Test
// @Ignore
public void uploadINFNTest() throws Exception {
boolean isRecord = false;
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/INFN/5AE70226-82A9-3B06-9E25-8FB71B64C51C";
String datasource = "infn";
String collectionId = "firenze";
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/DIME/F9398BD5-DECB-3FF5-8077-D96893D0D0C6";
String datasource = "aarhusdime";
String collectionId = "test";
readAndIndexTest(isRecord, recordId, datasource, collectionId);
}
@ -348,13 +308,12 @@ public class GraphDbReaderAndESIndexTest {
String datasource = "ads";
String collectionId = "271";
runSPQRLQuery = new RunSPARQLQueryService();
runSPQRLQuery.setupReadOnlyConnection(
appProps.getProperty("graphdb.serverUrl"),
runSPQRLQuery.setupConnection(
appProps.getProperty("graphdb.writer.user"),
appProps.getProperty("graphdb.writer.pwd"),
appProps.getProperty("repository.url"),
appProps.getProperty("graphdb.repository"));
List<String> res = runSPQRLQuery.selectRecordIds(datasource, collectionId);
for (String s : res){
System.out.println(s);
}
runSPQRLQuery.selectRecordIds(datasource, collectionId);
}
@Test

View File

@ -0,0 +1,332 @@
curl -X PUT "http://elastic-test.ariadne.d4science.org:9200/ariadneplus?pretty" -H 'Content-Type: application/json' -d '
{
"mappings": {
"dynamic": false,
"properties": {
"derivedSubject": {
"properties": {
"prefLabel": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"source": {
"type": "text"
},
"id": {
"type": "text"
},
"lang": {
"type": "text"
}
}
},
"accessPolicy": {
"type": "text"
},
"accessRights": {
"type": "text"
},
"ariadneSubject": {
"properties": {
"prefLabel": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
},
"contributor": {
"properties": {
"email": {
"type": "text"
},
"homepage": {
"type": "text"
},
"institution": {
"type": "text"
},
"name": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"agentIdentifier": {
"type": "text"
}
}
},
"creator": {
"properties": {
"email": {
"type": "text"
},
"homepage": {
"type": "text"
},
"institution": {
"type": "text"
},
"name": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"agentIdentifier": {
"type": "text"
}
}
},
"description": {
"properties": {
"text": {
"type": "text"
},
"language": {
"type": "text"
}
}
},
"extent": {
"type": "text"
},
"identifier": {
"type": "keyword"
},
"isPartOf": {
"type": "text"
},
"issued": {
"type": "date",
"format": "year || date_optional_time"
},
"landingPage": {
"type": "text"
},
"language": {
"type": "text"
},
"modified": {
"type": "date",
"format": "year || date_optional_time"
},
"nativeSubject": {
"properties": {
"prefLabel": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"rdfAbout": {
"type": "text"
}
}
},
"originalId": {
"type": "text"
},
"owner": {
"properties": {
"email": {
"type": "text"
},
"homepage": {
"type": "text"
},
"institution": {
"type": "text"
},
"name": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"agentIdentifier": {
"type": "text"
}
}
},
"publisher": {
"properties": {
"email": {
"type": "text"
},
"homepage": {
"type": "text"
},
"institution": {
"type": "text"
},
"name": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"agentIdentifier": {
"type": "text"
}
}
},
"is_about": {
"properties": {
"label": {
"type": "text"
},
"uri": {
"type": "text"
}
}
},
"resourceType": {
"type": "text"
},
"has_type": {
"properties": {
"label": {
"type": "text"
},
"uri": {
"type": "text"
}
}
},
"responsible": {
"properties": {
"email": {
"type": "text"
},
"homepage": {
"type": "text"
},
"institution": {
"type": "text"
},
"name": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"agentIdentifier": {
"type": "text"
}
}
},
"spatial": {
"type": "nested",
"properties": {
"placeName": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"address": {
"type": "text"
},
"geopoint": {
"type": "geo_point"
},
"boundingbox": {
"type": "geo_shape"
},
"polygon": {
"type": "geo_shape"
},
"spatialPrecision": {
"type": "text"
},
"coordinatePrecision": {
"type": "text"
}
}
},
"temporal": {
"type": "nested",
"properties": {
"from": {
"type": "date",
"format": "year || date_optional_time"
},
"periodName": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"until": {
"type": "date",
"format": "year || date_optional_time"
},
"uri": {
"type": "text"
}
}
},
"nativePeriod": {
"properties": {
"from": {
"type": "date",
"format": "year || date_optional_time"
},
"periodName": {
"type": "text"
},
"until": {
"type": "date",
"format": "year || date_optional_time"
}
}
},
"title": {
"type": "text"
},
"wasCreated": {
"type": "date",
"format": "year || date_optional_time"
},
"digitalImage": {
"properties": {
"ariadneUri": {
"type": "keyword"
},
"primary": {
"type": "boolean"
},
"providerUri": {
"type": "keyword"
}
}
}
}
}
}
'