自动生成和重排SQL派生答案的技术解析
1. 迭代处理与关系构建
在初始迭代中,利用ROOT关系将“are”添加到集合Σ中。同时,当检查到“state.capital”在IS中出现时,借助ROOT关系将“capital”和“state”添加到集合Π中。此时,这三个关系会从SDCopt_q1中删除,得到用于下一次迭代的SDCopt_q1′。由于“are”是短词干,应从Σ中删除。
第二次迭代(即第一次递归步骤)中,没有ROOT关系,因此使用nsubj关系将“add border”添加到Σ′,将“state”添加到Π′。通过rcmod关系发现“border.state name”在IS中出现,“border”也会被添加到Π。遍历列表末尾时,舍弃dobj关系,因为即使“border”属于Π′,但在IS中未找到“state.border”,这三个关系将从SDCopt_q1′中删除,得到用于最后一次迭代的SDCopt_q1′′。
第三次迭代时,SDCopt_q1′′由两个mod关系组成,将所有词干添加到Π′′,并从列表中删除相关关系。
2. 构建SELECT子句集
确定投影导向的词干集合Π后,可利用它在元数据中搜索可能匹配的字段。SELECT子句集S的生成过程由以下生成式语法描述:
S → AGGR ’(’ FIELD ’)’ | FIELD
AGGR → max | min | sum | count | avg
FIELD → TAB.COL
TAB ∈ {x∈Π πtable name(σtable name∼=x(IS.Tables))}
COL ∈ {x∈Π πcolum
超级会员免费看
订阅专栏 解锁全文
9947

被折叠的 条评论
为什么被折叠?



