use of org.eclipse.rdf4j.repository.sail.SailRepositoryConnection in project incubator-rya by apache.
the class RyaGeoDirectExample method main.
public static void main(final String[] args) throws Exception {
final Configuration conf = getConf();
conf.set(PrecomputedJoinIndexerConfig.PCJ_STORAGE_TYPE, PrecomputedJoinStorageType.ACCUMULO.name());
conf.setBoolean(ConfigUtils.DISPLAY_QUERY_PLAN, PRINT_QUERIES);
conf.setBoolean(OptionalConfigUtils.USE_GEO, true);
log.info("Creating the tables as root.");
SailRepository repository = null;
SailRepositoryConnection conn = null;
try {
log.info("Connecting to Geo Sail Repository.");
final Sail extSail = GeoRyaSailFactory.getInstance(conf);
repository = new SailRepository(extSail);
conn = repository.getConnection();
final long start = System.currentTimeMillis();
log.info("Running SPARQL Example: Add Point and Geo Search with PCJ");
testAddPointAndWithinSearchWithPCJ(conn);
log.info("Running SPARQL Example: Temporal, Freetext, and Geo Search");
testTemporalFreeGeoSearch(conn);
log.info("Running SPARQL Example: Geo, Freetext, and PCJ Search");
testGeoFreetextWithPCJSearch(conn);
log.info("Running SPARQL Example: Delete Geo Data");
testDeleteGeoData(conn);
log.info("TIME: " + (System.currentTimeMillis() - start) / 1000.);
} finally {
log.info("Shutting down");
closeQuietly(conn);
closeQuietly(repository);
}
}
use of org.eclipse.rdf4j.repository.sail.SailRepositoryConnection in project incubator-rya by apache.
the class MongoGeoIndexerFilterIT method tooManyArgumentsTest.
@Test(expected = QueryEvaluationException.class)
public void tooManyArgumentsTest() throws Exception {
final Sail sail = GeoRyaSailFactory.getInstance(conf);
final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
try {
populateRya(conn);
// Only captial
final String query = "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n" + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>\n" + //
"SELECT * \n" + "WHERE { \n" + " <urn:geo> geo:asWKT ?point .\n" + " FILTER(geof:sfNear(?point, \"POINT(38.8895 77.0353)\"^^geo:wktLiteral, 100, 1000, 10))" + "}";
conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
} finally {
conn.close();
sail.shutDown();
}
}
use of org.eclipse.rdf4j.repository.sail.SailRepositoryConnection in project incubator-rya by apache.
the class MongoGeoIndexerFilterIT method nearHappyUsesTest.
@Test
public void nearHappyUsesTest() throws Exception {
final Sail sail = GeoRyaSailFactory.getInstance(conf);
final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
try {
populateRya(conn);
// Only captial
String query = "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n" + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>\n" + //
"SELECT * \n" + "WHERE { \n" + " <urn:geo> geo:asWKT ?point .\n" + " FILTER(geof:sfNear(?point, \"POINT(38.8895 77.0353)\"^^geo:wktLiteral, 0.0, 2000))" + "}";
TupleQueryResult rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
final List<BindingSet> results = new ArrayList<>();
while (rez.hasNext()) {
final BindingSet bs = rez.next();
results.add(bs);
}
assertEquals(1, results.size());
assertEquals(CAPITAL_BUILDING, bindingToGeo(results.get(0)));
// all but capital
query = "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n" + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>\n" + //
"SELECT * \n" + "WHERE { \n" + " <urn:geo> geo:asWKT ?point .\n" + " FILTER(geof:sfNear(?point, \"POINT(38.8895 77.0353)\"^^geo:wktLiteral, 2000))" + "}";
rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
results.clear();
while (rez.hasNext()) {
final BindingSet bs = rez.next();
results.add(bs);
}
assertEquals(3, results.size());
assertEquals(WASHINGTON_MONUMENT, bindingToGeo(results.get(0)));
assertEquals(WHITE_HOUSE, bindingToGeo(results.get(1)));
assertEquals(LINCOLN_MEMORIAL, bindingToGeo(results.get(2)));
// all of them
query = "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n" + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>\n" + //
"SELECT * \n" + "WHERE { \n" + " <urn:geo> geo:asWKT ?point .\n" + " FILTER(geof:sfNear(?point, \"POINT(38.8895 77.0353)\"^^geo:wktLiteral, 6000, 000))" + "}";
rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
results.clear();
while (rez.hasNext()) {
final BindingSet bs = rez.next();
results.add(bs);
}
assertEquals(4, results.size());
assertEquals(WASHINGTON_MONUMENT, bindingToGeo(results.get(0)));
assertEquals(WHITE_HOUSE, bindingToGeo(results.get(1)));
assertEquals(LINCOLN_MEMORIAL, bindingToGeo(results.get(2)));
assertEquals(CAPITAL_BUILDING, bindingToGeo(results.get(3)));
// donut, only 2
query = "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n" + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>\n" + //
"SELECT * \n" + "WHERE { \n" + " <urn:geo> geo:asWKT ?point .\n" + " FILTER(geof:sfNear(?point, \"POINT(38.8895 77.0353)\"^^geo:wktLiteral, 2000, 100))" + "}";
rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
results.clear();
while (rez.hasNext()) {
final BindingSet bs = rez.next();
results.add(bs);
}
assertEquals(2, results.size());
assertEquals(WHITE_HOUSE, bindingToGeo(results.get(0)));
assertEquals(LINCOLN_MEMORIAL, bindingToGeo(results.get(1)));
// all of them
query = "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n" + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>\n" + //
"SELECT * \n" + "WHERE { \n" + " <urn:geo> geo:asWKT ?point .\n" + " FILTER(geof:sfNear(?point, \"POINT(38.8895 77.0353)\"^^geo:wktLiteral))" + "}";
rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
results.clear();
while (rez.hasNext()) {
final BindingSet bs = rez.next();
results.add(bs);
}
assertEquals(4, results.size());
assertEquals(WASHINGTON_MONUMENT, bindingToGeo(results.get(0)));
assertEquals(WHITE_HOUSE, bindingToGeo(results.get(1)));
assertEquals(LINCOLN_MEMORIAL, bindingToGeo(results.get(2)));
assertEquals(CAPITAL_BUILDING, bindingToGeo(results.get(3)));
} finally {
conn.close();
sail.shutDown();
}
}
use of org.eclipse.rdf4j.repository.sail.SailRepositoryConnection in project incubator-rya by apache.
the class MongoGeoIndexerFilterIT method near_negativeDistance.
@Test(expected = IllegalArgumentException.class)
public void near_negativeDistance() throws Exception {
final Sail sail = GeoRyaSailFactory.getInstance(conf);
final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
try {
populateRya(conn);
// Only captial
final String query = "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n" + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>\n" + //
"SELECT * \n" + "WHERE { \n" + " <urn:geo> geo:asWKT ?point .\n" + " FILTER(geof:sfNear(?point, \"POINT(38.8895 77.0353)\"^^geo:wktLiteral, -100))" + "}";
final TupleQueryResult rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
while (rez.hasNext()) {
rez.next();
}
} finally {
conn.close();
sail.shutDown();
}
}
use of org.eclipse.rdf4j.repository.sail.SailRepositoryConnection in project incubator-rya by apache.
the class PcjDocumentsWithMockTest method populatePcj.
@Test
public void populatePcj() throws Exception {
final RdfCloudTripleStore<StatefulMongoDBRdfConfiguration> ryaStore = new RdfCloudTripleStore<>();
final MongoDBRyaDAO dao = new MongoDBRyaDAO();
dao.setConf(new StatefulMongoDBRdfConfiguration(conf, getMongoClient()));
dao.init();
ryaStore.setRyaDAO(dao);
ryaStore.initialize();
final SailRepositoryConnection ryaConn = new RyaSailRepository(ryaStore).getConnection();
try {
// Load some Triples into Rya.
final Set<Statement> triples = new HashSet<>();
triples.add(VF.createStatement(VF.createIRI("http://Alice"), VF.createIRI("http://hasAge"), VF.createLiteral(BigInteger.valueOf(14))));
triples.add(VF.createStatement(VF.createIRI("http://Alice"), VF.createIRI("http://playsSport"), VF.createLiteral("Soccer")));
triples.add(VF.createStatement(VF.createIRI("http://Bob"), VF.createIRI("http://hasAge"), VF.createLiteral(BigInteger.valueOf(16))));
triples.add(VF.createStatement(VF.createIRI("http://Bob"), VF.createIRI("http://playsSport"), VF.createLiteral("Soccer")));
triples.add(VF.createStatement(VF.createIRI("http://Charlie"), VF.createIRI("http://hasAge"), VF.createLiteral(BigInteger.valueOf(12))));
triples.add(VF.createStatement(VF.createIRI("http://Charlie"), VF.createIRI("http://playsSport"), VF.createLiteral("Soccer")));
triples.add(VF.createStatement(VF.createIRI("http://Eve"), VF.createIRI("http://hasAge"), VF.createLiteral(BigInteger.valueOf(43))));
triples.add(VF.createStatement(VF.createIRI("http://Eve"), VF.createIRI("http://playsSport"), VF.createLiteral("Soccer")));
for (final Statement triple : triples) {
ryaConn.add(triple);
}
// Create a PCJ table that will include those triples in its results.
final String sparql = "SELECT ?name ?age " + "{" + "?name <http://hasAge> ?age." + "?name <http://playsSport> \"Soccer\" " + "}";
final String pcjTableName = new PcjTableNameFactory().makeTableName(conf.getRyaInstanceName(), "testPcj");
final MongoPcjDocuments pcjs = new MongoPcjDocuments(getMongoClient(), conf.getRyaInstanceName());
pcjs.createAndPopulatePcj(ryaConn, pcjTableName, sparql);
// Make sure the cardinality was updated.
final PcjMetadata metadata = pcjs.getPcjMetadata(pcjTableName);
assertEquals(4, metadata.getCardinality());
} finally {
ryaConn.close();
ryaStore.shutDown();
}
}
Aggregations