如何使用skos获取子节点和父节点之间的路径长度:更宽*

时间:2015-04-02 16:12:50

标签: sparql dbpedia

我有以下查询从父类别

获取终端叶子节点
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

如何获取子节点?subcat和父节点category:Buildings_and_structures_in_France_by_city之间的路径长度,以便输出类似?

enter image description here

1 个答案:

答案 0 :(得分:2)

如果真正的任务是在法国寻找建筑物和建筑物,那么你可以在一些适当的类型中询问该类别的东西。例如,

select distinct ?building where {
  values ?type { dbpedia-owl:ArchitecturalStructure
                 dbpedia-owl:Building
                 dbpedia-owl:Place }
  ?building a ?type ;
            dcterms:subject/skos:broader* category:Buildings_and_structures_in_France_by_city 
} 

SPARQL results

这只得到了大约700个结果。如果您发现一些不是法国人,请查看他们的价值观,看看您可以根据他们排除它们。也许您可以添加过滤器来限制纬度和经度,或国家/地区值等。