主权项 |
一种面向大规模RDF图数据的SPARQL并行查询方法,其特征是,包括下列步骤:面向大规模RDF图数据的SPARQL并行查询方法,包括下列步骤:1)使用整体同步并行BSP(Bulk Synchronous Parallel字头缩写)模型描述RDF图数据,RDF图数据中的每一个资源都被具体为一个可执行计算的BSP中的计算单元;2)使用资源的URI来标记每一个与该资源对应的计算单元;3)对于RDF图数据集中的每一条三元组:主语计算单元S,谓语P,宾语计算单元O,建立主语计算单元S到宾语计算单元O的有向边e,使用谓语P的URI作为e的标记,并将e的相关信息保存在主语计算单元S的本地数据域中;4)对于3)中的每一条边e,建立一条方向相反的边e<sub>r</sub>,使用URI<sub>r</sub>作为e<sub>r</sub>的标记,其中URI为谓语P的URI,并将e<sub>r</sub>的相关信息保存在宾语计算单元O的本地数据域中;5)获得用户提交的SPARQL查询请求q<sub>0</sub>,分析q<sub>0</sub>,利用贪心算法评估q<sub>0</sub>中每条子句分别包含的信息量,将包含信息量最多的子句tp<sub>i</sub>,i为计数器,初始时i=1,作为首要待处理子句,将q<sub>0</sub>发送给tp<sub>i</sub>的主语计算单元S,若S是未知变量,则发送给宾语计算单元O;6)S或O接收到q<sub>i‑1</sub>时,在正向边或反向边中查找满足tp<sub>i</sub>的可能解的集合E<sub>i</sub>,并根据E<sub>i</sub>中的信息对q<sub>i‑1</sub>中的变量进行绑定,得到部分绑定后的查询q<sub>i</sub>,由于可能出现多个互不矛盾的绑定可能,所以存在多个不同的q<sub>i</sub>,每个q<sub>i</sub>根据所包含信息的不同,选择不同的传播路径,并行传播;7)i=i+1,利用贪心算法评估q<sub>i‑1</sub>中的每条子句所包含的信息量,将包含信息量最多的子句tp<sub>i</sub>作为首要待处理子句,将q<sub>i‑1</sub>发送给tp<sub>i</sub>的主语计算单元S,若S是未知变量,则发送给宾语计算单元O;8)重复6)和7),直到所有子句都经过绑定,且各个子句绑定变量时没有出现冲突,如果得到多于0个查询结果,则返回这些结果。 |