一般的にSPARQLで数字を増やすにはどうしたらいいですか?具体的には、今日生まれた人だけを私に迎えるためのフィルターがあります: FILTER (STRLEN(STR(?born)) > 6 && (SUBSTR(STR(?born),6)=SUBSTR(STR(bif:curdate('')),6))
。 このフィルタをどのように拡張すると、今後2日間に生まれた人もいますか?SPARQLで日付を増やす方法は?
(私は受け入れる/使用にプライベート機能を無視するか、修正することができる)
UPDATE
提案された解決策は、DBpediaの上で動作しなかったので、私はヴィルトゥオーゾプライベート機能とそれを実装しますが、私は持っていますUNION
を使用することから離れて、フィルタを変更する方法、または今日、明日、明後日に生まれた人々を得るために、別のエレガントなソリューションを見つける方法はありません。現在、クエリのこの部分は、次のようになります?tday1
と?tday2'
で?tday
の交換
BIND ((SUBSTR(STR(?born),6)=SUBSTR(STR(now()),6,5)) as ?tday)
BIND ((SUBSTR(STR(?born),6)=SUBSTR(STR(bif:dateadd("day", 1, now())),6,5)) as ?tday1)
BIND ((SUBSTR(STR(?born),6)=SUBSTR(STR(bif:dateadd("day", 2, now())),6,5)) as ?tday2)
FILTER (STRLEN(STR(?born)) > 6)
FILTER (?tday) .
が正常に動作しますが、どのようにすべての3つの日付の結果では?
エンドポイントでデュレーションリテラルがサポートされている場合、日付に2日間の期間を追加することができます...名人を使用していますか? –
はい、Virtuoso。私は今日それを実行する場合、私は04-17、-18、-19を取得したい。しかし、29日にそれを実行すると、もちろん、04-29、04-30、および05-01が必要です。私は、他のケースでは 'op:numeric-add'を使うことを考えましたが、日付はありません。 –
日付と日付の時刻はxsd:durationにすることができます。 – AndyS