如何从 DBpedia 获取所有组织的列表?“组织”是指任何类型的实体,可以是组织或组织的任何子类。
我发现了如何从 DBPedia 获取所有公司的问题?但这在当前的 DBpedia SPARQL 网络版本中不起作用,我无法调整查询。
简单地获取作为实例dbo:Organization或其子类的所有资源:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?org { ?org a/rdfs:subClassOf* dbo:Organisation . }
Run Code Online (Sandbox Code Playgroud)
但是,正如您链接的问题所示,DBpedia 对返回的结果数量有上限。因此,正如对上述问题的回答一样,您可以使用子查询LIMIT和OFFSET以分块获取所有结果:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?org {
SELECT DISTINCT ?org {
?org a/rdfs:subClassOf* dbo:Organisation .
} ORDER BY ?org
}
LIMIT 10000 OFFSET 0
Run Code Online (Sandbox Code Playgroud)
这将为您提供前 10000 个结果。为了获得下一个10000,只需添加10000至偏移:LIMIT 10000 OFFSET 10000。然后,接下来的 10000 与OFFSET 20000,依此类推。