sparql模式匹配

时间:2012-10-24 17:30:18

标签: pattern-matching rdf sparql

我正在学习一些sparql,我正在以下网站上练习并发表一些声明:

http://data.semanticweb.org/snorql

但是,我正在尝试执行以下语句:

SELECT DISTINCT ?author WHERE { ?paper swrc:author ?author FILTER(regex(?paper, "2006")) . } .

它说没有结果。当我运行以下查询(没有过滤器)时:

SELECT DISTINCT ?paper WHERE { ?paper swrc:author ?author . }

我看到有一些论文在2006年的字符串中。我想知道为什么第一个查询没有返回这些条目,其中有2006年的纸质字符串。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:7)

?paper返回的RDF术语都是URI。 REGEX过滤器功能不适用于URI;它只适用于字符串。您可以使用STR(…)函数将URI转换为字符串。这将有效:

FILTER(regex(STR(?paper), "2006"))