Subquery structure
Subqueries let you attach a numeric annotation to a connected set of vertices and edges instead of just a single vertex or edge.
A subquery must be connected to one or more vertices in the main query.
A subquery’s boundary edge connects a vertex inside the subquery (the boundary vertex) to a vertex outside of the subquery.
A subquery’s boundary vertex is a vertex inside the subquery box that is connected to the main query by a boundary edge.
The inner structure of a subquery is the set of objects and links inside the subquery box. A boundary edge is not part of a subquery’s inner structure; a boundary vertex is included in the inner structure.
Subquery requirements
The inner structure of a subquery must be a well-formed query in its own right.
A subquery’s inner structure may not be disconnected.
All subqueries must be annotated.
The boundary edge of a subquery must be annotated.
The vertex outside the subquery connected to the boundary edge may not be annotated.
Draw subqueries as single vertices to better understand query structure and annotation requirements.
Constraints on elements within a subquery must obey the same rules that apply to any QGraph constraint.
Two subqueries may not be connected by a single edge.
Implementation restrictions
A subquery must be connected to the main query by a single edge; multiple boundary edges are not permitted.
The boundary vertex of a subquery may not be annotated.
Constraints that cross subquery boundaries require that one
of the items being compared be
optional (have
an annotation of [0..] or
[0..).
j]
Proximity prohibits constraints between an annotated item and an item within an annotated subquery.
Nested subqueries are not permitted.