CN112434118B - 索引结构及创建方法、***、查询方法及*** - Google Patents

索引结构及创建方法、***、查询方法及*** Download PDF

Info

Publication number
CN112434118B
CN112434118B CN202011254329.2A CN202011254329A CN112434118B CN 112434118 B CN112434118 B CN 112434118B CN 202011254329 A CN202011254329 A CN 202011254329A CN 112434118 B CN112434118 B CN 112434118B
Authority
CN
China
Prior art keywords
layer
index structure
group
query
nodes
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
Application number
CN202011254329.2A
Other languages
English (en)
Other versions
CN112434118A (zh
Inventor
李艳红
张望
冯禹鹤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South Central Minzu University
Original Assignee
South Central University for Nationalities
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South Central University for Nationalities filed Critical South Central University for Nationalities
Priority to CN202011254329.2A priority Critical patent/CN112434118B/zh
Publication of CN112434118A publication Critical patent/CN112434118A/zh
Application granted granted Critical
Publication of CN112434118B publication Critical patent/CN112434118B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种索引结构及创建方法、***、查询方法及***,涉及空间关键字查询领域。本发明提供的索引结构包括:第一层,用于将静态对象存储在与叶子结点对应的基本单元中;第二层,用于以第一层的叶子结点为入口,在第二层创建的结点***移动对象。查询方法包括步骤:查询用户期望的移动对象时,若索引结构第一层的叶子结点Ri和与精炼查询结果区域不相交,则在索引结构的第一层和/或第二层削减Ri及其子结点的搜索空间;计算索引结构第二层的结点一段时间内在其对应的基本单元内出现用户期望对象的概率,根据正态分布原理削减不必要的结点和组的搜索空间。本发明能解决移动对象的Top‑k WSKM查询问题。

Description

索引结构及创建方法、***、查询方法及***
技术领域
本发明涉及空间关键字查询领域,具体是涉及一种索引结构及创建方法、***、查询方法及***。
背景技术
随着移动设备的广泛使用和LBS(Location Based Services,基于位置的服务)的普及,产生了大量具有空间文本特征的移动对象。Top-k(找到一个集合中的前k名,k为正整数)SK(Spatial Keyword,空间关键字)查询作为LBS中最重要的查询形式之一,在学术界和业界中得到了广泛的研究。Top-k SK查询以空间坐标、一组关键字和k值作为查询需求,并返回k个与查询需求最匹配的对象。
在某些情况下,当用户启动Top-k SK查询后,一些用户想要的对象(缺失对象)可能不会出现在查询结果集中。用户可能会想为什么这些对象消失了,是否有其他未知的相关对象消失了,甚至对整个查询结果产生疑问。因此,有必要解释这些预期对象缺失的原因,并提供包含所有缺失对象和原始查询结果对象的精炼查询。
例如:某一天的天气很热,约翰在他的公司里口渴了,想要一杯奶茶。然后,他开始查询他的公司附近排名前三的奶茶店。在收到查询结果后,他意外地发现一个不错的移动奶茶亭和一个他常去的奶茶店都不在结果集中。约翰想知道为什么他想要查询的对象缺失了,以及如何获得一个精炼的查询关键词,以便所有缺失的商店和其他可能更好的选项出现在精炼的查询结果集中。
上面例子中约翰的问题叫做“Why-not”(为什么不)问题。与操作识别、本体论和数据库修改等其他回答“Why-not”问题的方法相比,查询优化方法可以通过调整原始查询需求为用户检索所有缺失的对象。Chen等人通过调整空间相关性和文本相似性之间的权重来回答空间关键字Top-k查询中“Why-not”的问题。后来,赵等人、Wang等人和Zheng等人分别处理了地理社交空间关键字查询、SPARQL查询和组查询中的“Why-not”问题。
然而,现有的研究主要集中在针对静态对象的Top-k SK查询中的“Why-not”问题。
移动对象的Top-k空间关键字查询根据综合考虑查询和移动对象之间的空间距离和文本相似性的排序函数返回移动的或静态的Top-k对象。当用户使用一些不合理的查询要求发起移动对象的Top-kSK(也可称为Top-k SKM)查询时,一些用户希望的移动对象(称为缺失的对象)可能不会出现在查询结果集中,用户会想为什么它们没有出现,这被称为针对移动对象的SK查询中的“Why-not”问题,也称为Top-k WSKM查询。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
存在以下四个因素,使得在移动对象Top-k空间关键字查询上回答“Why-not”(Top-k WSKM)问题更加困难:
首先,不同的移动对象有不同的移动模式,例如移动方向和移动速度,如何合理地定义移动对象的移动模式是一个挑战。
其次,移动对象在某一时刻出现在某一区域的概率是一个连续变量,如何建立概率密度函数来计算一个移动对象在一段时间内出现在一个区域的概率也是一个值得考虑的问题。
第三,在精炼查询处理过程中,一些原始查询结果对象和缺失对象可能会离开查询点,如何尽可能多地对搜索空间进行修剪,同时保证这些移动对象不被修剪也是值得考虑的问题。
最后,大量对象在***中移动,这意味着在执行精炼查询之前,索引中经常存在移动对象的***和删除,频繁的***和删除浪费时间,但用户需要尽快获得查询结果,这是一个矛盾。
申请人目前还没有发现针对移动对象的Top-k空间关键字查询中的“Why-not”问题(Top-k WSKM查询)的研究成果。
发明内容
本申请的目的是为了克服上述背景技术的不足,提供一种索引结构及创建方法、***、查询方法及***,能够解决移动对象的Top-k空间关键字查询中的“Why-not”问题(即Top-k WSKM查询)。
第一方面,提供一种索引结构,包括:
第一层,用于:将静态对象存储在与叶子结点对应的基本单元中;
第二层,用于:以第一层的叶子结点为入口,在第二层创建的结点***移动对象。
在上述技术方案的基础上,所述索引结构的第一层的搜索空间被划分为若干个基本单元,搜索空间中的所有静态对象都使用四叉树进行索引。
在上述技术方案的基础上,所述索引结构的第二层的结点存储移动对象的信息,包括对象标识、对象位置、对象关键词和对象在一段时间段内在该结点对应的基本单元中出现的概率。
在上述技术方案的基础上,所述索引结构的第二层的结点根据其与分组之间的距离,被分配到多个分组中,每个组存储以下信息:组标识、组位置和指向其相邻组的组指针。
在上述技术方案的基础上,所述组中任意两个对象的距离不超过组的长度,组的长度根据组位置计算。
第二方面,提供一种索引结构的创建方法,包括以下步骤:
确定作为***入口的索引结构的第一层中用于存储静态对象的叶子结点,将静态对象***该叶子结点;
根据与第一层中叶子结点不同的结点id和相同的结点位置信息,在索引结构的第二层中创建用于存储移动对象的结点,将移动对象***该结点。
第三方面,提供一种索引结构的创建***,包括:
入口确定单元,用于:确定作为***入口的索引结构的第一层中用于存储静态对象的叶子结点,将静态对象***该叶子结点;
结点创建单元,用于:根据与第一层中叶子结点不同的结点id和相同的结点位置信息,在索引结构的第二层中创建用于存储移动对象的结点,将移动对象***该结点。
第四方面,提供一种基于上述索引结构的Top-k WSKM查询方法,包括以下步骤:
查询用户期望的移动对象时,如果索引结构的第一层的叶子结点Ri与精炼查询结果区域不相交,则在索引结构的第一层和/或第二层中削减Ri及其子结点的搜索空间。
在上述技术方案的基础上,还包括以下步骤:
计算索引结构的第二层的结点在一段时间内在其对应的基本单元内出现用户期望对象的概率,根据正态分布原理削减不必要的结点和组的搜索空间。
第五方面,提供一种基于上述索引结构的Top-k WSKM查询***,包括:
第一削减单元,用于:查询用户期望的移动对象时,如果索引结构的第一层的叶子结点Ri与精炼查询结果区域不相交,则在索引结构的第一层和/或第二层中削减Ri及其子结点的搜索空间;
第二削减单元,用于:计算索引结构的第二层的结点在一段时间内在其对应的基本单元内出现用户期望对象的概率,根据正态分布原理削减不必要的结点和组的搜索空间。
与现有技术相比,本申请的优点如下:
1、本申请提出了移动对象上Top-k空间关键字查询的Why-not问题,也称为Top-kWSKM查询。据申请人所知,这个Top-k WSKM查询问题是由本申请首次提出。
2、本申请提出了一种新的索引结构(Shadow索引结构),来组织对象的文本信息、空间信息和移动模式信息。通过分析移动对象的移动模式,计算移动对象在一定时间内出现在一定区域内的概率,Shadow索引结构可以帮助用户以最快的速度捕获具有最小代价的精炼查询。
附图说明
图1是本发明实施例中的一个查询q和18个对象o1到o18分布在搜索空间的示意图。
图2是本发明实施例中移动对象从A点移动到B点的可能的轨迹示意图。
图3是本发明实施例中计算弧与直线AB围起来的移动区域面积时作的辅助线示意图。
图4是本发明实施例中弧所对应的圆周角的一半与其正弦值的关系示意图。
图5是本发明实施例中移动对象可能移动到的基本单元和不同时刻可能移动到的位置曲线的示意图。
图6是本发明实施例中采用Shadow索引结构对图1进行空间划分的结果示意图。
图7是本发明实施例中Shadow索引结构的结构示意图。
具体实施方式
注意:本申请中“移动对象上的Why-not Top-k空间关键字查询”和“移动对象的Top-k空间关键字查询中的‘Why-not’问题”表示同一含义,简称为:“Top-k WSKM查询”;而“移动对象的Top-k空间关键字查询”,简称为:“Top-k SKM查询”,两者简称只差一个“W”,这个“W”表示“Why-not”。
针对移动对象Top-k SKM查询中的“Why-not”(Top-k WSKM查询)问题,本申请实施例提出了一种名为Shadow的两层索引结构,包括:
第一层,用于:将静态对象存储在与叶子结点对应的基本单元中;
第二层,用于:以第一层的叶子结点为入口,在第二层创建的结点***移动对象。
本申请实施例还提供一种Shadow索引结构的创建方法,包括以下步骤:
确定作为***入口的Shadow索引结构的第一层中用于存储静态对象的叶子结点,将静态对象***该叶子结点;
根据与第一层中叶子结点不同的结点id和相同的结点位置信息,在Shadow索引结构的第二层中创建用于存储移动对象的结点,将移动对象***该结点。
本申请实施例还提供一种Shadow索引结构的创建***,包括:
入口确定单元,用于:确定作为***入口的Shadow索引结构的第一层中用于存储静态对象的叶子结点,将静态对象***该叶子结点;
结点创建单元,用于:根据与第一层中叶子结点不同的结点id和相同的结点位置信息,在Shadow索引结构的第二层中创建用于存储移动对象的结点,将移动对象***该结点。
作为优选的实施方式,Shadow索引结构的第一层的搜索空间被划分为若干个基本单元,搜索空间中的所有静态对象都使用四叉树进行索引。
作为优选的实施方式,Shadow索引结构的第二层的结点存储移动对象的信息,包括对象标识、对象位置、对象关键词和对象在一段时间段内在该结点对应的基本单元中出现的概率。
作为优选的实施方式,Shadow索引结构的第二层的结点根据其与分组之间的距离,被分配到多个分组中,每个组存储以下信息:组标识、组位置和指向其相邻组的组指针。组中任意两个对象的距离不超过组的长度,组的长度根据组位置计算。
本申请实施例还提供一种基于上述Shadow索引结构的Top-kWSKM查询方法,包括以下步骤:
查询用户期望的移动对象时,如果Shadow索引结构的第一层的叶子结点Ri与精炼查询结果区域不相交,则在Shadow索引结构的第一层和/或第二层中削减Ri及其子结点的搜索空间;
计算Shadow索引结构的第二层的结点在一段时间内在其对应的基本单元内出现用户期望对象的概率,根据正态分布原理削减不必要的结点和组的搜索空间。
本申请实施例还提供一种基于上述Shadow索引结构的Top-kWSKM查询***,包括:
第一削减单元,用于:查询用户期望的移动对象时,如果Shadow索引结构的第一层的叶子结点Ri与精炼查询结果区域不相交,则在Shadow索引结构的第一层和/或第二层中削减Ri及其子结点的搜索空间;
第二削减单元,用于:计算Shadow索引结构的第二层的结点在一段时间内在其对应的基本单元内出现用户期望对象的概率,根据正态分布原理削减不必要的结点和组的搜索空间。
本申请首先定义移动对象的移动模式。假定一个移动对象在给定时间出现在某一区域的某一点上的概率密度,就可以分别计算移动对象在某一时间点和一段时间内出现在该区域的概率。本申请构造了移动对象上Top-k空间关键字查询的Why-not问题(Top-kWSKM查询),并提出了一个代价模型,来度量精炼查询相对于原始查询的修改程度,从而获得修改代价最小的精炼查询。
为了有效地处理Top-k WSKM查询,本申请提出了一种基于三相框架的查询处理方法。
第一阶段是生成一些具有不同查询需求的、有希望的精练查询,并在执行任何有希望的精练查询之前过滤没有希望的精练查询。
第二阶段是基于空间削减技术、尽可能减少Shadow索引结构的第一层中无关的搜索空间,并基于概率削减技术在Shadow索引结构的第二层中尽可能快地捕获有希望的移动对象。
第三阶段是确定将向用户返回哪个有前途的精炼查询。
下面首先说明相关背景、问题和定义。
本申请给出了一些定义,并正式定义了移动对象上Top-k空间关键字查询的Why-not问题,简称为:Top-k WSKM查询。
表1总结了Top-k WSKM查询常用的符号及其含义。
表1、Top-k WSKM查询常用的符号表
下面说明移动对象上的Top-k空间关键字查询(Top-k SKM查询)。
在现有的相关工作中,空间文本对象(简称为对象)通常被定义为o=(o.loc,o.doc),其中o.loc是空间点,o.doc是一组关键字。然而在现实中,对象并不总是静止不动的,它们可能会连续移动。移动对象om通常具有一定的移动特性,例如:最大速度vmax(om)、最小速度vmin(om)和t时刻的实际速度vt(om)。这些特性称为对象om在t时刻的移动能力MAt(om),定义为(vmax(om),vmin(om),vt(om))。
请注意:在现实世界中,移动的对象通常都有它们的目的地,因此本申请假设每个移动对象都向其目的地移动,而不会改变方向或返回。
因此,给定一个空间点o.loc、一组关键字o.doc和移动能力MAt(o)),对象o∈O可以表示为o=(o.loc,o.doc,MAt(o))。
注意:当MAt(oi)为空时,对象oi是静态的。
给定一个查询点q.loc,一个关键字集q.doc,以及两个值α和k,那么,移动对象的Top-k空间关键字查询(Top-k SKM查询)q=<q.loc,q.doc,α,k>,根据一个综合考虑了查询q和对象o之间的空间距离和文本相似性的排序函数,从对象集合O中检索k个最佳对象,其中α是满足0≤α≤1的平滑参数。
本申请使用一个广泛使用的排序函数来度量查询q和对象o之间的相似性,如下所示:
Rank(q,o)=α*(1-SD(o,q))+(1-α)*ST(o,q)(1)
其中,SD(o,q)是查询q和对象o之间的归一化空间距离,ST(o,q)是查询q和对象o之间的归一化文本相似度。
其中,DE(q,o)为查询q和对象o之间的欧几里得距离,MaxDE表示对象集合O中任意两个对象之间的最大距离。
举例进行说明。参见图1所示,在搜索空间中分布一个查询q和18个对象o1到o18,查询q与各对象之间的归一化后的空间距离和文本相似信息参见图1所示,α是满足0≤α≤1的平滑参数,当用户启动Top-3 SKM查询,以α=0.5作为输入,返回对象o2、o5和o13作为查询结果,因为这些对象的排名分数高于其他对象。
下面说明移动对象Top-k空间关键字查询上的Why-not问题,简称Top-k WSKM查询。
当用户发起移动对象的空间关键字Top-k查询(Top-k SKM查询)时,q=(loc,doc,k,α),返回k个对象,以形成原始查询结果集OR。如果在查询中不正确地设置了某些查询参数,那么一个或多个用户期望的对象可能会意外地消失,这些对象称为缺失对象。本申请将缺失对象集表示为mO。
在现有的“Why-not”(为什么不)问题的研究中,O中的所有对象都被视为静态对象。本申请的模型可以直接处理这个简单的情况,直接将移动能力MAt(o)设置为空,相应的精炼查询结果集称为静态精炼查询结果集sR。
用户获得原始结果集OR={o2,o5,o13},设mO={o4,o9}。如果图1中的所有对象都是静态的,那么现有的方法可以用来向用户返回一个精炼查询q=(loc,doc,7,0.6),以得到静态精炼查询结果集sR={o2,o5,o13,o4,o3,o8,o9}。
然而,有些对象经常在不断移动,现有方法不能直接处理Top-kSKM查询中的“Why-not”问题。为此,本申请关注移动对象Top-k空间关键字查询的Why-not问题,简称Top-kWSKM查询。
注意:在本申请中,只调整k和α,来捕获包含oR和mO的精炼查询结果集rR,其中一些是移动对象。
为了便于表达,本申请首先给出以下定义。
Definition 1.(Original Query Result Area,OA for short).
Given a Top-k SKM query q=(loc,doc,k,a)with a query result set oR,there is an object oioR,d(q,o)≤d(q,oi).Then the originalquery result area can be defined as a circular area with the query pointq.loc as the center and d(q,oi)as the radius.
定义1:原始查询结果区域(Original Query Result Area),简称OA。给定一个Top-k WSK查询q=(loc,doc,k,α),查询结果集为oR,有一个对象oioR,i为正整数,对于任意d(q,o)≤d(q,oi)。原始查询结果区域OA定义为以查询点q.loc为中心、d(q,oi)为半径的圆形区域。
Definition 2.(Actual Refined Query Result Area,AA for short)
Given a top-k SKM query q with a query result set oR and a missingobject set mO,there are a moving object om koR∪mO and a static object ojoR∪mO,moving objects omoR∪mO–{om k},we have MAX{vmin(om k)*(tt-ts)+d(q,om k),d(q,oj)}≥vmax(om)*(tt-ts)+d(q,om),where ts is the starting time of q and tt is thestarting time of the refined query of q.MAX{a,b}returns the maximum valuebetween a and b.Then the actual refined query result area can be defined as acircular area with the query point q.loc as the center and MAX{vmin(om k)*(tt-ts)+d(q,om k),d(q,oj)}as the radius.
定义2:实际精炼查询结果区域(Actual Refined Query Result Area),简称AA。
给定一个带有查询结果集oR的Top-k SKM查询q和缺失对象集mO,则存在一个移动对象om koR∪mO和一个静态对象ojoR∪mO,j为正整数,对于任意移动对象omoR∪mO–{om k},有MAX{vmin(om k)*(tt-ts)+d(q,om k),d(q,oj)}≥vmax(om)*(tt-ts)+d(q,om),其中,ts为Top-k SKM查询q的开始时间,tt为q的精炼查询的开始时间,MAX(a,b)为返回a和b之间的较大者,则实际精炼查询结果区域AA定义为以查询点q.loc为中心,MAX{vmin(om k)*(tt-ts)+d(q,om k),d(q,oj)}为半径的圆形区域。
定义3:无关区域(Irrelevant Area),简称IA。
给定AA,无关区域定义为AA之外的区域。
为了便于描述,下面采用不同的符号表示原始查询和精炼查询:原始查询q=(loc,doc,k0,α),k0是原始查询q的k值,α是原始查询q的α值,精炼查询q’=(loc,doc,k’,α’),k’是精炼查询q’的k值,α’是精炼查询q’的α值。
为了度量精炼查询q’=(loc,doc,k’,α’)相对于原始查询q=(loc,doc,k0,α)的修改程度cost(q,q’),定义以下修改成本模型:
其中,β∈(0,1)是一个权值,用来表示用户对调整k还是α的偏好,Δαmax是α最大可能的调整值,Δk是k最大可能的调整值。
Definition 4.(Why-Not questions on Top-k Spatial Keyword Query overMoving Objects,Top-k WSKM query for short)
Given an original Top-k SKM query q=(loc,doc,ko,α),an original queryresult set oR and a missing object set mO,the Top-k WSKM query returns arefined query q’=(loc,doc,k’,α’)with the minimum modified cost according toEqn.(2)and its result set
定义4:移动对象Top-k空间关键字查询的Why-not问题,简称Top-k WSKM query。
给定一个原始的Top-k SKM查询q=(loc,doc,k0,α),一个原始查询结果集oR和一个缺失对象集mO,Top-k WSKM查询返回其结果集rO包含oR∪mO,根据修改成本模型公式(2),具有最小修改代价的精炼查询q’=(loc,doc,k’,α’)。
下面说明移动对象的移动能力。
每个移动对象都有一个目的地和它的移动能力。由于移动对象/>具有最大速度/>和最小速度/>因此移动对象/>在Δt时间间隔内的移动距离在范围内。
为了便于讨论,本申请进一步假设一个移动对象,无论它移动的速度有多快,它都会向它的目的地移动,并在一个特定的时间点到达其目的地。
图2示出了移动对象从A点移动到B点的可能的轨迹,参见图2所示,移动对象从A点移动到B点,如果它持续以最大速度/>移动,需要在时刻tt到达点B,则它的移动轨迹为弧AB,表示为/>类似的,移动对象/>以速度/>移动时,它的移动轨迹为直线AB。
以速度移动时,移动对象/>在时间t的移动局限在由两条弧/>所围起来的范围内,称为/>的移动区域。
请注意:t∈[ts,tt],以及
因此,线段AB的长度为弧/>的长度近似等于/>
下面说明如何计算上述移动区域的面积。
图3示出了计算弧与直线AB围起来的移动区域面积时作的辅助线,参见图3所示,角度γ代表弧/>所对应的圆周角的一半,则:/>
通过简化,可得:
由于γ∈(0,π/2),可以找到一个值γ1∈(1,π/2)确保
图4示出了弧所对应的圆周角的一半与其正弦值的关系,参见图4所示,/>的移动区域的面积计算如下:
通过这种方式,可以计算两条弧的公式表达式。
由于篇幅限制,这里没有给出详细的计算过程,只是将两者表示为和/>则/>的移动区域的面积可以用另一种方法计算如下:
下面说明概率密度和概率。
由于移动对象的速度不是固定的,所以/>在t时刻移动到的位置应该在曲线l上。众所周知,空间索引是基于将整个搜索空间划分为若干基本单元。因此,对于任何给定的空间索引,曲线l可能出现在一个或多个基本单元格中。
假设曲线l在t时刻出现在n个基本单元中,n为正整数,称为C1,C2,…,Cn,曲线中出现在这些单元中的各部分分别称为l1,l2,…,ln,则有:和li>0。
如果在t时刻出现在曲线l上的一点的概率密度是/>则/>出现在li部分的概率是:/>
注意:
由于移动对象在不同时间点的可能位置由不同的曲线组成,可以得到这些不同曲线与基本单元的相交部分,因此,可以计算出t1到t2时间段内一个基本单元中出现/>的概率为:
图5示出了移动对象从ts时刻到tt时刻的移动轨迹,参见图5所示,移动对象/>分别在t1时刻和t2时刻出现在基本单元C2和C1中,在t3时刻,移动对象/>的位置曲线出现在基本单元C1和C2中的部分分别为l1和l2
若l1和l2的概率密度相同,假设都是则移动对象/>出现在l1的概率是:移动对象/>出现在l2的概率是:
在不同时间点t∈[t2,t3],移动对象出现在基本单元C1中的概率是不同的,移动对象/>从t2时刻到t3时刻出现在基本单元C1中的概率为:
此外,本申请可以使用另一种方法来计算在[t1,t2]期间移动对象出现在基本单元中的概率,下面简要描述。
一方面,如上文所述,两条弧的两个函数表达式可以计算出,分别记为/>
另一方面,基本单元Ci通常携带其空间信息,可以组织为一个函数g(Ci),则根据和g(Ci)的位置关系,可以计算移动对象/>运动轨迹与基本单元Ci在时间段[t1,t2]相交的概率,即/>和g(Ci)的相交面积。
下面说明概率分布函数与正态分布。
在说明了如何计算移动对象在一段时间内出现在基本单元中的概率之后,本申请给出如下的概率分布函数:
该概率分布函数可用于两个方面:
1)给定两个时间点ti和tj,其中ts≤ti<tj≤tt,可计算出ti到tj期间基本单元内出现一个移动对象的概率;
2)给定一个起始时间ts,如果想要一个移动对象出现在一个基本单元的概率大于某个值,可以计算一个关键时间点tk,使得在ts到t时间段,移动对象/>出现在Ci的概率大于这个值,其中t∈(tk,tt)。
如上文所述,在t时刻,曲线l被分为n个部分:l1,l2,…,ln,每个部分都存在移动对象出现在它上面的概率。用同样的方法,本申请可以用公式(3)计算在ti到tj期间,移动对象/>出现在基本单元C1,C2,…中的概率,其中,ts≤ti<tj≤tt。这意味着在ti到tj期间,每个运动对象出现在不同基本单元中的概率是不同的。
如果缺失对象是一个移动对象,精炼查询必须返回它以及它出现的不同位置及概率。注意,在一段时间内,一个移动对象出现在某一点的概率是一个概率密度,没有实际意义。在实验中,本申请计算一个移动对象出现在一个基本单元中的概率,并使用这个概率值作为该移动对象出现在基本单元中任意一点的概率。
然而,当一个移动对象出现在基本单元中的概率非常小以及在一段时间内基本单元距离查询点非常远时,矛盾就产生了。
一方面,如果想要确保每个精炼查询以100%的概率捕获用户所需的移动对象,则需要访问远离查询点的基本单元和其他不必要的搜索空间,这需要花费时间。
另一方面,如果精炼查询不能访问移动对象以一定概率出现的所有基本单元,则精炼查询存在无法检索到用户期望的对象的概率。
为了确保该概率尽可能的小,以及为了解决这个矛盾,本申请使用了正太分布的3σ原理。关于正态分布其中,μ是均值,σ是标准偏差值,x=μ即为图像的对称轴。
正太分布的3σ原理为:数值分布在(μ-σ,μ+σ)中的概率为0.6826,数值分布在(μ-2σ,μ+2σ)中的概率为0.9544,数值分布在(μ-3σ,μ+3σ)中的概率为0.9974。因此,可以认为,P(μ-3σ,μ+3σ)的值就是0.9974,Y的取值几乎全部集中在(μ-3σ,μ+3σ)]区间内,超出这个范围的可能性仅占不到0.3%。
3σ原理意味着一个变量x不属于(μ-3σ,μ+3σ)是一个在通常情况下不会发生的小概率事件。因此,如果移动对象出现在一些基本单元中的概率之和大于P(μ-3σ<x≤μ+3σ),即0.9974,则不需要访问其他那些/>以一定概率出现的基本单元,这可以用来过滤掉不必要的搜索空间,以提高查询处理效率。
下面说明基于Shadow索引结构的Top-k WSKM查询方法。
当知道如何计算一个移动对象在一段时间段、出现在一个基本单元的概率,并了解到精炼查询并不需要以100%的概率找到用户所需的移动对象的事实后,接下的重点是要设计一个新颖的索引来有效地存储和处理对象。如果使用现有方法来保持对象(静态或移动)以回答Top-k WSKM查询,则需要首先从索引中删除或***移动对象,然后相应地更新索引,最后对修改后的索引执行精炼查询。这样做有两个缺点:
1)耗时,特别是当大量移动对象远离查询点时;
2)如果删除、***移动对象及其信息,并更新索引结构,那么在执行精炼查询的过程中,一些移动对象会移动到其他位置,这将影响精炼查询结果的准确性。
为了克服这些缺点,本申请提出了一个名为Shadow的索引结构,下面对Shadow索引结构进行详细的说明。
Shadow索引结构包含两个层次。在第一层中,整个搜索空间如前文所述被划分为几个基本单元,搜索空间中的所有静态对象都使用一棵四叉树进行索引。Shadow索引结构的第一层中的叶子结点将静态对象存储在与叶子结点对应的基本单元中。因此,无论移动对象如何移动,都不会影响Shadow索引结构的第一层。
在Shadow索引结构的第二层中,所有移动对象都被组织起来。
将第一个移动对象***到Shadow索引结构的第二层中,具体包括以下步骤:
首先,假设移动对象是静态,找到要***到Shadow索引结构的第一层中的叶子结点;
然后,在Shadow索引结构的第二层中,用与第一层中叶子结点不同的结点id和相同的结点位置信息创建一个结点;
最后,将移动对象***到结点中。
当有其他移动对象要***到Shadow索引结构的第二层中时,需要确定要***的Shadow索引结构的第二层结点是否存在,如果是,只需将对象***该结点;否则,需要在Shadow索引结构的第二层中构建一个结点,再将对象***结点。
请注意:如果Shadow索引结构的第二层的结点中对象数量超过了结点的最大容量,则需要将该结点分割为4个子结点,具体方法与四叉树中相同。
Shadow索引结构的第二层中的每个结点存储关于它所包含的移动对象的信息,包括对象标识om.id、对象位置om.loc、对象关键词om.doc和对象om在[ti,tj]时间段内在该结点对应的基本单元中出现的概率:
将所有移动对象***到Shadow索引结构的第二层,根据结点与分组之间的距离将Shadow索引结构的第二层所有结点分配到多个分组中。对于每个组,存储以下信息:组标识Ga.id、组位置Ga.loc和指向其相邻组的组指针Ga.p,可根据组位置Ga.loc计算组的长度,且组中任意两个对象的距离不超过组长度。注意:每个组都有相同的组长度上限。当一个组达到长度的上限时,无论Shadow索引结构的第二层中的某结点与这个组有多近,它都不会被分配给这个组。
参见图6所示,图6示出了采用Shadow索引结构对图1中所有对象的划分结果,图1中有18个对象o1-o18,其中,o2、o3、o9、o10、o18为移动对象,其余为静态对象。
参见图7所示,图7示出了为图1中所有对象构建的Shadow索引结构,每个静态对象被分配到其基本单元中,每个移动对象也可以找到对应的基本单元。注意,在本例中,假设每个基本单元最多可以保存四个对象的信息。
参见图7所示,Shadow索引结构的第一层存储静态对象的信息,Shadow索引结构的第二层存储移动对象的信息,第一层和第二层的每个叶子结点对应于图6中的一个基本单元。
由于移动对象o9、o10与静态对象o8、o11、o12在同一个基本单元中,需要首先在Shadow索引结构的第一层找到存储静态对象o8、o11和o12的叶子结点,然后在Shadow索引结构的第二层中创建一个结点来存储移动对象o9和o10。从存储静态对象o8、o11和o12的结点构建一个指向存储移动对象o9和o10的结点的指针,作为进入Shadow索引结构的第二层的入口之一。由于移动对象o9和o10的存储结点A比移动对象o2和o3的存储节点C更接近移动对象o18的存储节点B,因此将A和C分配到第二组,将B分配到第一组。
创建Shadow索引结构的具体步骤可以参考算法1。
算法1的输入为一个包含静态对象和移动对象的对象集合O,一个存储所有移动对象的队列Q,以及用于限制组大小的组长度的上限Glmax,输出Shadow索引结构。Shadow索引结构的第一层和第二层分别由命令第4行和5-12行创建。
Algorithm 1:Creating Shadow Algorithm
算法1:Shadow索引结构创建算法:
1.Input:an object set O,a queue Q storing the moving objects,theupper limit Glmax of group length;
2.Output:Shadow;
3.begin
4.在O中为静态对象建立一个四叉树,形成Shadow索引结构的第1级;
5.while(Q非空)do
6.{oi m=Out_Queue(Q);
7.假设oi m为静态对象,查找包含oi m的基本单元对应的叶子结点Ri
8.if(Ri有一个指向第二层结点Ri’的指针),then
9.{将oi m***Ri’;}
10.else
11.{在第二层创建一个Ri指向的结点Ri’,并将om i***Ri’;}}
12.对第二层中的所有结点进行分组,确保每个分组的长度不超过Glmax
13.返回Shadow索引结构.
下面说明空间削减技术。
本申请引入几个引理来有效地为每个要检查的精炼查询q’削减不必要的搜索空间。首先,使用前面定义的AA(实际精炼的查询结果区域),用于在Shadow索引结构的第一层中削减无希望的结点。
引理1:给定Shadow索引结构的第一层中结点Ri和精炼查询q’的AA,如果Ri和AA不相交,则Ri及其子结点将被削减。
证明:假设Ri包含结果对象oi,则d(q’,oi)不大于AA的半径。由于Ri与AA不相交,Ri中的所有对象都不在AA的范围内,oi也不在。因此,d(q’,oi)大于AA的半径,这与假设相矛盾。因此,Ri及其子结点可以安全地削减。
请注意:这种削减技术也可以在Shadow索引结构的第二层中、用于过滤无希望的结点和组。其次,在Shadow索引结构的第二层中,可以利用正态分布的3σ原理来过滤不必要的结点和组。
引理2:给定Shadow索引结构的第二层中的结点集{R1,R2,…Ri},用户期望的移动对象oi m、一段时间内在这些结点对应的基本单位内以不同的概率出现,如果结点集中某些结点的概率值的总和大于正态分布的P(μ-3σ<x≤μ+3σ),则在处理oi m的过程中不需要访问其他结点和组。
证明:该引理的证明可由正态分布的3σ原理直接得出,因此省略。
下面说明如何回答Top-k SKM查询中的“Why-not”问题。
在执行原始查询之后,一些用户期望的对象可能会从查询结果集中缺失。本申请的主要目标是获得修改成本最小的精炼查询,其结果集包含所有原始查询结果对象和用户所需的所有缺失对象。
本申请中的算法2给出了在Top-k SKM查询中采用Shadow索引结构回答why-not问题(也即Top-k WSKM查询)的处理步骤。由于一些现有的方法已经研究了在所有对象都是静态的情况下,如何调整α和k来回答空间关键字Top-k查询中的“why-not”问题,本申请主要讨论与已有静态算法不同的部分。
算法2的输入为一个Shadow索引结构、一个初始查询q=(loc,doc,k,α),一个有希望的精炼查询集,一个实际精炼查询结果区域AA,一个初始查询结果集OR,一个缺失对象集mO,执行当前精炼查询的时间t,起始时间ts和结束时间tt,输出一个最佳精炼查询q’及其结果集。
首先将精炼查询结果集rR和结点集RS设置为空,分别存放满足精炼查询要求的对象和作为Shadow索引结构的第二层入口的Shadow索引结构的第一层的叶子结点(第4行)。接下来,从有希望的精炼查询集中取出一个精炼查询,并计算其代价。如果精炼查询的成本低于之前执行过的任何其他精炼查询,则将执行该精炼查询。否则,则终止此精炼查询的执行,并选择下一个有希望的查询执行(第5行)。
根据引理1,可以过滤Shadow索引结构的第一层中与AA无交集的搜索空间所对应的无关树分支和结点(第6行),然后可以找到有希望的静态对象和包含这些对象的叶子结点的结点集RS(第7行)。现在所有有希望的静态对象都被捕获,然后根据算法2剩下的步骤得到想要的移动对象。
如果RS非空,RS中的叶子结点Ri被取出作为访问Shadow索引结构的第二层中的结点和组的入口(使用存储在这个叶子结点上的指针)。然后在Ri链接的结点中找到满足精炼查询要求的移动对象。如果这些对象在结点对应的搜索空间中出现的概率值大于正态分布的P(μ-3σ<x≤μ+3σ),则将这些移动对象添加到rR。如果其中一个对象不满足,则将首先访问该结点所在的同一组中的其他结点。有需要的话,访问靠近该组的其他组中的结点,直到满足该对象的概率要求为止(8-10行)。
当RS为空时,计算rR中所有对象的排名分数,保留k个最佳对象。最后,返回精炼查询及其rR。
算法2:基于Shadow索引结构的Top-k WSKM查询算法:
Algorithm 2:Shadow Based Algorithm
/>
基于Shadow索引结构的Top-k WSKM查询算法2的具体内容包括:
1.Input:Shadow,q,一个希望精炼查询集,AA,oR,mO,t,ts,tt
2.Output:最佳精炼查询q’=(loc,doc,k’,α’),rR;
3.begin
4.set
5.执行希望精炼查询集中一个精炼查询,其代价小于之前执行的其他任意精炼查询;
6.删除与AA无交集的搜索空间对应的Shadow索引结构第一层的无关结点;
7.查找有希望的静态对象和包含这些对象的叶子结点的结点集RS;
8.while(RS非空)do
9.{从RS中取出叶子结点Ri并访问Shadow索引结构的第二层;
10.找到不在rR中、且满足精炼查询要求的有希望的移动对象,并根据正态分布3σ原理的要求将它们***RS;}
11.计算rR中所有对象的排序得分,保留Top-k’对象;
12.返回q’=(loc,doc,k’,α’),rR。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种索引结构,其特征在于,包括:
第一层,用于:将静态对象存储在与叶子结点对应的基本单元中;
第二层,用于:以第一层的叶子结点为入口,在第二层创建的结点***移动对象;
所述索引结构的第一层的搜索空间被划分为若干个基本单元,搜索空间中的所有静态对象都使用四叉树进行索引;
所述索引结构的第二层的结点存储移动对象的信息,包括对象标识、对象位置、对象关键词和对象在一段时间段内在该结点对应的基本单元中出现的概率;
所述索引结构的第二层的结点根据其与分组之间的距离,被分配到多个分组中,每个组存储以下信息:组标识、组位置和指向其相邻组的组指针;
所述组中任意两个对象的距离不超过组的长度,组的长度根据组位置计算。
2.一种索引结构的创建方法,其特征在于,包括以下步骤:
确定作为***入口的索引结构的第一层中用于存储静态对象的叶子结点,将静态对象***该叶子结点;
根据与第一层中叶子结点不同的结点id和相同的结点位置信息,在索引结构的第二层中创建用于存储移动对象的结点,将移动对象***该结点;
所述索引结构的第一层的搜索空间被划分为若干个基本单元,搜索空间中的所有静态对象都使用四叉树进行索引;
所述索引结构的第二层的结点存储移动对象的信息,包括对象标识、对象位置、对象关键词和对象在一段时间段内在该结点对应的基本单元中出现的概率;
所述索引结构的第二层的结点根据其与分组之间的距离,被分配到多个分组中,每个组存储以下信息:组标识、组位置和指向其相邻组的组指针;
所述组中任意两个对象的距离不超过组的长度,组的长度根据组位置计算。
3.一种索引结构的创建***,其特征在于,包括:
入口确定单元,用于:确定作为***入口的索引结构的第一层中用于存储静态对象的叶子结点,将静态对象***该叶子结点;
结点创建单元,用于:根据与第一层中叶子结点不同的结点id和相同的结点位置信息,在索引结构的第二层中创建用于存储移动对象的结点,将移动对象***该结点;
所述索引结构的第一层的搜索空间被划分为若干个基本单元,搜索空间中的所有静态对象都使用四叉树进行索引;
所述索引结构的第二层的结点存储移动对象的信息,包括对象标识、对象位置、对象关键词和对象在一段时间段内在该结点对应的基本单元中出现的概率;
所述索引结构的第二层的结点根据其与分组之间的距离,被分配到多个分组中,每个组存储以下信息:组标识、组位置和指向其相邻组的组指针;
所述组中任意两个对象的距离不超过组的长度,组的长度根据组位置计算。
4.一种基于权利要求1所述的索引结构的Top-k WSKM查询方法,其特征在于,包括以下步骤:
查询用户期望的移动对象时,如果索引结构的第一层的叶子结点Ri与精炼查询结果区域不相交,则在索引结构的第一层和/或第二层中削减Ri及其子结点的搜索空间。
5.如权利要求4所述的方法,其特征在于,还包括以下步骤:
计算索引结构的第二层的结点在一段时间内在其对应的基本单元内出现用户期望对象的概率,根据正态分布原理削减不必要的结点和组的搜索空间。
6.一种基于权利要求1所述的索引结构的Top-k WSKM查询***,其特征在于,包括:
第一削减单元,用于:查询用户期望的移动对象时,如果索引结构的第一层的叶子结点Ri与精炼查询结果区域不相交,则在索引结构的第一层和/或第二层中削减Ri及其子结点的搜索空间;
第二削减单元,用于:计算索引结构的第二层的结点在一段时间内在其对应的基本单元内出现用户期望对象的概率,根据正态分布原理削减不必要的结点和组的搜索空间。
CN202011254329.2A 2020-11-11 2020-11-11 索引结构及创建方法、***、查询方法及*** Active CN112434118B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011254329.2A CN112434118B (zh) 2020-11-11 2020-11-11 索引结构及创建方法、***、查询方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011254329.2A CN112434118B (zh) 2020-11-11 2020-11-11 索引结构及创建方法、***、查询方法及***

Publications (2)

Publication Number Publication Date
CN112434118A CN112434118A (zh) 2021-03-02
CN112434118B true CN112434118B (zh) 2024-02-13

Family

ID=74700368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011254329.2A Active CN112434118B (zh) 2020-11-11 2020-11-11 索引结构及创建方法、***、查询方法及***

Country Status (1)

Country Link
CN (1) CN112434118B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101395602A (zh) * 2005-12-29 2009-03-25 亚马逊科技公司 用于分布式文件存储和索引服务的方法和装置
CN103235831A (zh) * 2013-05-15 2013-08-07 西南大学 基于路网的移动对象位置索引结构及索引方法
CN104834679A (zh) * 2015-04-14 2015-08-12 苏州大学 一种行为轨迹的表示、查询方法及装置
CN105069094A (zh) * 2015-08-06 2015-11-18 苏州大学 一种基于语义理解的空间关键字索引方法
CN109582677A (zh) * 2018-12-03 2019-04-05 东北大学 基于孩子节点的多粒度分布式读写锁的r树索引优化方法
US10331753B1 (en) * 2018-04-04 2019-06-25 The Florida International University Board Of Trustees Efficient progressive continuous k-nearest neighbor query algorithm for moving objects with a tree-like index
CN111026750A (zh) * 2019-11-18 2020-04-17 中南民族大学 用AIR树解决SKQwhy-not问题的方法及***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324642B (zh) * 2012-03-23 2016-12-14 日电(中国)有限公司 为数据建立索引的***和方法以及数据查询方法
US11416553B2 (en) * 2019-03-28 2022-08-16 Amazon Technologies, Inc. Spatial indexing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101395602A (zh) * 2005-12-29 2009-03-25 亚马逊科技公司 用于分布式文件存储和索引服务的方法和装置
CN103235831A (zh) * 2013-05-15 2013-08-07 西南大学 基于路网的移动对象位置索引结构及索引方法
CN104834679A (zh) * 2015-04-14 2015-08-12 苏州大学 一种行为轨迹的表示、查询方法及装置
CN105069094A (zh) * 2015-08-06 2015-11-18 苏州大学 一种基于语义理解的空间关键字索引方法
US10331753B1 (en) * 2018-04-04 2019-06-25 The Florida International University Board Of Trustees Efficient progressive continuous k-nearest neighbor query algorithm for moving objects with a tree-like index
CN109582677A (zh) * 2018-12-03 2019-04-05 东北大学 基于孩子节点的多粒度分布式读写锁的r树索引优化方法
CN111026750A (zh) * 2019-11-18 2020-04-17 中南民族大学 用AIR树解决SKQwhy-not问题的方法及***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Authentication of Moving Top-k Spatial Keyword Queries;Dingming Wu et.al;《IEEE Transactions on Knowledge and Data Engineering》;第27卷(第4期);第922-935页 *
多维空间索引结构SHG-Tree(英文);刘胤田;***;徐开阔;曾涛;唐常杰;;计算机科学与探索(第01期);72-94 *

Also Published As

Publication number Publication date
CN112434118A (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
CN104408191B (zh) 关键词的关联关键词的获取方法和装置
Hashem et al. Efficient computation of trips with friends and families
CN110069500B (zh) 一种非关系型数据库动态混合索引方法
CN103577418A (zh) 海量文档分布式检索排重***和方法
CN111460234A (zh) 图查询方法、装置、电子设备及计算机可读存储介质
Tabassum et al. Dynamic group trip planning queries in spatial databases
Qi et al. Efficient point-based trajectory search
CN108259544B (zh) Url查询方法和url查询服务器
CN112434118B (zh) 索引结构及创建方法、***、查询方法及***
Sun et al. On efficient aggregate nearest neighbor query processing in road networks
Zhang et al. Shadow: answering why-not questions on top-k spatial keyword queries over moving objects
KR102411778B1 (ko) 다중 지식의 비교 우위를 추론하는 서버, 방법 및 컴퓨터 프로그램
Gulzar et al. D-SKY: A framework for processing skyline queries in a dynamic and incomplete database
CN107229704A (zh) 一种基于ksp算法的资源描述框架查询方法和***
CN111782699A (zh) 一种基于用户历史瓦片浏览记录的兴趣点智能搜索方法
John et al. Dynamic sorting and average skyline method for query processing in spatial-temporal data
Cai et al. Continuous road network-based skyline query for moving objects
CN111506797B (zh) 解决方向感知SKQ中why-not问题的方法及***
CN113407669A (zh) 一种基于活动影响力的语义轨迹查询方法
CN112883272A (zh) 一种推荐对象的确定方法
Jae et al. Indexing for efficient managing current and past trajectory of moving object
Sun et al. A Point of Interest Intelligent Search Method based on Browsing History.
CN117171802B (zh) 一种空间关键字查询强隐私保护方法及***
CN104636461A (zh) 一种基于knn的动态事件聚类和提取的方法
JP5909199B2 (ja) アドレス解決システム及び方法

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