This will be a guide to using Forms within Weaver.


Forms explained:

A Form within wvr.io is a form which allows a user to create or modify data in a specified way.

In the example below we have a simple form which allows us to add a Person to our dataset.



The Forms can be used in two different ways, either to create data or to edit data.

For creating data you can open the form from the left sidebar/treeview.

In order to edit data, you need to go to a specific node in the graph view and right-click it. Here you can select Edit via form if there is a form available for this type.


To start creating a form we visit the main page within a space:

Here we can choose to create a new Form or edit an existing Form.
In this case it doesn't matter what we do, both edit and create will land on the same starting page.

On this page we see a few fields we can set.

  • The title is self explanatory, it will show in the header of the Form when a user opens it.
  • The Type is important, this will determine what Type the created object will be and thus where it is listed in the Types view. The relation used to set the Type is the first mentioned relation in Member Keys section of the project.
  • The confirmation message can be set to display a message to the user after the Form has been filled out and saved successfully.
  • The field Hidden can be checked, this will cause the Form not to show in the left sidebar. The reason to do this is in cases where you don't want to be able to create data but only edit the data.


When we press Next, we will go to the following page, first we will look at the left side.

In the first section we we can see the different fields we want to add/have added to the form. It is possible to have multiple fields on a page and then have multiple pages (steps) for the entire Form.



In step 2 can we configure the fields we are showing to the user. In the image below you can see the base set of items to configure.



  • Key: This field will become the official name of the field, this is possibly required for other fields which refer to this one and is used as the attribute the field is saved as.
  • Label: This field will be shown to the user in the UI when the form is entered.
  • Type: The type determines what kind of field the user sees in the interface.  The options also determine the rest of the fields which need to be entered in the field configuration. The options here are: String, Number, Switch, Select or Create, Select, Date Range, Time Period, Radio.
  • Default Value: Some attributes allow to set a default value, this means that unless the user changes the value, this attribute will always have a specified value present on the created node, even if the field is not set to required.
  • Required: When selected, the form can't be saved without this field being set.
  • Through Relation: Allows for fields to be set on a different node. For example Node P (person) will have a relation 'hasValueByLiteral' to Node N (name) which then has an attribute with a value. When checking this boolean, you will need to set a few more fields.
  • Conditions: This field can be setup to determine whether or not to show the field, this can be done based on availability of another field or even by its value.
  • Repeating: For this field it is mandatory to select another field with a 'Number' typing. The field with Repeating setup will be shown multiple times based on the number selected in the other field.
  • Hidden: This field can be used to have a hidden field available, however at the time of writing, there is no real use for it.


Now that we went over all the fields for Strings, we can look into the other types.

  • Number and Time Period do have identical fields to the String field.
  • Switch and Radio both have two extra options where you can choose what labels are shown for the 'true' and 'false' values.
  • Date Range has two extra options in order to determine what attributes the two values are saved as.
  • For the Select type we need more information, we need to know what options we can choose from and we need to create a relation to the selected item.
  • We got a field to write a query (possibly something like: "hasRelationOut 'type' 'Person'"), this would allow the user to choose from all 'Persons' in the dataset.
  • Next we need to supply the attribute we want to show in from (first_name, last_name, email_adress etc.)
  • We need to select the relationname we want to use to relate to the selected Person and whether it will be an incoming or an outgoing relation.
  • Then we select whether there is one option allowed or multiple
  • Finally for the Select or Create we have the same options as the Select field with the addition of selecting another Form and being able to use that to create another item within this form.