private Var var() { Var var = Graql.var(); if (defineAllVars) { return var.asUserDefined(); } else { return var; } }
public static IdPredicate create(Var varName, ConceptId id, ReasonerQuery parent) { return create(createIdVar(varName.asUserDefined(), id), parent); } public static IdPredicate create(Var varName, Concept con, ReasonerQuery parent) {
@Override public Atomic mapToAtom(VarPatternAdmin var, Set<VarPatternAdmin> vars, ReasonerQuery parent) { Var varName = var.var().asUserDefined(); VarPatternAdmin typeVar = this.superType(); Var typeVariable = typeVar.var().asUserDefined(); IdPredicate predicate = getIdPredicate(typeVariable, typeVar, vars, parent); ConceptId predicateId = predicate != null? predicate.getPredicate() : null; return SubAtom.create(varName, typeVariable, predicateId, parent); } }
public static IdPredicate create(Var varName, Label label, ReasonerQuery parent) { return create(createIdVar(varName.asUserDefined(), label, parent.tx()), parent); } public static IdPredicate create(Var varName, ConceptId id, ReasonerQuery parent) {
@Override public Atomic mapToAtom(VarPatternAdmin var, Set<VarPatternAdmin> vars, ReasonerQuery parent) { Var varName = var.var().asUserDefined(); VarPatternAdmin typeVar = this.role(); Var typeVariable = typeVar.var().asUserDefined(); IdPredicate predicate = getIdPredicate(typeVariable, typeVar, vars, parent); ConceptId predicateId = predicate == null? null : predicate.getPredicate(); return PlaysAtom.create(varName, typeVariable, predicateId, parent); } }
@Override public Atomic mapToAtom(VarPatternAdmin var, Set<VarPatternAdmin> vars, ReasonerQuery parent) { Var varName = var.var().asUserDefined(); VarPatternAdmin roleVar = this.role(); Var roleVariable = roleVar.var().asUserDefined(); IdPredicate predicate = getIdPredicate(roleVariable, roleVar, vars, parent); ConceptId predicateId = predicate != null ? predicate.getPredicate() : null; return RelatesAtom.create(varName, roleVariable, predicateId, parent); } }
public static IdPredicate create(Var varName, Concept con, ReasonerQuery parent) { return create(createIdVar(varName.asUserDefined(), con.id()), parent); } private static IdPredicate create(IdPredicate a, ReasonerQuery parent) {
@Override public Atomic mapToAtom(VarPatternAdmin var, Set<VarPatternAdmin> vars, ReasonerQuery parent) { //NB: HasResourceType is a special case and it doesn't allow variables as resource types Var varName = var.var().asUserDefined(); Label label = this.resourceType().getTypeLabel().orElse(null); Var predicateVar = var().asUserDefined(); SchemaConcept schemaConcept = parent.tx().getSchemaConcept(label); ConceptId predicateId = schemaConcept != null? schemaConcept.id() : null; //isa part VarPatternAdmin resVar = varName.has(Graql.label(label)).admin(); return HasAtom.create(resVar, predicateVar, predicateId, parent); } }
public Pattern pattern(Attribute concept) { Var owner = Graql.var().asUserDefined(); VarPattern resourceVar = Graql.var().asUserDefined().val(concept.value()); return owner .has(concept.type().label(),resourceVar) .id(concept.owner().id()); } }
@Override public Atom rewriteWithTypeVariable() { return createSelf(getVarName(), getPredicateVariable().asUserDefined(), getTypeId(), getParentQuery()); }
@Nullable @Override public final Atomic mapToAtom(VarPatternAdmin var, Set<VarPatternAdmin> vars, ReasonerQuery parent) { //IsaProperty is unique within a var, so skip if this is a relation if (var.hasProperty(RelationshipProperty.class)) return null; Var varName = var.var().asUserDefined(); VarPatternAdmin typePattern = this.type(); Var typeVariable = typePattern.var(); IdPredicate predicate = getIdPredicate(typeVariable, typePattern, vars, parent); ConceptId predicateId = predicate != null ? predicate.getPredicate() : null; //isa part VarPatternAdmin isaVar = varPatternForAtom(varName, typeVariable).admin(); return IsaAtom.create(varName, typeVariable, isaVar, predicateId, parent); }
@Override public RelationshipAtom rewriteWithTypeVariable(){ return create(this.getPattern(), this.getPredicateVariable().asUserDefined(), this.getTypeId(), this.getPossibleTypes(), this.getParentQuery()); }
@Override public Atom rewriteWithTypeVariable() { return create(getVarName(), getPredicateVariable().asUserDefined(), getTypeId(), this.isDirect(), getParentQuery()); }
public Pattern pattern(Entity concept) { Var entityVar = Graql.var().asUserDefined(); return entityVar .isa(Graql.label(concept.type().label())) .id(concept.id()); } }
@Override public Atom rewriteToUserDefined(Atom parentAtom) { return parentAtom.getPredicateVariable().isUserDefinedName()? createSelf(getVarName(), getPredicateVariable().asUserDefined(), getTypeId(), getParentQuery()) : this; } }
@Override public Atom rewriteWithTypeVariable() { return create(getPattern(), getPredicateVariable().asUserDefined(), getRelationVariable(), getTypeId(), getMultiPredicate(), getParentQuery()); }
@Override public Atomic mapToAtom(VarPatternAdmin var, Set<VarPatternAdmin> vars, ReasonerQuery parent) { SchemaConcept schemaConcept = parent.tx().getSchemaConcept(label()); if (schemaConcept == null) throw GraqlQueryException.labelNotFound(label()); return IdPredicate.create(var.var().asUserDefined(), label(), parent); } }
@Override public Atomic mapToAtom(VarPatternAdmin var, Set<VarPatternAdmin> vars, ReasonerQuery parent) { //NB: HasAttributeProperty always has (type) label specified Var varName = var.var().asUserDefined(); Var relationVariable = relationship().var(); Var attributeVariable = attribute().var().asUserDefined(); Set<ValuePredicate> predicates = getValuePredicates(attributeVariable, attribute(), vars, parent); IsaProperty isaProp = attribute().getProperties(IsaProperty.class).findFirst().orElse(null); VarPatternAdmin typeVar = isaProp != null? isaProp.type() : null; IdPredicate predicate = typeVar != null? getIdPredicate(attributeVariable, typeVar, vars, parent) : null; ConceptId predicateId = predicate != null? predicate.getPredicate() : null; //add resource atom VarPatternAdmin resVar = relationVariable.isUserDefinedName()? varName.has(type(), attributeVariable, relationVariable).admin() : varName.has(type(), attributeVariable).admin(); return ResourceAtom.create(resVar, attributeVariable, relationVariable, predicateId, predicates, parent); } }
@Override public RelationshipAtom rewriteWithRelationVariable(){ VarPattern newVar = Graql.var().asUserDefined(); VarPattern relVar = getPattern().admin().getProperty(IsaProperty.class) .map(prop -> newVar.isa(prop.type())) .orElse(newVar); for (RelationPlayer c: getRelationPlayers()) { VarPatternAdmin roleType = c.getRole().orElse(null); if (roleType != null) { relVar = relVar.rel(roleType, c.getRolePlayer()); } else { relVar = relVar.rel(c.getRolePlayer()); } } return create(relVar.admin(), this.getPredicateVariable(), this.getTypeId(), this.getPossibleTypes(), this.getParentQuery()); }
@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()); }