使用过滤器的简单SPARQL查询的性能

时间:2019-01-07 20:39:06

标签: sparql rdf rdflib

我有一个简单的SPARQL查询,该查询使用FilterUnion参数在图中查找共享节点。该查询需要很长时间才能编译。我希望看看是否有可能在结构上重新排列以提高其性能。

共享节点是以下三种的任何一种

  1. 在两个对象之间共享
  2. 在两个主题之间共享,并且
  3. 一个三重的对象,而另一个三重的对象。

我在要求的another question中提供了可能数据的图表。

查询如下:

    """SELECT DISTINCT ?b
       WHERE{ 
       {
          ?b ?p1 ?a.
          ?b ?p2 ?c.
          filter(?a != ?c).
      }
       UNION
       {
          ?a ?p1 ?b.
          ?c ?p2 ?b.
          filter(?a != ?c).
      }
       UNION
       {
          ?a ?p1 ?b.
          ?b ?p2 ?c.
          filter(?a != ?c).
       }}
       """

自从我发布此文章以来,我进行了一些实验,并了解到最耗时的部分是中间部分。

       {
          ?a ?p1 ?b.
          ?c ?p2 ?b.
          filter(?a != ?c).
      }

0 个答案:

没有答案