Orginal Article

Research on Indoor Semantic Query Based on Expansion of SPARQL

  • LI Can 1 ,
  • ZHU Xinyan 1, 2, * ,
  • GUO Wei 1 ,
  • HUANG Liang 1
Expand
  • 1. State Key Laboratory of Information Engineering in Surveying, Mapping and Remote Sensing, Wuhan University, Wuhan 430079, China
  • 2. Collaborative Innovation Center of Geospatial Technology, Wuhan 430079, China
*Corresponding author: ZHU Xinyan, E-mail:

Received date: 2015-10-08

  Request revised date: 2015-11-02

  Online published: 2015-12-20

Copyright

《地球信息科学学报》编辑部 所有

Abstract

Recently, human activity focuses have expanded from outdoor to indoor space. Since building construction is becoming more and more complex, in order to better support the indoor activities, there is an urgent need for the querying services of indoor space. According to the characteristics of indoor space, this paper puts forward a method suitable for the complex indoor semantic query. An ontology model describing the indoor space and the relavant information of humans, events and spaceobjects as well as their relations is adopted to meet the demand of indoor semantic query. This paper also designs the IndoorSPARQL ontology query language which is an extension of the SPARQL syntax to support the indoor semantic query. Ontology concepts and their attributes are used as query vocabularies. In addition, query functions are designed to compute unique indoor space relations, such as “opposite relation”, “upstairs relation” and “downstairs relation”. A method is proposed in analyzing IndoorSPARQL query language to support indoor ontology query, which considers the computation of indoor spatial relations. Finally, based on the ontology model, experiments within the study area are constructed using a software named Protégé. Examples of indoor semantic query that use the IndoorSPARQL query language are provided, with the visualization of their results. The results show that the proposed query method based on IndoorSPARQL could effectively support indoor space complex semantic query. This method has presented the following advantages: (1) the ontology model provides a complete and clear expression of the space related information on humans, events and indoor space objects (e.g. the “Storey” and “Room”) as well as their inner relations, which is taken as the basis of the complex semantic query; (2) the specific primitives for indoor query, including “Adjacent”, “Opposite”, “Vertical” and “Contain”, are defined as the query functions in IndoorSPARQL to support the quantitative indoor spatial computations; (3) th query language IndoorSPARQL is designed and testified in this paper to support the proposed method of indoor semantic query.

Cite this article

LI Can , ZHU Xinyan , GUO Wei , HUANG Liang . Research on Indoor Semantic Query Based on Expansion of SPARQL[J]. Journal of Geo-information Science, 2015 , 17(12) : 1456 -1464 . DOI: 10.3724/SP.J.1047.2015.01456

1 引言

当今社会,人类80%以上的活动都在室内进 行[1],人类生活对于室内位置服务的需求日益迫 切[2]。然而,传统空间地理信息系统主要关注室外位置服务,对于室内空间的研究相对较少。随着建筑物结构愈发复杂,为更好地支持丰富的室内活动,如何提供室内外一体化的位置服务成为全息位置地图要解决的重要问题 [3-4]。室内空间模型是实现室内位置服务的先决条件和关键所在。目前,室内空间描述模型主要包括几何模型、符号模型等[5]。几何模型以坐标的形式对室内实体进行几何描述,提供丰富的室内几何数据,可作为其他室内空间模型的数据源或用于路径导航和空间分析,文献[6]将路径图模型构建方法用于室内导航和路径描述。符号模型则将室内空间对象表示为带有特定标识的符号元素[5],可用于支持基于简单语义的室内位置查询、范围查询、导航等位置服务,文献[8-9]采用室内符号模型分别实现室内的范围查询以及k邻近查询;文献[10]顾及到室内空间距离对室内范围查询进行定义,为高效距离感知的室内信息查询提供一套完整的技术。
对于复杂的室内环境,上述以几何模型及符号模型为基础的室内空间信息查询方式不足以支持复杂的室内语义查询(如查询某建筑物“204号房间对面办公室及该办公室的老师”),原因有如下2个方面:(1)几何和符号形式的室内位置坐标信息不足以表达室内空间对象丰富的语义信息,例如,室内不同类型功能区域的属性,以及相关人、事、物与室内空间对象的关系等;(2)一些室内空间特有且被广泛使用的空间关系表达,如“对面”、“楼上-楼下”等缺乏相应关系描述及动态计算的支持。
相对于几何模型以及符号模型,面向全息位置地图对室内空间进行语义建模,可对不同类型功能区域的属性及其空间或非空间关系进行描述,为室内复杂语义查询提供基础。这种建模方式通常与本体论相联系[6]。例如,文献[9]提出室内本体模型服务于室内个性化导航,文献[12]则描述室内空间领域本体层不同方面的特性。然而当前针对于标准OWL(Ontology Web Langudage)的本体查询语言的研究还未开展,较多研究集中于对资源描述框架(RDF)的标准查询语言——SPARQL的研究[13],用于查询访问任何可映射到RDF模型的数据资源。而GeoSPARQL则在SPARQL语法的基础上进行扩展,包括增加几何体的表示以及几何查询函数,从而提供地理空间信息的表示与查询。目前GeoSPARQL语法提供的空间查询函数对于实例 空间关系的表达局限于基本拓扑关系(如“相交”、“包含”、“覆盖”等),对室内特有的且广泛应用的空间关系(如“对面”、“楼上”、“楼下”等)无法表达。
针对当前室内空间信息查询方法存在的问题,本文首先在本体技术对室内空间相关的人、事、物信息及其关系进行本体建模的基础上[12],扩展了SPARQL基本查询语法,设计针对于室内本体查询的查询语言IndoorSPARQL,以本体类及其属性作为查询原语,并设计查询函数实现室内特有空间关系的计算。最后,设计相应的语言解析工具,实现顾及空间计算的室内复杂语义查询。

2 IndoorSPARQL室内本体查询语言

SPARQL是W3C组织设计用于搜索RDF数据的一种查询语言[14]。本文加入室内空间对象本体概念以及室内空间特有的空间关系计算,扩展SPARQL基本语法。以室内本体模型中本体类及其数据属性、对象属性等作为查询原语,描述与建筑物相关的人、事、物信息及其关系,室内特有空间关系计算以函数的形式实现,并被定义为IndoorSPARQL本体查询语言中的查询函数,支持定量空间计算。

2.1 查询原语

本文所设计的查询语言IndoorSPARQL,针对室内本体语义查询,因此,在IndoorSPARQL查询语言中采用室内本体模型中的类及其数据属性、对象属性作为查询语句中的基本查询原语。
一个本体概念代表了能被用户和计算机共享的领域知识 [11],它能具体地表示某个领域的分类(类和属性)并存储大量的知识(实例和关系)[15]。本文选择武汉大学测绘遥感信息工程国家重点实验室为研究区,并采用文献[12]所提出的面向全息位置地图的室内空间建模方式。该文献首先根据语义认知将室内空间分层抽象为一组本体概念,如“房间”、“通道”、“出入口”等。在室内空间本体概念的基础上,设计满足实验室建筑物复杂语义查询的本体模型。该本体模型描述了与室内环境相关的人、事及建筑物空间对象的各类属性信息,并清晰地表达了本体概念之间的空间与非空间关系。该本体模型所描述的丰富的语义及空间信息可有力地支持室内复杂语义的空间查询。
在IndoorSPARQL查询语言中,室内本体模型中的本体概念类(如“Teacher(教师)”、“Student(学生)”、“ComputerRoom(机房)”),以及本体类所拥有的数据属性(如“Name(名称)”)、对象属性(如“Teach(指导)”)等均作为查询原语来代表室内空间相关人、物的信息及其之间的关系。

2.2 查询函数

为满足人类丰富的室内活动,针对室内环境特征,本文面向室内本体概念提供4种室内特有的空间关系的详细定义并实现其计算,即室内空间本体概念之间的“对面关系”、“楼上-楼下关系”、“相邻(隔壁)关系”、“包含关系”,同时,将4种室内空间关系的计算定义为语言IndoorSPARQL中的查询函数,对本体实例之间的空间关系进行动态计算以及判断。IndoorSPARQL语言中空间关系查询函数及其对应的描述如表1所示。
Tab. 1 Query function of indoor spatial relation

表1 室内空间关系查询函数

空间关系 查询函数 函数描述
对面关系 boolean Opposite(String iri1, String iri2) 判断2个本体实例是否存在对面关系
楼下关系 boolean DownStairs(String iri1,String iri2) 判断iri2代表的本体实例是否在iri1代表的本体实例的楼下
楼上关系 boolean UpStairs(String iri1,String iri2) 判断iri2代表的本体实例是否在iri1代表的本体实例的楼上
相邻关系 boolean Adjacent(String iri1, String iri2) 判断2个本体实例是否有相邻关系
包含关系 boolean Contain(String iri1,String iri2) 判断iri1代表的本体实例在空间上是否包含iri2代表的本体实例
“对面关系”表示2个本体实例的空间结构与同一水平通道相连,且位于水平通道两侧,相互之间位于直观可视范围内,主要描述房间、子空间等本体概念类之间的关系,如“205房间”在“204房间”对面等。“楼上-楼下关系”则描述了任意2个室内空间本体概念在垂直方向上的序列关系,如“101房间”在“201房间”的楼下。“相邻关系”主要描述房间、子空间、通道3种本体概念之间的关系,要求室内2个本体实例空间结构位于同一楼层,并且几何上至少有一个公共边,即日常口语中使用的“隔壁关系”,如“325房间”与“327房间”相邻,“202房间”在“204房间”的隔壁等。“包含关系”指一个本体实例空间结构在另一个本体实例的空间结构内,例如,“2楼”包含“202房间”和“204房间”、“327机房”包含“0302号机位”等。
根据对室内空间关系不同的定义应利用不同的空间关系,来实现IndoorSPARQL语言中的查询函数。在实现部分本文采用基本几何计算的方式。以对面关系为例介绍其定义及对应的计算流程。
(1)定义
以“大厅”、“走廊”等水平通道概念作为第三方参照物,即当2个功能区域的出入口属于同一个走廊或者大厅,分别位于走廊/大厅的两侧,且出入口连线与所在走廊/大厅方向呈一定角度时,说明这2个功能区域符合本文所定义的“对面”关系。
(2)约束条件
基于室内空间本体模型,2个室内空间对象“对面”关系的存在,应当基于一定的约束条件:
① 空间对象属于同一楼层;
② 对面概念只针对于空间对象具有出入口的一侧;
③ 2个空间对象“对面关系”的存在一定以第三方室内空间对象作为参照物。
满足以上约束条件的“对面关系”具有实际意义。对于第3个约束条件,本文定义“对面关系”的第三方参照物为本体模型中通道类(Passage)下的子类——水平通道类,即以“走廊”、“大厅”等作为第三方参照物来判断2个空间对象之间是否存在“对面关系”,这样的定义符合人类对室内特有建筑物结构的空间关系的认知。
(3)计算方式
根据“对面关系”的约束条件以及定义,计算房间roomID符合”对面关系”的空间对象主要过程可分为以下几个步骤:找到房间roomID所在的走廊;找到在同一走廊的所有房间;计算房间roomID所在走廊一侧的方向;计算房间roomID与该其他房间出入口的连线的方向,判断与走廊方向的夹角是否满足“对面关系”条件。算法1为实现“对面关系”计算的伪代码。
计算房间的出入口及其所在的走廊或者走廊上的房间,采用室内对象类型判断以及基本拓扑关系判断的方式,即存储在空间数据库中代表室内空间对象的几何图像满足邻接拓扑关系。计算走廊的某个出入口所在一侧的方向时,遍历代表走廊的几何图形的所有线对象,计算出入口的几何图形存在拓扑邻接关系的线对象的方向。
算法1 算法oppositeRoom(String roomID)伪代码
输入:roomID:室内空间对象在空间数据库中存储的ID
输出:List<String>:与ID为roomID的对象符合对面关系的空间对象的ID列表
room_IDs = List /*对面关系计算结果列表*/
door_IDs= found_doors(roomID) /*找到房间room_IDs的所有出
入口对象的ID列表*/
cooridor_ID=found_cooridor(roomID)/*找到房间roomID所在走
廊的ID*/
candidate_IDs = found_rooms(cooridor_ID)/*找到走廊上所有房
间作为候选结果*/
for each door_id in door_IDs do
cooridor_dir = cooridor_direction(cooridor_ID,roomID)/*计算走
廊cooridor_ID 的出入口door_id所在一侧的方向*/
for each candidate_id in candidate_IDs do
connect_dir = connectline_direction(roomID, candidate_id)/*计算
两个房间对象出入口连接线的方向*/
angle = cooridor_dir - connect_dir
ifangle < 0 then
angle = angle + 360
ifangle > 180 then
angle = 360 - angle
ifangle >= 45
ifangle <= 135 then
room_IDs.add(connect_dir)

2.3 查询语法

(1)IRI语法
IRI在本体知识中,代表本体实例的资源地址;在IndoorSPARQL查询语言中,利用关键字“PREFIX”定义IRI前缀的缩写。同时可利用关键字BASE代表根IRI,其他以此为根的IRI可写成相对形式。例如,同一个IRI在查询语言中有以下3种表达方式:
① <http://example.org/building/building1>
② BASE < http://example.org/building/>
<building1>
③ PREFIX building: <http://example.org/book/>
Building:building1
(2)查询文字语法
在本体查询中,可使用查询文字来表达或者约束本体概念所具有的数据属性。查询术语可能是字符串类型、数字类型或者布尔类型变量。
(3)查询变量语法
在查询语句中,使用字符“?”或者“$”标识查询变量,但标识字符不属于变量的一部分。
(4)三元组语法
本体模型描述了本体概念的属性及其关系,在IndoorSPARQL查询语言中,三元组语句可表达实例与对象属性、数据属性之间及本体实例之间的关系,从而对变量所代表的实例或属性等进行描述为变量赋值。三元组语句由主语、谓语、宾语3部分组成,变量可出现在主语或者宾语部分,宾语部分既可为查询文字,也可为变量。而谓语部分则代表主语与宾语之间即实例与对象属性、数据属性之间的某种关系。三元组查询语句是室内本体查询语句的主要组成部分,表达了变量之间的关系,对查询范围进行限定。
(5)Filter约束语句语法
三元组语句描述实例与其数据属性、对象属性之间的关系,但有时在进行查询时,希望对实例的属性值进行约束从而过滤变量,限制查询的结果。此外,对于需通过计算来获取的空间关系表达,同样可利用Filter语句来对实例间的关系进行约束。Filter语句的约束条件是对布尔值进行计算的逻辑表达式,表达式包括“&&”、“||”等逻辑操作符,以及计算室内空间关系的查询函数。例如,Filter Opposite(?Room_X, ?Room_Zhu).语句,采用查询函数“Opposite()”对变量”?Room_X”、“?Room_Zhu”所代表房间实例的“对面关系”进行判定与约束,从而对变量进行过滤。针对不同空间关系的定义,应当实现不同的查询函数。本文面向室内本体概念采用几何计算的方式提供一种空间关系的计算。
(6)查询形式
在IndoorSPARQL本体查询语言中,标准查询由Select、From、Where构成。Select关键字代表标准查询,返回与查询变量绑定的值;From是一个可选的子句,提供要查询的数据集地址;Where关键字代表查询逻辑中的约束集,由一组三元组语句以及Filter约束语句构成。

3 IndoorSPARQL查询语言解析

IndoorSPARQL自定义本体查询语言的解析流程如图1所示。
Fig. 1 The process of parsing IndoorSPARQL language

图1 IndoorSPARQL查询语言解析流程

解析流程可分为以下几个步骤:(1)对查询语句进行词法解析、语法解析;(2)生成查询表达式对应的抽象语法树;(3)遍历语法树对节点绑定处理逻辑;(4)执行节点查询逻辑处理。实现IndoorSPARQL查询语句解析流程算法的伪代码如算法2所示。
算法2 算法panMapSearch(String queryStatement)伪代码
输入:queryStatement:符合IndoorSPARQL查询语言语法的查询表达式
输出:Map<String, ArrayList<String>>: 查询结果,key值为查询变量名称,value值为查询结果实例IRI列表
lexer = SparqlLexer(queryStatement);
tokens = CommonTokenStream(lexer) /*对查询表达式进行
词法分析*/
parser = SparqlParser(tokens) /*对查询表达式进行语法分析*/
treePackage = parser.query()/*生成查询表达式对应的抽象语法树*/
walker.walk(this, treePackage) /*遍历抽象语法树,walker为ParseTreeWalker类实例*/
excuteVar = ParseExcuteVar() /*保存查询过程中间变量*/
Triples = List<Triple> /*保存查询语句中的三元组语句信息,如主语、谓语、宾语等*/
Filters = List<Filters> /*保存查询语句中的约束语句信息,如空间关系计算函数、逻辑运算符等*/
if node为prefix节点do /*node 表示某一个语法树节点*/
variable = Variable(node)
excuteVar.Vars.add(variable)/*保存查询IRI根地址,用于扩展解析相关节点的相对IRI*/
if node为select节点do
variable = Variable(node)
variable.IsSelected = true
excuteVar. Vars.add(variable)/*保存查询语句需要返回的变量信息*/
if node为三元组语句节点do
triple = Triple(node)
Triples.add(triple)/*保存三元组语句信息,为其绑定三元组
语句处理逻辑*/
if node为filter约束语句节点do
filter= Filter (node)
Filters.add(triple)/*保存Filter语句信息,为其绑定filter
语句处理逻辑*/
foreach triple in Triples do
triple. triple_excute()
foreach filter in Filters do
excuteVar.FilterVars.clear();// 进入新的filter 要清空此变量
excuteVar.FilterVars.add() /*保存约束语句中需要进行值
约束的变量*/
filter. triple_excute()
filter_loop(excuteVar.FilterVars.size()-1, filter)/*嵌套循环处理filter约束语句*/
filter_excute_update();执行完一个filter约束语句后对约束的变量FilterVars进行更新到Vars变量中
for each triple in Triples do /*回溯三元组语句,从后往前遍历*/
if triple包含FilterVars中的变量then
triple.tripleExcute()
resultSet = SelectResult()/*得到最终查询语句需要的结果*/

3.1 IndoorSPARQL语法解析器设计及语法解析

IndoorSPARQL查询语言具有形式化的语法描述,对于用户输入的查询表达式,首先需根据查询语言的语法定义判断该表达式是否符合IndoorSPARQL的语法规则,即利用词法及语法分析器进行语法解析的过程[16]
(1)生成IndoorSPARQL语法解析器
ANTLR是一种基于JAVA的语言识别工具,它提供一个框架,用户通过在其中添加领域语言对 应的文法,ANTLR将自动生成该文法对应的编译 器[17-18]。本文利用ANTLR工具生成IndoorSPARQL语言的解析器,步骤如下:
① 根据IndoorSPARQL语法规则,编写符合ANTLR文法识别器的文法描述文件,包括词法规则及语法规则;
② 利用ANTLR工具编译文法文件生成词法及语法分析器。
(2)IndoorSPARQL语法解析
利用ANTLR工具根据IndoorSPARQL文法描述生成词法、语法分析器后,需对用户输入的IndoorSPARQL查询语言进行语法解析,包括词法分析、语法分析、错误检测。
① 词法分析
根据IndoorSPARQL语言词法规则对用户输入的查询表达式逐个字符进行识别,最终输出单词序列。例如,“select”、“where” 等查询关键字,以及表示室内本体概念的变量等。
② 语法分析
利用语法分析器对词法分析阶段产生的单词符号序列进行识别,根据文法描述分析输入的查询表达式是否符合IndoorSPARQL语言的语法规则。若满足,则语法分析器会生成该查询表达式对应的抽象语法树,否则ANTLR工具的检错机制将会提供相应查询表达式的错误报告。例如,对IndoorSPARQL语言中的三元组语句进行语法分析,判断该语句是否满足“主语”、“谓语”、“宾语”的语法构成,主语部分是否为变量或宾语部分是否为查询文字等。
③ 错误检测
ANTLR工具提供错误检测机制,包括词法错误及语法错误。当词法、语法分析器发现输入的查询表达式不符合文法描述规则时,会提供相应的错误报告。

3.2 IndoorSPARQL本体查询实现

利用ANTLR工具生成IndoorSPARQL语言的语法解析器后,通过对查询表达式进行语法规则的判断生成查询对象即语法解析树。要实现对本体实例集的数据查询,需在遍历抽象语法树时,对于语法树的不同节点执行不同的处理逻辑,从而完成相应的查询逻辑功能。语法树节点处理逻辑的执行主要包括以下内容:
(1)IRI扩展:根据PREFIX关键字得到本体实例集的IRI地址,同时也是查询过程中使用的实例、属性地址的根地址,据此根地址扩展解析树相关节点中的相对IRI。
(2)获取查询形式:根据Select关键字得到查询需要返回的内容所绑定的查询变量。
(3)三元组查询:对于三元组查询语句,本文设计了三元组查询逻辑类来进行查询处理。提取语法树中三元组主语、谓语、宾语节点部分的变量或者查询文字,根据谓语所表达的主语与宾语的关系从本体实例集中检索出相应的实例结果赋予主语或者宾语。
(4)Filter语句查询:对于Filter约束语句,通过语法分析,提取解析结果,得到约束条件语句所包含的逻辑运算符或者查询函数,提取关键字进行计算或调用相应的查询函数,对变量的值进行约束,从而更新其所绑定的变量。在对filter约束语句进行解析时,采用对语句中需进行值约束的变量嵌套循环进行约束判断的算法,算法3为处理filter约束语句算法的伪代码。
算法3 算法filter_loop(int count, Filters filter)伪代码
输入:count:需要约束的变量在约束变量FilterVars数组中的位置;Filter:Filters类对象,保存filter约束语句信息,包括函数调用信息或者逻辑运算符等
输出:无
Vars = excuteVar.FilterVars.get(count)/*当前层循环需要约束的变量值数组*/
for each var in vars do
if count != 0 then
Temp = count -1
filter_loop(Temp,filter)
if count = 0 then /*到达最底层循环*/
if filter为空间关系判断函数then
result = filter_excute_exper()/*根据函数名称调用相应的空间关系判断函数*/
elsefilter 逻辑操作符运算语句then
result = filter_excute_exper()
if result=true then
更新被约束变量
else if result = false then
剔除当前变量的当前值
(5)回溯解析三元组:三元组及Filter约束语句查询处理完成后,需利用逻辑处理结果回溯解析上层三元组查询语句,即在回溯解析过程中,查询表达式均需在其下一条语句处理结果的基础上进行再一次的约束处理,最终完成整个本体实例集的查询过程。

4 室内本体查询实验

实验区域为测绘遥感信息工程国家重点实验室实验楼,基于文献[9]所设计的室内本体人、事、物关系模型,利用Protégé软件对该室内空间以及人事物信息进行实例录入构成查询本体实例集合。包括实验室部分办公室、机房等房间实例,实验室部分教师、学生等实例,以及本体关系模型中所描述的人、物等实例之间的关系。利用本文所设计的自定义本体查询语言IndoorSPARQL,实现对该建筑物的复杂语义查询。为验证实验结果的准确性,本文设计前端可视化界面供用户根据需输入查询语言,并将查询结果进行可视化。前端可视化界面采用HTML5+CSS+Javascript+Ajax技术实现,查询界面主要包括3个部分:查询语言输入及本体实例结果列表显示面板;二维地图显示面板;本体模型查询面板。用户根据查询目的输入基于IndoorSPARQL语言语法的查询语言,查询结果分为2个部分:查询本体实例结果(如“学生”、“老师”等),在界面左侧面板列表显示;室内空间对象结果在二维地图中进行高亮显示。
以下为2个查询实例,分别查询“206房间对面办公室及该办公室的老师”以及“学生韩会鹏所在机房相邻(隔壁)的机房以及该机房的学生”。
实例1:查询206房间对面的办公室及该办公室的老师。
PREFIX IndoorOWL:
<http://www.semanticweb.org/dell327/ontologies/2014/10/Ontology1415628375607.owl#>
Select ?Teacher_X ?Room_X
Where
{
?Room_206 a IndoorOWL:Office .
?Room_206 IndoorOWL:Name “206”.
?Teacher_X a IndoorOWL:Teacher .
?Teacher_X IndoorOWL:Has_Office ?Room_X .
Filter Opposite(?Room_206, ? Room_X) .
}
图2所示,查询结果包括在实验室建筑物二维地图中高亮显示的205办公室,它位于206房间的对面,以及在左侧查询面板中显示的该办公室的老师信息。该查询的可视化结果显示,以上查询语句可准确地获取与206房间具有“对面关系”的房间实例205,以及与205房间具有“所属关系”的教师实例。
Fig. 2 The results of example query 1

图2 实例1查询结果

实例2:查询学生韩会鹏所在机房相邻(隔壁)机房以及该机房的学生。
PREFIX IndoorOWL: <http://www.semanticweb. org/dell327/ontologies/2014/10/Ontology1415628375607. owl#>
Select ?Room_X ?Student_X
Where
{
?Student_han a IndoorOWL:Student .
?Student_han IndoorOWL:Name "韩会鹏" .
?Student_han IndoorOWL: Locate_ComputerRoom ?Room_han .
?Room_X a IndoorOWL:ComputerRoom .
?Room_X IndoorOWL:Has_Student ?Student_X.
FILTER (Adjacent (?Room_han,?Room_X)) .
}
实例2查询某一房间的相邻(隔壁)房间,根据上述,对于口语化表达“隔壁房间”,在IndoorSPARQL自定义查询语言中将实例间的“隔壁关系”定义为“相邻关系”,因此在上述查询语言实例中采用相应的计算函数“Adjacent”函数来实现“相邻(隔壁)房间”的查询。如图3查询结果信息所示,韩会鹏同学所在机房为325机房,相邻(隔壁)机房为327机房和323机房,高亮显示在建筑物二维模型中,以及相邻(隔壁)机房的杨龙龙等学生信息显示在界面左侧的面板中。该查询的可视化结果显示,以上查询语句可准确地获取与某学生具有“所在”关系的机房实例,以及与该机房具有“相邻(隔壁)关系”的其他机房实例。
Fig. 3 The results of example query 2

图3 实例2查询结果

5 结语

随着室内建筑结构愈发复杂,人类对室内位置服务的需求愈发迫切。本文针对室内空间特点,初步探索了室内空间语义查询的方法,并基于全息位置地图室内空间本体模型,提出了一种实现室内活动中常用空间关系查询的技术途径。扩展SPARQL语言语法,实现室内活动中常用空间关系的初步计算,设计了室内本体查询语言IndoorSPARQL,并实现自定义语言解析器,支持室内位置语义查询服务。本文目前的工作仅是初步探索,很多问题还需后续继续深入:(1)本文所采用的室内空间描述的概念体系仍然不够完善,需进一步深化研究;(2)在IndoorSPARQL自定义查询语言中,室内复杂空间关系的计算仍需深入与细化。

The authors have declared that no competing interests exist.

[1]
张兰,王光霞,袁田,等.室内地图研究初探[J].测绘与空间地理信息,2013,36(9):43-47.室内定位技术、导航技术和可视化技术的发展与应用,使室内导航成为可能,并且越来越精确。位置服务的领域也从传统的室外空间拓展到了室内空间,其中,室内地图是室内位置服务的重要基础。本文在分析总结目前室内地图产品及其研究现状的基础 上,提出室内空间用户认知规律研究、室内地图表示方法研究、室内地图标准化研究是今后室内地图设计研究的重点问题。

DOI

[2]
朱庆,熊庆,赵君峤.室内位置信息模型与智能位置服务[J].测绘地理信息,2014,39(5):1-7.商业中心、交通枢纽、医院、停车场等复杂室内及地下空间的安全管 理与应急响应对室内外无缝导航与位置服务的需求日益迫切,提出了一种室内位置信息模型,扩展了OGC标准CityGML和IndoorGML中的位置信息 描述,提供了描述室内相对位置和室内绝对位置的本体,介绍了一种针对三维建筑物模型的室内空间自动提取方法,为智能位置服务奠定了重要基础.

[3]
周成虎,朱欣焰,王蒙,等.全息位置地图研究[J].地理科学进展,2011,30(11):1331-1335.位置信息服务是当代社会发展的一个重要方向,以位置为基础,将相关信息关联和分析,为潜在用户提供知识层次关于表达对象的全方位的信息,实现地理位置概念应用的飞跃。本文在地理位置与位置地图概念分析的基础上,进一步论述了语义位置、位置感知与位置计算的内涵,提出了全息位置地图的新概念,探讨了全息位置地图的主要研究内容和发展方向。

DOI

[4]
朱欣焰,周成虎,呙维,等.全息位置地图概念内涵及其关键技术初探[J].武汉大学学报:信息科学版,2015,40(3):285-295.针对在泛在信息与大数据时代下,传统数字地图存在的局限性与面临的挑战,本文在原有概念基础上,拓展了全息位置地图概念内涵,即在泛在网环境下,以位置为纽带动态关联事物或事件的多时态(multitemporal)、多主题(multi-thematic)、多层次(multi-hierarchical)、多粒度(multi-granular)的信息,提供个性化的位置及与位置相关的智能服务平台;基于上述内涵,本文阐述了全息位置地图的重要组成与特征,并就泛在信息获取、语义位置关联和多维动态场景构建与表达等3个方面的关键技术进行了探讨。

DOI

[5]
林雕,宋国民,贾奋励.面向位置服务的室内空间模型研究进展[J].导航定位学报,2014(4):17-21,26.室内位置服务是近年来国际位置 服务领域的一个研究热点,室内空间模型则是实现室内位置服务的先决条件和关键所在。在对国内外大量文献进行分析研究的基础上,系统综述了面向位置服务的室 内空间模型研究进展。首先,较之室外空间,从空间尺度、组成结构、空间约束3个角度分析了室内空间的独特性,并介绍了位置查询、导航、范围查询、最邻近查 询和可视化5种主要的室内位置服务。然后,从建模原理、建模复杂度、适用性等方面对典型的室内空间模型如边界模型、格网模型、集合模型、图模型、语义模型 进行了评述;最后,讨论了现有模型存在的主要问题,并对未来研究方向进行了展望。

DOI

[6]
Rabiee H R, Kashya P R, Safavian S R.Multiresolution segmentation-based image coding with hierarchical data structures[C]. Proceedings of 1996 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP-96), 1996:1870-1873.

[7]
Li D, Lee D L.A lattice-based semantic location model for indoor navigation[C]. The 9th International Conference on Mobile Data Management, 2008:17-24.

[8]
Yang B, Lu H, Jensen C J.Scalable continuous range monitoring of moving objects in symbolic indoor space[C]. Proceedings of the 18th ACM conference on Information and knowledge management, 2009:671-680.

[9]
Yang B, Lu H, Jensen C S.Probabilistic threshold k nearest neighbor queries over moving objects in symbolic indoor space[C]. Proceedings of the 13th International Conference on Extending Database Technology, 2010:335-346.

[10]
Xie X, Lu H.Efficient distance-aware query evaluation on indoor moving objects[C]. 29th IEEE International Conference on Data Engineering, 2013:434-445.

[11]
Tsetsos V, Anagnostopoulos C, Kikairas P, et al.Semantically enriched navigation for indoor environments[J]. International Journal of Web and Grid Services, 2006,2(4):453-478.Location-based mobile services have been in use, and studied, for a long time. With the proliferation of wireless networking technologies, users are mostly interested in advanced services that render the surrounding environment (i.e., the building) highly intelligent and significantly facilitate their activities. In this paper our focus is on indoor navigation, one of the most important location services. Existing approaches for indoor navigation are driven by geometric information and neglect important aspects, such as the semantics of space and user capabilities and context. The derived applications are not intelligent enough to catalytically contribute to the pervasive computing vision. In this paper, a novel navigation mechanism is introduced. Such navigation scheme is enriched with user profiles and the adoption of an ontological framework. These enhancements introduce a series of technical challenges that are extensively discussed throughout the paper.

DOI

[12]
朱欣焰,杨龙龙,呙维.面向全息位置地图的室内空间本体建模[J].地理信息世界,2015,22(2):1-7.全息位置地图是泛在网环境下以 位置为核心实现多维时空动态信息关联,提供泛在空间信息智能服务的新型地图。其中,多维动态场景建模是全息位置地图创建位置本体,汇聚、关联、分析、传递 和表达与位置相关的泛在信息的过程,同时也是全系位置地图基础数据建模的基础。本文面向全息位置地图室内多维动态场景建模需求,在室内空间语义划分的基础 上,定义了室内空间语义概念、概念属性以及概念之间的关系集合,在此基础上提出面向全息位置地图的室内空间本体建模方法,并实现了一种室内空间本体建模工 具。本文以武汉大学测绘遥感信息工程国家重点实验室为实验场,利用室内空间本体建模工具进行实验,实验结果能够有效支持室内泛在信息的语义查询,验证了本 文方法的可行性。

[13]
倪欢,许卓明.OWL本体查询技术研究[J].河海大学学报(自然科学版),2006,34(3):333-336.通过基于本体工程API的本体 查询技术的研究,给出了一种基于Jena的、支持OWL Lite本体查询的原型工具OWL-QS的设计与实现技术.该技术给出了本体解析、本体信息可视化、本体元素(类、属性和个体)查询等功能的处理流程和实 现方法.应用研究表明:OWL-QS实现的功能是有效的;基于当前开源本体API(如Jena)实现OWL本体查询是可行的.

DOI

[14]
谢桂芳. SPARQL—— 一种新型的RDF查询语言[J].湘南学院学报,2009,30(2):80-84.SPARQL是W3C组织推出 的用于搜索RDF数据的一种查询语言.本文首先简单介绍了RDF的有关概念,然后详细阐述了SPARQL的基本语法、图模式、查询类型、查询结果提炼和 XML格式的查询结果,并构建了一个以SPARQL为查询语言的RDF检索模型,最后简要探讨了该模型的检索过程.

DOI

[15]
张宗仁,杨天奇.基于自然语言理解的本体语义信息检索[D].广州:暨南大学,2011.

[16]
陈彦. SPARQL查询引擎设计[J].电脑知识与技术(学术交流),2007,10(20):947-949.论文以通用的不依赖于具体RDF平台的SPARQL查询引擎的设计与实现作为研究对象.并从SPARQL语法解析器、引擎系统的优化设计等方面进行了深入的探讨,提出了合理的设计策略和实现方法.

DOI

[17]
马竹根. 利用ANTLR生成C++描述的分析程序[J].福建电脑,2006(1):170-171.ANTLR是一种基于LL(k)文法的语法分析程序生成工具,其生成的分析器默认使用Java描述,而不是更高效的C++。本文介绍了在Windows平台下,借助Visua1 C++6.0组织工程,使用ANTLR生成C++描述的分析器的方法,并给出了一个实例。最后,本文对ANTLR本身做出了一点改进。

DOI

[18]
肖丽,校景中. 基于ANTLR的领域语言构造[J].计算机科学,2011,38(7A):91-92.在计算机编程所应用的很多领域 中,涉及到专用的领域语言,使用传统方法构造领域语言带来很多困难。ANTLR是一种基于JAVA的语言识别工具,它提供一个框架,用户通过在其中添加领 域语言对应的文法,ANTLR将自动生成该文法对应的编译器。事实证明ANTLR在构造领域语言方面非常有效而且非常灵活。

Outlines

/