A Domain-specific language is necessary for maximum customizability.

There will be a [Range] object containing information about the time range. And a [Patterns] object containing the information on what to look for. A [Pattern] can be executed within a certain [Range] - this should be an operation of a general [Processor] object.

Examples / Proposals

"set range 1.1.-1000 1.1.3000 daily"  - (by the way, daily should be the default)
-> gives a [Range] object

"set range 1950 2000 0.01d" - for scanning from 1.1.1950 till 31.12.2000 with intervals of 0.01 days
-> gives a [Range] object

"set range 1950 1970 dh jfk"
-> All "day horoscopes" (dh) for the radix horoscope named "jfk" in the symbol table, within 1950 and 1970

"def dh_jfk"
-> Put the currently defined range into the symbol table with the name "dh_jfk".