# Editor A strategy is a way to query your data. The design of a strategy happens in the editor. It allows you to define the way in which the data is being queried. You may define a very simple strategy, e.g. return all the textstrings in a data set or a very complex one, in which various parameters and object types play a role. When you start with a new strategy, you will see an empty canvas, a button to select the API template (where input and output types have been determined) and on the left the Building Blocks-library. ![empty canvas](../images/editor_api.png) ### Selecting Building Blocks The first part is browsing through the blocks, you can use the tiptool (under the ?) to inspect the function of the block. ![Filter by class](../images/editor_filter.png) If you've found the block you need, you simply drag it onto the canvas. ![block on canvas](../images/editor_block.png) Two more actions may be needed: 1) **connect the block** to other blocks to create a sequence of data navigation and manipulations. 2) **configure the block**, if configuration is required. You connect blocks by clicking on the small circle at the bottom of the block and drag the connecting line onto the small circle of the block you want to connect with. The connectors on the top side of a block result in an input to the block, while the connectors on the bottom result in output being fed to the next block. There may be more than one input or output connector, you can choose one according to your need. Also, the connectors for output from block A that is used as input for block B have to be of the same type. e.g. passing an object along. A connector for an object as output cannot be connected to an connector where a String is expected as input. An output can be connected to multiple blocks as input. ![blocks connected](../images/editor_connected_blocks.png) ### Configuring Building Blocks The second part is about configuring specific blocks. You can view and change the configuration by clicking the block. A pane will open on the right-hand side. You'll find a few tabs there: the first one shows what needs to be or can be configured. For example, with the _Filter_-block, you are asked to choose what _object type_ (class) to filter. ![configure block](../images/editor_configure_filter.png) The second tab allows you to set the result marker. This marks the "final" output that will be returned to the used via the API. The marker can be set anywhere in the strategy, but the output type has to correspond to the type defined in the API template. ![set result marker](../images/editor_configure_result.png) The third tab allows the inspection of the data that is returned at that point in the strategy. This inspection is very helpful to verify if the operation defined and configured in that block, returns the desired results. A test set needs to be selected (or created) with any input that is needed for this strategy, e.g. a keyword for search. ![set result marker](../images/editor_configure_inspect.png) The final tab provides explanation and guidance on how to configure the block. You can also inspect the code contained in the block, to get an exact understanding of the function of the block. ![set result marker](../images/editor_configure_question.png)