Benchmark and evaluation of incremental view maintenance techniques

Tracking #: 4059-5273

Authors: 
Maarten Vandenbrande
Pieter Bonte
Femke Ongenae

Responsible editor: 
Sebastián Ferrada

Submission type: 
Full Paper
Abstract: 
Across domains such as social media, finance, healthcare, and IoT, data is increasingly produced as dynamic streams rather than as static datasets. In these settings, RDF is a natural representation model because it captures relationships explicitly, supports semantic interoperability, and enables integration across heterogeneous sources. Efficiently querying such dynamic RDF data remains challenging, however, as recomputing query results after every update is often too costly. Incremental View Maintenance (IVM) addresses this challenge by propagating changes in the data to materialized query results, thereby avoiding full recomputation. This article studies IVM for SPARQL conjunctive queries, with a particular focus on incremental join processing, which is central to SPARQL Basic Graph Pattern evaluation and especially important in graph workloads that typically require many joins. A structured analysis of the IVM approaches from related work is presented, together with a set of optimizations proposed where applicable. These approaches are evaluated in a fair and platform-independent setting by implementing them within a single incremental query engine, Incremunica. To support this evaluation, a TypeScript reimplementation of the Train Benchmark is developed and extended with shape-based queries to study the effect of query structure on performance. In addition, a dedicated Rete-specific evaluation is conducted to assess the impact of the proposed optimizations for that approach. The results show that there is no universally best incremental IVM approach, the performance depends on query shape, update type, and data characteristics. In particular, single-order delta queries perform poorly overall, higher-order delta queries are generally less competitive but outperform other approaches in some scenarios, and Rete-based approaches achieve the strongest performance in most scenarios. These findings provide practical guidance for selecting incremental join strategies for dynamic RDF workloads.
Full PDF Version: 
Tags: 
Reviewed

Decision/Status: 
Major Revision

Solicited Reviews:
Click to Expand/Collapse
Review #1
Anonymous submitted on 06/Jul/2026
Suggestion:
Major Revision
Review Comment:

This work addresses incremental view maintenance (IVM) techniques for joins in SPARQL conjunctive queries, implementing the main IVM techniques within a single engine (Incremunica) for a platform-independent comparison. It contributes a TypeScript implementation of the Train Benchmark extended with shape-based queries. After the evaluation, the main conclusion is that no technique is universally superior, but that the Match Hash Join is the most robust choice across realistic workloads. The paper is well written and the work is relevant and well motivated. However, there are several issues that should be addressed before publication, as they may significantly affect the conclusions, especially the concerns regarding cyclic queries and experiments.

Points of improvement:

- Section 3.2 claims the use of bag semantics, but the examples and evaluation are limited to multiplicity 1, so it is not clear to me whether the algorithms actually rely on set semantics. Please state this assumption explicitly. I also have doubts about the conclusion that "Full Hash is rarely ever faster than Match Hash Join" once multiplicity increases, since the advantage of Full Hash should appear precisely when many mappings share the same match hash.

- The authors explicitly motivate the importance of cyclic queries over graph data; for example, the triangle query in Section 3.2, and the phrase from the Introduction: "may contain cyclic join structures, which frequently arise in graph-shaped data". However, the evaluation only covers star, chain, and cartesian shapes; cyclic queries are absent. This is precisely the case where left-deep binary Rete joins can produce intermediate results larger than the final output (which worst-case-optimal joins avoid by respecting the AGM bound), so a worst-case-optimal strategy could change the conclusions. I recommend adding cyclic queries to the evaluation and discussing the relationship to multiway joins.

- The motivation (large-scale ActivityPub / IoT / CEP streaming) contrasts with the evaluated scale: at most 63,575 triples (Table~2). I recommend extending the datasets, especially since the Train Benchmark generator can produce arbitrarily large sizes.

Minor comments:

- There are broken cross-references in Section 7.2 ("Figures ?? and ??").

- The list of input characteristics in Section 6.2 is duplicated.

Review #2
Anonymous submitted on 27/Sep/2026
Suggestion:
Major Revision
Review Comment:

** Summary
The paper studies IVM for SPARQL BGPs, more precisely, the fragment
that corresponds with select-project-join queries (conjunctive
queries, CQs). It surveys three techniques (single- and higher-order
delta queries, and Rete-based joins), proposes optimizations,
implements all of them in a single engine (Incremunica) and evaluates
them on a reimplementation of the Train Benchmark, with some
extensions. The main finding is that no approach dominates in
performance.

** Strong points
- Understudied and relevant subject. To my knowledge this is one of
the few papers addressing IVM for SPARQL. It is a useful question to
ask whether the IVM techniques apply also in the RDF setting.
- Algorithms are all reimplemented in one engine. This requires quite
some careful engineering and is a good approach to compare the
optimizations and techniques with each other. The public artifacts
make the study reproducible and reusable by the community.

** Weak points
- W1 The work is unclear about what is actually being studied. There
are three separate contributions, but no unifying research
question. The paper combines (1) a survey of IVM techniques; (2)
newly proposed optimizations and; (3) a benchmark. The framing of
the work promises a fair and platform-independent comparison of
techniques, but the experiments are primarily about the measurement
of the proposed optimizations. This leads to my main question that a
revision should answer explicitly: what is the primary object of the
evaluation: the three IVM techniques, or the proposed optimizations?
The answer to this question either keeps the framing, but changes
the experimental contribution, or it requires a reframing. If the
paper is really about the evaluation of the author's optimizations
in a common engine (which is a legitimate contribution) it must be
framed as such.
- W2 The claims, especially in the discussion and conclusion, go
beyond what the experiments can show. One is that the observed
effects are due to a "higher number of joins" but no experiment
isolates the join count. "cyclic query structures" but no
cyclic-vs-acyclic comparisons are made. generally "specific
evaluation characteristics of SPARQL" but no relational baseline
exists in the paper. Furthermore, you conclude that the results are
for "all SPARQL workloads" but you only do CQs + filters.
- W3 The specific choice of the three techniques is not motivated
enough, and seems imprecise to me. The paper does not say why these
three are selected, nor what is actually SPARQL-specific about the
problem (RDF is like a single ternary relation; all joins are
self-joins; etc.) Structural differences from relational IVM are not
analyzed. In particular, you never really motivate what higher-order
delta queries are expected to achieve for non-recursive CQs; their
known advantages (e.g., for recursive views) do not apply in your
fragment.
- Generally about the writing, there are quite some typographical
issues and overall writing issues. All together, they distort the
paper and make it difficult to follow and consequently difficult to
verify the claims. This is the first issue that a revision should
address: if I cannot follow the exposition, I cannot properly verify
that the algorithms and the experimental setup are correct.

** Detailed comments
I will list all my comments, ordered by section. They serve as
pointers to address the overall weaknesses above.
*** Abstract
- D1 "SPARQL conjunctive queries" is not a defined, or well known,
term. The intended meaning only appears later in the preliminaries.
- D2 "shape-based queries" are mentioned as a contribution but it is
only defined in the experiment section! This is also not a
well-known term.
- D3 Rete is used in the abstract without definition or proper
context. Generally, the question to ask is: who is the intended
audience? It seems to be an IVM expert with knowledge of database
theory and SPARQL query processing. Putting the terms in the right
context for the abstract will improve it. (same holds for
"single-order" and "higher-order")

** Introduction
- D4 The streaming frameing seems decorative and partly
misleading. The studied problem here is IVM under inserts/deletes
with no window or temporal semantics. Either motivate IVM directly
or explicitly relate IVM to streaming. This connection is vague
throughout and the reader is left wondering what it is precisely.
- D5 You mention CQs are non-recursive but may contain cyclic join
structures. There, two facts are mentioned but never explicitly
connect to a research question. Recursion is quite a natural concept
in graph databases, and it is excluded. You do consider cyclic
joins. Motivate why it matters, why do you actually study CQs for
this setting?
- D6 While you do mention that "many joins" motivates the study of
this problem for SPARQL, it does ignore the fact that it is many
*self* joins (RDF is a single ternary relation) I suppose this
matters. It might motivate your case better, or not. I'm not sure,
but you should discuss these structural aspects more clearly and
connect them to your actual study.
- D7 Your stated expectation that all algorithms will perform equally
seems like a pre-stated conclusion that undercuts the paper's
motivation. It is more interesting to identify the ways in which
they differ, and why (first theoretically, based on your
survey). For example, index-based joins outperform the
recomputation-based ones if...

*** Preliminaries
- D8 Definitions are often given top-down (e.g., a triple is defined
before we know what "IRI" is) For some cases it is not too
confusing, but when definitions get unfamiliar, I am left wondering
if things are already defined, or if it will follow later.
- D9 \Omega is sometimes called the solution mapping, sometimes the query
result.
- D10 The selectivity paragraph introduces I_i without proper
definition.
- D11 The definition of cartesian join as "a type of natural join
between intermediate query results" is incorrect cartesian product
ignores join keys; a natural join uses them. Please use a more
conventional definition. Additionally, what does this have to do
with *intermediate* results?
- D12 The aside on recursive queries via CONSTRUCT is out of scope and
seems like a half-explanation; either remove it or provide a proper
definition or reference.
- D13 Defining CQs as a separate relational concept and then mapping
them to SPARQL creates a double terminology without a clear
reason. I suggest to collapse it to use SPARQL terminology.
- D14 "Order matters" for deltas, you simply mean that for a single
delta, first insertions, then deletions?

*** IVM algorithms
- D15 you mention single-order delta queries are also referred to as
the counting algorithm. This seems to conflate two different
techniques. The counting method (standard for handling deletions
under bags) is absent from your survey even though the paper
evaluates bag semantics. More careful attention is needed here.
- D16 You talk about "incremental" operators but this is not properly
defined anywhere in this paper. To my understanding: an operator
that takes deltas, and provides new ones (as opposed to
non-incremental that recomputes all).
- D17 Generally, you restate known relational IVM with only
superficial discussion to its relation with SPARQL. What is SPARQL
specific is never really established (think: single relation,
self-joins, no schema...)
- D18 "change stream" is used without defining it really. I suppose
"update sequence" could be more appropriate. (Relates to the
connection between IVM and stream query answering)
- D19 Higher-order delta processing was developed for recursive view
maintenance; since the paper explicitly excludes recursion, why is
it still relevant to CQs at all? I'm not suggesting that it isn't,
but your writing should focus on *why* you talk about it.
- D20 the Memory Bind Join optimization is not clear to me, at least
not why it is sound.
- D21 you write in 4.3 "based on *the implementation of rete*" why are
you talking about the implementation?
- D22 I suppose a Rete node *represents* and operation saying it *does*
an operation blurs the model and the execution
- D23 Why is Rete worth benchmarking against the delta-query
approaches? You should state a specific reason or expectation
(trade-offs, and why these trade-offs are relevant).

*** Implementation and evaluation setup
- D24 your "graph-based databases" framing is argued based on
many/cyclic joins but excludes what makes *graph* querying special:
recursions/path expressions + the schema-less nature of it
- D25 I don't understand Figure 3, you say it depicts the architecture
for a query with three joins. It looks to me like a conflation
between the engine's architecture and the dataflow of a specific
query. Another example of it being unclear to me: why is the "d"
arrow pointing to the left? Isn't it output?
- D26 The limitations section defends the Incremunica's missing
features but the goal of the paper is comparing IVM techniques, not
building a fast engine. These two goals conflict somewhat.
- D27 Again in 6.1 you mention recursion, but it is technically
vague. I suggest to remove it.
- D28 Why do you have two different time-outs? you argue "shape
queries are simpler" but I believe it should be the other way
around. In case some queries time out, you argue that they were more
complex than the shape-based ones.
- D29 Table 5 "the all triple pattern"?
- D30 In Table 4 and 5 it is about last tp and all tp. Why do you
consider these two cases? What hypothesis does this test?
- D31 "Too long to execute" should say precisely what happened (e.g.,
timeout or out-of-memory?)

*** Discussion
- D32 "We interpret ... the evaluated IVM techniques within
Incremunica" highlights the framing problem. Are we comparing
algorithms, benchmarking an engine, or contributing to streaming
SPARQL?
- D33 Generalizing from CQs + filters to "all SPARQL workloads" is
unsupported.
- D34 An appropriate baseline for the question whether SPARQL is
different from relational (so, corroborating your "graph-based"
framing) is needed.
- D35 "largely due to a higher number of joins" has no direct
experimental evidence (it is not something you test in isolation)
Similarly this applies to your claim about "cyclic query structures"
- D36 "specific evaluation characteristics of SPARQL"; without a
relational baseline, this cannot be concluded.
- D37 Unclear to me: "one triple can cause multiple tuples" is said to
be SPARQL-specific, but at the same time you say that your fragment
of SPARQL corresponds with CQs?

** Smaller comments on typography and writing
- Using terms before definitions: "shape-based queries"; "Rete";
"incremental operator"; "change stream";...
- Inconsistent notation: sometimes lower "g" and "q" sometimes
capital. I suggest to always use a capital letter, adding a
subscript when needed.
- multiletter math-mode terms need \mathit{..} for more
professional-looking typography.
- use \llbracket and \rrbracket for semantic brackets for nicer
typography
- Mixing of past and present tense throughout the paper
- You have undefined references "Figure ?? and ??";
- inconsistent capitalization of "TypeScript"
- wording: "which is semantically equal to" for what is a syntactic
abbreviation; Rete nodes that "do" rather than represent operations

** Comments on artifacts
The authors provide resources for their manuscript: a Github
repository for Incremunica and the Train Benchmark along with
instructions on installation. They also provide the experimental
environment in a Zenodo archive to reproduce the experiments.

** Summary on the review criteria
- Originality: IVM for SPARQL is understudied, and to my knowledge,
this is one of the few papers addressing it. The surveyed techniques
are known. The novelty lies in the optimizations, which might or
might not be fundamental to SPARQL, and the evaluation on a single
engine. What is new with respect to relational IVM is not made
explicit.
- Significance: whether relational IVM techniques carry over to the
RDF setting is relevant, and the provided artifacts are valuable to
the community. The significance of the result is currently limited
by some unclarity in the object of the study (W1).
- Quality of writing: the writing needs substantial improvement, as
detailed in my comments. This hinders the verification of
correctness and experimental setup.

** Recommendation: Major revision
The topic is valuable and the methodology of implementing it in one
engine is sound. However, a major revision is needed. Essentially the
authors have to address all points and keeping in mind the overall
weaknesses that were formulated at the beginning of the review.

Review #3
Anonymous submitted on 29/Sep/2026
Suggestion:
Major Revision
Review Comment:

The paper presents a structured comparison of incremental view maintenance techniques for SPARQL conjunctive queries, implemented in the Incremunica engine and evaluated using an extended TypeScript version of the Train Benchmark. The results show that performance depends on query shape, update type, and data characteristics. Comparing all approaches in a single engine is a sound design, and the public code, the TypeScript benchmark with shape queries, and the proposed optimizations are valuable contributions. However, the motivation and formalization need to be clearer, and several aspects of the evaluation limit how far the conclusions can be generalized.

First, the introduction states the basic idea of incremental view maintenance, but it should explain more clearly when maintaining stored results is more efficient than recomputing them after each update, and why this makes a comparison of incremental join techniques important. This trade-off is only briefly mentioned in Section 4.1 and should be introduced earlier.
The introduction also motivates the work through streaming applications, but the evaluation uses small batches of updates without windows, arrival rates, or throughput measurements. The streaming-related claims throughout the paper, such as the claim in Section 8 that the Rete-based approach suits high-throughput streaming workloads, are therefore unsupported and should be either evaluated or moderated.
The authors should clarify what they mean by "low-latency query answering" and distinguish query response time from the time needed to process an update. Moreover, none of the evaluated approaches is full recomputation, since the single-order delta query is already incremental. A recomputation baseline, as used in the authors’ earlier Incremunica paper [21], would show how much each approach gains over recomputing from scratch.
The running example in Section 2 presents only the static graph and query, while the update that motivates incremental view maintenance (adding :switch2 :connectsTo :segment2) appears only in Section 4. Showing already in Section 2 how this update changes the query result, and why recomputing the result is costly, would help readers understand the motivation and the challenges before the detailed discussion.
The preliminaries need clearer explanations of their notation and more precise definitions of RDF graphs and SPARQL queries. For example, the statement that "entities are interconnected through subject–predicate–object triples" is too broad, since a triple's object can be a literal.

In Section 3, the notation should be used consistently. For example, the notation vars(·) denotes all occurring variables for triple patterns and bags of mappings, but only the projection variables for queries (Section 3.3), and Equation 9 uses vars(µ), although only dom(µ) is defined for mappings. In addition, since Equation 3 reuses the variables of Equation 2, the authors could state that it only illustrates the notation for bags of mappings. The running example in Section 3.2 could also be presented more clearly, for example by complementing the formulas with a table and short step-by-step explanations, instead of long paragraphs. It could also include a mapping that occurs more than once to illustrate multiplicity. More generally, the presentation of all running examples in the paper would benefit from a similar improvement. The authors should also justify the selectivity definition in Equation 14, particularly the use of the sum of input cardinalities as the denominator, and explain how to interpret this measure for joins. Finally, in Section 3.4, Equations 19–22 give different results for identical expressions, and the intended meaning should be stated explicitly.

Section 4 presents the existing approaches clearly, with pseudocode and worked examples. However, the proposed optimizations, the Memory Bind Join and the Rete indexing strategies, are described only in text, without pseudocode. Since they are contributions of the paper, they should be specified as precisely as the existing algorithms. In addition, Section 4.3 states that the rules for combining added and deleted mappings were given in the preliminaries, but Section 3.4 does not define them. Since these rules determine how changes propagate, they should be stated explicitly in Section 3.4, together with a formal definition of the materialized view and how the graph evolves as changes are applied. Finally, Table 1 should state whether costs are per update or per result.
The single-order delta query evaluates a new query for each changed triple, whereas the original counting algorithm processes changes in batches (as in Equation 23). The authors should discuss whether its poor performance reflects this implementation choice rather than the approach itself.
The paper proposes optimizations for both the bind join and Rete approaches, but provides a dedicated evaluation only for the Rete joins. The authors should either justify this choice or add a similar controlled evaluation of the Memory Bind Join, for example varying the number of duplicate and deleted mappings.

Regarding the implementation (Section 5), the code and benchmark results are publicly available, which supports reproducibility. However, for queries with FILTER EXISTS and FILTER NOT EXISTS, the authors should state which join algorithm evaluates the inner pattern, and discuss how evaluating filters only at the end affects the results for the Train Benchmark queries.
The paper does not give an overview of the evaluated queries and scenarios, and Appendix A lists only the largest version of each added shape query, while results are reported for several operation sizes. The authors should add an overview, for example, as a table, giving for each query its shape, operation sizes, and type of updates, and explain how the smaller versions are derived.

Regarding the evaluation, the paper uses a fixed join order (Section 5.3). Since some approaches, especially the higher-order delta queries, are highly sensitive to join order, the results may reflect the chosen order rather than the algorithms themselves. The authors should explain how the order was chosen and discuss its impact on the comparison.
The paper analyzes and measures only execution time. Since the approaches also differ in what they store, their memory requirements should also be analyzed in Section 4, and ideally measured in the experiments. The results tables should also distinguish runs that exceeded the time limit from those that ran out of memory, since one case is too slow and the other needs too much memory. In addition, the authors should define what the reported execution times measure (update processing, result retrieval, or both).
The paper cites cyclic queries as one reason to exclude the Dynamic Yannakakis algorithm, but none of the evaluated queries appears to be cyclic. The authors should include cyclic queries in the evaluation or discuss this limitation.
The scalability of the approaches is evaluated only on small datasets (at most about 64,000 triples), and many configurations already exceed the time limit at the larger sizes, leaving few comparable results. The authors should justify the chosen dataset sizes and time limits, and discuss how far the conclusions extend to realistic, larger datasets.

Section 8 attributes the performance of the Match Hash Join to the characteristics of realistic data (few duplicates, Cartesian joins, and shared bindings), but these characteristics are not measured. The authors should report them for the Train Benchmark queries to support this explanation.

Regarding related work, the authors should clarify what this article adds beyond their earlier Incremunica paper [21], which already presents the engine with multiple incremental operators, and how their comparison differs from the original Train Benchmark study [22]. The related work section is also brief and mostly lists systems. It could be extended with a short discussion of how each group of approaches relates to the evaluated techniques. Finally, the authors should discuss the recent work by Staquet et al. [A], which adapts the counting algorithm to SPARQL, and clarify how it relates to the single-order delta query implemented in Incremunica.

Minor: The presentation needs careful proofreading. For example, Section 2 refers to Section 5 for the Train Benchmark (it is described in Section 6), the numbering in the running example is broken, Section 6.2 lists the scenario characteristics twice, and Section 8 contains two nearly identical paragraphs. Also, several typos need correction.

[A] Staquet, Dore, Bart Buelens, and Jan Van den Bussche. "Incremental View Maintenance for SPARQL Queries: Adapting the Counting Algorithm." ACM Transactions on the Web (2026).