implement filtration constraints
Closed this issue · 6 comments
Combinations of criteria between different values of the same attribute use OR logic.
Combinations of criteria between different attributes use AND logic.
Any selection of a value of an attribute should automatically limit options of values in the other attribute.
Otherwise senseless null selections are possible.
Upon each selection of an attribute's value, automatically filter the values of the other attribute.
The filter option should control filters of an attribute with its own selections.
I will need a novel data variable.
-
totalEntitiesSets
-all entities' attributions to sets, without regard for any filters
-always apply filters to these total collections -
accessEntitiesSets
-only includes entities' and their values of attributes that should still be accessible in the sets' menu
-each filter for processes only affects values of compartments
-each filter for compartments only affects values of processes
-the idea is to restrict the options according to appropriate AND/OR logic
-update with every change to filters -
filterEntitiesSets
-only includes entities and their values of attributes that pass filters
-update with every change to filters
-always use these entities to determine candidate entities
The different types of data need different filtration procedures.
-
totalEntitiesSets
-filters do not apply -
accessEntitiesSets
-filter entities by AND/OR logic
-do not filter entities' values of attributes -
filterEntitiesSets
-filter entities' values of attributes
-filter entities
I need to consider the problem more.
I am not confident that the different filtration procedures are an adequate solution.
Here is the idea for the accessEntitiesSets...
Selections of compartments do not filter entities or entities' compartments in order to keep other compartments available for OR logic.
Selections of compartments do filter entities' processes in order to enforce AND logic.
Example
Filters: compartments (c), processes (none)
If a reaction's compartments do not include c, then do not filter the compartments.
However, do remove all of the reaction's processes.
That way the reaction's compartments will still be viable options while its processes will not.
Only filter (remove) a reaction if it neither has any compartments (removed due to process filters) nor any processes (removed due to compartment filters).