🤖 AI Summary
Existing RETE-based pattern matching for large graph models in model-driven engineering suffers from redundant computation when only local subgraph matches are required, due to its global execution semantics.
Method: This paper proposes a localized RETE algorithm that adapts the classical RETE mechanism to subgraph-centric matching. It introduces subgraph-aware node labeling, localized fact propagation, and selective pruning to construct an extended RETE network, enabling fully incremental matching strictly within the query subgraph scope while preserving result completeness.
Contribution/Results: The approach integrates seamlessly into incremental update frameworks. Evaluations on software modeling and social network benchmarks demonstrate up to several-fold reductions in memory consumption and execution time. Even in worst-case scenarios, overhead remains bounded and controllable. By eliminating unnecessary global state maintenance, the method effectively breaks the performance bottleneck imposed by global semantics, establishing a new efficiency frontier for subgraph querying in large-scale graph models.
📝 Abstract
The growing size of graph-based modeling artifacts in model-driven engineering calls for techniques that enable efficient execution of graph queries. Incremental approaches based on the RETE algorithm provide an adequate solution in many scenarios, but are generally designed to search for query results over the entire graph. However, in certain situations, a user may only be interested in query results for a subgraph, for instance when a developer is working on a large model of which only a part is loaded into their workspace. In this case, the global execution semantics can result in significant computational overhead. To mitigate the outlined shortcoming, in this article we propose an extension of the RETE approach that enables local, yet fully incremental execution of graph queries, while still guaranteeing completeness of results with respect to the relevant subgraph. We empirically evaluate the presented approach via experiments inspired by a scenario from software development and with queries and data from an independent social network benchmark. The experimental results indicate that the proposed technique can significantly improve performance regarding memory consumption and execution time in favorable cases, but may incur a noticeable overhead in unfavorable cases.