SPARQL Wikidata查询服务中变量字符串的完全匹配

时间:2018-12-26 14:48:03

标签: sparql string-matching wikidata

https://query.wikidata.org的SPARQL Wikidata Query Service中变量字符串的完全匹配未提供我期望的结果。

我期望我能做到:

SELECT * {
  hint:Query hint:optimizer "None" .
  { SELECT DISTINCT (xsd:string(?author_name_) AS ?author_name) { wd:Q5565155 skos:altLabel ?author_name_ . } }
  ?work wdt:P2093 ?author_name .
} 

但是Wikidata查询服务没有返回任何结果:

但是,如果我使用“ =”比较,则可以匹配字符串:

SELECT * {
  hint:Query hint:optimizer "None" .
  { SELECT DISTINCT (xsd:string(?author_name_) AS ?author_name) { wd:Q5565155 skos:altLabel ?author_name_ . } }
  ?work wdt:P50 wd:Q5565155 .
  ?work wdt:P2093 ?author_name__ .
  FILTER (?author_name = ?author_name__)  
} 

使用Wikidata中的当前数据,我在此查询中返回了五行。

获取此数据的另一种方法是使用BIND

SELECT * {
  BIND("Knudsen GM" AS ?author_name)
  ?work wdt:P2093 ?author_name .
} 

我想类型转换可能有问题,因为它不返回任何内容:

SELECT * {
  BIND(xsd:string("Knudsen GM") AS ?author_name)
  ?work wdt:P2093 ?author_name .
} 

在原始查询中将xsd:string更改为STR或完全不进行转换的组合都不会产生结果行。

0 个答案:

没有答案