UGraph provides an interface to be able to run such queries. However, ultimately what makes the graph useful is not only the relationships represented by the edges, but also the data that is stored on each node and each edge. Depending on what the user wants to represent, the user will have to subclass UGraphVertex and UGraphEdge to hold that data.