gpt4 book ai didi

SPARQL 日期范围

转载 作者:行者123 更新时间:2023-12-02 22:09:27 27 4
gpt4 key购买 nike

我正在尝试获取特定日期之间的所有记录。日期字段以这种格式出现:2012-01-31 .我认为它的类型是:<http://www.w3.org/2001/XMLSchema#date>

请问我如何修改下面的查询以提取日期大于 2012-01-31 的记录?

PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX lrppi: <http://landregistry.data.gov.uk/def/ppi/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX lrcommon: <http://landregistry.data.gov.uk/def/common/>

SELECT ?county ?postcode ?amount ?date
WHERE
{
?transx lrppi:pricePaid ?amount .
?transx lrppi:transactionDate ?date .
?transx lrppi:propertyAddress ?addr.

?addr lrcommon:postcode "PL6 8RU"^^xsd:string .
?addr lrcommon:postcode ?postcode .

# Cant get this line to work
# ?date lrppi:transactionDate ?date . FILTER ( ?date >= "1327968000"^^xsd:date )

OPTIONAL {?addr lrcommon:county ?county .}
}
ORDER BY ?postcode

如果你想玩这个,你可以在这里输入你的查询: http://landregistry.data.gov.uk/landregistry/sparql/sparql.html

最佳答案

这就是 FILTER 子句的设计目的。

Expressions and Testing Values SPARQL 规范的部分详细介绍了这一点,该部分的第一个示例几乎涵盖了日期过滤。

编辑

如果您是 SPARQL 的新手,那么我建议您阅读不错的 SPARQL 教程,例如 SPARQL by Example这是由规范作者之一编写的。这将带您了解 SPARQL 的各个部分,应该可以帮助您更好地了解 RDF 数据模型和查询语言。

就日期而言,它们使用 XML schema datatypes 表示,例如将今天表示为日期如下:

"2013-03-22"^^xsd:date

链接规范涵盖了各种数据类型的词法形式。

因此对于您的示例,它将是以下内容:

FILTER ( ?date >= "2012-01-31"^^xsd:date )

如果您从 UNIX 时间戳开始并尝试获取 xsd:date,请参阅 Generating an xsd:dateTime in shell script这可能会提供一个有用的起点。

关于SPARQL 日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com