Search in sources :

Example 66 with Answer

use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.

the class GeoInferenceTest method testLazy.

@Test
public void testLazy() {
    QueryBuilder iqb = geoKB.tx().graql().infer(true);
    String queryString = "match (geo-entity: $x, entity-location: $y) isa is-located-in; limit 1; get;";
    String queryString2 = "match (geo-entity: $x, entity-location: $y) isa is-located-in; limit 22; get;";
    String queryString3 = "match (geo-entity: $x, entity-location: $y) isa is-located-in; get;";
    List<Answer> answers = iqb.materialise(false).<GetQuery>parse(queryString).execute();
    List<Answer> answers2 = iqb.materialise(false).<GetQuery>parse(queryString2).execute();
    List<Answer> answers3 = iqb.materialise(false).<GetQuery>parse(queryString3).execute();
    assertTrue(answers3.containsAll(answers));
    assertTrue(answers3.containsAll(answers2));
}
Also used : Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Example 67 with Answer

use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.

the class GeoInferenceTest method testTransitiveQuery_Closure_variableRoles.

@Test
public void testTransitiveQuery_Closure_variableRoles() {
    QueryBuilder iqb = geoKB.tx().graql().infer(true);
    String queryString = "match ($r1: $x, $r2: $y) isa is-located-in; get;";
    List<Answer> answers = iqb.materialise(false).<GetQuery>parse(queryString).execute();
    answers.forEach(ans -> assertEquals(ans.size(), 4));
    assertEquals(answers.size(), 408);
    List<Answer> answers2 = iqb.materialise(true).<GetQuery>parse(queryString).execute();
    answers2.forEach(ans -> assertEquals(ans.size(), 4));
    assertCollectionsEqual(answers, answers2);
}
Also used : Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Example 68 with Answer

use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.

the class GeoInferenceTest method testTransitiveQuery_variableRoles_withSubstitution_withRelationVar.

@Test
public void testTransitiveQuery_variableRoles_withSubstitution_withRelationVar() {
    GraknTx graph = geoKB.tx();
    QueryBuilder iqb = geoKB.tx().graql().infer(true);
    Concept masovia = getConcept(graph, "name", "Masovia");
    String queryString = "match " + "$x ($r1: $x1, $r2: $x2) isa is-located-in;" + "$x2 id '" + masovia.getId().getValue() + "'; get;";
    List<Answer> answers = iqb.materialise(false).<GetQuery>parse(queryString).execute();
    assertEquals(answers.size(), 20);
    answers.forEach(ans -> assertEquals(ans.size(), 5));
    List<Answer> answers2 = iqb.materialise(true).<GetQuery>parse(queryString).execute();
    answers2.forEach(ans -> assertEquals(ans.size(), 5));
    assertCollectionsEqual(answers, answers2);
}
Also used : Concept(ai.grakn.concept.Concept) GraknTx(ai.grakn.GraknTx) Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Example 69 with Answer

use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.

the class GeoInferenceTest method testTransitiveQuery_withSpecificResource.

@Test
public void testTransitiveQuery_withSpecificResource() {
    GraknTx graph = geoKB.tx();
    QueryBuilder iqb = graph.graql().infer(true);
    String queryString = "match " + "(geo-entity: $x, entity-location: $y) isa is-located-in;" + "$y has name 'Poland'; get;";
    String queryString2 = "match " + "(geo-entity: $x, entity-location: $y) isa is-located-in;" + "$y has name 'Europe'; get;";
    Concept poland = getConcept(graph, "name", "Poland");
    Concept europe = getConcept(graph, "name", "Europe");
    List<Answer> answers = iqb.materialise(false).<GetQuery>parse(queryString).execute();
    answers.forEach(ans -> assertEquals(ans.size(), 2));
    answers.forEach(ans -> assertEquals(ans.get(var("y")).getId().getValue(), poland.getId().getValue()));
    assertEquals(answers.size(), 6);
    List<Answer> answers2 = iqb.materialise(false).<GetQuery>parse(queryString2).execute();
    answers2.forEach(ans -> assertEquals(ans.size(), 2));
    answers2.forEach(ans -> assertEquals(ans.get(var("y")).getId().getValue(), europe.getId().getValue()));
    assertEquals(answers2.size(), 21);
}
Also used : Concept(ai.grakn.concept.Concept) GraknTx(ai.grakn.GraknTx) Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Example 70 with Answer

use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.

the class GeoInferenceTest method testTransitiveQuery_withSubstitution_noRoles.

@Test
public void testTransitiveQuery_withSubstitution_noRoles() {
    GraknTx graph = geoKB.tx();
    QueryBuilder iqb = graph.graql().infer(true);
    Concept masovia = getConcept(graph, "name", "Masovia");
    String queryString = "match " + "($x, $y) isa is-located-in;" + "$y id '" + masovia.getId().getValue() + "'; get;";
    String queryString2 = "match " + "{(geo-entity: $x, entity-location: $y) isa is-located-in or " + "(geo-entity: $y, entity-location: $x) isa is-located-in;};" + "$y id '" + masovia.getId().getValue() + "'; get;";
    List<Answer> answers = iqb.materialise(false).<GetQuery>parse(queryString).execute();
    answers.forEach(ans -> assertEquals(ans.size(), 2));
    answers.forEach(ans -> assertEquals(ans.get(var("y")).getId().getValue(), masovia.getId().getValue()));
    assertEquals(answers.size(), 5);
    List<Answer> answers2 = iqb.materialise(false).<GetQuery>parse(queryString2).execute();
    assertCollectionsEqual(answers, answers2);
}
Also used : Concept(ai.grakn.concept.Concept) GraknTx(ai.grakn.GraknTx) Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Aggregations

Answer (ai.grakn.graql.admin.Answer)193 Test (org.junit.Test)164 QueryBuilder (ai.grakn.graql.QueryBuilder)104 GetQuery (ai.grakn.graql.GetQuery)69 GraknTx (ai.grakn.GraknTx)47 QueryAnswer (ai.grakn.graql.internal.query.QueryAnswer)37 Concept (ai.grakn.concept.Concept)32 Var (ai.grakn.graql.Var)21 Set (java.util.Set)21 Unifier (ai.grakn.graql.admin.Unifier)19 MultiUnifier (ai.grakn.graql.admin.MultiUnifier)18 Collectors (java.util.stream.Collectors)18 ReasonerAtomicQuery (ai.grakn.graql.internal.reasoner.query.ReasonerAtomicQuery)17 Sets (com.google.common.collect.Sets)16 List (java.util.List)16 EmbeddedGraknTx (ai.grakn.kb.internal.EmbeddedGraknTx)15 Stream (java.util.stream.Stream)15 VarPatternAdmin (ai.grakn.graql.admin.VarPatternAdmin)14 SampleKBContext (ai.grakn.test.rule.SampleKBContext)14 Pair (ai.grakn.graql.internal.reasoner.utils.Pair)12