Querying the graph

Graph query

get_prop(g)
get_prop(g, v)
get_prop(g, e)
get_prop(g, s, d)

Return the specific property (data for vertices, ids for edges, max id for the graph) defined for graph g, vertex v, or edge e (optionally referenced by source vertex s and destination vertex d). If property does not exist, return an empty collection.

source
has_prop(g, v, prop)
has_prop(g, e, prop)
has_prop(g, s, d, prop)

Return true if the property prop belongs to the specific property (data for vertices, ids for dges) for graph g, vertex v, or edge e (optionally referenced by source vertex s and destination vertex d). For nodes this will check if prop is a key of the node, while for edges it will check if prop belongs to the id list.

source
set_prop!(g, val)
set_prop!(g, v, val)
set_prop!(g, e, val)
set_prop!(g, s, d, val)

Set (replace) the specific property (data for vertices, ids for edges, max id for the graph) with value val in graph g, vertex v, or edge e (optionally referenced by source vertex s and destination vertex d). Will return false if vertex or edge does not exist, true otherwise.

source
final_neighborhs(g, dep::Pair; dir=:out)

Return the vertex indices for the neighbors at the end of the dependency chain. Note: this assumes that the dependency chain is valid (all the nodes exist).

source
paths_through(g, v::Integer; dir=:out)

Return a vector of the paths going through the given vertex. If dir is specified, use the corresponding edge direction (:in and :out are acceptable values).

source
nextid(g, dep::Pair)

Find the next available id such that a dead end (a node with no outgoing paths) along the dependency chain (dep) is continued. If there is no such case, it gives the maximum id (see walkdep).

source
on_path(g, v, path)

Check if the vertex is on the given path.

source
function walkdep(g, dep::Pair; stopcond=(g,v)->false)

Walk along the dependency chain, but only on already existing paths, and return the last node and the compatible paths.

source
walkpath(g, paths, start; dir=:out, stopcond=(g,v)->false)

Walk on the given paths starting from start and return the last nodes. If dir is specified, use the corresponding edge direction (:in and :out are acceptable values).

source