use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.
the class ReasoningTests method instanceTypeHierarchyRespected_querySpecialisesType_recursiveRule.
// Expected result: Single answer obtained only if the rule query containing super type is correctly executed.
@Test
public void instanceTypeHierarchyRespected_querySpecialisesType_recursiveRule() {
QueryBuilder qb = testSet19recursive.tx().graql().infer(true);
String queryString = "match " + "$x isa entity1;" + "$y isa subEntity1;" + "(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(), 1);
List<Answer> answers2 = qb.<GetQuery>parse(queryString2 + " get;").execute();
assertEquals(answers2.size(), 1);
}
use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.
the class ReasoningTests method rulesInteractingWithTypeHierarchy.
// Expected result: The query should return a unique match
@Test
public void rulesInteractingWithTypeHierarchy() {
QueryBuilder qb = testSet13.tx().graql().infer(true);
String queryString = "match (role1:$x, role2:$y) isa relation2; get;";
List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
assertEquals(answers.size(), 1);
}
use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.
the class ReasoningTests method generatingMultipleIsaEdges.
// Expected result: The query should return a unique match.
@Test
public void generatingMultipleIsaEdges() {
QueryBuilder qb = testSet2.tx().graql().infer(true);
String queryString = "match $x isa derivedEntity; get;";
List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
assertEquals(answers.size(), 1);
}
use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.
the class ReasoningTests method generatingIsaEdgesForRelationsDirectly.
// Expected result: Differentiated behaviour based on directedness of the isa.
@Test
public void generatingIsaEdgesForRelationsDirectly() {
QueryBuilder qb = testSet2c.tx().graql().infer(true);
String queryString = "match ($x, $y) isa derivedRelation; get;";
String queryString2 = "match ($x, $y) isa! derivedRelation; get;";
String queryString3 = "match ($x, $y) isa directDerivedRelation; 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);
}
use of ai.grakn.graql.admin.Answer in project grakn by graknlabs.
the class ReasoningTests method generatingIsaEdge.
// Expected result: The queries should return the same two matches.
@Test
public void generatingIsaEdge() {
QueryBuilder qb = testSet4.tx().graql().infer(true);
String queryString = "match $x isa entity1; get;";
String queryString2 = "match $x isa entity2; get;";
List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
List<Answer> answers2 = qb.<GetQuery>parse(queryString2).execute();
assertEquals(answers.size(), 2);
assertTrue(answers.containsAll(answers2));
assertTrue(answers2.containsAll(answers));
}
Aggregations