The algorithm used to generate the observations of a calculated feature might be based on other calculated features and these calculated features might again depend on other calculated features and so on. This provides a high level of flexibility when designing your calculation algorithms. The main question with calculated features that depend on other calculated features however is, if the algorithm should use the observations stored with the calculated features it depends on or if these observations should be recalculated. Both ways of handling these dependencies have their pros and cons. While using the (already calculated) observations of the calculated features needs less processing power and will therefore usually be faster (especially when dealing with huge amounts of data), the recalculation of observations provides results that are more up to date.
The Application Server leaves it up to the user how dependencies on other calculated features are handled by providing by providing the algorithm expansion functionality.Algorithm expansion expands the algorithm of a calculated feature with the algorithm of calculated features that are used as source features. In other words the algorithms of multiple calculated features are merged dynamically. Figure 1 shows an example of how algorithm expansion works. Note that algorithm expansion builds up a new algorithm but does not actually recalculate the calculated features it depends on.
To further improve performance and prevent unnecessary executions the algorithm expansion can be configured with the Algorithm expansion If older than setting. The value of this setting defines that if the last successful execution of a calculated feature that is used as a source feature in an other calculated feature is longer ago than the this time span the algorithm will be expanded. If the value for algorithm expansion if older than is set to zero the algorithm will always be expanded
Note that while each calculated feature has its own algorithm expansion if older than setting the setting for the topmost calculated feature will be used for all calculated source features (hierarchically) if the algorithm of that feature is executed.
Figure 1: Example of an Algorithm expansion.