【问题标题】:Datatype format exception for xsd:dateTime in SPARQL query with Jena?使用 Jena 的 SPARQL 查询中 xsd:dateTime 的数据类型格式异常?
【发布时间】:2014-06-11 15:11:57
【问题描述】:

我正在尝试对 xsd:dateTime 格式的 RDF 属性应用范围查询。这是我的查询:

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
SELECT ?x WHERE { ?y <DATE:> ?x . 
FILTER(?x>"2014-06-05T10:10:10+0530"^^xsd:dateTime) }

它给出警告,结果什么也没有:

WARN [main] (Log.java:78) - Datatype format exception: "2014-06-11T12:44:22+0530"^^xsd:dateTime

我不明白问题是什么?我仅以xsd:dateTime 格式存储了该属性。

【问题讨论】:

    标签: java xsd rdf sparql jena


    【解决方案1】:

    我只以 xsd:dateTime 格式存储了该属性。

    简单的答案是不,您没有将该值存储为 xsd:dateTime。标准xsd:dateTime 说:

    dateTime 的词法空间由有限长度的序列组成 表格字符:'-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (zzzzzz)?

    您的日期时间的一部分与 2014-06-05T10:10:10 匹配。然而,

    zzzzzz(如果存在)表示时区(如下所述)。

    当我们往下看时,我们看到了

    时区的词法表示是以下形式的字符串: (('+' | '-') hh ':' mm) | 'Z',在哪里

    • hh 是代表小时的两位数字(根据需要使用前导零),
    • mm 是代表分钟的两位数字,
    • '+' 表示非负持续时间,
    • '-' 表示非正持续时间,
    • 'Z' 表示零时区偏移 (UTC+0)。

    您的时区不匹配。我想你的意思可能是+05:30。因此应该有

    "2014-06-05T10:10:10+05:30"^^xsd:dateTime
    

    果然,如果我们使用Jena的命令行工具qparse

    $ qparse --query query.rq # the original query, warnigns
    14:12:22 WARN  NodeValue            :: Datatype format exception: "2014-06-05T10:10:10+0530"^^xsd:dateTime
    14:12:22 WARN  NodeValue            :: Datatype format exception: "2014-06-05T10:10:10+0530"^^xsd:dateTime
    14:12:22 WARN  NodeValue            :: Datatype format exception: "2014-06-05T10:10:10+0530"^^xsd:dateTime
    PREFIX  xsd:  <http://www.w3.org/2001/XMLSchema#>
    
    SELECT  ?x
    WHERE
      { ?y <DATE:> ?x
        FILTER ( ?x > "2014-06-05T10:10:10+0530"^^xsd:dateTime )
      }
    
    $ qparse --query query.rq # the updated query, no warnings
    PREFIX  xsd:  <http://www.w3.org/2001/XMLSchema#>
    
    SELECT  ?x
    WHERE
      { ?y <DATE:> ?x
        FILTER ( ?x > "2014-06-05T10:10:10+05:30"^^xsd:dateTime )
      }
    

    【讨论】:

    • 非常感谢约书亚!!
    • @user3654540 这个故事的寓意是:如果系统告诉您有语法错误,请检查语法。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多