/** * @param var the variable that this predicate is testing against */ ComparatorPredicate(VarPattern var) { this.value = Optional.empty(); this.var = Optional.of(var.admin()); }
/** * @param varPattern the variable pattern representing a resource * @return a predicate that returns true when a value contains the given substring */ @CheckReturnValue public static ValuePredicate contains(VarPattern varPattern) { Objects.requireNonNull(varPattern); return Predicates.contains(varPattern.admin()); } }
/** * Turn a stream of Graql patterns into a Graql insert query. * @param stream stream of Graql patterns * @return Graql patterns as a string */ private String join(Stream<VarPattern> stream){ return stream .filter(varPattern -> varPattern.admin().getProperties().findAny().isPresent()) .map(Object::toString) .collect(joining(EOL, "", EOL)); }
public static IsaAtom create(Var var, Var predicateVar, @Nullable ConceptId predicateId, boolean isDirect, ReasonerQuery parent) { VarPatternAdmin pattern = isDirect ? var.isaExplicit(predicateVar).admin() : var.isa(predicateVar).admin(); return new AutoValue_IsaAtom(var, predicateId, predicateVar, pattern, parent); }
public boolean isDirect(){ return getPattern().admin().getProperties(IsaExplicitProperty.class).findFirst().isPresent(); }
public static ResourceAtom create(VarPattern pattern, Var attributeVar, Var relationVariable, ConceptId predicateId, Set<ValuePredicate> ps, ReasonerQuery parent) { return new AutoValue_ResourceAtom(pattern.admin().var(), pattern, parent, attributeVar, predicateId, relationVariable, ImmutableSet.copyOf(ps)); } private static ResourceAtom create(ResourceAtom a, ReasonerQuery parent) {
private static ai.grakn.graql.ValuePredicate extractPredicate(VarPattern pattern) { Iterator<ValueProperty> properties = pattern.admin().getProperties(ValueProperty.class).iterator(); ValueProperty property = properties.next(); if (properties.hasNext()) { throw GraqlQueryException.valuePredicateAtomWithMultiplePredicates(); } return property.predicate(); }
@Override protected Pattern createCombinedPattern(){ Set<VarPatternAdmin> vars = getMultiPredicate().stream() .map(Atomic::getPattern) .map(VarPattern::admin) .collect(Collectors.toSet()); vars.add(getPattern().admin()); return Patterns.conjunction(vars); }
@Override public final VarPattern isa(VarPattern type) { return addProperty(IsaProperty.of(type.admin())); }
@Override public final VarPattern key(VarPattern type) { return addProperty(HasAttributeTypeProperty.of(type.admin(), true)); }
public static IsaAtom create(Var var, Var predicateVar, SchemaConcept type, boolean isDirect, ReasonerQuery parent) { VarPatternAdmin pattern = isDirect ? var.isaExplicit(predicateVar).admin() : var.isa(predicateVar).admin(); return new AutoValue_IsaAtom(var, type.id(), predicateVar, pattern, parent); } private static IsaAtom create(IsaAtom a, ReasonerQuery parent) {
/** * @return set of potentially applicable rules - does shallow (fast) check for applicability */ public Stream<Rule> getPotentialRules(){ boolean isDirect = getPattern().admin().getProperties(IsaExplicitProperty.class).findFirst().isPresent(); return getPossibleTypes().stream() .flatMap(type -> RuleUtils.getRulesWithType(type, isDirect, tx())) .distinct(); }
public static NeqPredicate create(VarPattern pattern, ReasonerQuery parent) { return new AutoValue_NeqPredicate(pattern.admin().var(), pattern, parent, extractPredicate(pattern)); } public static NeqPredicate create(Var varName, NeqProperty prop, ReasonerQuery parent) {
public static HasAttributeProperty of(Label attributeType, VarPatternAdmin attribute, VarPatternAdmin relationship) { attribute = attribute.isa(label(attributeType)).admin(); return new AutoValue_HasAttributeProperty(attributeType, attribute, relationship); }
public static ValuePredicate create(VarPattern pattern, ReasonerQuery parent) { return new AutoValue_ValuePredicate(pattern.admin().var(), pattern, parent, extractPredicate(pattern)); } public static ValuePredicate create(Var varName, ai.grakn.graql.ValuePredicate pred, ReasonerQuery parent) {
public static NeqPredicate create(Var varName, NeqProperty prop, ReasonerQuery parent) { VarPatternAdmin pattern = varName.neq(prop.var().var()).admin(); return create(pattern, parent); } public static NeqPredicate create(NeqPredicate a, ReasonerQuery parent) {
@Override public ResourceAtom rewriteWithRelationVariable(){ Var attributeVariable = getPredicateVariable(); Var relationVariable = getRelationVariable().asUserDefined(); VarPattern newVar = getVarName().has(getSchemaConcept().label(), attributeVariable, relationVariable); return create(newVar.admin(), attributeVariable, relationVariable, getTypeId(), getMultiPredicate(), getParentQuery()); }