Xsd 使用字符串的wikidata sparql查询

Xsd 使用字符串的wikidata sparql查询,xsd,sparql,wikidata,Xsd,Sparql,Wikidata,我想查询wikidata,以获取基于某些技术(区块链、solid、RDF等)的条目。这些潜在的技术将动态变化,因此,我将它们作为一段代码中的文本注入。关键是我在尝试注入文本(字符串)时没有得到任何结果 在SPARQL的下一部分中,您可以看到我尝试过的五种不同方法(都失败了),通过 前缀wd: 前缀wdt: 前缀xsd: 前缀rdfs: 选择?项目 何处{ #测试1?项目wdt:P144?o过滤器(str(?o)=“区块链”)。 #测试2?项目wdt:P144?o过滤器(正则表达式(?o,'区块链

我想查询wikidata,以获取基于某些技术(区块链、solid、RDF等)的条目。这些潜在的技术将动态变化,因此,我将它们作为一段代码中的文本注入。关键是我在尝试注入文本(字符串)时没有得到任何结果

在SPARQL的下一部分中,您可以看到我尝试过的五种不同方法(都失败了),通过

前缀wd:
前缀wdt:
前缀xsd:
前缀rdfs:
选择?项目
何处{
#测试1?项目wdt:P144?o过滤器(str(?o)=“区块链”)。
#测试2?项目wdt:P144?o过滤器(正则表达式(?o,'区块链'))。
#测试3?项目wdt:P144?o过滤器(regex(?o,“^blockchain$”)。
#测试4?项目wdt:P144“区块链”。
#测试5?项目wdt:P144“区块链”。
}
有线索吗?
提前感谢您的时间和支持。

wdt:P144的值是Wikidata Entite,因此,
?o
的值是类似于
wd:123
的URI或其他。很明显,这些URI上的字符串过滤器与
SELECT?item WHERE{item wdt:P144?o.?o rdfs:label?ol filter(lang(?ol)='en')filter(contains(str(?ol),'blockchain'))不匹配
可选实体搜索API:
SELECT?item WHERE{SERVICE wikibase:mwapi{bd:serviceParam wikibase:api“EntitySearch”。bd:serviceParam wikibase:endpoint“www.wikidata.org”。bd:serviceParam mwapi:search“区块链”。bd:serviceParam mwapi:language“en”。?o wikibase:apiOutputItem mwapi:item。?num wikibase:apiOrdinal true.}?item wdt:P144?o}按ASC(?num)订购限制20
非常感谢@AKSW的回答。这很有意义。你有博客或youtube频道跟踪你吗
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX xsd: <www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?item 
WHERE { 
#test1    ?item wdt:P144 ?o FILTER (str(?o) = 'blockchain' ) .
#test2    ?item wdt:P144 ?o FILTER (regex (?o,'blockchain')) .
#test3    ?item wdt:P144 ?o FILTER (regex (?o,'^blockchain$')) .
#test4    ?item wdt:P144 'blockchain'  .
#test5    ?item wdt:P144 "blockchain"  .
}