In this paper, we investigate the problem of evaluating Basic Graph Patterns (BGP, for short, a subclass of SPARQL queries) over dynamic Linked Data graphs; i.e., Linked Data graphs that are continuously updated. We consider a setting where the updates are continuously received through a stream of messages and support both insertions and deletions of triples (updates are straightforwardly handled as a combination of deletions and insertions). In this context, we propose a set of in-memory algorithms minimizing the cached data to efficiently and continuously answer BGP queries. The queries are typically submitted into a system and continuously result in the delta answers while the update messages are processed. To efficiently and continuously evaluate the submitted query over the streaming data, as well as to minimize the amount of cached data, we propose an approach where the submitted query is decomposed into simpler subqueries and the query evaluation is achieved by combining the intermediate answers of the subqueries. Using this approach, the proposed algorithms compute the delta answers of a BGP query in polynomial time and space. Note that for certain subclasses of BGP queries, we show that the evaluation can be achieved in constant or linear time and space. Consolidating all the historical delta answers, the algorithms ensure that the answer to each query is constructed at any given time.
翻译:本文研究了在动态链接数据图(即持续更新的链接数据图)上评估基础图模式(简称BGP,SPARQL查询的一个子类)的问题。我们考虑一种设置,其中更新通过消息流持续接收,并支持三元组的插入和删除(更新可直接处理为删除和插入的组合)。在此背景下,我们提出了一组内存算法,通过最小化缓存数据来高效、持续地回答BGP查询。查询通常被提交到系统中,并在处理更新消息时持续产生增量答案。为了在流数据上高效、持续地评估提交的查询,同时最小化缓存数据量,我们提出了一种方法:将提交的查询分解为更简单的子查询,并通过组合子查询的中间答案来实现查询评估。利用这种方法,所提出的算法以多项式时间和空间计算BGP查询的增量答案。值得注意的是,对于BGP查询的某些子类,我们证明了评估可以在常数或线性时间和空间内完成。通过整合所有历史增量答案,这些算法确保在任何给定时间都能构建每个查询的答案。