Sparql 如何从DBPedia获取所有组织?
如何从DBpedia获取所有组织的列表? 所谓“组织”,我指的是任何类型的实体,无论是组织的一个或任何子类Sparql 如何从DBPedia获取所有组织?,sparql,dbpedia,Sparql,Dbpedia,如何从DBpedia获取所有组织的列表? 所谓“组织”,我指的是任何类型的实体,无论是组织的一个或任何子类 我发现了这个问题,但在当前的DBpedia SPARQL web版本中,这个问题不起作用,我无法调整查询。您可以通过这样的查询获得所有组织,为您提供英文标签和维基百科页面,以获取这些资源: PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX o: <http://dbpedia.org/
我发现了这个问题,但在当前的DBpedia SPARQL web版本中,这个问题不起作用,我无法调整查询。您可以通过这样的查询获得所有组织,为您提供英文标签和维基百科页面,以获取这些资源:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX o: <http://dbpedia.org/ontology/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?orgURI ?orgName ?Wikipedia_page
WHERE {
?orgURI a o:Organisation .
OPTIONAL { ?orgURI rdfs:label ?orgName .
FILTER (lang(?orgName) = "en") }
OPTIONAL { ?orgURI ^foaf:primaryTopic ?Wikipedia_page }
}
ORDER BY ?orgName
要简单地获取作为
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 . }
这将为您获得前10000个结果。要获得下一个10000,只需将10000添加到偏移量:
限制10000偏移量10000
。然后,下一个10000加上偏移量20000,依此类推。当我读到你的答案时,我首先想到使用*
(零或更多)确实更有效,但只是更有效的方式。但事实上,它给出的结果比a | a/rdfs:subassof+
多。你怎么解释呢?我用count disctinct(350113)得到了同样数量的结果。事实上,在我建议的查询中使用它,它是350113加|+和386676加*。知道为什么吗?我不知道他们为什么不同。我认为它们不应该这样做。@AKSW是的,但所讨论的属性路径是a | a/rdfs:subassof+
与a/rdfs:subassof*
,如果我没有弄错的话,它们是相等的。如果可以看到您尝试的查询,那就太好了。“不起作用”的意思是-什么都没有返回,结果不完整,结果错误…在链接的查询中,前缀dbpedia owl
现在不同了dbo
请注意,我已经更新了我的答案:过滤器不在正确的位置。我已经更新了答案,以包含适当的前缀定义。
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 . }
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