/** * Get a {@link QueryParser} for parsing queries from strings */ public static QueryParser parser() { return withoutGraph().parser(); }
@CheckReturnValue public static <T extends Answer> ComputeQuery<T> compute(Method<T> method) { return withoutGraph().compute(method); }
/** * @param patterns an array of patterns to match in the graph * @return a {@link Match} that will find matches of the given patterns */ @CheckReturnValue public static Match match(Pattern... patterns) { return withoutGraph().match(patterns); }
/** * @param varPatterns an array of {@link VarPattern}s defining {@link SchemaConcept}s * @return a {@link DefineQuery} that will apply the changes described in the {@code patterns} */ @CheckReturnValue public static DefineQuery define(VarPattern... varPatterns) { return withoutGraph().define(varPatterns); }
/** * @param varPatterns an array of {@link VarPattern}s undefining {@link SchemaConcept}s * @return a {@link UndefineQuery} that will remove the changes described in the {@code patterns} */ @CheckReturnValue public static UndefineQuery undefine(VarPattern... varPatterns) { return withoutGraph().undefine(varPatterns); }
/** * @param varPatterns a collection of variable patterns to insert into the graph * @return an insert query that will insert the given variable patterns into the graph */ @CheckReturnValue public static InsertQuery insert(Collection<? extends VarPattern> varPatterns) { return withoutGraph().insert(varPatterns); }
/** * @param queryString a string representing a query * @return a query, the type will depend on the type of query. */ @CheckReturnValue public static <T extends Query<?>> T parse(String queryString) { return withoutGraph().parse(queryString); }
/** * @param patterns a collection of patterns to match in the graph * @return a {@link Match} that will find matches of the given patterns */ @CheckReturnValue public static Match match(Collection<? extends Pattern> patterns) { return withoutGraph().match(patterns); }
/** * @param varPatterns a collection of {@link VarPattern}s defining {@link SchemaConcept}s * @return a {@link DefineQuery} that will apply the changes described in the {@code patterns} */ @CheckReturnValue public static DefineQuery define(Collection<? extends VarPattern> varPatterns) { return withoutGraph().define(varPatterns); }
/** * @param varPatterns a collection of {@link VarPattern}s undefining {@link SchemaConcept}s * @return a {@link UndefineQuery} that will remove the changes described in the {@code patterns} */ @CheckReturnValue public static UndefineQuery undefine(Collection<? extends VarPattern> varPatterns) { return withoutGraph().undefine(varPatterns); }
/** * @param varPatterns an array of variable patterns to insert into the graph * @return an insert query that will insert the given variable patterns into the graph */ @CheckReturnValue public static InsertQuery insert(VarPattern... varPatterns) { return withoutGraph().insert(varPatterns); }
public static void loadFromFile(GraknTx graph, String file) { File graql = new File(GraknSystemProperty.PROJECT_RELATIVE_DIR.value() + "/grakn-test-tools/src/main/graql/" + file); List<String> queries; try { queries = Files.readLines(graql, StandardCharsets.UTF_8); } catch (IOException e) { throw new RuntimeException(e); } graph.graql().parser().parseList(queries.stream().collect(Collectors.joining("\n"))).forEach(Query::execute); } }
/** * Helper method to check whether the concept types in the scope have any instances * * @return */ private boolean scopeContainsInstance() { if (scopeTypeLabels().isEmpty()) return false; List<Pattern> checkSubtypes = scopeTypeLabels().stream() .map(type -> Graql.var("x").isa(Graql.label(type))).collect(Collectors.toList()); return tx.graql().infer(false).match(Graql.or(checkSubtypes)).iterator().hasNext(); }
public static void assertExists(QueryBuilder qb, Pattern... patterns) { assertExists(qb.match(patterns)); }
@Override public DefineQuery visitDefineQuery(GraqlParser.DefineQueryContext ctx) { Collection<VarPattern> vars = visitVarPatterns(ctx.varPatterns()); return queryBuilder.define(vars); }
@Override public Object visitUndefineQuery(GraqlParser.UndefineQueryContext ctx) { Collection<VarPattern> vars = visitVarPatterns(ctx.varPatterns()); return queryBuilder.undefine(vars); }
@Override public InsertQuery visitInsertQuery(GraqlParser.InsertQueryContext ctx) { Collection<VarPattern> vars = visitVarPatterns(ctx.varPatterns()); if (ctx.matchPart() != null) { return visitMatchPart(ctx.matchPart()).insert(vars); } else { return queryBuilder.insert(vars); } }
GraqlParser.ComputeConditionsContext conditions = context.computeConditions(); ComputeQuery query = queryBuilder.compute(Method.of(method.getText())); if (conditions == null) return query;
@Override protected void buildRules(GraknTx tx) { // These rules are totally made up for testing purposes and don't work! Pattern when = tx.graql().parser().parsePattern("$x has name 'expectation-when'"); Pattern then = tx.graql().parser().parsePattern("$x has name 'expectation-then'"); tx.putRule("expectation-rule", when, then); when = tx.graql().parser().parsePattern("$x has name 'materialize-when'"); then = tx.graql().parser().parsePattern("$x has name 'materialize-then'"); tx.putRule("materialize-rule", when, then); }