Bonjour
Dans une requête SparQL je souhaite effectuer un filtre sur les POI pour ne récupérer que ceux modifiés récemment, avec l’attribut lastUpdateDatatourisme
. Voici un example de requête reproduisant le problème :
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX core: <https://www.datatourisme.fr/ontology/core#>
CONSTRUCT {
?pointOfInterest rdf:type <urn:resource>.
} WHERE {
?pointOfInterest core:lastUpdateDatatourisme ?lastUpdateDateTime.
FILTER(?lastUpdateDateTime >= xsd:dateTime(NOW() - "P30D"^^xsd:dayTimeDuration))
}
Celui-ci est censé filtrer les POI en ne gardant que ceux dont la dernière mise à jour date de moins de 30 jours, mais je n’ai aucun résultat en retour (avec le boutton « Prévisualisation des résultat » de l’éditeur de flux). La requête fonctionne lorsqu’on remplace l’expression par une date fixe, de la façon suivante :
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX core: <https://www.datatourisme.fr/ontology/core#>
CONSTRUCT {
?pointOfInterest rdf:type <urn:resource>.
} WHERE {
?pointOfInterest core:lastUpdateDatatourisme ?lastUpdateDateTime.
FILTER(?lastUpdateDateTime >= "2024-04-15T00:00:00.000"^^xsd:dateTime)
}
Existe-t-il un moyen pour construire une date en fonction de now(), et de comparer cette date à un attribut d’un POI ?
Cordialement,