For `offline' calibrations we know apriory the data validity periods. This is how they might look like Figure 3.
In this example, calibrations cal1,2 and 3 were done first,
and then cal4 was stored to superceed part of the cal3 validity
period. For the interval
calibrations are absent.
Again, it is easy to see that one can make bad queries that ask for non-existant data or overlap multiple validity intervals. For example as in Figure 4
A few side notes.
Notice that validity of cal4 overlaps part of cal3. If we could break cal3 into two peices, to get rid of the overlap, but it would still be possible to make bad queries.
Notice also that we could extend this model by attaching labels to the calibrations. Let's say we call cal1, cal2 and cal3 `default' calibrations and cal4 `special Ian's calibrations'. In this extended model the getData() method would have an additional argument to specify `default' versus `special' calibrations. The bad query problem is still with us, even if we only query for `default' calibrations.