How does Elody decide what to do?
As a developer, you can define Rules for Elody, which define when you want what program to be used. The rules are very general and flexible, but they roughly follow the pattern "WHEN situation X arises, THEN perform action Y."
For example, "WHEN the user uploads a file AND the keyword 'predict' is used, THEN run the prediction-program on the file."
Rules are able to execute programs, but they can also trigger each other. In this way, a single initial rule can start a chain reaction in which many different programs are combined to solve a complex task.
For example, predicting the revenue in an Excel file requires programs (1) to understand the format of the file, (2) to extract the requested data from the file, (3) to perform the actual prediction, and (4) to make a nice graph out of the result. These programs may come from many different developers. It is possible to create one Rule that defines that these 4 tasks need to be solved, and then other Rules can handle each individual task.
Sometimes, several rules stand in conflict with each other. At other times, several rules do the same thing, making them redundant.
For example, there may be several different programs suitable for making a prediction. In these cases, Elody uses the ratings the rules have received from users to determine which of them to use.
Additionally, rules are able to present options for the user to choose from.
For example, the content of the uploaded Excel file might be ambiguous. It could contain more than one list of revenue data that are suitable for prediction. In this case, the rules could generate one option for each of them. Other rules are then able to lean in and assign confidence values to the different options using heuristics.
When multiple options are present, Elody relies on their assigned confidence values to decide whether to ignore them, present them for the user to choose, or run them immediately without asking.
Planning a Scenario
Sometimes, you may not want Elody to mix everybody else's programs with your own. For these cases, you can define a Scenario Plan. To do so, go to the list of Scenario Plans and click "Create new scenario plan" (you must be logged in for the button to appear).
Note that a Scenario Plan has two different views: One for endusers, and one for Contributors. The former just gives a description of the plan. The latter allows you to inspect and change the technical details.
This allows you to create a link that will start a Scenario and immediately trigger any Rules you wish. This is very useful for demonstrating programs and rules to other people: You can prepare a link that other people only need to click to see an interactive demonstration of your program in action.
You can also use the Planning feature to mark individual Rules or Developers as trusted or distrusted. This overwrites the ratings Elody normally uses to choose what Rules to use. This allows you to test new rules that haven't yet received a high enough rating to run on their own, or to prevent existing rules from interfering with what you are trying to do.