Search in sources :

Example 11 with Match

use of ai.grakn.graql.Match in project grakn by graknlabs.

the class MatchTest method testVariableAsRoleplayer.

@Test
public void testVariableAsRoleplayer() {
    Match query = qb.match(var().rel(x.isa("movie")).rel("genre-of-production", var().has("name", "crime")));
    assertThat(query, variable(x, containsInAnyOrder(godfather, heat)));
}
Also used : Match(ai.grakn.graql.Match) Test(org.junit.Test)

Example 12 with Match

use of ai.grakn.graql.Match in project grakn by graknlabs.

the class MatchTest method testVariablesEverywhere.

@Test
public void testVariablesEverywhere() {
    Match query = qb.match(var().rel(label("production-with-genre"), x.isa(y.sub(label("production")))).rel(var().has("name", "crime")));
    assertThat(query, results(containsInAnyOrder(allOf(hasEntry(is(x), godfather), hasEntry(is(y), production)), allOf(hasEntry(is(x), godfather), hasEntry(is(y), movie)), allOf(hasEntry(is(x), heat), hasEntry(is(y), production)), allOf(hasEntry(is(x), heat), hasEntry(is(y), movie)))));
}
Also used : Match(ai.grakn.graql.Match) Test(org.junit.Test)

Example 13 with Match

use of ai.grakn.graql.Match in project grakn by graknlabs.

the class MatchBenchmark method match.

@Benchmark
public void match() {
    Match match = graph.graql().match(var("x").isa(BENCHMARK_ENTITY_TYPE).has(BENCHMARK_ATTRIBUTE_TYPE, "0"));
    GetQuery answers = match.get();
    Optional<Answer> first = answers.stream().findFirst();
    first.get();
}
Also used : Answer(ai.grakn.graql.admin.Answer) GetQuery(ai.grakn.graql.GetQuery) Match(ai.grakn.graql.Match) Benchmark(org.openjdk.jmh.annotations.Benchmark)

Example 14 with Match

use of ai.grakn.graql.Match in project grakn by graknlabs.

the class QueryVisitor method visitGetQuery.

@Override
public GetQuery visitGetQuery(GraqlParser.GetQueryContext ctx) {
    Set<Var> vars = ctx.VARIABLE().stream().map(this::getVariable).collect(toSet());
    Match match = visitMatchPart(ctx.matchPart());
    if (vars.isEmpty()) {
        return match.get();
    } else {
        return match.get(vars);
    }
}
Also used : Var(ai.grakn.graql.Var) Match(ai.grakn.graql.Match)

Example 15 with Match

use of ai.grakn.graql.Match in project grakn by graknlabs.

the class QueryVisitor method visitMatchOrderBy.

@Override
public Match visitMatchOrderBy(GraqlParser.MatchOrderByContext ctx) {
    Match match = visitMatchPart(ctx.matchPart());
    // decide which ordering method to use
    Var var = getVariable(ctx.VARIABLE());
    if (ctx.order() != null) {
        return match.orderBy(var, visitOrder(ctx.order()));
    } else {
        return match.orderBy(var);
    }
}
Also used : Var(ai.grakn.graql.Var) Match(ai.grakn.graql.Match)

Aggregations

Match (ai.grakn.graql.Match)103 Test (org.junit.Test)98 Var (ai.grakn.graql.Var)8 ConceptId (ai.grakn.concept.ConceptId)5 Concept (ai.grakn.concept.Concept)4 SchemaConcept (ai.grakn.concept.SchemaConcept)4 PatternAdmin (ai.grakn.graql.admin.PatternAdmin)4 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)4 AttributeType (ai.grakn.concept.AttributeType)3 Label (ai.grakn.concept.Label)3 Relationship (ai.grakn.concept.Relationship)3 Printer (ai.grakn.graql.Printer)3 QueryBuilder (ai.grakn.graql.QueryBuilder)3 Answer (ai.grakn.graql.admin.Answer)3 MatchableConcept (ai.grakn.matcher.MatchableConcept)3 Matcher (org.hamcrest.Matcher)3 RelationshipType (ai.grakn.concept.RelationshipType)2 Role (ai.grakn.concept.Role)2 Thing (ai.grakn.concept.Thing)2 GraqlQueryException (ai.grakn.exception.GraqlQueryException)2