Skip to content

type_bridge.query.ast

ast

Abstract Syntax Tree (AST) for TypeQL queries.

This module defines the structure of TypeQL queries as a tree of typed objects, decoupling query construction from string formatting.

QueryNode dataclass

QueryNode()

Bases: ABC

Abstract base class for all AST nodes.

Value dataclass

Value()

Bases: QueryNode, ABC

Abstract base class for values.

FunctionCallValue dataclass

FunctionCallValue(function, args)

Bases: Value

Value representing a function call (e.g. iid($x)).

LiteralValue dataclass

LiteralValue(value, value_type)

Bases: Value

A literal value (string, number, boolean, date, etc.).

ArithmeticValue dataclass

ArithmeticValue(left, operator, right)

Bases: Value

A binary arithmetic operation that is itself a Value.

Supports TypeQL infix operators: +, -, *, /, %, ^

RolePlayer dataclass

RolePlayer(role, player_var)

Bases: QueryNode

A role player in a relation.

Constraint dataclass

Constraint()

Bases: QueryNode, ABC

Abstract base class for constraints in a pattern.

IidConstraint dataclass

IidConstraint(iid)

Bases: Constraint

Constraint matching by IID.

HasConstraint dataclass

HasConstraint(attr_name, value)

Bases: Constraint

Constraint checking for an attribute value.

IsaConstraint dataclass

IsaConstraint(type_name, strict=False)

Bases: Constraint

Constraint checking for type inheritance.

Pattern dataclass

Pattern()

Bases: QueryNode, ABC

Abstract base class for patterns in a match clause.

EntityPattern dataclass

EntityPattern(variable, type_name, constraints=list(), is_strict=False)

Bases: Pattern

Pattern matching an entity.

RelationPattern dataclass

RelationPattern(variable, type_name, role_players=list(), constraints=list())

Bases: Pattern

Pattern matching a relation.

SubTypePattern dataclass

SubTypePattern(variable, parent_type)

Bases: Pattern

Pattern checking for type inheritance ($t sub type).

AttributePattern dataclass

AttributePattern(variable, type_name, value=None)

Bases: Pattern

Pattern matching an attribute explicitly.

HasPattern dataclass

HasPattern(thing_var, attr_type, attr_var)

Bases: Pattern

Pattern for variable has attribute assignment ($x has Type $v).

ValueComparisonPattern dataclass

ValueComparisonPattern(var, operator, value)

Bases: Pattern

Pattern for value comparison ($v > 10).

NotPattern dataclass

NotPattern(patterns)

Bases: Pattern

Pattern for negation (not { ... }).

OrPattern dataclass

OrPattern(alternatives)

Bases: Pattern

Pattern for disjunction ({ ... } or { ... }).

IidPattern dataclass

IidPattern(variable, iid)

Bases: Pattern

Pattern for IID match ($x iid 0x...).

RawPattern dataclass

RawPattern(content)

Bases: Pattern

A raw string pattern (legacy support).

Statement dataclass

Statement()

Bases: QueryNode, ABC

Abstract base class for statements in insert/delete/update clauses.

RawStatement dataclass

RawStatement(content)

Bases: Statement

A raw string statement (legacy support).

HasStatement dataclass

HasStatement(subject_var, attr_name, value)

Bases: Statement

Statement assigning an attribute value.

IsaStatement dataclass

IsaStatement(variable, type_name)

Bases: Statement

Statement defining the type of a variable.

RelationStatement dataclass

RelationStatement(variable, type_name, role_players, include_variable=True, attributes=list())

Bases: Statement

Statement defining a relation and its role players.

For TypeDB 3.x inserts, relations don't use a variable prefix. Set include_variable=False for insert statements.

Attributes can be included inline for insert statements where the variable is not used (TypeDB 3.x: (role: $player) isa relation, has attr value;).

DeleteThingStatement dataclass

DeleteThingStatement(variable)

Bases: Statement

Statement deleting a thing (entity/relation) instance.

Clause dataclass

Clause()

Bases: QueryNode, ABC

Abstract base class for top-level clauses.

MatchClause dataclass

MatchClause(patterns)

Bases: Clause

A match clause containing patterns.

MatchLetClause dataclass

MatchLetClause(assignments)

Bases: Clause

A match let clause.

LetAssignment dataclass

LetAssignment(variables, expression, is_stream=False)

Bases: QueryNode

Assignment in a match let clause.

Can be: - $x = func() (single value) - $x in func() (stream)

InsertClause dataclass

InsertClause(statements)

Bases: Clause

An insert clause containing statements.

DeleteClause dataclass

DeleteClause(statements)

Bases: Clause

A delete clause containing statements.

UpdateClause dataclass

UpdateClause(statements)

Bases: Clause

An update clause containing statements.

FetchItem dataclass

FetchItem(key)

Bases: QueryNode, ABC

Abstract base class for fetch items.

FetchAttribute dataclass

FetchAttribute(key, var, attr_name)

Bases: FetchItem

Fetch a single attribute value.

Generates: "key": $var.attr_name

FetchVariable dataclass

FetchVariable(key, var)

Bases: FetchItem

Fetch a variable directly.

Generates: "key": $var

FetchAttributeList dataclass

FetchAttributeList(key, var, attr_name)

Bases: FetchItem

Fetch a multi-value attribute as a list.

Generates: "key": [$var.attr_name]

FetchFunction dataclass

FetchFunction(key, func_name, var)

Bases: FetchItem

Fetch a function result.

Generates: "key": func($var) Examples: iid($var), label($t)

FetchWildcard dataclass

FetchWildcard(key, var)

Bases: FetchItem

Fetch all attributes of a variable.

Generates: "key": $var.*

FetchNestedWildcard dataclass

FetchNestedWildcard(key, var)

Bases: FetchItem

Fetch all attributes of a variable in a nested object.

Generates: "key": { $var.* }

This is used when you need to combine wildcard with other fetch items like label() and iid(), since TypeDB doesn't allow mixing $var.* with key-value pairs at the same level.

FetchClause dataclass

FetchClause(items=list())

Bases: Clause

A fetch clause defining output structure.

Can contain either typed FetchItems or raw strings for backwards compatibility.

AggregateExpr dataclass

AggregateExpr(func_name, var, attr_name=None)

Bases: QueryNode

An aggregate expression like count($var) or sum($attr).

Generates: function($var) or function($var.attr)

ReduceAssignment dataclass

ReduceAssignment(variable, expression)

Bases: QueryNode

Assignment in reduce clause ($x = sum($v)).

ReduceClause dataclass

ReduceClause(assignments, group_by=None)

Bases: Clause

A reduce clause for aggregations.

Generates: reduce $count = count($var); Or with groupby: reduce $count = count($var) groupby $group;