Query format
Every query must have at least one vertex and every edge must have vertices at both ends.
A QGraph query must be a connected graph.
QGraph queries can be as simple as a single vertex.
QGraph supports both directed and undirected edges but requires that the underlying database use directed links.
Each vertex and edge in a QGraph query has a unique name (label) used within the context of the query. These names are used to identify the elements in the query and resulting subgraphs but have no effect on what the query matches.
Query results
QGraph queries return their results in the form of a collection of subgraphs called a container.
Query results include all attributes for the objects and links in the container’s subgraphs, even if those attributes are not explicitly included in the query.
QGraph does not require that distinct query elements match distinct database entities, therefore individual database items may appear more than once in a subgraph.
QGraph does not return links in the database that are not specified in the query, even when both link ends are in the same subgraph.
Loops (links that point back to the originating object) in the database are treated identically to other links.
Proximity implementation
Subgraphs and containers are added as persistent items to the database.
Subgraphs include the actual database objects and links that match the originating query, not copies.
Queries containing undirected edges are more computationally expensive than those that contain only directed edges.