繁体   English   中英

使用Jena,FILTER和REGEX编写SPARQL查询

[英]Writing a SPARQL query with Jena, FILTER and REGEX

我用REGEXJENA编写了我的SPARQL查询: /^name$/i (实际上name是一个String变量,可以是任何值,带或不带空格,它作为方法的参数接收)。

这是String查询:

String authorquery = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +
                "PREFIX dc: <http://purl.org/dc/elements/1.1/> " +
                "PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT " +
                "?URIAutor WHERE { " +
                "?URIAutor foaf:name ?Autor." + 
                "FILTER (regex(?Autor, \"" + "/^" + name + "$/" + "\", 'i' )  ).}";

这并没有给我一个例外,但是当我写一个我确定在数据库中的名字时,并没有给我返回结果。 这就是我要查询的内容:我在数据库上的名称为“ Agatha Christie”。 如果name=Agatha我希望查询不返回任何内容。 我只想返回我名为“ Agatha Christie”的作者的URI(如果名称为“ Agatha Christie”(可以区分大小写))。 名称“ Bill Clinton”和“ Bill Gates”的情况相同,如果name=Bill我不想同时找到这两个URI,但是查询不返回任何结果。 仅当name="Bill Clinton" ,结果才应为name="Bill Clinton"

我不知道问题出在REGEX还是将REGEX变成一个在中间带有变量的字符串。

你可以帮帮我吗?

不要在正则表达式字符串中加上/.../ ^name$可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM