有没有更好的方法来进行不区分大小写的查询?

时间:2017-03-28 15:08:57

标签: sparql wikidata blazegraph

我正在寻找一种以不区分大小写的方式匹配声明值的方法。

例如,维基数据有以下声明:

wd:Q1524522 wdt:P2002 'bouletcorp'

但是,在case used in twitter之后,让我们说我会使用值Bouletcorp代替,这将提供以下查询,并且无法找到任何匹配的实体:

SELECT ?item WHERE {
  ?item wdt:P2002 "Bouletcorp" .
}

try it

解决方案可能是使用带有不敏感案例标志的Regex,如下所示:

SELECT ?item WHERE {
  ?item wdt:P2002 ?twittername .
  FILTER (regex(?twittername, "Bouletcorp", "i"))
}

try it

但这个查询效率会低多少?难道没有更好的方法吗?据我了解,此查询将使SPARQL引擎通过正则表达式传递具有所请求属性值的所有三元组,这听起来效率低下。对于P2002来说,情况并不那么缓慢,但我猜一些拥有超过一百万个匹配声明的属性可能会有问题,不是吗?

0 个答案:

没有答案