[论文解读] Streaming Enumeration on Nested Documents
本文提出一种针对嵌套文档(如XML、JSON)查询的流式枚举算法,采用可见栈下推转换器(VPT)实现,仅需对输入数据进行一次遍历即可实现常数延迟枚举。该方法确保最坏情况下的最优更新时间和内存使用,对I/O无歧义VPT实现最优性能,并可通过确定化扩展至所有VPT。
Some of the most relevant document schemas used online, such as XML and JSON, have a nested format. In the last decade, the task of extracting data from nested documents over streams has become especially relevant. We focus on the streaming evaluation of queries with outputs of varied sizes over nested documents. We model queries of this kind as Visibly Pushdown Transducers (VPT), a computational model that extends visibly pushdown automata with outputs and has the same expressive power as MSO over nested documents. Since processing a document through a VPT can generate a massive number of results, we are interested in reading the input in a streaming fashion and enumerating the outputs one after another as efficiently as possible, namely, with constant-delay. This paper presents an algorithm that enumerates these elements with constant-delay after processing the document stream in a single pass. Furthermore, we show that this algorithm is worst-case optimal in terms of update-time per symbol and memory usage.
研究动机与目标
- 实现对XML和JSON等嵌套文档的高效流式查询评估,实现最小内存占用与输出间的常数延迟。
- 解决在单次遍历中从嵌套文档中枚举潜在大规模输出集的挑战,而无需存储整个文档。
- 提供关于更新时间和内存使用量的理论保证,证明所提算法在最坏情况下的最优性。
- 将常数延迟枚举扩展至更广泛的可见栈下推转换器(VPT)类别,该类别捕获了嵌套数据上MSO逻辑的表达能力。
- 通过与文档跨度提取器及XPath、XQuery等查询语言的集成,展示其实际适用性。
提出的方法
- 该算法将查询建模为可见栈下推转换器(VPT),其在可见栈下推自动机基础上扩展了输出功能,能够捕获嵌套文档上MSO逻辑的表达能力。
- 在单次遍历中处理输入流,维护一个紧凑的数据结构,用于跟踪相关状态和变量捕获,以实现高效的输出枚举。
- 对于无歧义VPT,该算法构建一个派生转换器T_G,通过沿有效路径合并变量捕获,实现常数延迟枚举。
- 该构造使用对v-路径(标记有捕获变量的转移序列)的合并操作,以紧凑方式表示输出集,并支持高效枚举。
- 该算法确保更新时间复杂度被限制在O(|Q|²|Δ||2^CX|),该复杂度被证明是该问题的最坏情况最优解。
- 对于一般(非无歧义)VPT,该方法对底层自动机应用确定化,从而在数据复杂度下将常数延迟保证扩展至整个VPT类。
实验结果
研究问题
- RQ1是否可以在仅一次输入遍历之后,对嵌套文档上的查询实现流式评估并保证常数延迟枚举?
- RQ2此类流式枚举所需的最小最坏情况更新时间和内存使用量是多少?是否可以实现?
- RQ3如何在流式环境中捕获MSO逻辑在嵌套文档上的表达能力,并实现高效枚举?
- RQ4是否可以通过确定化方法,将常数延迟枚举从无歧义VPT扩展至一般VPT?
- RQ5所提算法是否可应用于XPath、XQuery或JSON查询语言等实际查询语言,并保证效率?
主要发现
- 所提算法在单次输入流遍历后,对I/O无歧义VPT实现了常数延迟枚举,且更新时间复杂度被限制在O(|Q|²|Δ||2^CX|)。
- 该算法在更新时间和内存使用方面均为最坏情况最优,因为存在输入实例,使得任何流式算法都至少需要如此多的时间和空间。
- 通过在v-路径上对合并操作构建派生转换器T_G,确保了输出枚举的正确性与高效性,同时保持了原始VPT的语义。
- 对于一般VPT,该方法通过对底层EVPA进行确定化,实现了常数延迟枚举,从而在数据复杂度下将结果扩展至整个VPT类。
- 该算法可应用于实际查询语言如XPath和XQuery,并与文档跨度提取器模型兼容,支持数据提取。
- 整个枚举流水线(包括输出映射构造)的运行时间与输出大小呈线性关系,确保输出线性延迟。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。