4store源码解析系列(8)–查询结果的处理

  • Post author:
  • Post category:IT
  • Post comments:0评论

在这一篇中,将对4store中涉及的查询结果处理的内容进行解析。查询结果处理主要包括triple的结果合并操作以及triple之上的block结果合并操作等。此外,关于4store实现的一些SPARQL关键字的处理逻辑,也会在这一篇中进行简单的说明。 查询结果的合并 triple查询结果的合并 这里讨论的是一个block之内的多条triple查询结果的合并问题。一个block之内的多条triple之间的关系有两种: 没有关系。比如,?x P0 O0和S1 P1 ?y.这两条triple之间是毫无…

继续阅读4store源码解析系列(8)–查询结果的处理

4store源码解析系列(7)–查询优化

  • Post author:
  • Post category:IT
  • Post comments:0评论

在之前的两篇4store源码解析系列文章中,我们已经对单条triple的查询流程和细节处理进行了说明。在这一篇中,我们将对如何处理有嵌套关系的多条triple查询问题展开讨论,并进一步分析4store对这个问题的处理优化。 graph pattern解析和优化 如查询流程概述中所述,4store并不直接参与sparql语句的解析,而只对Rasqal库解析了后的graph结构进行分析。 要了解4store如何二次解析Rasqal对sparql查询语句的解析结果,我们首先需要了解Rasqa解析结果的…

继续阅读4store源码解析系列(7)–查询优化

4store源码解析系列(6)–查询处理细节

  • Post author:
  • Post category:IT
  • Post comments:0评论

在上一篇中,我们对4store查询的基本流程进行了梳理。在这一篇中,我们将对查询在客户端和服务端的一些处理细节展开讨论。 客户端的triple查询处理 关于triple查询的最底层实现,我们在上一篇源码解析中已经具体介绍了,我们这里要讨论的是在底层查询接口之上的一些优化和处理。 缓存处理 一般来说,在单条query查询语句中虽然可能涉及多条triple查询,但这些triple查询请求很少会重复。但是,我们在使用4store进行多次query查询时,则很有可能会出现重复的triple查询了。我们这…

继续阅读4store源码解析系列(6)–查询处理细节

4store源码解析系列(5)–查询流程概述

  • Post author:
  • Post category:IT
  • Post comments:0评论

前言 从这一篇的系列文章开始,我们将展开4store的查询研究。在这一篇中,我们将先介绍一下查询的整体流程,然后通过一个简单例子来阐述流程中涉及的一些基本问题。 流程概述 Query处理 SPARQL是一种用于RDF上的查询语言,其语法可以详见文档中的说明。4store中,使用Rasqal RDF Query Library作为其SPARQL查询语句的语法解析器,运用了Rasqal在query构造、执行顺序以及变量绑定(binding)等诸多内容的解析功能。但是,Rasqal只提供了对于quer…

继续阅读4store源码解析系列(5)–查询流程概述

4store源码解析系列(4)–predicate维度的四元组存储

  • Post author:
  • Post category:IT
  • Post comments:0评论

本篇我们将具体介绍如何针对predicate维度的搜索需求,来实现四元组的存储的。 predicate维度的存储结构 而在检索中,有很大一部分需求是在已知[P, O]或[P, S]的情况(即文章标题所说的predicate维度的检索需求)下,检索[M, S]或[M, O]。为了满足对于这类需求,我们一般需要建立一个两层索引结构才能完成检索任务。在实际应用中,RDF文档一般保存的是特定领域或应用的[M, O, P, S]四元组,其中P的数量相比于O和S往往要小很多。因此,我们可以首先基于P建立一级…

继续阅读4store源码解析系列(4)–predicate维度的四元组存储

Misfit 发布的第二款穿戴设备Flash,50美刀的价格能否撬动市场?

不得不承认,Misfit之前推出的 Shine 很好看,不过价格也真的很不亲民,现在还卖100美刀。且不说在售价不足13美刀的小米手环面前毫无优势,和Jawbone Up、 Fitbit比竞争力也不太强。据 Misfit Wearables 官方消息,Misfit推出了新款可穿戴设备Flash,续航增加至6个月,最关键的是价格只有原来的一半。 与 Misfit Shine一样,Misfit Flash也没有配备传统的显示屏,通过LED圆环显示天完成进度,或者通过蓝牙连接手机,在配套的App同步、…

继续阅读Misfit 发布的第二款穿戴设备Flash,50美刀的价格能否撬动市场?

4store源码解析系列(3)–model维度的四元组存储

  • Post author:
  • Post category:IT
  • Post comments:0评论

在源码解析系列的上一篇,我们详细介绍了资源ID的存储。从这一篇开始,我们将介绍如何将model, object, predicate以及subject资源对应的rid四元组(也称为quad)存储。4store对四元组进行了多种形式的存储,以应对不同类型的搜索需求。在这一篇中,我们重点介绍的是model维度的四元组存储,面向的需求是在已知model,检索model对应的object, predicate以及subject(即[O,P,S]三元组,也称为triple)集合。 model维度的四元组存…

继续阅读4store源码解析系列(3)–model维度的四元组存储

4store源码解析系列(2)–资源ID的存储

  • Post author:
  • Post category:IT
  • Post comments:0评论

资源存储处理 资源类型简介 4store的资源主要分成三类:URI、Literal以及Blank Node。 MSB1 MSB2 Encodes 0 Literal 1 0 Blank Node 1 1 URI Blank Node,只有rid,没有文本内容,较前两者区分开,在4store中是单独处理的,先不在这讲中具体介绍了。 Literal就是我们常见的各类文本的描述内容,长度从几个字节到成百上千字节不等。Literal中除了一些系统可以解析的number、date等类型,都作为纯文本内容进…

继续阅读4store源码解析系列(2)–资源ID的存储