buda-base / lds-pdi

http://purl.bdrc.io BDRC Linked Data Server
Apache License 2.0
2 stars 0 forks source link

adding dates and datetimes as arguments #198

Closed eroux closed 3 years ago

eroux commented 3 years ago

see

https://github.com/buda-base/lds-queries/issues/44

MarcAgate commented 3 years ago

Done as of commit d8ba025

DateTime parameter names must be prefixed by D_ and follow (as a string) the following formats:

Pattern Example
dd-MM-yy 31-01-12
dd-MM-yyyy 31-01-2012
MM-dd-yyyy 01-31-2012
yyyy-MM-dd 2012-01-31
yyyy-MM-dd HH:mm:ss 2012-01-31 23:59:59
yyyy-MM-dd HH:mm:ss.SSS 2012-01-31 23:59:59.999
yyyy-MM-dd HH:mm:ss.SSSZ 2012-01-31 23:59:59.999+0100
EEEEE MMMMM yyyy HH:mm:ss.SSSZ Saturday November 2012 10:45:42.720+0100

see https://github.com/buda-base/lds-queries/commit/5157f04158e1a2cb2b65ee3b787bf48644665c6d for a query example.

eroux commented 3 years ago

This doesn't seem to work... I've added a real query but it seems the date argument is not replaced for some reason:

http://purl.bdrc.io/query/graph/latestsyncssince?D_SINCE=2020-08-20T00:00:00

doesn't give any result, and the ldspdi log says that the query it asked fuseki is:

CONSTRUCT 
  { 
    ?iinstance ?ip ?io .
    ?iinstance tmp:datesync ?d .
  }
WHERE
  { { SELECT  ?iinstance (MAX(?sdate) AS ?d)
      WHERE
        { ?le  adm:logDate  ?sdate
          FILTER ( ?sdate > ?D_SINCE )
          ?le  rdf:type        adm:Synced .
          ?va  adm:logEntry    ?le ;
               adm:adminAbout  ?v .
          ?v   :volumeOf       ?iinstance
        }
      GROUP BY ?iinstance
      ORDER BY DESC(?d)
      LIMIT   10
    }
    ?iinstance  :instanceReproductionOf  ?i .
    ?i        ?ip                   ?io
    FILTER ( ( ?ip = tmp:thumbnailIIIFService ) || ( ?ip = skos:prefLabel ) )
  }

where ?D_SINCE has not been replaced.