DeSQ: 基于分解的SPARQL查询生成

arXiv cs.CL 论文

摘要

DeSQ是一个基于分解的框架,用于从自然语言问题生成SPARQL查询。它将复杂问题分解为原子约束,将它们映射到SPARQL片段,并组装成完整查询,在五个基准测试中的四个上优于现有技术。

arXiv:2606.00203v1 公告类型: 新 摘要: 知识库问答(KBQA)的主要方法分为两类。第一类是生成形式化查询,这种方法脆弱且可解释性有限;第二类是通过知识库探索直接检索答案,计算成本高且容易产生幻觉。为了结合两种范式的优势并减轻各自的缺点,我们提出了DeSQ(基于分解的SPARQL查询生成),这是一个与知识库无关的框架,包含三个阶段。首先,它将复杂问题分解为原子约束(AC),这些约束反映了底层知识库的关系结构。其次,它生成一个两部分的结构化输出:(a)将每个AC映射到对应的SPARQL片段,使用标准化的变量和URI占位符;(b)URI接地块描述每个占位符。第三,它将这些片段组装成一个完整的SPARQL查询。DeSQ在五个主要基准测试中的四个上超越了最先进的方法,并展示了对词汇变化的卓越鲁棒性。除了性能提升外,我们的框架通过消除对实时知识库端点的需求,大大简化了评估,并且其结构化输出支持细粒度的错误分析,从而实现更有针对性的改进干预。
查看原文
查看缓存全文

缓存时间: 2026/06/02 15:36

# DeSQ:基于分解的SPARQL查询生成
来源:https://arxiv.org/html/2606.00203
Papa Abdou Karim Karou Diallo†,⋄,§Aditya Sharma†,⋄,§Neshat Elhami Fard†,⋄,§Amal Zouaq†,⋄,§†LAMA\-WeST⋄Mila – 魁北克人工智能研究所§蒙特利尔理工学院联系方式:karou\.diallo@mila\.quebec (https://arxiv.org/html/2606.00203v1/mailto:[email protected])

###### 摘要

知识库问答(KBQA)的主流方法可分为两类:一类是生成形式化查询,这种方法脆弱且可解释性有限;另一类是通过探索知识库直接检索答案,这种方法计算成本高且容易产生幻觉。为了结合这两种范式的优势并减轻其各自的缺点,我们引入了DeSQ(基于分解的SPARQL查询生成),这是一个与知识库无关的框架,分三个阶段运行。首先,它将复杂问题分解为原子约束(AC),这些约束反映了底层知识库的关系结构。其次,它生成一个由两部分组成的结构化输出:(a) 将每个AC映射到其对应的SPARQL片段,使用标准化的变量和URI占位符,以及 (b) URI接地块,描述每个占位符。第三,将这些片段组装成完整的SPARQL查询。DeSQ在五个主要基准测试中的四个上超越了最先进的方法,并展示了对词汇变化的卓越鲁棒性。除了性能提升外,我们的框架通过消除对实时知识库端点的需求,极大地简化了评估过程;其结构化输出实现了细粒度的错误分析,允许更有针对性的改进干预。

参见图注图1:DeSQ的架构。
DeSQ:基于分解的SPARQL查询生成

Papa Abdou Karim Karou Diallo†,⋄,§Aditya Sharma†,⋄,§Neshat Elhami Fard†,⋄,§Amal Zouaq†,⋄,§†LAMA\-WeST⋄Mila – 魁北克人工智能研究所§蒙特利尔理工学院联系方式:karou\.diallo@mila\.quebec (https://arxiv.org/html/2606.00203v1/mailto:[email protected])

## 1 引言

SPARQL和SQL已成为查询基于RDF的知识库(KB)(Gu等人,2022 (https://arxiv.org/html/2606.00203#bib.bib56))和关系数据库(RDB)(Liu等人,2025 (https://arxiv.org/html/2606.00203#bib.bib57))的标准接口,能够实现对大规模结构化存储库的精确且可重复的检索。然而,编写正确的SPARQL/SQL查询既需要熟悉查询语言,也需要了解底层模式的详细知识,这给非专业用户造成了巨大障碍(Hong等人,2025 (https://arxiv.org/html/2606.00203#bib.bib44))。这激发了人们对自动将自然语言问题翻译成可执行SPARQL/SQL查询的系统的兴趣日益增长(Diallo等人,2024 (https://arxiv.org/html/2606.00203#bib.bib17);Reyd and Zouaq, 2023 (https://arxiv.org/html/2606.00203#bib.bib25);Hong等人,2025 (https://arxiv.org/html/2606.00203#bib.bib44);Li等人,2024 (https://arxiv.org/html/2606.00203#bib.bib43))。此任务的最先进系统主要分为两种范式。第一种范式直接从自然语言问题生成结构化查询(Sharma等人,2026 (https://arxiv.org/html/2606.00203#bib.bib50);Banerjee等人,2022 (https://arxiv.org/html/2606.00203#bib.bib32);Emonet等人,2024 (https://arxiv.org/html/2606.00203#bib.bib9))。这种方法虽然直接,但存在可解释性差以及非结构化语言与知识库高度结构化的标识符之间对齐脆弱的问题,常常导致格式错误的查询和错误的答案。第二种方法完全绕过查询生成,直接探索知识库来产生答案(Shavarani and Sarkar, 2024 (https://arxiv.org/html/2606.00203#bib.bib12);Alawwad等人,2024 (https://arxiv.org/html/2606.00203#bib.bib33);Muennighoff, 2022 (https://arxiv.org/html/2606.00203#bib.bib37))。虽然这避免了形式化查询语言的语法约束,但它容易产生幻觉,并且需要昂贵的图遍历,这损害了信任和效率(Liu等人,2024 (https://arxiv.org/html/2606.00203#bib.bib38);Li等人,2023a (https://arxiv.org/html/2606.00203#bib.bib35);Sun等人,2025 (https://arxiv.org/html/2606.00203#bib.bib16))。生成一种能够从可信、受控且持续更新的知识库中检索信息的逻辑形式仍然是更合乎原则的方法,因为它保留了完全的可审计性并支持精确、可重复的答案(Hong等人,2025 (https://arxiv.org/html/2606.00203#bib.bib44))。然而,期望模型一步生成正确且可执行的SPARQL查询过于乐观。实现这一目标需要同时满足几个相互依赖的先决条件:模型必须捕捉复杂问题的语义结构并将其与目标知识库的模式对齐(Diallo and Zouaq, 2025 (https://arxiv.org/html/2606.00203#bib.bib45);Zahera等人,2024 (https://arxiv.org/html/2606.00203#bib.bib31);D’Abramo等人,2025 (https://arxiv.org/html/2606.00203#bib.bib34));它必须正确识别和消除实体及关系的歧义,尽管问题与知识库模式之间存在显著的词汇差异(Cao等人,2026 (https://arxiv.org/html/2606.00203#bib.bib18);Qi等人,2024 (https://arxiv.org/html/2606.00203#bib.bib27);Polonuer等人,2026 (https://arxiv.org/html/2606.00203#bib.bib42));并且必须忠实地编码每个条件和约束,同时保持对要检索的目标信息的关注。当问题涉及多跳推理、嵌套条件或聚合时,难度会进一步增加(Alekseev等人,2025 (https://arxiv.org/html/2606.00203#bib.bib36);Mountantonakis and Tzitzikas, 2025 (https://arxiv.org/html/2606.00203#bib.bib24);Piao等人,2026 (https://arxiv.org/html/2606.00203#bib.bib41))。这些挑战促使我们采用基于分解的方法。将生成过程分解为模块化步骤,使整体问题更易于处理,通过隔离失败步骤实现细粒度错误分析,并将语言理解与知识库特定标识符解析解耦——这两个错误源在端到端方法中常常被混淆(Diallo等人,2024 (https://arxiv.org/html/2606.00203#bib.bib17))。为此,我们引入了DeSQ,一个与知识库无关的框架,它结合了两种范式的优势,同时减轻了它们各自的缺点。如图LABEL:fig:ragex-pipeline所示,DeSQ分三个阶段操作。首先,它将自然语言问题分解为原子约束(AC),这些约束反映了底层知识库的关系结构。然后,它生成一个由两部分组成的结构化输出:(a) 将每个AC映射到其对应的SPARQL片段,使用统一标准化的变量和URI占位符命名约定,以及 (b) URI接地块,提供每个URI占位符的标签和描述。最后,一个确定性的组装器根据非参数化知识库存储器解析这些占位符,并生成一个完整、可执行的SPARQL查询。这项工作研究了三个研究问题。RQ1 基于分解的方法与直接生成SPARQL查询相比如何?RQ2 底层LLM的类型、规模和架构如何影响DeSQ的性能?RQ3 DeSQ与先前最先进的KBQA方法在各基准测试上相比如何?

这项工作的主要贡献如下:(1) 我们引入了DeSQ,一个新颖的、与知识库无关的KBQA框架,其设计通过结构化的分解到查询流水线,将语言推理与事实依据解耦。(2) 我们提出了一种高效的事后URI纠正策略,利用生成的标签和描述元数据来恢复最终SPARQL查询中错误的知识库标识符,同时选择性地保留已正确预测的URI。(3) DeSQ在四个主要基准测试上取得了最先进的性能,即LC-QuAD 2.0 (Dubey等人,2019 (https://arxiv.org/html/2606.00203#bib.bib20))、WebQSP (Yih等人,2016 (https://arxiv.org/html/2606.00203#bib.bib19))、ComplexWebQuestions (Talmor and Berant, 2018 (https://arxiv.org/html/2606.00203#bib.bib21))和QALD-10 (Usbeck等人,2024 (https://arxiv.org/html/2606.00203#bib.bib23)),证明了相比现有方法更强的泛化能力。(4) DeSQ的结构化输出消除了评估期间对实时知识库端点的需求,避免了基于执行的F1分数中的高估陷阱(即,无论语义是否等价,空结果查询对被计为正确),同时还能在单个步骤层面进行细粒度错误分析。

## 2 相关工作

### 2.1 SPARQL查询生成

在查询生成范式中,方法在处理底层知识库的异质性和复杂性方面有所不同。一些工作通过合并来自不同本体的数据集(Vollmers等人,2024 (https://arxiv.org/html/2606.00203#bib.bib8))、对齐本体表示、集成联邦知识图谱(Emonet等人,2024 (https://arxiv.org/html/2606.00203#bib.bib9))或在本体之间进行翻译(Bartels等人,2025 (https://arxiv.org/html/2606.00203#bib.bib10))来解决可用知识源的多样性问题。另一些方法在生成查询之前从多个来源收集证据(Lv等人,2020 (https://arxiv.org/html/2606.00203#bib.bib6); Vollmers等人,2024 (https://arxiv.org/html/2606.00203#bib.bib8)),或先生成另一种逻辑形式,然后将其转换为目标形式(Luo等人,2023 (https://arxiv.org/html/2606.00203#bib.bib39))。一些方法使LLM能够在推理时从外部存储器整合新信息,以减少对参数化知识的依赖(Zhang等人,2024 (https://arxiv.org/html/2606.00203#bib.bib15); Sharma等人,2026 (https://arxiv.org/html/2606.00203#bib.bib50))。另一条互补的研究思路绕过形式化查询生成,转而直接提取答案。一些方法逐步收集相关的推理依据(Li等人,2023b (https://arxiv.org/html/2606.00203#bib.bib3); Zhao等人,2023 (https://arxiv.org/html/2606.00203#bib.bib4); Wei等人,2022 (https://arxiv.org/html/2606.00203#bib.bib5)),或在生成最终答案之前规划明确的推理步骤序列(Sun等人,2023 (https://arxiv.org/html/2606.00203#bib.bib7))。另一些方法直接利用LLM的原生推理能力(Jiang等人,2023 (https://arxiv.org/html/2606.00203#bib.bib13); Gu等人,2023 (https://arxiv.org/html/2606.00203#bib.bib14)),或从锚点实体开始执行图遍历,直到找到答案(Sun等人,2025 (https://arxiv.org/html/2606.00203#bib.bib16))。

### 2.2 通过分解解决复杂问题

分治策略长期以来一直是复杂问答的核心,它们与LLM的结合催生了一系列丰富的基于分解的方法(Hu等人,2025 (https://arxiv.org/html/2606.00203#bib.bib58); Yao等人,2023 (https://arxiv.org/html/2606.00203#bib.bib59))。第一类工作侧重于通过提示来引出结构化推理,即在生成最终答案之前先生成中间步骤(Wei等人,2022 (https://arxiv.org/html/2606.00203#bib.bib5))。在这一类中,有几种方法将推理与对外部来源的迭代检索交错进行,逐步跨多跳收集支持证据,而不是预先检索所有上下文(Trivedi等人,2023 (https://arxiv.org/html/2606.00203#bib.bib46); Sun等人,2023 (https://arxiv.org/html/2606.00203#bib.bib7))。最近的一些贡献更进一步,训练LLM在推理轨迹中自主决定何时以及如何调用外部搜索,使用强化学习来优化检索与推理之间的相互作用(Li等人,2025 (https://arxiv.org/html/2606.00203#bib.bib47); Chen等人,2025 (https://arxiv.org/html/2606.00203#bib.bib48))。另一个密切相关的家族将语义解析与显式的结构分解相结合,将问题转换为逻辑或形式化表示,然后分解为子查询,并显式建模子查询之间的依赖关系(Liang等人,2024 (https://arxiv.org/html/2606.00203#bib.bib49); Zhang等人,2025 (https://arxiv.org/html/2606.00203#bib.bib11))。这个家族中的方法在如何表示和解决子问题上有所不同,有些使用双自然语言和逻辑形式表示,将每个子问题路由到检索或推理。

DeSQ与上述讨论的SPARQL生成方法(第2.1节)和基于分解的方法(第2.2节)都根本不同。首先,它不是将查询结构和知识库特定标识符视为一个单一的纠缠生成目标,而是显式地监督模型区分两者,独立于事实依据学习语言查询结构。其次,它不是将分解粒度留给模型自行决定,而是显式地约束每个分解步骤对应于知识库模式中的单个关系三元组,确保分解步骤与事实信息来源之间存在直接的结构对应关系。这与KAG (Liang等人,2024 (https://arxiv.org/html/2606.00203#bib.bib49))形成对比,后者的分解目标是生成推理依据,而不是对齐模式的查询构建。此外,与基于探索的方法(Sun等人,2025 (https://arxiv.org/html/2606.00203#bib.bib16))不同,DeSQ不需要起始实体,可以处理标准KBQA基准测试中发现的全部问题类型。据我们所知,这种粒度对齐的分解策略以前尚未被探索用于SPARQL查询生成或问答。

## 3 方法论

### 3.1 问题分解

我们从每个基准测试的训练集中,通过提取每个关联的标准SPARQL查询中的片段列表(SELECT/FILTER子句、图模式及修饰符),并使用GPT-OSS 20B (Agarwal等人,2025 (https://arxiv.org/html/2606.00203#bib.bib2))(推理级别设为低)以推理模式将每个片段口头化为原子约束(AC),来自动构建问题的标准分解。这确保了与底层知识库RDF格式的结构对齐。例如,对于问题“人口<10000的国家的首都是什么?”及其标准查询 `SELECT ?var1 ?var2 WHERE {?var3 wdt:P36 ?var1 . ?var3 wdt:P1082 ?var2 . FILTER(?var2 < 10000)}`,通过对SPARQL片段进行口头化得到了四个AC。片段 `SELECT ?var1 ?var2 {}` 子句作为SPARQL查询骨架,其口头化捕捉了问题的整体意图,被映射到AC1 “我们需要国家的首都和人口”;三元组 `?var3 wdt:P36 ?var1` 映射到AC2 “一个国家有一个首都”;三元组 `?var3 wdt:P1082 ?var2` 映射到AC3 “一个国家有总人口”;过滤器表达式 `FILTER(?var2 < 10000)` 映射到AC4 “我们需要总人口 < 10000”。这个口头化过程统一应用于所有训练样本。重要的是,在推理时,模型只接收问题,并需要自主生成相应的AC。

### 3.2 查询片段生成与URI接地

从增加了上一步(第3.1节)分解(一组AC)的问题出发,我们生成两部分:(1) 每个AC与其SPARQL片段之间的映射,以及\

相似文章

声明式数据服务:用于组合数据系统的结构化智能体发现

arXiv cs.AI

本文提出了声明式数据服务(DDS),这是一种从声明式用户意图出发,对数据系统组合进行结构化智能体发现的架构。它将全局搜索分解为有界子搜索,并在一个交易后端工作负载上展示了收敛性,而在此负载上无界发现会失败。