CN117370377B - 一种基于结构化查询语言的三维场景管理方法及装置 - Google Patents
一种基于结构化查询语言的三维场景管理方法及装置 Download PDFInfo
- Publication number
- CN117370377B CN117370377B CN202311652515.5A CN202311652515A CN117370377B CN 117370377 B CN117370377 B CN 117370377B CN 202311652515 A CN202311652515 A CN 202311652515A CN 117370377 B CN117370377 B CN 117370377B
- Authority
- CN
- China
- Prior art keywords
- scene
- structured query
- list
- grammar
- dimensional scene
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 43
- 238000004458 analytical method Methods 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 30
- 230000000877 morphologic effect Effects 0.000 claims abstract description 24
- 238000012216 screening Methods 0.000 claims abstract description 15
- 238000012795 verification Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims description 12
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001808 coupling effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于结构化查询语言的三维场景管理方法及装置,属于三维虚拟场景管理技术领域。方法包括:获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表;依据预设语法规则对词素列表中的词素进行合法性校验,并根据校验结果构建语法树;对语法树进行语义分析,获得语义分析结果;从三维场景的根节点开始遍历场景对象,并依据语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表;读取暂存对象列表中的场景对象,并按照语法树的方式组装查询结果并将其返回至调用方。本发明能够适用调用方复杂的结构化查询语言解析,有效的支持复杂的业务请求,可以实现对传统三维场景管理软件的解耦。
Description
技术领域
本发明涉及三维场景管理技术领域,尤其涉及一种基于结构化查询语言的三维场景管理方法及装置。
背景技术
基于标签的场景查询和管理技术是一种在游戏开发和其他3D应用中常见的技术,它允许开发者使用标签来标记和识别场景中的对象。这种方法可以让开发者更容易地查询和操作满足特定条件的一组对象,而不必单独处理每一个对象,可以让开发者快速、灵活地处理场景中的对象。通过合理使用标签,开发者可以轻松地创建复杂的游戏逻辑,而无需写大量的硬编码。
现有技术中针对标签的三维场景的查询方式较为简单,在面对复杂逻辑的场景查询需求时,需要开发者编写对应的代码逻辑实现,且要求开发者足够了解所有对象的相关参数,否则无法完成代码逻辑的开发,整体三维场景管理技术的耦合性较强。
发明内容
有鉴于此,本发明实施例提供了一种基于结构化查询语言的三维场景管理方法及装置,用以解决现有技三维场景管理术难以支持复杂逻辑的场景查询,且耦合性较强的问题。
本发明采用的技术方案是:
第一方面,本发明提供了一种基于结构化查询语言的三维场景管理方法,包括:
获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表;
依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树;
对所述语法树进行语义分析,获得语义分析结果;
依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表;
读取所述暂存对象列表中的场景对象,并按照语法树的方式组装查询结果并将所述查询结果返回至调用方。
进一步地,所述获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表,包括:
获取调用方按照结构化查询语言编写的结构化查询语句,并对所述结构化查询语句进行词素分解,获得三维场景中具有词素序列的词素列表;所述结构化查询语句包括数据查询语句、数据增加语句、数据删除语句和数据修改语句;所述词素包含关键字、标识符、运算符和字面量。
进一步地,所述依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树,包括:
依据结构化语言的预设语法规则,检测所述词素列表中各个词素是否合法,若词素列表中的词素均合法,则按照词素列表的词素序列的结构,构建用以表示结构化查询语句结构的语法树;
若词素列表中存在不合法的词素,则返回语法树构建失败到调用方。
进一步地,所述对所述语法树进行语义分析,获得语义分析结果,包括:
检测所述语法树中是否存在场景对象,若不存在场景对象,则返回语义异常至调用方;
若存在场景对象,则检测所述语法树中场景对象的参数进行有效性检测,判断参数的数据类型是否正确,如果参数的数据类型不正确,则返回语义分析异常至调用方;
如果参数的数据类型正确,则所述语法树不存在语义问题,输出语义分析结果。
进一步地,所述依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表,包括:
基于语义分析结果,从所述三维场景的根节点开始,对三维场景中的场景对象进行遍历,并在遍历过程中,按照语法树的语法规则判断遍历的场景对象是否符合结构化查询语句中的场景对象类型;若符合结构化查询语句中的场景对象类型,则将遍历的场景对象存入暂存对象列表;若不符合结构化查询语句中的场景对象类型,遍历下一节点的场景对象;
当三维场景中所有场景对象的遍历完成或触发语法树的退出节点时,输出暂存对象列表。
第二方面,本发明提供一种基于结构化查询语言的三维场景管理装置,包括:
第一分析模块,用于获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表;
第二分析模块,用于依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树;
第三分析模块,用于对所述语法树进行语义分析,获得语义分析结果;
对象筛选模块,用于依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表;
数据返回模块,用于读取所述暂存对象列表中的场景对象,并按照语法树的方式组装查询结果并将所述查询结果返回至调用方。
综上所述,本发明的有益效果如下:
本发明提供的一种基于结构化查询语言的三维场景管理方法,其先对输入的结构化查询语句进行词素分析和语法分析,并根据分析结果,将结构化查询语句抽象为对应的语法树,并对语法树进行语义分析,通过语法树的语法规则在三维场景中快速筛选出结构化查询语句所需要的场景对象,可以有效检测出结构化查询语句的语义问题,能够适用调用方复杂的结构化查询语言解析,有效的支持复杂的业务请求。本发明通过使用统一的结构化查询语言来作为三维场景和外部模块交互的媒介层,可以通过极少量的开发与不同平台数据和不同开发环境的终端进行数据对接,进行三维场景数据的管理和更新,能够实现对传统三维场景管理软件的解耦。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,这些均在本发明的保护范围内。
图1为本发明的一种基于结构化查询语言的三维场景管理方法流程示意图;
图2为本发明的一种基于结构化查询语言的三维场景管理装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。如果不冲突,本发明以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
基于EQS(Environmental Query System)的场景查询系统是现有三维管理技术中的一种场景管理系统,EQS的主要组件包括:
Queries:这是EQS的核心。查询是一个包含了一系列测试的容器,这些测试是按照指定的顺序进行的。
Tests:这些是在查询中运行的实际检查。一个测试可能会查看某个特定的环境参数,例如距离玩家的距离,或者是否有遮蔽物。
Items:这些是测试的目标。例如,如果AI角色正在寻找一个地方来遮蔽,那么每一个可能的遮蔽地点都会被看作一个项目。
Contexts:这些确定了项目应该在哪里生成。例如,如果AI角色正在寻找遮蔽物,那么上下文可能会是AI角色的当前位置。基于EQS(Environmental Query System)的场景查询系统在场景管理过程中,需要开发者熟悉整个系统,耦合性较强,需要在对应的系统内进行开发,系统存在依赖于某一特定编程语言模式的问题。
基于标签的场景查询和管理是一种在游戏开发和其他3D应用中常见的技术,它允许开发者使用标签来标记和识别场景中的对象。这种方法可以让开发者更容易地查询和操作满足特定条件的一组对象,而不必单独处理每一个对象。
以下是一些基于标签的场景查询和管理的基本概念:
标签(Tag):标签是一个或一组关键字,可以附加到场景中的对象上。例如,你可以给所有的敌人对象添加一个"Enemy"的标签,给所有的弹药箱添加一个"Ammo"的标签。
查询(Query):查询是一种查找具有特定标签的对象的操作。例如,你可以查询所有带有"Enemy"标签的对象,以便找出玩家附近的所有敌人。
管理(Management):一旦你通过查询找到了一组对象,你就可以对它们进行各种操作。例如,你可以对所有带有"Enemy"标签的对象施加一个区域性的伤害效果,或者在所有带有"Ammo"标签的对象附近生成一个提示图标。
基于标签的场景查询和管理的优点在于,它们可以让开发者快速、灵活地处理场景中的对象。通过合理使用标签,开发者可以轻松地创建复杂的游戏逻辑,而无需写大量的硬编码。但是该技术无法支持复杂逻辑的场景查询,需要进一步地改进。基于上述现有技术存在的问题,本发明提供一种基于结构化查询语言的三维场景管理方法及装置,借鉴数据库的SQL语言模式,将三维场景内容划分为增、删、改、查,使用统一的结构化查询语言,作为三维场景和外部模块交互的媒介层,进行三维场景数据的管理和更新。本发明的详细实现过程见下列实施例。
实施例1:请参见图1,图1为本发明实施例1中一种基于结构化查询语言的三维场景管理方法流程示意图,本发明提供的所述方法包括:
S1:获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表。
其中,本实施例中涉及的结构化语言均为SQL语言,因此,调用方输入的结构化语句也是SQL语句。本实施例对SQL语句进行词素分析时,是将SQL语句被分解成一系列的“词素”(tokens)。词素是语言中具有独立含义的最小单位,例如关键字(如SELECT, FROM,WHERE等)、标识符(查询对象、类别)、运算符(如=, >, <等)和字面量(如字符串或数字值)。
S2:依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树。
其中,预设语法规则是SQL语言的语法规则,该规则可以对SQL语句中的词素进行合法性校验,判断各个词素是否合法。
S3:对所述语法树进行语义分析,获得语义分析结果。
其中,语义分析主要是检查语句的语义是否符合SQL语义规范,以确保它在当前的数据库上下文中是有意义的。例如,检查对象是否存在,数据类型是否正确等。
S4:依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表。
S5:读取所述暂存对象列表中的场景对象,并按照语法树的方式组装查询结果并将所述查询结果返回至调用方。
其中,在返回查询结果时,可以采用JSON格式返回查询结果。具体的,当结构化查询语句为数据查询语句,则返回查询结果,如果是数据增加、删除、修改语句,则返回相应的处理结果。
进一步地,在一个实施例中,本发明步骤S1中的获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表,包括以下过程:
获取调用方按照结构化查询语言编写的结构化查询语句,并对所述结构化查询语句进行词素分解,获得三维场景中具有词素序列的词素列表。所述结构化查询语句包括数据查询语句、数据增加语句、数据删除语句和数据修改语句;所述词素包含关键字、标识符、运算符和字面量。
其中,词素分析可以采用词法分析器,词法分析器按照SQL语言的词法规则扫描识别结构化查询语句中的各类单词,并产生相应单词的属性字,得到结构化查询语句的词素列表。
进一步地,在一个实施例中,本发明步骤S2中依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树,包括以下过程:
依据结构化语言的预设语法规则,检测所述词素列表中各个词素是否合法,若词素列表中的词素均合法,则按照词素列表的词素序列的结构,构建用以表示结构化查询语句结构的语法树;
若词素列表中存在不合法的词素,则返回语法树构建失败到调用方。
其中,对词素列表中的词素进行合法性校验采用了语法分析技术。语法分析是输入一串词法单元,验证这些词法单元组成句子的语法是否正确,并输出语法分析树。本发明在对词素列表进行语法分析时,采用了SQL语言模型来对输入的结构化查询语句进行语法分析,校验每个词素的合法性,能够让使用者(调用方)无需关心语法分析的具体实现细节。
进一步地,在一个实施例中,本发明步骤S3中对所述语法树进行语义分析,获得语义分析结果,包括以下过程:
检测所述语法树中是否存在场景对象,若不存在场景对象,则返回语义异常至调用方;
若存在场景对象,则检测所述语法树中场景对象的参数进行有效性检测,判断参数的数据类型是否正确,如果参数的数据类型不正确,则返回语义分析异常至调用方;
如果参数的数据类型正确,则所述语法树不存在语义问题,输出语义分析结果。
其中,语法树是一种用来表示自然语言句子的语法结构的树形结构。语法树上的每个节点都对应句子中的一个成分,每个节点的父节点和子节点之间的关系代表了句子成分之间的语法关系。通过语法树可以更好的从语法复杂的语言中表达出很多细节的语法结果表达式,能够支持复杂的SQL语言解析,有效的支持了复杂的业务请求。
进一步地,在一个实施例中,本发明步骤S4中依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表,包括以下过程:
基于语义分析结果,从所述三维场景的根节点开始,对三维场景中的场景对象进行遍历,并在遍历过程中,按照语法树的语法规则判断遍历的场景对象是否符合结构化查询语句中的场景对象类型;若符合结构化查询语句中的场景对象类型,则将遍历的场景对象存入暂存对象列表;若不符合结构化查询语句中的场景对象类型,遍历下一节点的场景对象;
当三维场景中所有场景对象的遍历完成或触发语法树的退出节点时,输出暂存对象列表。
其中,通过语法树的语法规则来对三维场景的场景对象进行遍历,能够快速筛选调用方所需要的场景对象,并进一步将筛选出的场景对象组装为查询结果返回给调用方。
本发明先对输入的结构化查询语句进行词素分析和语法分析,并根据分析结果,将结构化查询语句抽象为对应的语法树,并对语法树进行语义分析,通过语法树的语法规则在三维场景中快速筛选出结构化查询语句所需要的场景对象,可以有效检测出结构化查询语句的语义问题,能够适用调用方复杂的结构化查询语言解析,有效的支持复杂的业务请求。本发明通过使用统一的结构化查询语言来作为三维场景和外部模块交互的媒介层,可以通过极少量的开发与不同平台数据和不同开发环境的终端进行数据对接,进行三维场景数据的管理和更新,能够实现对传统三维场景管理软件的解耦。
实施例2:参照图2所示,本实施例提供一种基于结构化查询语言的三维场景管理装置,包括:
第一分析模块,用于获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表;
第二分析模块,用于依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树;
第三分析模块,用于对所述语法树进行语义分析,获得语义分析结果;
对象筛选模块,用于依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表;
数据返回模块,用于读取所述暂存对象列表中的场景对象,并按照语法树的方式组装查询结果并将所述查询结果返回至调用方。
进一步地,在实际应用过程中,可以将本实施例装置中的第一分析模块、第二分析模块和第三分析模块整合为解析器,用以实现结构化查询语句的词素分析、语法分析和语义分析。将对象筛选模块设计为执行器,用以读取解析器返回结果进行三维场景的事件处理。通过遍历场景中所有指定类型对象进行SQL语句的执行,并按照输入的SQL语句(即结构化查询语句)内容尝试对三维场景对象进行管理,如数据的增删改查等操作。将数据返回模块设计为返回器,用以将执行器执行结果返回给调用方,如果为查询事件,则返回查询结果,如果是增、删、改事件,则返回对应事件的处理结果。还可以将解析器、执行器和返回器进一步整合为三维场景管理平台,与不同平台数据和不同开发环境的终端进行数据对接,进行三维场景数据的管理和更新。
本实施例中,按照上述本实施例整合设计的三维场景管理平台,以战场仿真的三维场景管理为例对本发明的技术原理进行详细阐述。对于某种武器系统而言,存在着攻击半径,要确定武器装备与能攻击到实体对象的对应关系,就需要开发人员通过编码方式获取到三维场景中所有可交互对象,以及其坐标、类型等各类型参数,再通过编程的方式遍历所有对象,逐一判定是否满足可攻击、在攻击半径内等条件,最后将结果返回。在这个过程中,面对复杂需求,比如查询不同类型攻击对象、不同攻击半径、不同判定规则等,都需要开发者编写对应的代码逻辑实现,且要求开发者足够了解所有对象的相关参数,否则无法完成代码逻辑的开发,三维场景管理技术的耦合性较强。
以上述场景为例,使用本发明描述方式进行三维场景管理的流程具体包括:
开发者只需使用SQL语言编写如下的查询语句作为输入:
SELECT Object.ID,Object.Name,Distance(Object.Position-Weapon.Position) As Distance Where Distance <5000 And Object.Tag.Has(’Moveable’);
即可查询到所有三维场景中距离指定武器5000米内,具备移动属性的所有对象。
具体的,三维场景管理平台的工作逻辑如下各个阶段所示:
1.词法分析:在本阶段,对输入的语言进行词素分析,得到一下词素列表:
SELECT、Object.ID、Object.Name、Distance、Object.Position、Weapon.Position、AS、Distance、WHERE、Distance、<、5000、AND、Object.Tag、Has、Moveable。
2.语法分析:在这个阶段,解析器会依据预定义的语法规则检测各个词素是否合法已经将其重构为语法树。
3.语义分析:在本阶段,解析器会检查语法树是否存在问题,例如检查对应方法是否存在,对应对象是否存在等。对于上述语法树,会检查Object.ID、Object.Name、Object.Position、Weapon.Position和Object.Tag是否是有效的变量值,Distance是否是一个接受两个参数的函数,且这两个参数的数据类型可以进行减法运算,Distance是否是一个接受两个参数的函数,且这两个参数的数据类型可以进行减法运算。Distance < 5000中的Distance是否是一个数值类型的列名或别名,且5000是否是一个数值。
4.执行器:语法树经过语义分析确认无误之后,执行器将从场景的根节点开始遍历所有场景对象,注意匹配语法树的语法规则,直到全部遍历完成或触发语法树的退出节点。对于以上语法树,将会遍历所有对象,并逐一计算判断对象是否符合WHERE_CLAUSE的规则内容,满足的项存入暂存对象列表中。
5.返回器:返回器将读取暂存列表,并按照语法树的方式组装返回内容,以Json格式返回查询结果。
基于上述的三维管理平台,本发明可以通过极少量的开发与不同平台数据和不同开发环境的终端进行数据对接,进行三维场景数据的管理和更新,降低了三维管理技术的耦合性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种基于结构化查询语言的三维场景管理方法,其特征在于,包括:
获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表;
依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树;
对所述语法树进行语义分析,获得语义分析结果;
依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表;
读取所述暂存对象列表中的场景对象,并按照语法树的方式组装查询结果并将所述查询结果返回至调用方。
2.根据权利要求1所述的基于结构化查询语言的三维场景管理方法,其特征在于,所述获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表,包括:
获取调用方按照结构化查询语言编写的结构化查询语句,并对所述结构化查询语句进行词素分解,获得三维场景中具有词素序列的词素列表;所述结构化查询语句包括数据查询语句、数据增加语句、数据删除语句和数据修改语句;所述词素包含关键字、标识符、运算符和字面量。
3.根据权利要求1所述的基于结构化查询语言的三维场景管理方法,其特征在于,所述依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树,包括:
依据结构化语言的预设语法规则,检测所述词素列表中各个词素是否合法,若词素列表中的词素均合法,则按照词素列表的词素序列的结构,构建用以表示结构化查询语句结构的语法树;
若词素列表中存在不合法的词素,则返回语法树构建失败到调用方。
4.根据权利要求1所述的基于结构化查询语言的三维场景管理方法,其特征在于,所述对所述语法树进行语义分析,获得语义分析结果,包括:
检测所述语法树中是否存在场景对象,若不存在场景对象,则返回语义异常至调用方;
若存在场景对象,则检测所述语法树中场景对象的参数进行有效性检测,判断参数的数据类型是否正确,如果参数的数据类型不正确,则返回语义分析异常至调用方;
如果参数的数据类型正确,则所述语法树不存在语义问题,输出语义分析结果。
5.根据权利要求1所述的基于结构化查询语言的三维场景管理方法,其特征在于,所述依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表,包括:
基于语义分析结果,从所述三维场景的根节点开始,对三维场景中的场景对象进行遍历,并在遍历过程中,按照语法树的语法规则判断遍历的场景对象是否符合结构化查询语句中的场景对象类型;若符合结构化查询语句中的场景对象类型,则将遍历的场景对象存入暂存对象列表;若不符合结构化查询语句中的场景对象类型,遍历下一节点的场景对象;
当三维场景中所有场景对象的遍历完成或触发语法树的退出节点时,输出暂存对象列表。
6.一种基于结构化查询语言的三维场景管理装置,其特征在于,包括:
第一分析模块,用于获取调用方输入的结构化查询语句并进行词素分析,获得三维场景的词素列表;
第二分析模块,用于依据预设语法规则对所述词素列表中的词素进行合法性校验,并根据合法性校验结果构建语法树;
第三分析模块,用于对所述语法树进行语义分析,获得语义分析结果;
对象筛选模块,用于依据所述语义分析结果,从所述三维场景的根节点开始遍历场景对象,并依据所述语法树对遍历的场景对象进行匹配筛选,将筛选出的场景对象存入暂存对象列表;
数据返回模块,用于读取所述暂存对象列表中的场景对象,并按照语法树的方式组装查询结果并将所述查询结果返回至调用方。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311652515.5A CN117370377B (zh) | 2023-12-05 | 2023-12-05 | 一种基于结构化查询语言的三维场景管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311652515.5A CN117370377B (zh) | 2023-12-05 | 2023-12-05 | 一种基于结构化查询语言的三维场景管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117370377A CN117370377A (zh) | 2024-01-09 |
CN117370377B true CN117370377B (zh) | 2024-02-06 |
Family
ID=89398828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311652515.5A Active CN117370377B (zh) | 2023-12-05 | 2023-12-05 | 一种基于结构化查询语言的三维场景管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370377B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100200A (zh) * | 2020-09-27 | 2020-12-18 | 四川长虹电器股份有限公司 | 一种基于维度模型自动化生成sql语句的方法 |
CN113468204A (zh) * | 2021-06-28 | 2021-10-01 | 深信服科技股份有限公司 | 一种数据查询方法、装置、设备、介质 |
CN114676678A (zh) * | 2022-04-08 | 2022-06-28 | 北京百度网讯科技有限公司 | 结构化查询语言数据的解析方法、装置和电子设备 |
CN115687399A (zh) * | 2022-11-22 | 2023-02-03 | 北京天融信网络安全技术有限公司 | 一种sql语句的语法解析方法及装置 |
CN115687397A (zh) * | 2022-01-19 | 2023-02-03 | 支付宝(杭州)信息技术有限公司 | 自然语言的查询处理方法及装置 |
CN116521921A (zh) * | 2023-05-16 | 2023-08-01 | 三峡科技有限责任公司 | 一种三维可视化场景下数据模型的配置及查询方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10289727B2 (en) * | 2015-09-17 | 2019-05-14 | International Business Machines Corporation | Incorporation of semantic attributes within social media |
-
2023
- 2023-12-05 CN CN202311652515.5A patent/CN117370377B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100200A (zh) * | 2020-09-27 | 2020-12-18 | 四川长虹电器股份有限公司 | 一种基于维度模型自动化生成sql语句的方法 |
CN113468204A (zh) * | 2021-06-28 | 2021-10-01 | 深信服科技股份有限公司 | 一种数据查询方法、装置、设备、介质 |
CN115687397A (zh) * | 2022-01-19 | 2023-02-03 | 支付宝(杭州)信息技术有限公司 | 自然语言的查询处理方法及装置 |
CN114676678A (zh) * | 2022-04-08 | 2022-06-28 | 北京百度网讯科技有限公司 | 结构化查询语言数据的解析方法、装置和电子设备 |
CN115687399A (zh) * | 2022-11-22 | 2023-02-03 | 北京天融信网络安全技术有限公司 | 一种sql语句的语法解析方法及装置 |
CN116521921A (zh) * | 2023-05-16 | 2023-08-01 | 三峡科技有限责任公司 | 一种三维可视化场景下数据模型的配置及查询方法 |
Non-Patent Citations (2)
Title |
---|
Ranking desired tuples by database exploration;Xuedi Qin 等;《2021 IEEE 37th international conference on data engineering》;第1-2页 * |
大数据环境下的文旅多维数据分析系统设计与开发;陈永海;《电子测试》(第4期);第62-64页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117370377A (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2605077C2 (ru) | Способ и система для хранения и поиска информации, извлекаемой из текстовых документов | |
US8566789B2 (en) | Semantic-based query techniques for source code | |
Bodin et al. | A trusted mechanised JavaScript specification | |
US8875110B2 (en) | Code inspection executing system for performing a code inspection of ABAP source codes | |
US8949166B2 (en) | Creating and processing a data rule for data quality | |
Kiezun et al. | HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars | |
US20010037492A1 (en) | Method and apparatus for automatically extracting verification models | |
US20020100022A1 (en) | Method and apparatus for automatic verification of properties of a concurrent software system | |
Fu et al. | Model checking XML manipulating software | |
He et al. | Pyart: Python api recommendation in real-time | |
CN110581864B (zh) | 一种sql注入攻击的检测方法及装置 | |
CN112256271B (zh) | 一种基于静态分析的区块链智能合约安全检测系统 | |
JP2007026451A (ja) | Xパスクエリーの処理方法 | |
Ren et al. | Making smart contract development more secure and easier | |
JP4951416B2 (ja) | プログラム検証方法、プログラム検証装置 | |
CN108563561B (zh) | 一种程序隐性约束提取方法及系统 | |
Cano-Benito et al. | Toward the ontological modeling of smart contracts: a solidity use case | |
CN116483850A (zh) | 数据处理方法、装置、设备以及介质 | |
Coughlin et al. | Compositional reasoning for non-multicopy atomic architectures | |
Bechhofer et al. | Parsing owl dl: trees or triples? | |
CN117370377B (zh) | 一种基于结构化查询语言的三维场景管理方法及装置 | |
Kravari et al. | Towards a requirements engineering framework based on semantics | |
de Lara et al. | Formal support for QVT-Relations with coloured Petri nets | |
US10929106B1 (en) | Semantic analyzer with grammatical-number enforcement within a namespace | |
Hemerelain et al. | Semantic analysis of natural language queries for an object oriented database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |