Search in sources :

Example 91 with Answer

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

the class ReasoningTests method instanceTypeHierarchyRespected_queryHasSuperTypes.

// Expected result: Two answers obtained only if the rule query containing sub type is correctly executed.
@Test
public void instanceTypeHierarchyRespected_queryHasSuperTypes() {
    QueryBuilder qb = testSet19.tx().graql().infer(true);
    String queryString = "match " + "$x isa entity1;" + "$y isa entity1;" + "(role1: $x, role2: $y) isa relation1;";
    String queryString2 = queryString + "$y has name 'a';";
    List<Answer> answers = qb.<GetQuery>parse(queryString + " get;").execute();
    assertEquals(answers.size(), 2);
    List<Answer> answers2 = qb.<GetQuery>parse(queryString2 + " get;").execute();
    assertEquals(answers2.size(), 2);
}
Also used : Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Example 92 with Answer

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

the class ReasoningTests method generatingIsaEdgesDirectly.

// Expected result: Differentiated behaviour based on directedness of the isa.
@Test
public void generatingIsaEdgesDirectly() {
    QueryBuilder qb = testSet2b.tx().graql().infer(true);
    String queryString = "match $x isa derivedEntity; get;";
    String queryString2 = "match $x isa! derivedEntity; get;";
    String queryString3 = "match $x isa directDerivedEntity; get;";
    List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
    List<Answer> answers2 = qb.<GetQuery>parse(queryString2).execute();
    List<Answer> answers3 = qb.<GetQuery>parse(queryString3).execute();
    assertEquals(answers.size(), 2);
    assertEquals(answers2.size(), 2);
    assertEquals(answers3.size(), 1);
}
Also used : Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Example 93 with Answer

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

the class ReasoningTests method reasoningWithEntityTypes_WithNeqProperty.

// Expected result: Relations between all entity instances including relation between each instance and itself
@Test
public void reasoningWithEntityTypes_WithNeqProperty() {
    QueryBuilder qb = testSet24.tx().graql().infer(true);
    QueryBuilder qbm = testSet24.tx().graql().infer(true).materialise(true);
    String queryString = "match (role1:$x1, role2:$x2) isa relation2; get;";
    List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
    assertEquals(answers.size(), 6);
    List<Answer> answers2 = qbm.<GetQuery>parse(queryString).execute();
    assertEquals(answers2.size(), 6);
    assertTrue(answers.containsAll(answers2));
    assertTrue(answers2.containsAll(answers));
}
Also used : Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Example 94 with Answer

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

the class ReasoningTests method queryingForGenericType_ruleDefinesNewType.

// Expected result: The query should return 3 results: one for meta type, one for db, one for inferred type.
@Test
public void queryingForGenericType_ruleDefinesNewType() {
    QueryBuilder qb = testSet2.tx().graql().infer(true);
    String queryString = "match $x isa $type; get;";
    List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
    assertEquals(answers.size(), 4);
    answers.forEach(ans -> assertEquals(ans.size(), 2));
}
Also used : Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Test(org.junit.Test)

Example 95 with Answer

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

the class ReasoningTests method generatingFreshRelation.

// TODO: currently disallowed by rule validation
@Ignore
// Expected result: The query should return three different instances of relation1 with unique ids.
@Test
public void generatingFreshRelation() {
    QueryBuilder qb = testSet6.tx().graql().infer(true);
    String queryString = "match $x isa relation1; get;";
    List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
    assertEquals(answers.size(), 3);
}
Also used : Answer(ai.grakn.graql.admin.Answer) QueryBuilder(ai.grakn.graql.QueryBuilder) Ignore(org.junit.Ignore) 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