gpt4 book ai didi

rdf - 从 DBPedia 中提取所有类型及其英文标签

转载 作者:行者123 更新时间:2023-12-05 08:13:33 27 4
gpt4 key购买 nike

我正在尝试使用此 SPARQL 查询从 DBpedia 获取所有类型:

select ?type {
?type a owl:Class .
}

现在,我还想包括查询返回的每种类型的英文标签。我需要在查询中添加什么?

最佳答案

这是学习更多有关如何从 DBpedia 检索任意信息的好机会。您的第一个查询(添加了限制)是:

select ?type {
?type a owl:Class .
}
limit 10

SPARQL results

其中一个结果是 http://dbpedia.org/ontology/Animal ,您实际上可以在 Web 浏览器中访问它,相应的页面将显示所有该资源属性。对于animal,没有那么多,但我们感兴趣的是

rdfs:label  Tier
rdfs:label animal
rdfs:label animal
rdfs:label žival
rdfs:label 동물

我们在这里感兴趣的属性是 rdfs:label,因此我们可以将查询扩展到

select ?type ?label {
?type a owl:Class .
?type rdfs:label ?label .
}
limit 10

我们实际上可以使用分号将其缩写为:

select ?type ?label {
?type a owl:Class ;
rdfs:label ?label .
}
limit 10

SPARQL results

虽然该查询将为每个 ?type 返回多个结果;事实上,每个 ?label 一个,所以我们得到的结果包括:

http://dbpedia.org/ontology/Animal  "Tier"@de
http://dbpedia.org/ontology/Animal "animal"@en

请注意,标签不仅仅是字符串,而是带有语言标签的 RDF 文字。在 SPARQL 中,我们可以使用 lang 获取 RDF 文字(如果有的话)的语言标签。功能。可以使用 = 运算符将语言标记与 "en" 进行比较,但更可靠的解决方案是使用 langMatches ,它将处理更棘手的情况,例如文档中给出的情况

filter langMatches( lang(?title), "FR" )

可用于为 ?title 查找选择以下两个值,而 filter( lang(?title) = "fr") 只会找到第一个:

"Cette Série des Années Soixante-dix"@fr
"Cette Série des Années Septante"@fr-BE

使用 langMatches、lang 和 filter,我们可以再次将查询更新为

select ?type ?label {
?type a owl:Class ;
rdfs:label ?label .
filter(langMatches(lang(?label),"EN"))
}
limit 10

SPARQL Results

它检索 DBpedia 类型及其英文标签。

关于rdf - 从 DBPedia 中提取所有类型及其英文标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18733225/

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