The chase procedure is a fundamental algorithmic tool in databases that allows us to reason with constraints, such as existential rules, with a plethora of applications. It takes as input a database and a set of constraints, and iteratively completes the database as dictated by the constraints. A key challenge, though, is the fact that it may not terminate, which leads to the problem of checking whether it terminates given a database and a set of constraints. In this work, we focus on the semi-oblivious version of the chase, which is well-suited for practical implementations, and linear existential rules, a central class of constraints with several applications. In this setting, there is a mature body of theoretical work that provides syntactic characterizations of when the chase terminates, algorithms for checking chase termination, precise complexity results, and worst-case optimal bounds on the size of the result of the chase (whenever is finite). Our main objective is to experimentally evaluate the existing chase termination algorithms with the aim of understanding which input parameters affect their performance, clarifying whether they can be used in practice, and revealing their performance limitations.
翻译:追逐过程是数据库中一种基础性算法工具,允许我们通过存在规则等约束进行推理,并具有广泛的应用。该过程以数据库和一组约束为输入,并根据约束迭代地完善数据库。然而,一个关键挑战在于它可能不会终止,从而引出在给定数据库和一组约束的情况下检查其是否终止的问题。在本工作中,我们聚焦于半无知版本的追逐(该版本适合实际实现)以及线性存在规则(一种具有多种应用的核心约束类别)。在此设定下,已有成熟的理论工作提供了追逐终止的句法特征描述、检查追逐终止的算法、精确的复杂度结果,以及追逐结果(在有限时)大小的最坏情况最优边界。我们的主要目标是通过实验评估现有的追逐终止算法,以理解哪些输入参数会影响其性能、澄清它们是否能在实践中使用,并揭示其性能局限。