299 lines
12 KiB
Java
299 lines
12 KiB
Java
/**
|
|
*
|
|
*/
|
|
package eu.dnetlib.ariadneplus;
|
|
|
|
import eu.dnetlib.ariadneplus.elasticsearch.BulkUpload;
|
|
import eu.dnetlib.ariadneplus.reader.ResourceManager;
|
|
import eu.dnetlib.ariadneplus.reader.RunSPARQLQueryService;
|
|
import eu.dnetlib.ariadneplus.reader.json.ParseRDFJSON;
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.eclipse.rdf4j.model.Resource;
|
|
import org.eclipse.rdf4j.repository.Repository;
|
|
import org.eclipse.rdf4j.repository.RepositoryConnection;
|
|
import org.eclipse.rdf4j.repository.RepositoryResult;
|
|
import org.eclipse.rdf4j.repository.manager.RemoteRepositoryManager;
|
|
import org.junit.Ignore;
|
|
import org.junit.Test;
|
|
import org.springframework.core.io.ClassPathResource;
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.Properties;
|
|
|
|
/**
|
|
* @author enrico.ottonello
|
|
*
|
|
*/
|
|
//@Ignore
|
|
public class GraphDbReaderAndESIndexTest {
|
|
|
|
private RunSPARQLQueryService runSPQRLQuery;
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadAMCRFieldworkTest() throws Exception {
|
|
boolean isRecord = true;
|
|
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);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadAMCRDocumentTest() throws Exception {
|
|
boolean isRecord = true;
|
|
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);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadAMCRSiteTest() throws Exception {
|
|
boolean isRecord = true;
|
|
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
|
|
public void uploadAMCRIndividualFindTest() throws Exception {
|
|
boolean isRecord = true;
|
|
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
|
|
public void uploadADSRecordTest() throws Exception {
|
|
boolean isRecord = true;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/34E3811A-0BAD-3832-B3A0-3139E8A0285C";
|
|
String datasource = "ads";
|
|
String collectionId = "271";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadADSRecordWithNativeFromUntilTest() throws Exception {
|
|
boolean isRecord = true;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/3C3C7A86-FF09-3431-95B1-B9A4AA8293AF";
|
|
String datasource = "ads";
|
|
String collectionId = "1970";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadADSRecordWithoutNativeFromUntilTest() throws Exception {
|
|
boolean isRecord = true;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/DF5F27D3-C877-3F23-9EAA-3776362363AA";
|
|
String datasource = "ads";
|
|
String collectionId = "304";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@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";
|
|
String datasource = "zrc_zbiva";
|
|
String collectionId = "sites";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadHNMCollectionSpatialTest() throws Exception {
|
|
boolean isRecord = false;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/HNM/5A7A4257-EE73-31F9-9F74-BADB371555F5";
|
|
String datasource = "hnm";
|
|
String collectionId = "hnmad";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadHNMCollectionTemporalTest() throws Exception {
|
|
boolean isRecord = false;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/HNM/0F1AF07E-CE63-342C-8E95-11FF1C024BD5";
|
|
String datasource = "hnm";
|
|
String collectionId = "hnmad";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadADSArchivesBoundingBoxTest() throws Exception {
|
|
boolean isRecord = true;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/90D1C95D-E249-3E74-92D9-B58FDF690CC7";
|
|
String datasource = "ads";
|
|
String collectionId = "archives";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadDansNoSpatialTest() throws Exception {
|
|
boolean isRecord = true;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/F100A0AD-6A7F-3976-B77F-FFAB4F5B55DD";
|
|
String datasource = "dans";
|
|
String collectionId = "easy";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadDansFieldworkReportTest() throws Exception {
|
|
boolean isRecord = true;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/CA076E46-5CED-322C-B77E-3B90C11B968B";
|
|
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";
|
|
String datasource = "snd";
|
|
String collectionId = "rockart";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@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";
|
|
String datasource = "niam";
|
|
String collectionId = "amb";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void uploadADS398Test() throws Exception {
|
|
boolean isRecord = false;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Collection/ADS/AAA81A6D-56F3-341C-BAF0-791C31BC7F73";
|
|
String datasource = "ads";
|
|
String collectionId = "398";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
// @Ignore
|
|
public void uploadROADTest() throws Exception {
|
|
boolean isRecord = true;
|
|
String recordId = "https://ariadne-infrastructure.eu/aocat/Resource/FC70B370-C489-31C5-B1D4-339CFD28CF2B";
|
|
String datasource = "road";
|
|
String collectionId = "sites";
|
|
readAndIndexTest(isRecord, recordId, datasource, collectionId);
|
|
}
|
|
|
|
private void readAndIndexTest(boolean isRecord, String recordId, String datasource, String collectionId) throws Exception {
|
|
final ClassPathResource resource = new ClassPathResource("application.properties");
|
|
Properties appProps = new Properties();
|
|
appProps.load(resource.getInputStream());
|
|
|
|
runSPQRLQuery = new RunSPARQLQueryService();
|
|
runSPQRLQuery.setupConnection(
|
|
appProps.getProperty("graphdb.writer.user"),
|
|
appProps.getProperty("graphdb.writer.pwd"),
|
|
appProps.getProperty("graphdb.serverUrl"),
|
|
appProps.getProperty("graphdb.repository"));
|
|
ParseRDFJSON parseRDFJSON = new ParseRDFJSON();
|
|
parseRDFJSON.setCatalogEntryJsonPath(appProps.getProperty("catalog.entry.path"));
|
|
parseRDFJSON.setCatalogEntryCollectionJsonPath(appProps.getProperty("catalog.entry.collection.path"));
|
|
runSPQRLQuery.setParser(parseRDFJSON);
|
|
ResourceManager resourceManager = new ResourceManager();
|
|
resourceManager.setup(
|
|
appProps.getProperty("type.path"),
|
|
appProps.getProperty("general.classpath"),
|
|
appProps.getProperty("exclude.predicates"),
|
|
appProps.getProperty("class.map.specifications")
|
|
);
|
|
runSPQRLQuery.setResourceManager(resourceManager);
|
|
BulkUpload bulkUpload = new BulkUpload();
|
|
bulkUpload.init(appProps.getProperty("elasticsearch.hostname"),appProps.getProperty("elasticsearch.indexname"));
|
|
runSPQRLQuery.setBulkUpload(bulkUpload);
|
|
final ClassPathResource queryTemplateResource;
|
|
if (isRecord) {
|
|
queryTemplateResource = new ClassPathResource("eu/dnetlib/ariadneplus/sparql/read_record_data_template.sparql");
|
|
}
|
|
else {
|
|
queryTemplateResource = new ClassPathResource("eu/dnetlib/ariadneplus/sparql/read_collection_data_template.sparql");
|
|
}
|
|
List<String> recordIds = Arrays.asList(recordId);
|
|
String queryTemplate = IOUtils.toString(queryTemplateResource.getInputStream(), StandardCharsets.UTF_8.name());
|
|
String report = "";
|
|
if (isRecord) {
|
|
report = runSPQRLQuery.executeMultipleQueryGraph(queryTemplate, recordIds, datasource, collectionId, false);
|
|
}
|
|
else {
|
|
report = runSPQRLQuery.executeMultipleQueryGraph(queryTemplate, recordIds, datasource, collectionId, true);
|
|
}
|
|
System.out.println(report);
|
|
if (!report.contains("Total errors: 0")) {
|
|
throw new Exception("Error found - check report value.");
|
|
}
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void selectRecordsTest() throws Exception {
|
|
final ClassPathResource resource = new ClassPathResource("application.properties");
|
|
Properties appProps = new Properties();
|
|
appProps.load(resource.getInputStream());
|
|
String datasource = "ads";
|
|
String collectionId = "271";
|
|
runSPQRLQuery = new RunSPARQLQueryService();
|
|
runSPQRLQuery.setupConnection(
|
|
appProps.getProperty("graphdb.writer.user"),
|
|
appProps.getProperty("graphdb.writer.pwd"),
|
|
appProps.getProperty("repository.url"),
|
|
appProps.getProperty("graphdb.repository"));
|
|
runSPQRLQuery.selectRecordIds(datasource, collectionId);
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void loadQueryTest() throws Exception {
|
|
final ClassPathResource resource = new ClassPathResource("eu/dnetlib/ariadneplus/sparql/read_record_data_template.sparql");
|
|
String queryTemplate = IOUtils.toString(resource.getInputStream(), StandardCharsets.UTF_8.name());
|
|
System.out.println(queryTemplate);
|
|
|
|
}
|
|
|
|
@Test
|
|
@Ignore
|
|
public void httpsRequestTest() throws Exception {
|
|
// RemoteRepositoryManager manager = new RemoteRepositoryManager("http://graphdb-test.ariadne.d4science.org:7200");
|
|
RemoteRepositoryManager manager = new RemoteRepositoryManager("https://graphdb-test.ariadne.d4science.org");
|
|
manager.init();
|
|
manager.setUsernameAndPassword("writer", "******");
|
|
Repository repository = manager.getRepository("ariadneplus-ts01");
|
|
RepositoryConnection connection = repository.getConnection();
|
|
RepositoryResult<Resource> contexts = connection.getContextIDs();
|
|
if (contexts!=null) {
|
|
System.out.println("##### Primo context "+contexts.next().stringValue());
|
|
}
|
|
else {
|
|
System.out.println("No contexts ");
|
|
}
|
|
connection.close();
|
|
repository.shutDown();
|
|
manager.shutDown();
|
|
}
|
|
}
|