diff --git a/initial_run.sh b/initial_run.sh deleted file mode 100755 index cd3a57b..0000000 --- a/initial_run.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -mvn install:install-file -Dfile=lib/RDFtoPGConverter.jar -DgroupId=org.example -DartifactId=rdf4j-getting-started -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar diff --git a/pom.xml b/pom.xml index b7f8f0a..3291a86 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,7 @@ 3.5.23 3.5.0.15 1.7.5 + 4.0.1 @@ -46,11 +47,18 @@ ${neo4j.version} test + + + + + + - org.neo4j - neo4j-kernel - ${neo4j.version} - + org.neo4j + neo4j-jdbc-bolt + ${neo4j-jdbc-version} + test + diff --git a/src/com/KRacR/s2c/App.java b/src/main/java/com/KRacR/s2c/App.java similarity index 60% rename from src/com/KRacR/s2c/App.java rename to src/main/java/com/KRacR/s2c/App.java index a283905..869cc54 100644 --- a/src/com/KRacR/s2c/App.java +++ b/src/main/java/com/KRacR/s2c/App.java @@ -1,13 +1,13 @@ package com.KRacR.s2c; import org.neo4j.cypher.*; -import org.neo4j.cypher.internal.ast.Query; +//import org.neo4j.cypher.internal.ast.Query; import org.apache.jena.*; public class App { public static void main( String[] args ){ - Query q = new Query(null, null, null); - System.out.println(q.asCanonicalStringVal()); +// Query q = new Query(null, null, null); +// System.out.println(q.asCanonicalStringVal()); org.apache.jena.query.Query q2 = new org.apache.jena.query.Query(); } } \ No newline at end of file diff --git a/src/com/KRacR/s2c/SparqlToCypher.java b/src/main/java/com/KRacR/s2c/SparqlToCypher.java similarity index 74% rename from src/com/KRacR/s2c/SparqlToCypher.java rename to src/main/java/com/KRacR/s2c/SparqlToCypher.java index 37693d5..f979a6b 100644 --- a/src/com/KRacR/s2c/SparqlToCypher.java +++ b/src/main/java/com/KRacR/s2c/SparqlToCypher.java @@ -1,8 +1,5 @@ package com.KRacR.s2c; -import java.io.BufferedWriter; -import java.io.FileWriter; -import java.io.IOException; import java.lang.String; public class SparqlToCypher { diff --git a/src/test/java/com/KRacR/s2c/SparqlToCypherTest.java b/src/test/java/com/KRacR/s2c/SparqlToCypherTest.java index f8b36f3..b67ad6e 100644 --- a/src/test/java/com/KRacR/s2c/SparqlToCypherTest.java +++ b/src/test/java/com/KRacR/s2c/SparqlToCypherTest.java @@ -1,4 +1,5 @@ -package test.java.com.KRacR.s2c; +package com.KRacR.s2c; +//package test.java.com.KRacR.s2c; //import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; @@ -11,7 +12,16 @@ import java.nio.file.Paths; import java.util.Arrays; -import org.junit.Test; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryExecution; +import org.apache.jena.query.QueryExecutionFactory; +import org.apache.jena.query.QueryFactory; +import org.apache.jena.query.QuerySolution; +import org.apache.jena.query.ResultSet; +import org.apache.jena.query.ResultSetFormatter; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.riot.RDFDataMgr; +import org.junit.jupiter.api.Test; import org.neo4j.driver.v1.Config; import org.neo4j.driver.v1.Driver; import org.neo4j.driver.v1.GraphDatabase; @@ -21,6 +31,7 @@ import com.KRacR.s2c.SparqlToCypher; + /** * Unit test for Sparql to Cypher */ @@ -28,7 +39,7 @@ public class SparqlToCypherTest{ private ServerControls embeddedDatabaseServer; private static final Config driverConfig = Config.build().withoutEncryption().toConfig(); - private void run_TTL_Automated_Test(String folder) { + private void run_TTL_Automated_Test(String folder){ Path rdf_path = Paths.get(folder, "rdf.ttl"); Path path_to_pg_bench = Paths.get("lib/RDFtoPGConverter.jar"); @@ -47,6 +58,9 @@ private void run_TTL_Automated_Test(String folder) { fail("RDFtoPGConverter interrupted for folder " + folder); } + // Create RDF model from ttl + Model rdf_model = RDFDataMgr.loadModel(rdf_path.toString()) ; + // Create in-memory neo4j database and load converted Output.json try (Driver driver = GraphDatabase.driver(embeddedDatabaseServer.boltURI(), driverConfig); Session session = driver.session()) { @@ -62,7 +76,7 @@ private void run_TTL_Automated_Test(String folder) { ); } - // Iterate over all sparql files in query + // Iterate over all sparql files in queries folder FileFilter sparqlFilter = new FileFilter() { public boolean accept(File file) { String extension = ""; @@ -75,7 +89,6 @@ public boolean accept(File file) { return file.isFile() && (extension.equals("sparql")); } }; - File[] query_files = Paths.get(folder, "queries").toFile().listFiles(sparqlFilter); for (File query_file : query_files) { String sparql_query = null; @@ -84,13 +97,22 @@ public boolean accept(File file) { } catch (IOException e) { e.printStackTrace(); } + + // Run the Sparql to Cypher converter String cypher_query = SparqlToCypher.convert(sparql_query); + + // Execute the cypher query on the database + + // Execute the sparql query on the database + Query query = QueryFactory.create(sparql_query); + QueryExecution qe = QueryExecutionFactory.create(query, rdf_model); + ResultSet results = qe.execSelect(); + ResultSetFormatter.out(System.out, results, query); } - } @Test - public void test_All_TTL_Automated() throws IOException{ + public void All_TTL_Automated_Test() throws IOException{ // Code for iterating over all directories: // Source: http://www.avajava.com/tutorials/lessons/how-do-i-use-a-filefilter-to-display-only-the-directories-within-a-directory.html File f = new File("src/test/resources/ttl_automated_tests"); // current directory @@ -104,12 +126,12 @@ public boolean accept(File file) { File[] files = f.listFiles(directoryFilter); setupNeo4jServer(); for (File folder : files) { - delete_all_from_database(); + delete_all_from_neo4j(); run_TTL_Automated_Test(folder.getCanonicalPath()); } } - private void delete_all_from_database() { + private void delete_all_from_neo4j() { try (Driver driver = GraphDatabase.driver(embeddedDatabaseServer.boltURI(), driverConfig); Session session = driver.session()) { session.run("match (n) detach delete n;"); diff --git a/src/test/resources/ttl_automated_tests/test1/queries/README b/src/test/resources/ttl_automated_tests/test1/queries/not_working/README similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/README rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/README diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q1.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q1.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q1.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q1.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q11.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q11.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q11.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q11.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q12a.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q12a.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q12a.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q12a.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q12b.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q12b.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q12b.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q12b.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q12c.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q12c.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q12c.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q12c.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q2.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q2.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q2.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q2.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q3a.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q3a.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q3a.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q3a.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q3b.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q3b.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q3b.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q3b.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q3c.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q3c.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q3c.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q3c.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q4.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q4.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q4.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q4.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q5a.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q5a.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q5a.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q5a.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q5b.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q5b.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q5b.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q5b.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q6.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q6.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q6.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q6.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q7.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q7.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q7.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q7.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q8.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q8.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q8.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q8.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/q9.sparql b/src/test/resources/ttl_automated_tests/test1/queries/not_working/q9.sparql similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/q9.sparql rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/q9.sparql diff --git a/src/test/resources/ttl_automated_tests/test1/queries/sp2b_queries.txt b/src/test/resources/ttl_automated_tests/test1/queries/not_working/sp2b_queries.txt similarity index 100% rename from src/test/resources/ttl_automated_tests/test1/queries/sp2b_queries.txt rename to src/test/resources/ttl_automated_tests/test1/queries/not_working/sp2b_queries.txt