获取DBpedia中可用的所有人员的SPARQL查询只显示一些人员数据,而不是所有人员数据
我正在编写SPARQL查询以获取DBpedia中的所有可用人员。我的问题是->获取DBpedia中可用的所有人员的SPARQL查询只显示一些人员数据,而不是所有人员数据,sparql,dbpedia,Sparql,Dbpedia,我正在编写SPARQL查询以获取DBpedia中的所有可用人员。我的问题是-> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX dbp: <http://dbpedia.org/property/> SELECT ?resource ?name WHERE { ?reso
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT ?resource ?name
WHERE {
?resource rdf:type dbo:Person;
dbp:name ?name.
FILTER (lang(?name) = 'en')
}
ORDER BY ASC(?name)
前缀rdf:
前缀dbo:
前缀dbp:
选择?资源?名称
在哪里{
?资源rdf:类型dbo:人员;
名字?名字。
筛选器(lang(?name)=“en”)
}
按ASC订购(?名称)
当我将输出作为HTML/csv/spreadsheet格式时,它给出了大约10000行。
但当我给出查询以获取总计数时
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT COUNT(*)
WHERE{
?resource rdf:type dbo:Person;
dbp:name ?name.
FILTER (lang(?name) = 'en')
}
前缀rdf:
前缀dbo:
前缀dbp:
选择计数(*)
在哪里{
?资源rdf:类型dbo:人员;
名字?名字。
筛选器(lang(?name)=“en”)
}
这是1783404
有人能提出一个解决方案,让所有行的人都可以在DBpedia中使用吗 DBPedia在这方面非常聪明,它不会用大量查询使服务器过载,并将匹配项限制在10000个。由于您正在对结果进行排序,因此可以使用
LIMIT
和OFFSET
获得10000个结果集。例如,要获得第二组10000个结果,请使用以下命令:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT ?resource ?name
WHERE {
?resource rdf:type dbo:Person;
dbp:name ?name.
FILTER (lang(?name) = 'en')
}
ORDER BY ASC(?name)
LIMIT 10000 OFFSET 10000
前缀rdf:
前缀dbo:
前缀dbp:
选择?资源?名称
在哪里{
?资源rdf:类型dbo:人员;
名字?名字。
筛选器(lang(?name)=“en”)
}
按ASC订购(?名称)
限制10000偏移10000
事实上,由于DBPedia将结果限制在10000个匹配项,因此
限制实际上并不必要。@这里所有的活动都是:我不知道这是这里出现问题的原因,但有没有办法让问题变得棘手?也许那时人们会发现这个答案更容易。