2016-03-04 84 views
0

我试图在http://www.linkedmdb.org/snorql和Jena(java)上运行此查询以获取标题为“NVA”的所有数据集。SPARQL正则表达式不显示应该显示的内容

select ?f where { 

      ?f dc:title ?s. 
      FILTER(REGEX(?s, "NVA", "i")). 

} 

然而,它只显示这个结果http://data.linkedmdb.org/page/film/2532而不是http://data.linkedmdb.org/page/film/4958(一个我应该得到)。

但是通过运行此查询,我只得到了第二个数据集(4958),而不是第一

select ?f where { 

      ?f dc:title "NVA" 

} 

我想知道为什么我的过滤器工作不正常?我应该添加什么来获取我的关键字在我的正则表达式中的确切标题的数据集?

谢谢。

回答

2
FILTER(REGEX(?s, "NVA", "i")). 

“i”表示不区分大小写的匹配。 “NVA”匹配字符串的任何部分。

?f dc:title "NVA" 

更像:

?f dc:title ?s. 
FILTER REGEX(?s, "^NVA$") 
+1

仍然没有显示结果。 – M20