SPARQL中的year()函数

时间:2015-02-16 15:50:21

标签: rdf sparql jena semantic-web

我想在SPARQL中进行一个返回2007年项目的查询。 我试过这个:

    String requete7String = 
            "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> "
          + "PREFIX dc: <http://purl.org/dc/elements/1.1/> "
          + "PREFIX rss: <http://purl.org/rss/1.0/> "
          + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
          + "SELECT ?item "
          + "FROM <http://www.w3.org/2001/sw/SW-FAQ-feed.rdf> "
          + "WHERE { "
          + "  ?item rdf:type rss:item . "
          + "  ?item dc:date ?dateString ."
          + "  bind(strdt(?dateString, xsd:dateTime) as ?date) "
          + "  FILTER (year(?date) = 2007) "
          + "}";

但它什么也没有回报。 FILTER (year(?date) = 2007)行无效。但是,我在SPARQL文档中看到函数year()采用dateTime并返回一个整数,所以你能告诉我为什么它可能不起作用吗?

1 个答案:

答案 0 :(得分:3)

2007-04-12T00:00 + 00:00“^^ xsd:dateTime不是合法的xsd:dateTime(时间部分应该是00:00:00,而不是00:00。因此它不是合法值和年份(非法)是错误的,过滤器是错误的。