如何在概念搜索中过滤维基数据标签?

How to filter wikidata labels in concept search?

我正在使用以下代码获取给定概念的 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

这 returns 以下维基数据标签。

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

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

在 DBpedia I 运行 中,下面的查询用于识别单词是否在 computer science.

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

是否可以在维基数据中做同样的事情(即检查 computer science 是否是给定概念的祖先,而 returns 是否只有维基数据标签)。

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

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

下面提到的 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