loading x elements...

This page explains roughly how Elody goes about solving your problems, in non-technical terms. It assumes that you have already read .

How does Elody decide what to do?

The developers each upload programs to the platform and define rules when to execute those programs. The rules are very general and flexible, but they usually 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.

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. For example, one of the possible revenue data might be garbage because it consists only of zeros. Assigning this option a low confidence value means that Elody will discard it and it will never be mentioned to the user, so it doesn't waste their time.

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.

Parameters - how to customize Elody

It is possible to customize Elody's decision criteria.

If you are a businessman with strong requirements for correctness, you may want to configure Elody to only trust rules that have received high ratings from many people. Conversely, if you are a developer on the cutting edge, you may want to see every possible option, even the newest and completely untested ones.

When you have a Scenario open, you can click on the 'Parameters' tab on the left to see a list of parameters. See their tooltips for details.

It is also possible to set default values for the parameters in your account settings.


This is still under development. The parameters are likely to change in the future.


Changing these parameters is not retroactive!

If you increase security requirements, it will not get rid of unsafe things that have already been loaded before in the same scenario! This will probably not be a problem in most cases, but it can't be guaranteed to be safe.

If you want to make sure that nothing unsafe can be used, change the safety parameters in your account settings before starting the scenario.

Planning a Scenario

It is possible to start a Scenario with special preferences by clicking 'Plan a Scenario' at the top of this page.

This is mostly useful for developers: It allows you to define a link that will start a Scenario and immediately trigger any rule you wish. This makes it 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 is very useful for testing new rules that haven't yet received a high enough rating to run on their own, or for preventing existing rules from interfering with what you are trying to do.