gpt4 book ai didi

sparql - 如何在概念搜索中过滤Wikidata标签?

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

我正在使用以下代码获取给定概念的wikidata labels(例如network analysis)。

SELECT ?item {
VALUES ?searchTerm { "network analysis" }
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:api "EntitySearch".
bd:serviceParam wikibase:endpoint "www.wikidata.org".
bd:serviceParam wikibase:limit 3 .
bd:serviceParam mwapi:search ?searchTerm.
bd:serviceParam mwapi:language "en".
?item wikibase:apiOutputItem mwapi:item.
?num wikibase:apiOrdinal true.
}
?item (wdt:P279|wdt:P31) ?type
}
ORDER BY ?searchTerm ?num


这将返回以下wikidata标签。

 wd:Q618079  --> related to electronics
wd:Q4417999 --> related to graph theory (computer science)
wd:Q60640547 --> related to scholary article


我想获得仅与计算机科学相关的 wikidata labels(即上述示例中的 wd:Q4417999)。

在DBpedia中,我运行以下查询来识别 computer science中是否有单词。

sparql.setQuery(" ASK { dbc:Network_analysis skos:broader{1,7} dbc:Computer_science } ")


是否可以在Wikidata中做同样的事情(即检查 computer science是否是给定概念的祖先,并且仅返回该Wikidata标签)。

如果有比执行祖先搜索更好的解决方案,请建议我。

如果需要,我很乐意提供更多详细信息。

最佳答案

下面提到的sparql查询解决了我的问题。

SELECT DISTINCT ?item {
VALUES ?searchTerm { "network analysis"}
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:api "EntitySearch".
bd:serviceParam wikibase:endpoint "www.wikidata.org".
bd:serviceParam wikibase:limit 3 .
bd:serviceParam mwapi:search ?searchTerm.
bd:serviceParam mwapi:language "en".
?item wikibase:apiOutputItem mwapi:item.
?num wikibase:apiOrdinal true.
}
?item (wdt:P279|wdt:P31) ?type
filter exists {?type wdt:P279*/wdt:P361* wd:Q21198}
}
ORDER BY ?searchTerm ?num

关于sparql - 如何在概念搜索中过滤Wikidata标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55981277/

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