We’ve recently been updating our Python EDTF library, which now contains a full implementation of the EDTF grammar, and corresponding Python objects. There’s also a basic English natural-language parser for adapting textual date descriptions to EDTF.
I took a rough-and-ready approach to converting from EDTF to ISO8601 plain dates, for in-database sorting and filtering. The basic idea is that each EDTF has upper_strict, lower_strict, upper_fuzzy and lower_fuzzy dates to represent strict bounds (the dates that are unambiguously within indicated range) and fuzzy bounds (the dates that are ambiguously within indicated range). Strict dates are used for sorting, fuzzy dates are used for filtering. I’m interested to hear everyone’s thoughts on this as an approach - there’s a couple of examples in the README.
The repository is at:
(The official LoC EDFT implementations page has been updated)
and I wrote an overview blog post explaining how we use it in GLAMkit, our CMS for museums, at:
Thanks everyone for the great thinking and inspiration!
Dr Greg Turner
Office: +61 1300 43 78 99