SPARQL构造查询分段

SPARQL构造查询分段,sparql,rdf,semantic-web,dbpedia,linked-data,Sparql,Rdf,Semantic Web,Dbpedia,Linked Data,我在DBpedia端点上运行SPARQL构造查询。查询用于获取描述所有电影的所有信息: construct { ?s ?p ?o } where { ?s a <http://dbpedia.org/ontology/Film>. { SELECT ?s ?p ?o { ?s ?p ?o } group by ?s ?p } } 构造 { ?s?p?o } 哪里 { 这是一个好主意。 { 选择s?p?o { ?s?p?o }

我在DBpedia端点上运行SPARQL构造查询。查询用于获取描述所有电影的所有信息:

construct
{
    ?s ?p ?o
}
where
{
    ?s a <http://dbpedia.org/ontology/Film>.
{
  SELECT ?s ?p ?o
  {
       ?s ?p ?o
  } 
  group by ?s ?p 
}


}
构造
{
?s?p?o
}
哪里
{
这是一个好主意。
{
选择s?p?o
{
?s?p?o
} 
s?p分组
}
}

查询工作正常。问题是DBpedia将其停止在10.000。我试图使偏移量为0,但它确实会产生任何影响。而且,我不认为chrome会支持显示一百万个三倍。因此,我在想是否有一个解决方案或提示,以便我可以按段检索数据,这意味着我从之前停止的位置开始。

您可以尝试
按顺序
限制
偏移
。您还可以显著简化查询:

construct
{
   ?s ?p ?o
}
where
{
   ?s a <http://dbpedia.org/ontology/Film> .
   ?s ?p ?o
} ORDER BY ?s ?p ?o
  OFFSET 0 LIMIT 1000
构造
{
?s?p?o
}
哪里
{
这是一个好主意。
?s?p?o
}s?p?o订购
偏移量0限制1000

然后更改每个“段”的
偏移量

您可以尝试
顺序、
限制
偏移量
。您还可以显著简化查询:

construct
{
   ?s ?p ?o
}
where
{
   ?s a <http://dbpedia.org/ontology/Film> .
   ?s ?p ?o
} ORDER BY ?s ?p ?o
  OFFSET 0 LIMIT 1000
构造
{
?s?p?o
}
哪里
{
这是一个好主意。
?s?p?o
}s?p?o订购
偏移量0限制1000

然后更改每个“段”的偏移量。

子查询的想法是什么?只是为了理解您想要实现的目标,也许可以帮助您理解为什么它没有意义。@AKSW我使用子查询的唯一原因是能够使用group by。我之所以想使用GROUPBY,特别是在这里,是因为我想得到所有的主语和它们的谓词,以及所有谓词的所有对象。无论如何,从DBpedia检索关于电影的所有数据不是一个好主意,因为它们将偏移量停止在40000。我发现了一种非常高效、快速但很轻的数据格式,称为RDF HDT。整个DBpedia RDF转储都是以这种格式提供的数据集。在您的问题中,您没有提到分组。在子查询中,您按
?s
?p
进行分组,但您选择
?o
作为一个简单变量,它不是有效的SPARQL。@AKSW它得到了我需要的结果。这才是真正重要的。问题不在于查询的准确性,而在于从DBpedia获取所有结果。因为后者在10.000处停止查询,所以我想从停止的地方继续。答案很简单:我不知道补偿的作用。即使我知道了“偏移量”的作用,它也帮不了我,因为DBpedia将偏移量停止在40000。因此,我决定下载整个DBpedia RDF转储文件。不是DBpedia停止,而是Virtuoso有一些奇怪的限制,可以通过使用子选择来解决。但同样,这种分组没有意义。正如我所说,这是无效的。这在另一个三重存储上不起作用。子查询的想法是什么?只是为了理解您想要实现的目标,也许可以帮助您理解为什么它没有意义。@AKSW我使用子查询的唯一原因是能够使用group by。我之所以想使用GROUPBY,特别是在这里,是因为我想得到所有的主语和它们的谓词,以及所有谓词的所有对象。无论如何,从DBpedia检索关于电影的所有数据不是一个好主意,因为它们将偏移量停止在40000。我发现了一种非常高效、快速但很轻的数据格式,称为RDF HDT。整个DBpedia RDF转储都是以这种格式提供的数据集。在您的问题中,您没有提到分组。在子查询中,您按
?s
?p
进行分组,但您选择
?o
作为一个简单变量,它不是有效的SPARQL。@AKSW它得到了我需要的结果。这才是真正重要的。问题不在于查询的准确性,而在于从DBpedia获取所有结果。因为后者在10.000处停止查询,所以我想从停止的地方继续。答案很简单:我不知道补偿的作用。即使我知道了“偏移量”的作用,它也帮不了我,因为DBpedia将偏移量停止在40000。因此,我决定下载整个DBpedia RDF转储文件。不是DBpedia停止,而是Virtuoso有一些奇怪的限制,可以通过使用子选择来解决。但同样,这种分组没有意义。正如我所说,这是无效的。这对另一家三联店不起作用。