Data Schema: Property types
The type of a property can be set by clicking on the "Set a type" button next to a property's name. A popup allows you to choose a type.
Once a property type has been set, the type is displayed next to the property name, and it is possible to change it using the "Edit" link.
IMPORTANT
Setting a property type in Linkurious Enterprise will not change the type of the corresponding values in the graph database. The consequences are explained below for each property type.
Property types
String
Settings
Setting a property type as String does not require any additional information:
Consequences
Once a property type has been set as a String, all values for that property are processed as a String.
In the Workspace Filter panel:
- The type of the property cannot be changed (the String icon "Abc" next to the property name is disabled).
- Values are displayed as a list and ordered alphabetically.
Number
Settings
Setting a property type as Number does not require any additional information:
Consequences
Once a property type has been set as a Number, values for that property fall into 2 categories:
- Valid values if they are actual numbers.
- Invalid values if they cannot be interpreted as number.
In the Workspace Property panel, invalid values are displayed as string with a warning.
In the Workspace Filter panel:
- The type of the property cannot be changed (the Number icon "123" next to the property name is disabled).
- Valid values are displayed in a histogram.
- The number of invalid values is displayed at the bottom of the histogram.
When editing or creating a node/edge, properties set as Number can only accept a valid number.
Enum
Settings
Setting a property type as "Enum" requires to enter a list of authorized values:
- Separate values with comma
,
or click on the "Add" button. - At least 2 values are required.
Consequences
Once a property type has been set as Enum, values for that property fall into 2 categories:
- Valid values if the values are within the list of authorized values.
- Invalid values otherwise.
In the Workspace Property panel, invalid values are displayed as string with a warning.
In the Workspace Filter panel:
- The type of the property cannot be changed.
- Authorized values are displayed as list.
- Invalid values are grouped under a single "Invalid values" option at the top of the list.
When editing or creating a node/edge, the user pick the value of an Enum property from the list of the authorized values.
True/False
Settings
Setting a property type as True/false does not require any additional information:
Consequences
Once a property type has been set as a True/false, values for that property fall into 2 categories:
- Valid values if the values are either "true" or "false".
- Invalid values otherwise.
In the Workspace Property panel, invalid values are displayed as string with a warning.
In the Workspace Filter panel:
- The type of the property cannot be changed.
- Authorized values ("true" and "false") are displayed as list.
- Invalid values are grouped under a single "Invalid values" option at the top of the list.
When editing or creating a node/edge, the user picks the value of a True/false property from a list containing "true" and "false".
Date
Settings
Setting a property type as Date requires to select the storage format of the date in the graph database:
- "Native": the value is stored as native date (available only with Neo4j since version 3.5)
- "yyyy-mm-dd", "dd/mm/yyyy", "mm/dd/yyyy": the values are stored as String in the graph database according to one of these formats.
- "Timestamp (in milliseconds)", "Timestamp (in seconds)": the values are stored as Numbers in the graph database. They represent a date as the number of milliseconds (or seconds) elapsed since
January 1st, 1970 GMT
and the date to be encoded.
Consequences
Once a property type has been set as Date, values for that property fall into 2 categories:
- Valid values: values that can be parsed as date according to the storage format provided.
- Invalid values otherwise.
In the Workspace Property panel:
- Invalid values are displayed as string with a warning.
Anywhere a date value is displayed (including the Property panel):
- All properties are displayed in the ISO format "yyyy-mm-dd" regardless of their storage format.
In the Workspace Filter panel:
- Dates can be filtered from the Timeline.
When editing or creating a node/edge, the user picks the value of a Date property from a Date picker.
Date-time
Settings
Setting a property type as Datetime requires to select the storage format of the date in the graph database:
- "Native": the value is stored as native date-time (available only with Neo4j since version 3.5)
- "YYYY-MM-DDThh:mm:ss": the values are stored as String in the graph database according to one of this format.
- "Timestamp (in milliseconds)", "Timestamp (in seconds)": the values are stored as Numbers in the graph database. They represent a date as the number of milliseconds or seconds between January 1st 1970 and the date to be encoded.
In case the Date-time is stored as Native type in Neo4j, there are 2 possible options:
- Using a Neo4j
DateTime
object: these object contain an explicit time zone which is used. - Using a Neo4j
LocalDateTime
object: these objects do not contain an explicit time zone, the default time zone configured in Linkurious Enterprise is assumed.
Consequences
Once a property type has been set as Datetime, values for that property fall into 2 categories:
- Valid values: values that can be parsed as date according to the storage format provided.
- Invalid values otherwise.
In the Workspace Property panel:
- Invalid values are displayed as string with a warning.
Anywhere a date value is displayed (including the Property panel):
- All properties are displayed in the ISO format "YYYY-MM-DDThh:mm:ss" regardless of their storage format.
In the Workspace Filter panel:
- Date-times can be filtered from the Timeline.
When editing or creating a node/edge, the user picks the value of a Datetime property from a Date picker.
Mandatory properties
Each property can be set as "Mandatory" by clicking the corresponding checkbox in the property type popup.
Consequences of making a property mandatory:
In the Workspace Property panel:
- The property key is always displayed.
- If the item at hand does not have this property, the property is displayed with a warning that the value is missing.
When editing or creating a node/edge, the value of a mandatory property cannot be empty.
Property type conflict
When nodes have multiple categories, it is possible that a property can be given 2 different types. For example:
- Given a Supplier category declared with a property Size of type Number.
- Given a Buyer category declared with a property Size of type Enum ("Big"/"Medium"/"Small").
- Given a node that has both categories.
- Then Linkurious Enterprise cannot determine the type of the Size property.
When such conflicts arise:
- In the Workspace Property panel, the value of the property is displayed as string with a warning.
- When editing or creating a node, the value of the property is displayed as string and cannot be edited.