Sparql 如何获取Wikipedia根目录的末端叶子

Sparql 如何获取Wikipedia根目录的末端叶子,sparql,dbpedia,Sparql,Dbpedia,我只想得到维基百科分类中的叶子,但不知道如何得到。我可以在一天之内拿到所有的叶子 SELECT ?subcat WHERE { ?subcat skos:broader* category:Buildings_and_structures_in_France_by_city . } 这给了我所有的中间叶子(比如类别:建筑物和结构),但我只想得到树的最后/底部叶子。不能再分裂的叶子。我如何才能做到这一点?您应该能够简单地过滤掉不是终端叶的?subcat的值: select ?subcat

我只想得到维基百科分类中的叶子,但不知道如何得到。我可以在一天之内拿到所有的叶子

SELECT ?subcat WHERE  {
?subcat  skos:broader* category:Buildings_and_structures_in_France_by_city .
} 
这给了我所有的中间叶子(比如类别:建筑物和结构),但我只想得到树的最后/底部叶子。不能再分裂的叶子。我如何才能做到这一点?

您应该能够简单地过滤掉不是终端叶的
?subcat
的值:

select ?subcat where  {
  ?subcat skos:broader* category:Buildings_and_structures_in_France_by_city .
  filter not exists { [] skos:broader ?subcat }
} 
然而,当我运行它时,我没有得到任何结果。我不知道为什么。我猜这是Virtuoso(DBpedia上的SPARQL端点)的一个特性,但我不确定。但是,我们可以编写一个等价的查询,计算每个?子类别的skos:browner大于的事物数量,并仅选择那些skos:browner大于none的事物:

select distinct ?subcat where {
  ?subcat  skos:broader* category:Buildings_and_structures_in_France_by_city .
  optional { ?subsubcat skos:broader ?subcat }
} 
group by ?subcat
having count(?subsubcat) = 0