Page 166 - 《软件学报》2026年第3期
P. 166

刘孟怡 等: 基于大语言模型的空间数据库自然语言查询转换方法                                                  1129


                  4   空间数据自然语言查询的可执行语言生成

                    可执行语言生成阶段的任务是基于关键语义信息构建可执行语言, 创新性工作是结构化语言模型的设计. 首
                 先, 自然语言理解阶段确定的查询类型可以精准指导关键实体和运算符的选择. 其次, 创新性地设计了实体槽位机
                 制, 将待定实体值与关键实体一一对应, 形成对查询上下文的结构化抽象, 这种方法使得自然语言中的复杂语义能
                 够转化为清晰的逻辑结构, 确保了结构化语言模型的可解释性和易操作性. 最后, 基于数据库可执行语言的语法规
                 则进行组合, 生成结构清晰且逻辑明确的查询表达式.
                  4.1   相关定义
                    令  Type(p) ∈ {point,line,region} 表示地点  p  的数据类型, 函数  compLoc 判断地点  p  和  q  是否有公共部分:

                                         {
                                          intersects(p,q),  Type(p) ∈ {line,region}∧Type(q) ∈ {line,region}
                            compLoc(p,q) =                                                            (4)
                                          within(p,q),  Type(p) = point∧Type(q) = region
                    定义  6 (空间范围查询). 给定一个空间对象集合           R  和一个查询地点     p, 空间范围查询返回满足特定空间谓词条
                                   ′
                 件的所有对象, 用集合      R  表示:

                                                   ′
                                                  R = {r|r ∈ R∧compLoc(r, p)}                         (5)
                    定义  7 (最近邻居查询). 给定一个空间对象集合            R, 一个查询地点    p  和一个正整数    k, 最近邻居查询返回集合
                  ′   ′   ′                ′
                 R = {r ,...,r } ⊆ R, 对于  ∀r ∈ R−R , 满足:
                      1   k

                                                                   ′
                                                   dist(r, p) ⩾ maxdist(r , p)                        (6)
                                                                   i
                                                            1⩽i⩽k
                    定义  8 (空间  Join  查询). 根据连接条件将空间     Join  查询分为两类.
                    (1) 给定两个空间对象集合       R  和  S, 空间  Join  查询返回集合  T:

                                             T = {(p,q)|p ∈ R∧q ∈ S ∧compLoc(p,q)}                    (7)
                    (2) 给定两个空间对象集合       R  和  S, 一个距离阈值  d, 距离  Join  查询返回集合  T:

                                              T = {(p,q)|p ∈ R∧q ∈ S ∧dist(p,q) ⩽ d}                  (8)
                    定义  9 (空间聚合查询). 根据统计函数将空间聚合查询分为               3  类.
                    (1) 给定一个空间对象集合         R  和一个查询地点      p, 统计数量的空间聚合查询返回一个整数                n = |R | R =
                                                                                                   ′
                                                                                                      ′
                                                                                                    ,
                 {r|r ∈ R∧compLoc(r, p)}. 对两个空间对象集合  R  和  S  进行数量统计的空间聚合查询的结果用集合           R  表示:
                                                                                             ′

                                        ′   ′  ′   ′      ′  ′                  ′
                                       R = {r |r ∈ R∧r .Cnt = |S |, S = {s|s ∈ S ∧compLoc(s,r )}}     (9)
                                         R = {r 1 ,...,r n } 和一个查询地点  p, 统计总和的空间聚合查询返回一个浮点数        f:
                    (2) 给定一个空间对象集合

                                                     n ∑
                                                  f =  area(intersection(r i , p))                   (10)
                                                     i=1
                    (3) 给定两个空间对象集合       R  和  S, 统计最大值的空间聚合查询返回一个对象          p ∈ R , 其中,  R = {r |r ∈ R∧r .Cnt =
                                                                                            ′
                                                                                 ′
                                                                                             ′
                                                                                        ′
                                                                                                   ′
                 |S |,S = {s|s ∈ S ∧compLoc(s,r )}}, 满足:
                                        ′
                  ′
                     ′

                                                      p.Cnt = max r .Cnt                             (11)
                                                                ′
                                                                i
                                                            1⩽i⩽|R|
                    定义  10 (结构化语言模型). 结构化语言模型基于语法规则, 通过组合运算符和实体来表示可执行的数据库查
                 询.  SLM = (L,O,E), 其中, L  是数据库查询语言的语法规则集合; O       是数据库的运算符集合;        E = E k ∪ E d ∪ E rel ∪ E loc ,
                 是实体的集合, 其中,     E k 、 E d 、 E rel 、 E loc  分别表示最近邻居数、距离阈值、空间关系和查询地点的集合.
                  4.2   结构化语言模型
                    为了高效地生成空间数据库可执行语言, 设计结构化语言模型, 具体过程如图                        3  所示.
                    基于  SECONDO   系统, 为基础空间查询、空间范围查询、最近邻居查询、空间                    Join  查询和聚合查询分别构
                 造结构化语言模型. SECONDO       支持空间和时空数据, 为用户提供了广泛的基本操作和专业操作, 常用查询如下.
   161   162   163   164   165   166   167   168   169   170   171