问题描述
我正在尝试检索纬度/经度边界框内过去 24 小时内编辑过的所有维基数据项
我通过边界框部分没问题,但我无法弄清楚“修改后”位。
This 是我能找到的最接近的示例,我试图从中找到:
SELECT ?place WHERE {
SERVICE wikibase:Box {
?place wdt:P625 ?location .
# looks like cornerwest must be south of cornereast
# otherwise you go around the globe
# this is lng lat
bd:serviceParam wikibase:cornerWest "Point(SW_LNG SW_LAT)"^^geo:wktLiteral .
bd:serviceParam wikibase:cornerEast "Point(NE_LNG NE_LAT)"^^geo:wktLiteral .
}
?place wdt:P31 ?placeCategory .
?place wdt:P625 ?placeCoords .
optional{ ?place wdt:P18 ?placePicture . }
BIND (Now() - ?modified as ?date_range)
FILTER (?date_range > 2)
}
没有结果。
解决方法
使用schema:dateModified
。顺便说一下,Blazegraph 支持日期和时间算法:
SELECT ?place ?placeLabel ?location WHERE {
BIND ((now() - "P7D"^^xsd:duration) AS ?date_)
SERVICE wikibase:box {
?place wdt:P625 ?location .
bd:serviceParam wikibase:cornerSouthWest "Point(55.000 55.000)"^^geo:wktLiteral.
bd:serviceParam wikibase:cornerNorthEast "Point(65.000 65.000)"^^geo:wktLiteral.
}
?place schema:dateModified ?date .
# hint:Prior hint:rangeSafe true .
FILTER (?date >= ?date_)
SERVICE wikibase:label { bd:serviceParam wikibase:language "ru". }
}
还有一个相当辅助的 wikibase:timestamp
谓词。