“…A key notion in many of them is that of a pattern: essentially a small subgraph, or a subtree, that needs to be matched in a large data set. These often provide the basis for language constructors, for instance, for the navigational language XPath [35,36], more general XML query languages [3,13,17], or path queries over graphs [7,23]. Patterns also provide a standard abstraction of incomplete data in relational, XML, and graph models [1,2,8,9,29].…”