次の SPARQL クエリがあります。
PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>
PREFIX dtp: <http://dtp-126.sncs.abdn.ac.uk#>
PREFIX dbp: <http://dbpedia.org/resource/>
SELECT ?value ?time WHERE {
dtp:CD7514 ssn:madeObservation ?observation .
?observation ssn:observedProperty ?property .
?property ssn:hasValue <http://dbpedia.org/resource/Temperature> .
?observation ssn:observationResult ?observationValue .
?observationValue ssn:hasValue ?value .
?observationValue ssn:observationSamplingTime ?time
FILTER(?time > 1291908000)
}
簡単に言えば、センサー dtp:CD7514 からすべての温度センサーの観測値を選択し、指定されたタイムスタンプよりも小さい値を除外しています。
ただし、フィルター制約を追加すると、0 の結果が返されます (この時間領域に一致する観測がある場合)。
?time が varchar/text/String データ型であるため、比較を実行できない可能性はありますか? もしそうなら、SPARQL内で変換を行うことは可能ですか?