CN108804580B - 一种在联邦型rdf数据库中查询关键字的方法 - Google Patents
一种在联邦型rdf数据库中查询关键字的方法 Download PDFInfo
- Publication number
- CN108804580B CN108804580B CN201810509701.6A CN201810509701A CN108804580B CN 108804580 B CN108804580 B CN 108804580B CN 201810509701 A CN201810509701 A CN 201810509701A CN 108804580 B CN108804580 B CN 108804580B
- Authority
- CN
- China
- Prior art keywords
- keyword
- rdf
- keywords
- query
- sparql
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种在联邦型RDF数据库中查询关键字的方法,其步骤包括:1)通过访问不同RDF数据源提供的SPARQL查询接口,抽象出对应的模式图;2)通过现有SPARQL引擎提供的全文检索接口,找出每个关键字对应的候选类点队列;3)将每个关键字映射到模式图中相应类点上,得到一个有关键字映射的模式图;4)从映射的关键字出发,从模式图中得到若干个不同关键字相连的子结构图;5)为每个子结构图构建对应的SPARQL查询;6)多个SPARQL查询发送到RDF数据源上的SPARQL查询接口得到查询结果。本发明的方法可行且高效,能在可接受时间内计算出在联邦型RDF数据库中的关键字查询结果。
Description
技术领域
本发明涉及分布式RDF数据检索技术领域,主要涉及一种在联邦型RDF数据库中的基于模式图和关键字映射的关键字查询回答方法。
背景技术
RDF(ResourceDescriptionFramework)数据是W3C提出的一种知识表示模型,是用于描述Web资源的标记语言,即“描述数据的数据”。RDF数据利用统一资源标识符标识从网页等信息资源拓展到所有事物,其基本数据单元是一个三元组,即<主体,属性,客体>。每个单元组表示一个资源的属性值或者某个资源与其他资源的关系。等于我们得到一个大型知识网,里面所有内容都是机器可查询、标准且无歧义。W3C还定义了一种结构化查询语言SPARQL(SimpleProtocolandRDFQueryLanguage)针对大规模RDF数据的查询与管理。SPARQL查询作为一种类SQL查询用于查询满足某种条件下的RDF数据片段。SPARQL查询语句通过RDF数据库提供的SPARQL接口执行并返回结果。
联邦型RDF数据库(FederatedRDFSystem)是将RDF数据储存在若干不同机器上的、各自“自治”的RDF数据源上,这些机器中的子系统按照各自的方式对数据进行管理,并被集成到一个系统平台下。每个包含一定RDF数据集合和SPARQL查询接口的机器称为一个RDF数据源,而这些SPARQL查询接口都从属于“自治”的系统,即能够各自独立地接受SPARQL查询并计算出匹配。当处理一个SPARQL查询时,中心机器对查询进行调度,从而通过各个机器上提供的SPARQL接口找到局部匹配,最后再拼接成最终匹配。
相较于传统单机环境下的RDF数据库,联邦型RDF数据库能更好地应对单机系统性能限制的RDF数据,同时也能更为高效地应对和处理大量SPARQL查询。由于联邦型RDF数据库“自治”且独立,所以它们拥有更好的可拓展性,能够通过增加适当的数据冗余,提供系统的可靠性。
其中,关键字查询是联邦型RDF数据库领域里极为重要的一项需求。例如,用户给定两个关键字,想得出在联邦型RDF数据库的数据集中与这两个关键字有关的实体答案。
尽管已经存在一些前人的工作来讨论RDF数据中的关键字查询方法,但是这些技术通常都是在构建全局性倒排索引的前提下提出,这种方法在联邦型RDF数据库中不具有可操作性,只能支持在单机RDF数据库中实现,可扩展性差。而关于分布式RDF数据库中的关键词查询研究工作几乎没有,在联邦型RDF数据系统中,出于对安全性的考虑,查询处理时不允许在不同数据源之间相互传递数据。即各个子系统不允许互相干涉,用户只能通过各个系统中系统的SPARQL接口对RDF数据进行下载和查询。因此我们也就无法构建一个全局性的倒排索引来实现关键字查询任务。
显然,传统方法难以被用在联邦型RDF数据库的关键字查询这个问题中。
发明内容
本发明提出了一种基于模式图和关键字映射的转化方法,用以对联邦型RDF数据库中的关键字查询进行有效地处理。
本方法中,为了有效地查询关键字,我们为其提出了新的解决方法。查询执行是针对本发明一种在联邦型RDF数据库中执行的关键字查询方法,具体方法如下:
1)访问不同机器上联邦型RDF数据库提供的SPARQL查询接口,抽象构建对应的模式图;
2)通过联邦型RDF数据库中SPARQL接口提供的全文检索功能,找出用户在线键入关键字wi对应的候选类点队列;
3)将用户关键字wi映射到模式图中相应类点上,得到一个有关键字映射的模式图;
4)从映射的关键字出发,在模式图中划分若干个不同关键字相连的子结构图;
5)为每个子结构图构建对应的SPARQL查询;
6)多个SPARQL查询发送到联邦型RDF数据库上的SPARQL查询接口得到查询结果。
离线构建阶段,通过访问联邦型RDF数据库提供的SPARQL查询接口,将RDF数据中类顶点信息和不同类点间相应关系存储为三元组,表示为<VS,ES,LS>,其中VS是模式图上的类点集合,ES表示类点对应实体间的具有相同属性值和关系的有向边集合,LS是边标签的集合,只保留RDF数据中的类点和它与其它类点的关系边。
在线查询阶段,用户键入一系列关键字w1,w2,……,wn,1<i≤n,其中n为关键字的个数,通过联邦型RDF数据库中SPARQL接口提供的全文检索功能找到每个关键字对应的候选类队列,一个关键字可能匹配到多个候选类点。
对于每个关键字wi的候选类点,在模式图中遍历找到并将关键字映射上去,把模式图转化为带有关键字映射的模式图。由于一个关键字可能匹配到多个类,相同关键字可能映射到不同的类点。
对于带有关键字映射的模式图,从不同关键字出发,找到若干个包含所有不同关键字映射的最短连通子结构图。
为了实现对RDF数据的查询,根据这些子结构图构建若干个对应的SPARQL查询。
将若干个SPARQL查询返回至联邦型RDF数据库的查询接口执行,返回用户输入的查询关键字的最终结果。
本发明主要改进点在于利用抽象模式图和关键字映射的处理方法解决了核心问题,首先在离线阶段构建模式图,然后在线查询阶段利用全文检索技术找到用户关键字对应的类顶点并将关键字映射到模式图上,最后划分包含所有不同关键字映射的子结构图,构建相应SPARQL查询返回联邦型RDF数据库系统执行得到结果。主要的创新点在于解决了联邦型RDF数据库中无法构建全局倒排索引查询关键字的困境,提出了一种全新的解决方法。
本发明的有益效果
通过全新的关键字查询方法的提出,本发明能够支持在可接受的时间内对大规模联邦型RDF数据库完成模式图的构建和关键字查询,完成关键字查询,且有广阔的适用范围和很强的可扩展性,符合实际应用中的需求。
附图说明
图1为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中整体框架示意图。
图2为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中所涉及的部分RDF数据图。
图3为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中从图2的局部RDF图中抽象的模式图。
图4为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中关键字映射后的模式图。
图5为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中从图4分解的两个子结构图示意。
图6为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中分解的一个子结构图及对应的SPARQL查询。
具体实施方式
本发明是根据RDF数据的特点,针对联邦型RDF系统上的关键字查询构建模式图并映射关键字计算结果,整个方法参见图1为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中整体框架示意图。该方法分为三大部分,离线模式图构建部分、在线关键字映射部分和构建SPARQL查询部分。
部分实例数据参见图2为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中所涉及的部分RDF数据图。
离线模式图构建的方法包括:
步骤1:访问SPARQL接口构建模式图。
针对联邦型RDF数据库中无法构建全局性倒排索引的特性,我们提出一种全新的索引方法,就是遍历RDF数据图上每个表示类信息的顶点,在离线阶段构建一个模式图。通过每个RDF数据库提供的SPARQL查询接口可以遍历到,对于RDF数据图上的实体,由属性值为“type(类型)”连接指向的顶点v,这类v就称之为类点。而类点与类点之间的关系即为类顶点对应实体之间的关系。例如,如果一个三元组<Aspirin,type,drug>,即描述为阿司匹林是一种药品,“drug”即为一个类点。模式图即可以表示为这样一个集合S=<VS,ES,LS>,其中VS表示一系列类顶点的集合,ES是RDF数据中顶点集合V的子集。而ES表示连接两个类顶点间的有向边集合,LS表示边标签的集合。
根据图2构建的模式图参见图3为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中从图2的局部RDF图中抽象的模式图。根据上述定义,我们将数据抽象为一个只包含类顶点及类点间对应关系有向边的模式图。利用模式图,就方便下一步找出输入关键字的所属类点并映射到模式图中,将关键的待解决问题转化为找到若干个关键字所属的类。另一方面,为了提高效率,在关键字查询之前,我们会先结合模式图定义计算出这一部分的工作量,能极大地减少后续的工作量。
在线关键字映射的方法包括:
步骤2:通过SPARQL接口全文检索到关键字对应候选类点队列。
对于用户键入的任意一个关键字,假设至少可以找到一个类点与其进行匹配。具体而言,通过联邦型RDF数据库已有的全文检索功能,我们可以找到每个关键字对应的类顶点。显然,一个关键字很有可能会检索出多个候选类点,给每个关键字的候选类点队列进行相关度计算排序,每个关键字选取top-k个候选类点参与后续映射过程。例如,数据中有这样两个三元组:<Aspirin,type,drug>,<Aspirin,description,“bornforJohnRobert”>,如果用户键入“JohnRobert”,可以全文检索到“Aspirin”这个实体点进而找到“drug”这个类点。那么“drug”即为关键字“Aspirin”的一个候选类点。
步骤3:关键字映射到模式图。
如此,得到每个关键字的候选类点队列。遍历模式图,找到对应的类顶点,建立类点指向关键字的映射。如果候选类队列中的类点不止一个,同一个关键字会映射到多个不同类顶点。根据优化方案一个关键字的所有候选类点不需要全部映射,只映射到top-k个类点上。其他的点在相关度和查询结果正确性的考虑下可以忽略。
如此一来就可以将上一步得到的模式图转化为具有关键字映射的模式图。完成关键字映射的模式图参见图4为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中关键字映射后的模式图。
SPARQL查询构建的方法包括:
步骤4:从模式图中得到不同关键字相连的子结构图。
由于联邦型RDF数据库只能通过提供的SPARQL接口查询结果,通过特定的SPARQL查询语言对RDF数据进行检索查询。所以最终需要构建SPARQL查询语句通过查询接口得到结果。
具体而言,得到映射后的模式图后,从映射的不同关键字映射出发,通过Dijkstra算法计算连接多个不同关键字的最短路径,得到多个连通的包含不同关键字映射的结构图,并将其返回。当遍历完所有关键字映射,停止算法。比如,关键字“JohnRobertVane”映射到“Scientist”类点,关键字“prototypicalanalgesic”映射到“Drug”类点和“Offer”类点,那么我们可以找到两个子结构图,分别是从类点“Drug”出发到类点“Thing”和从类点“Offer”出发到类点“Thing”。参见图5为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中从图4分解的两个子结构图示意。
步骤5:对划分出的字结构图构建SPARQL查询。
由于相同关键字可能映射到不同类点,包含不同关键字映射的子结构图可能存在多个。并不是所有子结构图都用于构建SPARQL查询,挑选出top-k个子结构图构建相应的top-k个子结构图。接下来,我们将每个子结构图转化为一组相应的SPARQL查询语句,参见图6为本发明一种在联邦型RDF数据库中查询关键字的方法—实施例中分解的一个子结构图及对应的SPARQL查询。
步骤6:在SPARQL查询接口中执行SPARQL查询得到结果。
通过RDF数据库提供的SPARQL查询接口执行这top-k个SPARQL查询,查询结果会返回至控制台并且被用户读取出来。
综上所述,本发明实例中,针对规模日益增长的RDF数据和联邦型RDF数据库的特性,本发明设计了一种在联邦型RDF数据库的关键字查询方法。设计了离线模式图构建、在线关键字映射和SPARQL查询构建三个过程,详细描述每个过程中的实施步骤,并给出了优化算法与最终解决策略。通过所述的方法不但可行而且高效,能在可接受的时间内高效地支持在联邦型RDF数据库中的关键字查询。
Claims (7)
1.一种在联邦型RDF数据库中查询关键字的方法,其步骤包括:
1)访问不同机器上联邦型RDF数据库提供的SPARQL查询接口,抽象构建对应的模式图;
2)通过联邦型RDF数据库中SPARQL接口提供的全文检索功能,找出用户在线键入关键字wi对应的候选类点队列;
3)将用户关键字wi映射到模式图中相应类点上,得到一个有关键字映射的模式图;
4)从映射的关键字出发,在模式图中划分若干个不同关键字相连的子结构图;
5)为每个子结构图构建对应的SPARQL查询;
6)多个SPARQL查询发送到联邦型RDF数据库上的SPARQL查询接口得到查询结果。
2.如权利要求1所述的在联邦型RDF数据库中查询关键字方法,其特征在于,在离线阶段,通过访问不同联邦型RDF数据库提供的SPARQL查询接口,将RDF数据中类顶点信息和不同类点间相应关系存储为三元组,表示为<VS,ES,LS>,其中VS是模式图上的类点集合,ES表示类点对应实体间的具有相同属性值和关系的有向边集合,LS是边标签的集合,只保留RDF数据中的类点和它与其它类点的关系边。
3.如权利要求1所述的在联邦型RDF数据库中查询关键字方法,其特征在于,用户键入一系列关键字w1,w2,……,wn,1<i≤n,其中n为关键字的个数,通过联邦型RDF数据库提供的全文检索功能找到每个关键字对应的候选类队列,一个关键字可能匹配到多个候选类点。
4.如权利要求1所述的在联邦型RDF数据库中查询关键字方法,其特征在于,对于每个关键字wi的候选类点集合,在模式图中遍历找到集合中所有类点并将关键字映射上去,把模式图转化为带有关键字映射的模式图。
5.如权利要求1所述的在联邦型RDF数据库中查询关键字方法,其特征在于,对于带有所有关键字映射的模式图,从不同关键字出发,找到若干个包含所有不同关键字映射的最短连通子结构图。
6.如权利要求1所述的在联邦型RDF数据库中查询关键字方法,其特征在于,为了实现对RDF元数据的查询,根据这些子结构图构建若干个对应的SPARQL查询。
7.如权利要求1所述的在联邦型RDF数据库中查询关键字方法,其特征在于,将多个SPARQL查询返回至联邦型RDF数据库的查询接口执行,返回用户输入的查询关键字的最终结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810509701.6A CN108804580B (zh) | 2018-05-24 | 2018-05-24 | 一种在联邦型rdf数据库中查询关键字的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810509701.6A CN108804580B (zh) | 2018-05-24 | 2018-05-24 | 一种在联邦型rdf数据库中查询关键字的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804580A CN108804580A (zh) | 2018-11-13 |
CN108804580B true CN108804580B (zh) | 2021-05-25 |
Family
ID=64091733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810509701.6A Active CN108804580B (zh) | 2018-05-24 | 2018-05-24 | 一种在联邦型rdf数据库中查询关键字的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804580B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710638A (zh) * | 2019-01-01 | 2019-05-03 | 湖南大学 | 一种联邦型分布式rdf数据库上的多查询优化方法 |
CN110990426B (zh) * | 2019-12-05 | 2022-10-14 | 桂林电子科技大学 | 一种基于树搜索的rdf查询方法 |
CN114625806A (zh) * | 2022-02-11 | 2022-06-14 | 南京航空航天大学 | 一种基于时态关系数据库的时态RDF及RDF Schema构建方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090953A2 (en) * | 2000-05-19 | 2001-11-29 | Rensselaer Polytechnic Institute | Natural language interface for database queries |
CN102693310A (zh) * | 2012-05-28 | 2012-09-26 | 无锡成电科大科技发展有限公司 | 一种基于关系数据库的资源描述框架查询方法和系统 |
CN106021457A (zh) * | 2016-05-17 | 2016-10-12 | 福州大学 | 基于关键词的rdf分布式语义搜索方法 |
-
2018
- 2018-05-24 CN CN201810509701.6A patent/CN108804580B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090953A2 (en) * | 2000-05-19 | 2001-11-29 | Rensselaer Polytechnic Institute | Natural language interface for database queries |
CN102693310A (zh) * | 2012-05-28 | 2012-09-26 | 无锡成电科大科技发展有限公司 | 一种基于关系数据库的资源描述框架查询方法和系统 |
CN106021457A (zh) * | 2016-05-17 | 2016-10-12 | 福州大学 | 基于关键词的rdf分布式语义搜索方法 |
Non-Patent Citations (1)
Title |
---|
分布式RDF数据管理综述;邹磊 等;《计算机研究与发展》;20171231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108804580A (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li | Human-in-the-loop data integration | |
CN107169033A (zh) | 基于数据模式转换和并行框架的关系数据查询优化方法 | |
Bergamaschi et al. | Combining user and database perspective for solving keyword queries over relational databases | |
WO2014093951A2 (en) | Graph query processing using plurality of engines | |
Luo et al. | Storing and indexing massive RDF datasets | |
CN102541631B (zh) | 以多线程不同驱动源执行计划处理查询的方法和系统 | |
Abbes et al. | MongoDB-based modular ontology building for big data integration | |
CN108804580B (zh) | 一种在联邦型rdf数据库中查询关键字的方法 | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
Matei et al. | OLAP for multidimensional semantic web databases | |
JP2019040598A5 (zh) | ||
Newman et al. | Scalable Semantics–the Silver Lining of Cloud Computing | |
Gayathri et al. | Semantic search on summarized RDF triples | |
Vieira et al. | Incremental entity resolution process over query results for data integration systems | |
Yan et al. | RDF knowledge graph keyword type search using frequent patterns | |
Zeng et al. | Efficient xml keyword search: from graph model to tree model | |
Majeed et al. | Evaluation of Natural Language Software Interfaces to Databases. | |
CN116756375B (zh) | 一种基于图谱的异构数据的处理系统 | |
Lee et al. | Scalable entity matching computation with materialization | |
Jiménez | Strategies to Understand the Connectivity of Entity Pairs in Knowledge Bases | |
JPH0991309A (ja) | マルチデータベース検索装置 | |
Papadakis et al. | Navigational queries as property path queries employing the Kleene star operator | |
Arulmurugan et al. | Study of Various Keywords Searching in Large Databases | |
Hassan | Graph-Based Technique for Searching Structured Databases | |
Kim et al. | Generalizing and Processing Topological Data using Sentence Data Structure |
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 |