A Scenario is fork of the data in the Ontology created by applying a set of Actions and evaluating a set of Models.
The fork contains only the edits or changes from the base Ontology including modified Object properties, created Objects, deleted Objects, created link types, and deleted link types.
A Scenario is immutable once created. To "modify" a Scenario, create a new Scenario with a modified set of Actions or Models. You can also duplicate a Scenario along with its existing Actions and parameters by selecting the more options ... dropdown menu next to the name of the existing scenario.
A Model in Foundry is a function that estimates object properties given other object properties. This is most commonly used to estimate or forecast unknown values in the Ontology.
To use a model as part of a Scenario, wrap the model in a Function and use it in a Function-backed Action.
It was previously possible to evaluate a model in a Scenario without wrapping it in an Action if it was managed and deployed using modeling objectives. This feature has been deprecated and should no longer be used for new implementations. To learn more about this legacy feature in existing implementations, refer to the Scenario model selection guide.
A Domain describes the valid set over which Model can be evaluated.
A Domain is defined in terms of a set of Objects in the Ontology.
In the simplest case, a Domain will be defined as all Objects of a particular object type, but more complex sets can be constructed as well.
When evaluating a Model for Objects in a Domain, the results must be independent. That is, evaluating the Model over a subset of the Domain should yield the same results for those Objects as evaluating over the entire Domain.
Domains are primarily used to determine when and how Models should be evaluated in the context of Object-based applications.
However, they can also be used to improve application performance. For example, if only a subset of the Domain is used in an application, then the Model need only be evaluated over that subset. Since model results over Objects in the Domain must be independent, there is no concern that evaluating over the subset would yield different results.
For performance reasons, there are a few limitations that you should consider when building out your workflow using Scenarios.
.all()
or .allAsync()
methods in a Foundry Function.