use of ai.grakn.graql.GetQuery in project grakn by graknlabs.
the class OntologicalQueryTest method allInstancesOfTypesThatPlayGivenRole.
/**
* PlaysAtom *
*/
@Test
public void allInstancesOfTypesThatPlayGivenRole() {
GraknTx tx = testContext.tx();
QueryBuilder qb = tx.graql().infer(true);
String queryString = "match $x isa $type; $type plays role1; get;";
List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
List<Answer> reifiableRelations = qb.<GetQuery>parse("match $x isa reifiable-relation;get;").execute();
assertEquals(answers.size(), tx.getEntityType("noRoleEntity").subs().flatMap(EntityType::instances).count() + reifiableRelations.size());
assertCollectionsEqual(answers, qb.infer(false).<GetQuery>parse(queryString).execute());
}
use of ai.grakn.graql.GetQuery in project grakn by graknlabs.
the class OntologicalQueryTest method allInstancesOfRelationsThatRelateGivenRole.
/**
* RelatesAtom *
*/
@Test
public void allInstancesOfRelationsThatRelateGivenRole() {
GraknTx tx = testContext.tx();
QueryBuilder qb = tx.graql().infer(true);
String queryString = "match $x isa $type; $type relates role1; get;";
List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
assertCollectionsEqual(answers, qb.infer(false).<GetQuery>parse(queryString).execute());
List<Answer> relations = qb.<GetQuery>parse("match $x isa relationship;get;").execute();
// plus extra 3 cause there are 3 binary relations which are not extra counted as reifiable-relations
assertEquals(answers.size(), relations.stream().filter(ans -> !ans.get("x").asRelationship().type().isImplicit()).count() + 3);
}
use of ai.grakn.graql.GetQuery in project grakn by graknlabs.
the class OntologicalQueryTest method allInstancesAndTheirType.
// TODO need to correctly return THING and RELATIONSHIP mapping for %type
@Ignore
@Test
public void allInstancesAndTheirType() {
GraknTx tx = testContext.tx();
QueryBuilder qb = tx.graql().infer(true);
String queryString = "match $x isa $type; get;";
List<Answer> answers = qb.<GetQuery>parse(queryString).execute();
assertCollectionsEqual(answers, qb.infer(false).<GetQuery>parse(queryString).execute());
}
use of ai.grakn.graql.GetQuery in project grakn by graknlabs.
the class ReasonerTest method testReasoningWithQueryContainingRelationTypeVar2.
@Test
public void testReasoningWithQueryContainingRelationTypeVar2() {
String queryString = "match $y isa product;(recommended-customer: $x, recommended-product: $y) isa $rel; get;";
String queryString2 = "match $y isa product;(recommended-customer: $x, recommended-product: $y) isa $rel;$rel label recommendation; get;";
QueryBuilder qb = snbKB.tx().graql();
GetQuery query = qb.infer(true).parse(queryString);
GetQuery query2 = qb.infer(true).materialise(true).parse(queryString);
GetQuery query3 = qb.infer(false).parse(queryString2);
assertQueriesEqual(query, query2);
assertQueriesEqual(query2, query3);
}
use of ai.grakn.graql.GetQuery in project grakn by graknlabs.
the class ReasonerTest method testReasoningWithQueryContainingMultiPredResource.
@Test
public void testReasoningWithQueryContainingMultiPredResource() {
String queryString = "match $p isa person, has age $a;$a val >23; $a val <27;$pr isa product;" + "($p, $pr) isa recommendation; get $p, $pr;";
String queryString2 = "match $p isa person, has age >23, has age <27;$pr isa product;" + "($p, $pr) isa recommendation; get;";
QueryBuilder iqb = snbKB.tx().graql().infer(true);
GetQuery query = iqb.parse(queryString);
GetQuery query2 = iqb.parse(queryString2);
assertQueriesEqual(query, query2);
}
Aggregations