gpt4 book ai didi

rdf - 获取 DBPedia 信息框类别

转载 作者:行者123 更新时间:2023-12-04 10:30:18 25 4
gpt4 key购买 nike

我目前正在寻找一种查询方式 DBPedia's Infobox Onyology database通过 SPARQL 端点获取类列表、选定类的子类以及给定类的属性。就我所能找到的而言,你要么需要知道你正在寻找的属性(property),要么需要搜索特定的东西——我发现的所有例子似乎都基于你想要搜索特定东西的想法(例如高于某个海拔的城市人口等),而我想建立一些可以有效“浏览”类别的东西。例如,从 this class hierarchy chart 上的“owl:Thing”的子类列表开始并向用户显示所选子类的子类列表。似乎可以通过 mappings wiki 浏览类似的内容,但最好直接查询 SPARQL 端点。

是否有一些简单的 SPARQL 查询可以返回这些类的可用类和属性?

更新:
我想出了一种方法来获得看起来的类层次结构,通过迭代 this query:

SELECT ?subject WHERE {
?subject rdfs:subClassOf owl:Thing
}

它返回 owl:Thing 的子类列表,如果我用其中一个子类替换 owl:Thing,我会得到它的子类列表,直到没有子类,此时我可以选择所有具有由所选子类给出的类型。不过,我仍然不太确定如何获得子类共有的所有属性。

更新 2
现在越来越近了。这个查询让我得到所有也是一个国家的属性(dbpedia:property 的 child ),以及它们的标题:
SELECT DISTINCT ?prop ?title WHERE {
?country ?prop ?value.
?country a <http://dbpedia.org/ontology/Country>.
?prop rdf:type rdf:Property.
?prop rdfs:label ?title
}

这实际上就是我真正要求的。我现在要做的最后一件事是尝试按照它们出现的页数对它们进行排序(大概最常见的属性将是最感兴趣的属性)。

最佳答案

好的,所以我实际上或多或少地弄清楚了如何做到这一点,所以我将此作为答案提交,而不仅仅是编辑。似乎正是我想要的东西是通过使用 this query 遍历类层次结构开始的。 :

SELECT ?class ?label WHERE {
?class rdfs:subClassOf owl:Thing.
?class rdfs:label ?label.
FILTER(lang(?label) = "en")
}

每次将选定的结果输入到查询中代替 owl:Thing。

一旦用户选择了他们想要的最低级别的类,要显示属性列表,按照它们出现的条目数量降序排列,我使用 this query :
SELECT ?prop ?title WHERE {
?country ?prop [].
?country a <http://dbpedia.org/ontology/Country>.
?prop rdf:type rdf:Property.
?prop rdfs:label ?title
} ORDER BY DESC(COUNT(DISTINCT ?country))

当然,如果您实际查看这些结果,会发现其中有一些时髦的属性没有非常具有描述性的标签(“s”?什么?),但这至少是我首先要寻找的。

关于rdf - 获取 DBPedia 信息框类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5364851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com