[英]Writing a SPARQL query with Jena, FILTER and REGEX
我用REGEX
用JENA
编写了我的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.