Build and Run Pad

The “Build and Run” pad is on the right of the screen when opening Soley Studio.
You can also open it manually from the Tools tab in the top menu.


How to use the Build and Run pad

The Build and Run pad allows the execution of rules or sequences. It is structured in four parts.

Build Project

When writing your project, don’t forget to click often on “Check for errors”. It builds your solution and checks for errors in your code.
If there are any errors in your project, they will appear in the Errors pad. If there are none, then No errors found will appear next to the Check for Errors box.

Input Data Graph

In this section, you can define the graph on which you wish to apply a rule or sequence, before executing it.

  • Empty will run the operation on an empty graph (i.e. in the memory). This only makes sense if the sequence you are executing contains a data import or a rule-based creation of graph elements.
  • Last result uses the result currently stored in the memory. You can use this setting to sequentially run operations without having to save the intermediate results.
  • Selected let’s you choose any saved graph from the projects’ Graphs folder. Use this setting to transform an existing graph. The original graph with stay unaltered by default. This setting is only available if you have at least one graph file (*.slg) in your project.
  • From current file executes operations on the currently open graph. This setting is only available if a graph is open and currently shown.


You now have to define the sequence or rule you want to execute. You can write its name manually or click right on it in a ruleset and then select “Send to Build and Run”. To execute it, click on Run. Please keep in mind that Soley Studio offers several possibilities to execute rules more than once:

• [rulename]
Rulename in square brackets: all Left Hand Side pattern matches possible are found and stored in the memory before the execution of the RHS transformation for each match. Good for rules that have no termination criterion.

• rulename*
Rulename followed by an asterisk: the rule is applied as long as it does not fail, i.e. as long as a Left Hand Side pattern match is found. Good for applying rules that have a termination criterion.
Caution 1: If no termination criterion is set, the rule will be applied endlessly.
Caution 2: Depending on the definition of the LHS pattern, multiple applications to the same subgraph are possible. For example, some rules could build multiple edges between the same nodes, and never match other pairs at all.

• rulename[X]
Rulename followed by an integer in square brackets: the rule is executed as long as it does not fail but X-times at most. The rule is directly applied for each Left Hand Side pattern match. Good for testing rules.

You can combine rules and sequences with the “&” sign, e.g. myRule1 & {myProcedure1()} & mySequence1.

It’s also possible to store sequences as files and to execute them by selecting them in the “Sequence file” drop-down menu. The drop-down next to “Sequence” allows quick execution of the last used sequences.

Output Data Graph

Every time you run an operation using the Build and Run pad the result will only be stored in the (RAM) memory until you save it to a file or use it as input for the next transformation with the “Last result” input setting (see above). So, after executing rules or sequences, you can save the result either as a a new graph file (Save to file) or by overwriting the current file (Save to current file).

Was this article helpful?

Related Articles