zooniverse / caesar

Backend automation and orchestration
https://zooniverse.github.io/caesar
Apache License 2.0
13 stars 13 forks source link

Allow relevant reductions from project level reducers #1502

Open lcjohnso opened 1 year ago

lcjohnso commented 1 year ago

Current Behavior: Reducer configurations can specify relevant reductions, additional input information necessary for reducer computations. Example: For PH TESS, its subject reducer can define relevant user reductions via the user_reducer_keys configuration item. However, it is implicitly assumed in the code that the relevant reduction shares the same reducible as the reducer -- for the above example, the workflow.

Desired Behavior: Allow a configurable reducible_id that accompanies the reduction key input via [subject,user]_reducer_key. In most cases, this should default to the same reducible_id as for the reducer where it is being configured, but allowing a different reducible_id & reducible_type will allow project level reductions to be imported for use by a reducer. Example 1: a project level user reduction could be import by a workflow level subject reducer (e.g., project level user skill reductions imported into a workflow level subject probability reducer). Example 2: a workflow level subject reduction could be imported by a project level user reducer (e.g., workflow level subject difficulty reduction imported into a project level user skill reducer).

lcjohnso commented 1 year ago

Specifically in code -- reducible for relevant reductions is assumed to be same as for reducer. See example here: https://github.com/zooniverse/caesar/blob/49db16965e6692b132bb7f91afdb591c871daeac/app/models/runs_subject_reducers.rb#L51