<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Answering
Graph Pattern Queries using Compact Materialized Views. In Proceed-
ings of ACM Conference, Edinburgh, UK, March</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Answering Graph Pattern Queries using Compact Materialized Views</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michael Lan</string-name>
          <email>mll22@njit.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Xiaoying Wu*</string-name>
          <email>xiaoying.wu@whu.edu.cn</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dimitri Theodoratos</string-name>
          <email>dth@njit.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>New Jersey Institute of Technology</institution>
          ,
          <addr-line>New Jersey</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computer Science</institution>
          ,
          <addr-line>Wuhan</addr-line>
          ,
          <institution>University</institution>
          ,
          <addr-line>Wuhan</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <volume>29</volume>
      <issue>2022</issue>
      <abstract>
        <p>We address the problem of evaluating graph pattern queries involving reachability (edge-to-path mapping) and direct (edge-to-edge mapping) relationships under homomorphisms on data graphs using materialized graph pattern views. We propose an original approach for view materialization which materializes views as summary graphs, an approach that records, in a compact way, all the homomorphisms of the view to the data graph. In this context, we characterize view usability in terms of query edge coverage and provide necessary and sufcfiient conditions for answering queries using views. We design algorithms for deciding whether a query can be answered using a set of views, for generating the summary graph of a query from the view materializations, and for producing a minimal view set capable of answering a query. Our experimental evaluation demonstrates that our approach outperforms, by several orders of magnitude, a state-of-the-art approach which does not use materialized views, and substantially improves upon its scalability. *The research of this author was supported by the National Natural Science Foundation of China under Grant No. 61872276.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        Graphs model complex relationships between entities in a
multitude of modern applications. A fundamental operation for
querying, exploring and analyzing graphs is graph matching, which
consists of finding the matches of a query graph pattern in the data
graph. Graph matching is crucial in many application domains,
such as social network analysis [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], protein interaction analysis
[
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], cheminformatics [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], knowledge bases [
        <xref ref-type="bibr" rid="ref1 ref30">1, 30</xref>
        ], and road
network management [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Existing approaches are characterized by: (a) the type of edges
the patterns have, and (b) the type of morphism used to map
the pattern to the data graph. An edge in a query pattern can be
either a child edge, which represents a parent-child relationship
in the data graph (edge-to-edge mapping) [
        <xref ref-type="bibr" rid="ref10 ref24 ref25 ref31 ref33 ref4 ref6">4, 6, 10, 24, 25, 31,
33</xref>
        ], or a descendant edge, which represents a node reachability
relationship in the data graph (edge-to-path mapping) [
        <xref ref-type="bibr" rid="ref13 ref22 ref7">7, 13, 22</xref>
        ].
The morphism determines how a pattern is mapped to the data
graph and, in this context, it can be an isomorphism (injective
mapping) [
        <xref ref-type="bibr" rid="ref25 ref31 ref33 ref6">6, 25, 31, 33</xref>
        ] or a homomorphism (general mapping)
[
        <xref ref-type="bibr" rid="ref13 ref22 ref24 ref4 ref7">4, 7, 13, 22, 24</xref>
        ]. Graph simulation [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and its variants [
        <xref ref-type="bibr" rid="ref12 ref23">12, 23</xref>
        ]
are another way to match patterns to data graphs.
      </p>
      <p>Earlier contributions considered isomorphisms and
edge-toedge mappings, while more recent ones focus on homomorphic
mappings. By allowing edge-to-path mapping on graphs, patterns
with descendent edges are able to extract matches “hidden” deeply
within large graphs which might be missed by patterns with only
child edges. On the other hand, the patterns with child edges can
discover important parent-child relationships in the data graph
which can be missed by patterns with only descendant edges. We
adopt, in this paper, a general framework that considers patterns
which allow both child and descendant edges. This framework
incorporates the benefits from both types of edges.</p>
      <p>
        Graph pattern matching is an NP-hard problem, even for
isomorphic matching of patterns with only child edges [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Finding
the homomorphic matches of query patterns which involve
descendant edges on a data graph is more challenging. Descendant
edges in a query pattern increase the number of results since they
are offered more chances to be matched to the data graph
compared to child edges. Furthermore, finding matches of descendant
edges to the data graph is an expensive operation and requires
the use of a node readability index [
        <xref ref-type="bibr" rid="ref18 ref29 ref9">9, 18, 29</xref>
        ]. Despite the use of
reachability indexes, evaluating descendant edges remains a costly
operation. Existing approaches for evaluating pattern queries with
reachability relationships produce a huge number of intermediate
results (that is, results for subgraphs of the query graph which do
not appear in any result for the query). As a consequence, existing
approaches do not scale satisfactorily when the size of the data
graph increases.
      </p>
      <p>
        Answering queries using materialized views is a well known
technique for improving the performance of query evaluation and
for evaluating queries without accessing the base data, in particular
in a distributed environment [
        <xref ref-type="bibr" rid="ref11 ref14 ref16 ref20 ref40">11, 14, 16, 20, 40</xref>
        ]. The idea is to
pre-compute and store the answers of views and to rewrite an
incoming query using exclusively the view materializations, if the
query language is closed [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], or to otherwise provide a process for
computing the query answer from the view materializations [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
Materialized views can also be effectively used for addressing the
data scalability problem of queries.
      </p>
      <p>In this paper we adopt a novel approach for materializing graph
pattern views over data graphs: a view materialization is a graph,
called a summary graph of the view, which is a compact
representations of the view answer. A summary graph constitutes a search
space for the view answer and the view results can be enumerated
by applying multiway joins while traversing the graph.
Contribution. The main contributions of the paper are as follows:
• We consider hybrid queries (i.e., queries involving parent-child
and reachability relationships) to be mapped against large data
graphs using homomorphisms. In this context, we address the
problem of answering graph pattern queries using materialized
views. This problem has not been addressed before for this type
of queries and views.
• We suggest an original way for representing materialized views
as summary graphs. A summary graph of a view compactly
encodes all the homomorphisms of the view to the data graph
in a structure which is, typically, much smaller than the view
answer (Section 3).
• We characterize answering a query using one or multiple views
in terms of query edge coverage from view edges. We provide
necessary and sufficient conditions for answering a query using
materialized views (Section 4).
• We design an algorithm which identifies the views from a pool
of materialized views that can be used for answering a query,
and computes the summary graph of a query from the summary
graphs of these views (Section 5).
• Not all available views might be needed for answering a query.</p>
      <p>We provide an algorithm which finds a minimal set of views
(this is a set of views which does not include redundant views)
from the view pool (Section 5).
• We run extensive experiments to evaluate the efcfiiency and
scalability of our approach for answering queries using views.
We also compare it with a previous state-of-the-art approach
which does not use materialized views. Our results show that
our view-based approach outperforms that approach by orders
of magnitude in terms of execution time and displays better
scalability (Section 6).
2</p>
    </sec>
    <sec id="sec-2">
      <title>DATA GRAPH AND GRAPH PATTERN</title>
    </sec>
    <sec id="sec-3">
      <title>QUERIES</title>
      <p>In this section, we present the data model, graph pattern queries,
edge-to-path mappings and homomorphisms. We also present
related concepts that are needed for the results presented later.
Data Graph. We assume that the data is presented in the form of
a data graph defined below.</p>
      <p>Definition 2.1 (Data Graph). A data graph is a directed
nodelabeled graph  = ( , ) where  denotes the set of nodes and
 denotes the set of edges (ordered pairs of nodes). Let L be a
ifnite set of node labels. Each node  in  has a label  ( ) ∈ L
associated with it.</p>
      <p>Given a label  in L, the inverted list  is the list of nodes
in  whose label is . Figure 1(a) shows a data graph  with
labels , , ,  and . Label subscripts are used to distinguish
nodes with the same label. The inverted list of label  in  is
 = {1, 2, 3, 4, 5}</p>
      <p>Definition 2.2 (Node reachability). A node  is said to reach
node  in  , denoted by  ≺  , if there exists a path from  to 
in  . Clearly, if (,  ) ∈ , then  ≺  . Abusing tree notation, we
refer to  as a child of  (or  as a parent of  ) if (,  ) ∈ , and 
as a descendant of  (or  is an ancestor of  ) if  ≺  .</p>
      <p>
        Given two nodes  and  in  , in order to efcfiiently check
whether  ≺  , graph pattern matching algorithms use some kind
of reachability indexing scheme. In most reachability indexing
schemes the data graph node labels are the entries in the index for
the data graph [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. Our approach can flexibly use any labeling
scheme to check node reachability. In order to check if  is a child
of , the basic access information of the graph  can be used; for
example, adjacency lists.
      </p>
      <p>Queries. We consider graph pattern queries that involve child
and/or descendant edges.</p>
      <p>Definition 2.3 (Graph Pattern Query). A query is a graph .
Every node  in  has a label  ( ) from L. There can be two
types of edges in . A child (resp. descendant) edge denotes a
child (resp. descendant) structural relationship between the
respective two nodes. A graph pattern that contains both child and
descendant edges is a hybrid graph pattern.</p>
      <p>Intuitively, a child edge represents an edge in the data graph  .
A descendant edge represents a path of edges in  . Figure 1(b)
shows a query . Single line arrows denote child edges while
double line arrows denote descendant edges.</p>
      <p>The match set  ( ) of a node  in  is the inverted list
 () of the label of node  . A match of an edge  = (, )
in  is a pair (,  ) of nodes in  such that  ( ) =  (),
 () =  ( ) and: (a)  ≺  if  is a descendant edge, while
(b) (,  ) is an edge in  if  is a child edge. The match set  ()
of  is the set of all the matches of  in  .</p>
      <p>The match set  () of an edge  = (, ) on a data graph 
can be computed using the match sets  ( ) and  () along with
reachability information on the nodes of  (if  is a descendant
edge), or the adjacency lists for the nodes of  (if  is a child
edge).</p>
      <p>The notion of node reachability provided in Definition 2.2 for
nodes in a data graph is extended to nodes in a graph pattern in a
natural way.</p>
      <p>Homomorphisms. Queries are matched to the data graph using
homomorphisms.</p>
      <p>Definition 2.4 (Graph Pattern Homomorphism to a Data Graph).
Given a graph pattern  and a data graph  , a homomorphism
from  to  is a function ℎ mapping the nodes of  to nodes of
 , such that: (1) for any node  ∈ ,  ( ) =  (ℎ ( )); and
(2) for any edge (, ) ∈ , if (, ) is a child edge, (ℎ ( ), ℎ ())
is an edge of  , while if (, ) is a descendant edge, ℎ ( ) ≺ ℎ ()
in  .</p>
      <p>Definition 2.5 (Homomorphism between Graph Patterns). Given
a graph pattern  and another graph pattern , a homomorphism
from  to  is a function ℎ mapping the nodes of  to nodes of ,
such that: (1) for any node  ∈  ,  ( ) =  (ℎ ( )); and (2)
for any edge (, ) ∈  , if (, ) is a child edge, (ℎ ( ), ℎ ()) is a
child edge of , while if (, ) is a descendant edge, ℎ ( ) ≺ ℎ ()
in .</p>
      <p>Note that if (, ) is a descendant edge in  , the path (of child
and/or descendant edges) in  from ℎ ( ) to ℎ (), can be a single
child or descendant edge. Figures 2(a) and (b) show a query 
and a query (view) 1 with a homomorphism from 1 to .
Query Answer. We call an occurrence of a pattern query  on
a data graph  a tuple indexed by the nodes of  whose values
are the images of the nodes in  under a homomorphism from 
to  .</p>
      <p>Definition 2.6 (Query Answer). The answer of  on  , denoted
as  ( ), is a relation whose schema is the set of nodes of , and
whose instance is the set of occurrences of  under all possible
homomorphisms from  to  .</p>
      <sec id="sec-3-1">
        <title>A Compact Representation for Query Answers. The number of</title>
        <p>homomorphic matches of a graph pattern query on a data graph
can very large. Therefore, we use summary graphs to compactly
encode all possible homomorphisms of a query to a data graph.</p>
        <p>Definition 3.1 (Query Summary Graph). The summary graph
 of a pattern query  is a k-partite graph where  is the number
of nodes in . Graph  has an independent node set, denoted
 (), for every node  ∈  such that  () ⊆  () ⊆  ().
Every node in  () is incident to an edge in  if  is incident
to an edge in . The set  () is called the candidate occurrence
set of  in  . For every edge  = (, ) in , the set of edges
 ( ) between the data graph nodes in the sets  ( ) and  ()
satisfies the inclusion relationships:  ( ) ⊆  ( ) ⊆  ( ).
The set  ( ) is called the candidate occurrence set of  in  .</p>
        <p>
          Figure 1(d) shows a summary graph  for the query  of
Figure 1(a), and Figure 2(c) shows a summary graph for the query
(view) 1 of Figure 2(b). A summary graph  losslessly
summarizes all the occurrences of  on  . Similarly to factorized
representations of query results studied in the context of classical
databases and probabilistic databases [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ],  exploits
computation sharing to reduce redundancy in the representation and
computation of query results. Besides recording candidate
occurrences sets for the edges of query , a summary graph also records
how the edges in the candidate occurrence sets can be joined to
form occurrences for query . A summary graph  represents
a search space for the answer of  on  . We later present an
algorithm for enumerating the results of  on  from a summary
graph  .
        </p>
        <p>We define a partial order ≺ on the summary graphs of a query
. Let 1 and 2 be two summary graphs for . Then 1 ≺ 2
iff for every edge  in , the candidate occurrence set for  in 1
is a subset of the candidate occurrence set for  in 2 . Partial
order ≺ has a least element  called the answer graph of  on
 , and a greatest element  called the match graph of  on  .
One can see that for any edge  in , the candidate occurrence
set for  in  is the occurrence set  (), while the candidate
occurrence set for  in  is the match set  ().</p>
      </sec>
      <sec id="sec-3-2">
        <title>Views and View Materializations. A view is a named query.</title>
        <p>The class of views is not restricted. Any type of query can be a
view. We materialize views on a data graph by storing a summary
graph of this view.</p>
        <p>Definition 3.2 (View Materialization). The materialization of a
view  on a data graph  is a summary graph of  on  . A view
is characterized as materialized if it has a materialization.</p>
        <p>View Usability in Graph Pattern Query Answering. Graph
pattern queries can be evaluated by computing the match sets
of their edges on a data graph  and then joining them on their
common query nodes. Let  be an edge in a query . The match
set of  is  ( ) and its occurrence set is  ( ) (recall that
 ( ) ⊆  ( )). If there is a materialized view  which has
an edge  such that  ( ) ⊆  ( ) ⊆  ( ) for every data
graph, then  can be used for evaluating  since  ( ) can be
used instead of  ( ) in the join. That is,  “covers”  . In
addition, as  ( ) is not bigger than  ( ), this option is, in
general, beneficial in the evaluation of . We define view usability
in query answering based on this remark. As we will see later,
when this happens, other edges of view  might cover an edge
in  as well, in which case, their occurrence sets can also be
exploited in evaluating query . We now formalize query edge
coverage:</p>
        <p>Definition 4.1. An edge  of a query  is covered by an edge
 of a view  if  ( ) ⊆  ( ) ⊆  ( ) on any data graph  .</p>
        <p>In the example of Figure 2, one can see that the edge (1, 2)
of view 1 covers the edge (1, 2) of query 1 since for every
mapping  of  to  , there is a mapping of 1 to  which is a
restriction of . We can now define view usability.</p>
        <p>Definition 4.2. A view  is usable in answering a query  if
there is an edge in  which is covered by an edge in  .
View Usability Conditions. We characterize query edge coverage
in terms of homomorphisms from a view to the query. We say that
a homomorphism ℎ from a view  to a query  maps an edge
 = (, ) in  to an edge  = (,  ) in  if ℎ ( ) =  and ℎ () =  .</p>
        <p>THEOREM 4.3. Let  be an edge in a graph pattern query 
and  be an edge in a view  . Edge  in  is covered by edge 
in  iff there is a homomorphism from  to  that maps  to 
such that if  is a child edge then  is also a child edge.</p>
        <p>
          The proof can be found in the full version of the paper [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. In
the example of Figure 2, the edge (1, 2) of view 1 covers the
edge (1, 2) of query 1. In contrast, (1, 2) in  is not covered
by (1, 2) in 1 since the former is a child edge and the latter is a
descendant edge, and (1, 2) in 1 does not cover any edge in 
since it cannot be mapped to any edge in  by a homomorphism
from 1 to .
        </p>
        <p>Redundant Query Edges. Two graph pattern queries are
equivalent if they have the same answer on any data graph. A graph
pattern query can have redundant edges. An edge in a query 
is redundant if its removal from  results in a query which is
equivalent to . A descendant edge  = (, ) in a query  is
transitive if there is a path from  to  in  other than edge .
Clearly, a transitive edge is redundant. Therefore, transitive edges
can be removed from  without altering the answer of .
that the answer of query  can be computed using only the answers
of the materialized view(s).</p>
        <p>Definition 4.4. Let  be a query and V be a set of materialized
views which can be used for answering . Query  can be
answered using the views in V if, for every data graph, the answer
of  can be computed from a relational algebra expression in
{, , ⊲⊳, ∪} involving exclusively the answers of the views in V.</p>
        <p>The following theorem provides necessary and sufficient
conditions for answering a query using exclusively a set of materialized
views.</p>
        <p>THEOREM 4.5. Let  be a query and V be a set of usable
views. Query  can be answered using the views in V if and only
if every non-redundant edge in  is covered by an edge of a view
in V.</p>
        <p>
          The proof can be found in the full version of the paper [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. In
the example of Figure 2, one can see that query  can be answered
using the view set V = {1, 2, 3, 4} as all its edges are covered
by edges of the views in V.
        </p>
        <p>Given an edge  in a query  and a view  , the covering set
of  in  , denoted  (,  ), is the set of edges in  which cover
. Given a set of views V, the covering set of  in V, denoted
 (, V), is defined as  (, V) = Ð ∈V  (,  ). Based on
Theorem 4.5,  can be answered using V if  (, V) ≠ ∅ for
every non-redundant edge  of .</p>
        <p>Minimal Set of Views. A query edge can be covered by multiple
view edges of the same and/or different views. However, it is
possible that not all of the usable views are needed for answering
the query.</p>
        <p>Definition 4.6. Let  be a query and let V be a set of views
such that  can be answered using the views in V. Set V is
minimal if there is no proper subset V ′ of V such that  can be
answered using the views in V ′.</p>
        <p>Set V ′ does not have redundant views. In the example of
Figure 2, query  can be answered using the view set {1, 2, 3}
which is minimal. We present in the next section an algorithm
which computes a minimal set of views for answering a query.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>ALGORITHMS</title>
      <sec id="sec-4-1">
        <title>Answering a Graph Pattern Query Using Multiple Views. In</title>
        <p>the presence of one or multiple materialized views, it is possible
In this Section, we present an algorithm called SumGraphBuild
which computes a summary graph for a pattern query  using the
materializations (summary graphs) of the views in a view set V.
Algorithm SumGraphBuild uses another algorithm, called
FindQCover, which computes the covering set  (,  ) of a view 
for each query edge . Therefore, Algorithms SumGraphBuild
and FindQCover can be used to check if a query can be answered
using the view set V. Finally, we present an algorithm called
FindMinimalVSet which finds a minimal set of views for answering a
query from a view pool.</p>
        <p>Computing the Covering View Edges for a Query Edge.
Algorithm FindQCover, shown in Algorithm 1, takes as input a query 
and a view  and returns the covering sets of the edges and nodes
of  in  through a function  on the nodes and edges of  . The
covering set of a query node in a view is defined analogously to
the covering set of a query edge in a view. Algorithm FindQCover
ifrst calls procedure homEnumerate to enumerate all the
homomorphisms from  to  that satisfy the condition of Theorem 4.3
(line 5). It encodes homomorphisms as n-ary tuples, where n is
the number of nodes in  (lines 1,2). The homomorphisms found
are stored in set  (line 4).  () denotes the covering set of
query edge  in  and  () denotes the covering nodes of query
node  in  (line 6). Procedure homEnumerate performs a
recursive backtracking search to find (candidate) matches in  for the
nodes of  iteratively, one at a time, according to the chosen order
(line 1) before returning any generated homomorphism. Finding
homomorphisms of graphs to graphs is an NP-hard problem but
this is not an issue in this context since the number of nodes and
edges of queries and views is restricted. Using set  , Algorithm
FindQCover calls procedure findCover to compute the covering
nodes and edges of  in  .</p>
        <p>Algorithm SumGraphBuild on the query  and the view 1 of
Figure 2 will return  ( (1, 2)) = {(1, 2)},  ( (1, 2)) =
∅, and  ( (1, 2)) = ∅, as there is only one homomorphism
from 1 to .</p>
      </sec>
      <sec id="sec-4-2">
        <title>Computing a Query Summary Graph from the Summary</title>
        <p>Graphs of the Materialized Views. Algorithm SumGraphBuild,
shown in Algorithm 2, takes as input a query  and a set of
materialized views (summary graphs) V, and produces a summary
graph for  in the form of a function  on the nodes and edges
of  representing their candidate occurrence sets. The algorithm
consists of two phases: the first phase initializes the candidate
occurrence sets () of the nodes and edges of  (line 1) and the
second phase builds a summary graph by iteratively refining the
candidate occurrence sets generated in the first phase until a fixed
point is reached (lines 2-4).</p>
        <p>To initialize function  for the node and edges of ,
SumGraphBuild begins by computing the covering sets of the nodes
and edges of  with respect to each view  in V using algorithm
FindQCover (Algorithm 1) (lines 3-4 in Procedure initializeCos()).
Then, for every node  in , the algorithm intersects the
occurrence sets  ( ) of the covering nodes  ∈  () to obtain the
candidate occurrence set  () (lines 5-6). Similarly, for every
edge  in , it intersects the occurrence sets  ( ) of the
covering edges  ∈  ( ) to obtain the candidate occurrence set
 ( ) (lines 7-11).</p>
        <p>In the second phase, SumGraphBuild refines function  using
two procedures, which iterate on the edges of  in different
directions. The first procedure, called forwardPrune(), visits each edge
 = (,   ) ∈  from the tail node  to the head node   , and
removes node  and its associated outgoing edges from  ( )
and  ( ), respectively, if there is no  ∈  (  ) such that
Algorithm 1 Algorithm FindQCover.</p>
        <p>Input: Graph pattern query , and graph pattern view  .
Output: Function  on the nodes and edges of .
1. Pick an order 1, . . . ,  for the nodes of  ;
2. Let  be a n-tuple initialized so that  [ ] is  for  ∈ [1,  ];
3. Let  be the set of nodes of  having the same label as view node  ;
4.  := ∅ /* set  records the homomorphisms from  to  */
5. homEnumerate(1,  );
6. For every node  in  and for every edge  in ,  () = ∅ and
 () = ∅;
7. findCover();
8. return ;
Procedure homEnumerate(index , tuple  )
1. if (=+1) then
2. add  to  and return;
3.  := { | (,  ) ∈   ( ,  ) ∈  ,  ∈ [1,  − 1] }
4. ′ :=  ;
5. for (every  ∈  ) do
6. ′ := { ∈ ′ |  ≺  [  ]   [  ] ≺  };
7. for (every  ∈ ′ ) do
8. if (( ,  ) is a child edge in  and ( [  ], ) is not a child edge
in ) or ((,  ) is a child edge in  and (,  [  ]) is not a child
edge in  ) then
9. Remove  from ′ ;
10. for (every node  ∈ ′ ) do
11.  [ ] := ;
12. homEnumerate( + 1,  );
Procedure findCover()
1. for (every tuple  ∈  ) do
2. for (every node  ∈  ) do
3. add  to  ( [ ]);
4. for every edge (,  ) in  do
5. if  = ( [ ],  [ ]) is an edge in  which is a child edge if
(,  ) is a child edge then
6. add (,  ) to  ();
( ,  ) is an occurrence of  in  ( ). The second
procedure, called backwardPrune(), visits each edge  = (,   ) ∈ 
from the head node   to the tail node  and removes  and its
associated incoming edges from  (  ) and  ( ), respectively,
if there is no  ∈  ( ) such that ( ,  ) is an occurrence in
 ( ). The above process is repeated until function  becomes
stable, i.e., no further removals can be applied to it.</p>
        <p>Finally, the refined function  representing the summary
graph of  is returned to the user (line 5).</p>
        <p>Consider the query  and the views 1, 2, 3 and 4 in the
example of Figure 2. Algorithm SumGraphBuild on the answer
graph for 1 of Figure 2(c) and the answer graphs for the views
2, 3 and 4 (not shown in figure) will return the summary graph
of Figure 1(d) which is, in fact, the answer graph of .</p>
        <p>Note that the candidate occurrence sets of the query node and
edges can be stored as bitmaps on data graph nodes resulting not
only in space savings but also in substantial performance savings
as all candidate occurrence set intersection operations can be
implemented as bit-wise AND operations.</p>
      </sec>
      <sec id="sec-4-3">
        <title>Finding a Minimal View Set. Algorithm FindMinimalVSet, shown</title>
        <p>in Algorithm 3, takes as input a set of views V which can be used
for answering  and returns a minimal subset V ′ of V which
can be used for answering . The algorithm begins with an empty
set of views V ′. It adds a view to V ′ as long as this view covers
at least one query edge not covered by the set of views already</p>
        <sec id="sec-4-3-1">
          <title>Algorithm 2 Algorithm SumGraphBuild.</title>
          <p>Input: Graph pattern query  and set V of materialized views on
 which can be used for answering .</p>
          <p>Output: A summary graph of  on  (represented by function 
on the nodes and edges of ).
1. initializeCos();
2. while ( has changes) do
3. forwardPrune();
4. backwardPrune();
5. return ;
Procedure initializeCos()
1. For every node  ∈ , initialize  () to be  () .
2. For every edge  ∈ , initialize  ( ) to be ∅
3. for (every view  ∈ V) do
4.  :=  (,  );
5. for (every node  ∈ ) do
6.  ():= () ∩ ∈ ()  ();
7. for (every edge  ∈ ) do
8. if ( () = ∅) then
9.  () := ∩ ∈ ()  ( );
10. else
11.  () :=  () ∩ ∈ ()  ( );
Procedure forwardPrune()
1. for (each edge  = (,   ) ∈  and each  ∈  ( )) do
2. if (there is no  ∈  (  ) such that ( ,  ) is an occurrence
in  ( )) then
3. Remove  and its associated outgoing edges from  ( )
and  ( ), respectively;
Procedure backwardPrune()
1. for (each edge  = (,   ) ∈  and each  ∈  (  )) do
2. if (there is no  ∈  ( ) such that ( ,  ) is an occurrence
in  ( )) then
3. Remove  and its associated incoming edges from  (  )
and  ( ), respectively;</p>
        </sec>
        <sec id="sec-4-3-2">
          <title>Algorithm 3 Algorithm FindMinimalVSet.</title>
          <p>Input: Graph pattern query  and a set V of views which can be
used for answering .</p>
          <p>Output: A minimal set V ′ ⊆ V of views which can be used for
answering .
1. V′ := ∅;
2. findViews();
3. removeRedundant();</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4. return V′;</title>
      <p>Procedure findViews()
1.  :=  ();
2. while ( ≠ ∅) do
3. Select an edge  in  ;
4. Find a view  in V which has an edge covering ;
5. Let  be the set of edges in  which are covered by  ;
6. V′ := V′ ∪ { };
7.  :=  − ;
Procedure removeRedundant()</p>
      <p>/* the set of uncovered edges of  */
1. for (every view  ∈ V′) do
2. if ( can be answered using exclusively V′ − { } ) then
3. Remove  from V′;
selected in V ′. After all the query edges are covered, the
algorithm eliminates redundant views by checking if the removal of
that view would cause a query edge to be uncovered by the set of
views in V ′.</p>
      <p>In the example of Figure 2, Algorithm 3 will initially add to
V ′ all the views 1, 2, 3 and 4 if the views are considered in
the order 1, 2, 3, 4. It will subsequently identify the view 3
as redundant and it will remove it from V ′ to return the minimal
view set {1, 2, 4}.</p>
      <p>As our experiments show, considering additional views for
answering a query  beyond a set of views that cover all the edges
of  does not significantly reduce the query evaluation cost. Thus,
a minimal set of views from the materialized view pool constitutes
a reasonable choice for answering a query.
6</p>
    </sec>
    <sec id="sec-6">
      <title>EXPERIMENTAL EVALUATION</title>
      <p>In this section, we present an experimental evaluation of our
materialized view approach in terms of time performance and
scalability.
6.1</p>
    </sec>
    <sec id="sec-7">
      <title>Experimental Setting</title>
      <p>Algorithms in comparison. We implemented our approach for
answering queries using materialized views. In our implementation
of Algorithm SumGraphBuild, we used bitmaps to represent query
and view node occurrence sets and adjacency lists and bit-wise
AND operations for intersecting sets. We refer to this approach in
this section as MatView.</p>
      <p>
        We compare MatView with the approach presented in [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ] for
evaluating hybrid graph pattern queries using homomorphisms
over a large graph. This approach employs an algorithm called
FltSim to construct a summary graph for the input query on a data
graph. Therefore, it can be directly compared with MatView, which
also constructs a summary graph for the input query. Algorithm
FltSim first applies a filtering technique to prune nodes and edges
from the data graph that do not participate in the query answer,
and uses the pruned data graph to construct an initial summary
graph. It then refines this summary graph using double simulation
to exclude nodes and edges that are unlikely to be part of the query
answer before returning it to the user.
      </p>
      <p>The main difference between FltSim and SumGraphBuild lies
in the summary graph edge construction: FltSim needs to access a
reachability index on  in order determine the existence of
reachability relationships between nodes in the candidate occurrence sets
and connect them by edges. In contrast, SumGraphBuild obtains
edges for the candidate occurrence sets of the query edges from
the candidate occurrence sets of the covering view edges. This
is much cheaper than accessing a reachability index and gives
the upper hand to MatView which benefits from the materialized
views. We refer to the base approach that does not use materialized
views as FltSim.</p>
      <p>
        We do not compare MatView with other approaches as FltSim is
shown in [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ] to outperform previous state-of-the art approaches
[
        <xref ref-type="bibr" rid="ref24 ref39 ref42 ref7">7, 24, 39, 42</xref>
        ] for this type of query patterns on data graphs.
Datasets. We ran experiments on two real-world graph datasets
which have been used in previous works [
        <xref ref-type="bibr" rid="ref25 ref31">25, 31</xref>
        ]. The datasets
have different structural properties and come from different
application domains, such as the web and social networks. Table 1 lists
the properties of the datasets. Its last column displays the average
number of incident edges (both incoming and outgoing) per node.
For our scalability experiments we vary the number of nodes and
edges of the data graphs and their number of distinct labels.
of views V. Each view was randomly generated from the query
      </p>
      <p>A query edge  can be covered by more than one view edge.
Algorithm SumGraphBuild initially intersects the candidate
occurrence sets of its covering view edges in order to compute the
candidate occurrence set of a query edge. The more covering
edges on  are intersected, the smaller their resulting candidate
occurrence set would be when this is computed by algorithm
The average number of covering edges for a query edge  in
︁∑
 ∈V
 (, V) =</p>
      <p>(,  )/| () |</p>
      <p>When  (, V) = 1, each query edge is covered by exactly
one view edge. We expect that the higher  (, V) is, the
smaller the summary graph  will be. The lowest value for
 (, V) is produced by a minimal set V.</p>
      <p>For each query computation, we used a set of views V with
the same number of edges. With the exception of the experiment
where  (, V) is varied,  (, V) is manitained within
a fixed range:</p>
      <p>1 ≤  (, V) ≤ 2. For the experiments in
sections 6.2, 6.3, and 6.6, all sets of views V used by MatView
contained views with mixed edges and exactly two edges, and
were chosen to be minimal using Algorithm 3.</p>
      <p>Metrics. We measured the evaluation time of the queries in a
query set in seconds (sec). In the case of FltSim, this includes
the preprocessing time (i.e., the time spent on filtering data graph
nodes and edges). Given that the number of query results can be
very large, we terminated the evaluation of a query after finding
107 matches.</p>
      <p>Our implementation was coded in Java. All the experiments
reported were performed on a 64-bit Linux machine equipped
with an Intel Xeon 6240 @ 2.60 Hz processor and 768GB RAM.</p>
      <p>In all cases, the execution time for all algorithms increased
when the total number of graph nodes increased. MatView
provided significantly better performance than FltSim for evaluating
the two queries. In addition, the slope of  is much steeper
than that of   .</p>
      <p>We also observed that in Figure 7, for the data point with 100K
nodes, the evaluation time for MatView was very small. This is
because, in contrast to the other data points, there were no matches
for query 7; while FltSim had to spend time to filter out irrelevant
nodes and edges from the data graph before it discovered that the
query has an empty answer, MatView was able to quickly discover
that this query has empty answer.</p>
    </sec>
    <sec id="sec-8">
      <title>Varying the Number of Covering View Edges</title>
      <p>(a) 5
(b) 7</p>
      <p>We ran experiments comparing the performance of FltSim
and MatView varying  (, V) (using a different number
of views). All views had mixed edges and exactly two edges. We
started by evaluating a query using a minimal set of views, where
each query edge is covered by only one covering edge, and
gradually added one view at a time. Each time a new view was added,
 (, V) increased slightly. In Figure 8 we plotted the value
of  (, V) for each new set of views V on the top row label
of the X-axis, and plotted the number of views in V on the bottom
row label of the X-axis.</p>
      <p>The results for two of these queries, 5 and 7, that are run
on the bs data graph with 20 labels and 350K nodes are shown
in Figure 8. We observed that for sets of views with a higher
 (, V), the summary graphs obtained were only smaller,
but the differences did not have much impact on the evaluation
times. Thus, selecting a minimal view set for evaluating query 
is a viable solution.
6.5</p>
    </sec>
    <sec id="sec-9">
      <title>Varying the Number of Edges per View</title>
      <p>We compared the performance of MatView and FltSim using views
with two edges versus views with three edges. Both the set of
views with two edges and the set of views with three edges met
the condition where 1 &lt;  (, V) &lt; 2; this was achieved by
varying the number of views within V such that, for each query
, the set with three-edge views contained less views than the set
with two-edge views.</p>
      <p>The results for all 10 queries evaluated on the bs data graph
with 20 labels and 350K nodes are shown in Figure 9. Overall, for
nine out of ten queries, we found that using views with three edges
obtained better evaluation times than using views with two edges,
while for one of the queries (3), they obtained approximately the
same evaluation time.
We measured the execution time of the two appoaches varying
the number of edges in the queries. To obtain these queries, we
started with the original query, then removed one edge at a time.</p>
      <p>The results for two of these queries, 2 and 5, on the bs data
graph with 20 labels and 350K nodes using a logarithmic scale
are shown in Figure 10. We can see that the execution time does
not follow a specific pattern as adding on more edge to a query
can increase or decrease the number of query results.
6.7</p>
    </sec>
    <sec id="sec-10">
      <title>Summary</title>
      <p>The experiments reported here have examined the performance of
pattern query evaluation algorithms on graphs. The results can be
summarized as follows:
- The performance of a graph pattern matching algorithm is
affected significantly by costly computations using the
reachability index.
- The view materialization approach MatView significantly
reduces evaluation times by using the view materializations
instead of accessing the reachability index.
- MatView shows the best efficiency and scalability performance
between the two algorithms, while displaying a negligible
occurrence set intersection time cost. This demonstrates the
effectiveness of the view materialization approach.
7</p>
    </sec>
    <sec id="sec-11">
      <title>RELATED WORK</title>
      <p>
        Answering queries using views has been extensively studied for
relational data (see [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] for a survey) and tree data [
        <xref ref-type="bibr" rid="ref32 ref35 ref40 ref41 ref5">5, 32, 35, 40,
41</xref>
        ]. Due to the importance of graph pattern matching in many
(a) 2
(b) 5
application domains and the need to improve pattern matching
time on large graph data, there have recently been quite a few
contributions [
        <xref ref-type="bibr" rid="ref11 ref14 ref21 ref34 ref36 ref38">11, 14, 21, 34, 36, 38</xref>
        ] addressing the problem of
answering graph pattern queries using views.
      </p>
      <p>
        Fan et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] investigate this problem for graph pattern queries
based on graph simulation and study its complexity. Under this
setting, they characterize graph pattern matching using graph pattern
views based on pattern containment, and provide algorithms for
answering graph pattern queries using a set of materialized views.
This work was extended to address answering graph queries using
views in terms of subgraph isomorphism [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ]. Another extension
[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] studies the approximation of graph pattern queries using
views based on both graph simulation and subgraph isomorphism.
      </p>
      <p>
        More recently, Trindade et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] presented a graph query
optimization framework called Kaskade which materializes graph
views to enable efficient query evaluation. Kaskade considers two
types of views: path views which match to a path of data nodes
with bounded length, and relational counterparts which are filters
and aggregates. Kaskade only supports query rewriting/answering
using a single view. Unlike previous work, it focuses on leveraging
structural properties of graphs and queries to enumerate views and
to select the best views to materialize based on a budget constraint.
      </p>
      <p>
        To speed up graph query processing, Wang et al. [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] proposed
to acquire and utilize knowledge from the results of previously
executed queries, which are essentially materialized views. Views
considered for answering a new query are subgraphs or
supergraphs of the query. Unlike previous approaches this approach
considers the framework of a collection of small data graphs and
aims at minimizing the number of isomorphism tests that need to
be performed to find the data graphs that contain the query pattern.
Wu et al. [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ] studied the problem of using materialized views
for homomorphic pattern matching on data graphs, but considered
only tree-pattern queries. Le et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] studied the problems of
rewritting SPARQL queries using views, but did not consider
materializing these views.
      </p>
      <p>The problem we address in this paper is different than those
addressed by existing graph view approaches. We consider general
graph patterns and not simply paths or trees. Our patterns contain
child and descendant edges, allowing for both edge-to-edge and
edge-to-path matches to the data graph. Patterns are mapped to the
data graph using homomorphisms which relax the strict one-to-one
mapping entailed by isomorphisms and, unlike graph simulation,
preserve the topology of the data graph. We adopt the concept of
a summary graph to encode all possible homomorphisms from a
query pattern to the data graph, and materialize views as summary
graphs. By generating a summary graph for a query pattern using
the summary graphs of multiple materialized views, our approach
greatly reduces the time to find the homomorphic matches of the
query.
8</p>
    </sec>
    <sec id="sec-12">
      <title>CONCLUSION</title>
      <p>We have addressed the problem of answering graph pattern queries
using graph pattern materialized views to efficiently evaluate such
queries on large data graphs under homomorphisms. We
considered a broad class of pattern queries that involve both node
reachability and direct relationships. We suggested an original
approach which materializes views as summary graphs, therein
compactly representing the homomorphic matches of the views.
In this context, we characterized the view usability problem in
terms of query edge coverage, and provided necessary and suf-fi
cient conditions for answering graph pattern queries using views.
We designed algorithms for deciding whether a query can be
answered from materialized views, for computing query summary
graphs from the summary graphs of the views, and for producing
minimal sets of views for answering a query. Our experimental
results showed that our approach outperforms, by several orders
of magnitude, approaches that do not use materialized views, and
provides much better scalability.</p>
      <p>We are currently working on scale-independently answering
queries using views based on the framework set in this paper.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>[1] DBpedia. https://wiki.dbpedia.org/.</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] Full version of the paper</article-title>
          . https://drive.google.com/drive/folders/1MwxsgrrKGM_t 4IzWHdtgfYJzwlauFs6h?
          <article-title>usp=sharing.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Network</given-names>
            <surname>Repository</surname>
          </string-name>
          . http://networkrepository.com/.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C. R.</given-names>
            <surname>Aberger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Olukotun</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Ré</surname>
          </string-name>
          .
          <article-title>Emptyheaded: A relational engine for graph processing</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <fpage>431</fpage>
          -
          <lpage>446</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Arion</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Benzaken</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Manolescu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Papakonstantinou</surname>
          </string-name>
          .
          <article-title>Structured materialized views for XML queries</article-title>
          .
          <source>In VLDB</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>B.</given-names>
            <surname>Bhattarai</surname>
          </string-name>
          , H. Liu, and
          <string-name>
            <given-names>H. H.</given-names>
            <surname>Huang</surname>
          </string-name>
          .
          <article-title>CECI: compact embedding cluster index for scalable subgraph matching</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <fpage>1447</fpage>
          -
          <lpage>1462</lpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Cheng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. X.</given-names>
            <surname>Yu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P. S.</given-names>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>Graph pattern matching: A join/semijoin approach</article-title>
          .
          <source>IEEE Trans. Knowl</source>
          . Data Eng.,
          <volume>23</volume>
          (
          <issue>7</issue>
          ):
          <fpage>1006</fpage>
          -
          <lpage>1021</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ching</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Edunov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kabiljo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Logothetis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Muthukrishnan</surname>
          </string-name>
          .
          <article-title>One trillion edges: Graph processing at facebook-scale</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>8</volume>
          (
          <issue>12</issue>
          ):
          <fpage>1804</fpage>
          -
          <lpage>1815</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>E.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Halperin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kaplan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>U.</given-names>
            <surname>Zwick</surname>
          </string-name>
          .
          <article-title>Reachability and distance queries via 2-hop labels</article-title>
          .
          <source>SIAM J. Comput.</source>
          ,
          <volume>32</volume>
          (
          <issue>5</issue>
          ):
          <fpage>1338</fpage>
          -
          <lpage>1355</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>L. P.</given-names>
            <surname>Cordella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Foggia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sansone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Vento</surname>
          </string-name>
          .
          <article-title>A (sub)graph isomorphism algorithm for matching large graphs</article-title>
          .
          <source>IEEE Trans. Pattern Anal. Mach</source>
          . Intell.,
          <volume>26</volume>
          (
          <issue>10</issue>
          ):
          <fpage>1367</fpage>
          -
          <lpage>1372</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>J. M. F. da Trindade</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Karanasos</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Curino</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Madden</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Shun</surname>
          </string-name>
          . Kaskade:
          <article-title>Graph views for efficient graph analytics</article-title>
          .
          <source>In ICDE</source>
          , pages
          <fpage>193</fpage>
          -
          <lpage>204</lpage>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          .
          <article-title>Graph pattern matching: From intractable to polynomial time</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>3</volume>
          (
          <issue>1</issue>
          ):
          <fpage>264</fpage>
          -
          <lpage>275</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          .
          <article-title>Graph homomorphism revisited for graph matching</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>3</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1161</fpage>
          -
          <lpage>1172</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wu</surname>
          </string-name>
          .
          <article-title>Answering pattern queries using views</article-title>
          . volume
          <volume>28</volume>
          , pages
          <fpage>326</fpage>
          -
          <lpage>341</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Garey</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Johnson</surname>
          </string-name>
          . Computers and
          <article-title>Intractability: A Guide to the Theory of NP-Completeness</article-title>
          .
          <string-name>
            <given-names>W. H.</given-names>
            <surname>Freeman</surname>
          </string-name>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A. Y.</given-names>
            <surname>Halevy</surname>
          </string-name>
          .
          <article-title>Answering queries using views: A survey</article-title>
          .
          <source>VLDB J</source>
          .,
          <volume>10</volume>
          (
          <issue>4</issue>
          ),
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P. W.</given-names>
            <surname>Kopke</surname>
          </string-name>
          .
          <article-title>Computing simulations on finite and infinite graphs</article-title>
          .
          <source>In FOCS</source>
          , pages
          <fpage>453</fpage>
          -
          <lpage>462</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>R.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Ruan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Fuhry</surname>
          </string-name>
          . 3
          <article-title>-hop: a high-compression indexing scheme for reachability query</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <fpage>813</fpage>
          -
          <lpage>826</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>W.</given-names>
            <surname>Le</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Duan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kementsietsidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Li</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wang</surname>
          </string-name>
          .
          <article-title>Rewriting queries on SPARQL views</article-title>
          .
          <source>In Proc. of the Intl. Conf. on World Wide Web</source>
          , pages
          <fpage>655</fpage>
          -
          <lpage>664</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          .
          <article-title>Data integration: A theoretical perspective</article-title>
          .
          <source>In Proceedings of the Twenty-first ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems</source>
          , June 3-5, Madison, Wisconsin, USA, pages
          <fpage>233</fpage>
          -
          <lpage>246</lpage>
          . ACM,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Cao</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X.</given-names>
            <surname>Liu</surname>
          </string-name>
          .
          <article-title>Approximating graph pattern queries using views</article-title>
          .
          <source>In CIKM</source>
          , pages
          <fpage>449</fpage>
          -
          <lpage>458</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>R.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhuge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Zeng</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X.</given-names>
            <surname>He</surname>
          </string-name>
          .
          <article-title>Scaling hop-based reachability indexing for fast graph pattern query processing</article-title>
          .
          <source>IEEE Trans. Knowl</source>
          . Data Eng.,
          <volume>26</volume>
          (
          <issue>11</issue>
          ):
          <fpage>2803</fpage>
          -
          <lpage>2817</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Cao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Fan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Huai</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Wo</surname>
          </string-name>
          .
          <article-title>Strong simulation: Capturing topology in graph pattern matching</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>39</volume>
          (
          <issue>1</issue>
          ):4:
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          :
          <fpage>46</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Mhedhbi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kankanamge</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Salihoglu</surname>
          </string-name>
          .
          <article-title>Optimizing one-time and continuous subgraph queries using worst-case optimal joins</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>46</volume>
          (
          <issue>2</issue>
          ):6:
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          :
          <fpage>45</fpage>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A.</given-names>
            <surname>Mhedhbi</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Salihoglu</surname>
          </string-name>
          .
          <article-title>Optimizing subgraph queries by combining binary and worst-case optimal joins</article-title>
          .
          <source>Proc. VLDB Endow</source>
          .,
          <volume>12</volume>
          (
          <issue>11</issue>
          ):
          <fpage>1692</fpage>
          -
          <lpage>1704</lpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>D.</given-names>
            <surname>Olteanu</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Schleich</surname>
          </string-name>
          .
          <article-title>Factorized databases</article-title>
          .
          <source>SIGMOD Record</source>
          ,
          <volume>45</volume>
          (
          <issue>2</issue>
          ):
          <fpage>5</fpage>
          -
          <lpage>16</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>N.</given-names>
            <surname>Przulj</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. G.</given-names>
            <surname>Corneil</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Jurisica.</surname>
          </string-name>
          <article-title>Efficient estimation of graphlet frequency distributions in protein-protein interaction networks</article-title>
          .
          <source>Bioinform.</source>
          ,
          <volume>22</volume>
          (
          <issue>8</issue>
          ):
          <fpage>974</fpage>
          -
          <lpage>980</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>A. M. Smalter</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Huan</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Jia</surname>
            , and
            <given-names>G. H.</given-names>
          </string-name>
          <string-name>
            <surname>Lushington</surname>
          </string-name>
          . GPD:
          <article-title>A graph pattern diffusion kernel for accurate graph classification with applications in cheminformatics</article-title>
          .
          <source>IEEE ACM Trans. Comput. Biol. Bioinform.</source>
          ,
          <volume>7</volume>
          (
          <issue>2</issue>
          ):
          <fpage>197</fpage>
          -
          <lpage>207</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>J.</given-names>
            <surname>Su</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wei</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. X.</given-names>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>Reachability querying: Can it be even faster?</article-title>
          <source>IEEE Trans. Knowl</source>
          . Data Eng.,
          <volume>29</volume>
          (
          <issue>3</issue>
          ):
          <fpage>683</fpage>
          -
          <lpage>697</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Suchanek</surname>
          </string-name>
          , G. Kasneci, and
          <string-name>
            <given-names>G.</given-names>
            <surname>Weikum.</surname>
          </string-name>
          <article-title>Yago: a core of semantic knowledge</article-title>
          .
          <source>In WWW</source>
          , pages
          <fpage>697</fpage>
          -
          <lpage>706</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>S.</given-names>
            <surname>Sun</surname>
          </string-name>
          and
          <string-name>
            <given-names>Q.</given-names>
            <surname>Luo</surname>
          </string-name>
          .
          <article-title>In-memory subgraph matching: An in-depth study</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <fpage>1083</fpage>
          -
          <lpage>1098</lpage>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>N.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. X.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. T.</given-names>
            <surname>Özsu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Choi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.-F.</given-names>
            <surname>Wong</surname>
          </string-name>
          .
          <article-title>Multiple materialized view selection for XPath query rewriting</article-title>
          .
          <source>In ICDE</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Ullmann</surname>
          </string-name>
          .
          <article-title>An algorithm for subgraph isomorphism</article-title>
          .
          <source>J. ACM</source>
          ,
          <volume>23</volume>
          (
          <issue>1</issue>
          ):
          <fpage>31</fpage>
          -
          <lpage>42</lpage>
          ,
          <year>1976</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Ntarmos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Triantafillou</surname>
          </string-name>
          .
          <article-title>Indexing query graphs to speedup graph query processing</article-title>
          .
          <source>In EDBT</source>
          , pages
          <fpage>41</fpage>
          -
          <lpage>52</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. X.</given-names>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>XPath rewriting using multiple views</article-title>
          .
          <source>In DEXA</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          .
          <article-title>Answering graph pattern matching using views: A revisit</article-title>
          .
          <source>In DEXA</source>
          , pages
          <fpage>65</fpage>
          -
          <lpage>80</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>X.</given-names>
            <surname>Wu</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Theodoratos</surname>
          </string-name>
          .
          <article-title>Evaluating hybrid graph pattern queries using runtime index graphs</article-title>
          . https://arxiv.org/abs/2112.08638.
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>X.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Theodoratos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Skoutas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Lan</surname>
          </string-name>
          .
          <article-title>Evaluating mixed patterns on large data graphs using bitmap views</article-title>
          .
          <source>In DASFAA</source>
          , pages
          <fpage>553</fpage>
          -
          <lpage>570</lpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>X.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Theodoratos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Skoutas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Lan</surname>
          </string-name>
          .
          <article-title>Efficient in-memory evaluation of reachability graph pattern queries on data graphs</article-title>
          .
          <source>In DASFAA</source>
          ,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>X.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Theodoratos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W. H.</given-names>
            <surname>Wang</surname>
          </string-name>
          .
          <article-title>Answering XML queries using materialized views revisited</article-title>
          .
          <source>In CIKM</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>X.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Theodoratos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. H.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Sellis</surname>
          </string-name>
          .
          <article-title>Optimizing XML queries: Bitmapped materialized views vs</article-title>
          .
          <source>indexes. Inf. Syst.</source>
          ,
          <volume>38</volume>
          (
          <issue>6</issue>
          ):
          <fpage>863</fpage>
          -
          <lpage>884</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Zeng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Jiang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhuge</surname>
          </string-name>
          .
          <article-title>Adding logical operators to tree pattern queries on graph-structured data</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>5</volume>
          (
          <issue>8</issue>
          ):
          <fpage>728</fpage>
          -
          <lpage>739</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>