3

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

例如,Wikidata 有以下声明:

wd:Q1524522 wdt:P2002 'bouletcorp'

但是,按照twitter 中使用的情况,假设我将使用该值Bouletcorp,这将给出以下查询,并且无法找到任何匹配的实体:

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

试试看

一种解决方案可能是使用带有不区分大小写标志的正则表达式,如下所示:

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

试试看

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

4

0 回答 0