我目前正在寻找一种方法来通过SPARQL端点查询DBPedia's Infobox Onyology database以获取类的列表,所选类的子类和给定类的属性。就我所能找到的,你要么需要知道你正在寻找的财产,要么搜索特定的东西 - 我发现的所有例子似乎都是基于这样的想法,即你想要搜索某些特定的东西(比如特定高程以上的城市人口等),而我想建立一些可以有效“浏览”类别的东西。例如,从this class hierarchy chart上的“owl:Thing”的子类列表开始,并向用户显示所选子类的子类列表。似乎可以通过映射wiki来浏览像这样的内容,但最好是直接查询SPARQL端点。获取DBPedia信息框类别
是否有一些简单的SPARQL查询会返回这些类的可用类和属性?
更新: 我想出了一个办法,通过this query:
SELECT ?subject WHERE {
?subject rdfs:subClassOf owl:Thing
}
它返回猫头鹰的子类列表以获得类层次看来,通过迭代:事情,如果我用其中一个子类替换owl:Thing,我得到这个子类的列表,直到没有子类为止,此时我可以选择所有具有由所选子类给出的类型的资源。不过,我仍然不确定如何获得子类的所有属性。
更新2 现在开始接近。该查询得到我的所有属性(DBpedia中的孩子:属性),同时也是一个国家,以及它们的标题:
SELECT DISTINCT ?prop ?title WHERE {
?country ?prop ?value.
?country a <http://dbpedia.org/ontology/Country>.
?prop rdf:type rdf:Property.
?prop rdfs:label ?title
}
这实际上是我真正要求。我现在要做的最后一件事是尝试按它们出现的页面数排序(可能最常见的属性将是最感兴趣的属性)。
无论出于何种原因,似乎没有当你选择国家而不是SpaceMission工作。它返回的是“twinCountry”。此外,它似乎只返回dbpedia中的东西:本体,而不是dbpedia:属性。我更新了主帖,看起来是对我原来的问题的回答。 – Paul 2011-03-20 01:06:15