An Analytical Study of Large SPARQL Query Logs
本文由法国里昂第一大学以及德国拜罗伊特大学的研究人员 Angela Bonifati、Wim Martens 和 Thomas Timm 发表。本文主要对查询日志进行深入分析的研究。
对于连接查询(CQs),他们的树状结构可以导致多项式时间的查询计算。但对于查询的更大类型,一个查询图的拓扑结构就少很多信息价值。例如一个树结构的SPARQL查询带有Opt操作,那么它就有NP完全的查询计算。
Conjunctive query(CQ)是SPARQL模式只使用三元组模式和And操作
表2展示了SPARQL查询的关键词使用数量和占比
不同的数据集有不同比例的查询类型,相同数据集的不同版本也有不同比例的查询类型
在各个数据集中0~2个三元组具有显著的占比。这些查询占BioP13和BioP14的全部查询。在BritM14和WikiData17占最少,因为BritM14使用了固定模板,WikiData17最多样化。
定义4.1 CPF(a conjunctive pattern with filters)是只使用三元组和And、Filter操作符的SPARQL模式。
在语料库中表3对96.37%的Select- and Ask查询进行了分类。剩下的查询要么使用O中的其他组合(0.30%),要么使用其他的特性(3.33%),比如Bind、Minus、子查询或属性路径。
在一些例子中,CPF模式与CQ连接查询模式可以扩展为带有Opt和Graph的查询。
0.54%的查询使用了子查询subqueries。WikiData使用子查询最多,占比它的9.74%。
Projection在查询复杂度评估中起到了至关重要的作用。
如果P是一个查询使用投影的CQ,那么这个问题就是NP-complete,如果投影不存在它的复杂性下降到P-time。
发现至少14.98%的查询使用projection,其中13.12%是Select查询,1.86%是Ask查询。
通常来说CQs 是NP完全,但是当他们的超树宽度以常量为界时,是P-time。
超树宽度可以衡量查询结构与树的相似度,宽度越小,相似程度越高。
图表3展示了链式、循环查询在Blazegraph和Postgresql上的不同执行时间
可以发现链式查询的工作量和环状查询的工作量之间的差异是不容忽视的。因此可以确定我们不能忽视图的表示以及查询的形状。
一个花瓣是一个由源节点s和目标节点t构成的图,并且存在一个至少两个从s到t的不相交节点的路径的集合。
一个花由链(雄蕊)、不是链的树(茎)和花瓣组装的图。
对于CQ、CQF和CQOF,花集查询比普通森林查询更显著接近100%的覆盖率。
属性路径有很大一部分是极为简单的。大体来说尽管在这种语义下评估属性路径是NP完全的,但是如果表达式是Ctract,这将会是P-time。显而易见的是只有一个表达式不是Ctrack。
streak定义:
文中研究了streak中三元组数量和查询结构如何随时间变化、查询的三元组数量、查询的形态。
发现高度复杂的查询不太可能出现在较长的streak中。