When you create a Dataset and define a new Concept you define the properties for the Concept. Each of these properties has a data type. The data types fall into 3 main categories:
1. Primitive data types
These are fundamental data types for value-based properties. The different primitive data types are:
- text – a string of characters or words. Used for labels and descriptions etc. All text properties are indexed for full text search. The primary label of a Concept is boosted for full text searching.
- keyword – a contiguous character string with no whitespace. A keyword is not indexed for full text search, but instead is used for identifiers or terms that can be queried as an exact match. You may use these, for example, for representing an alternative identifier, an ISO code, or a passport number.
- integer – decimal integers only, no whitespace, e.g. 65432
- decimal – a decimal value, no whitespace, e.g. 12.34567
- boolean – a boolean value, true or false
- date – an ISO-8601 date, YYYY-MM-DD, e.g. 2021-04-17
- dateTime – an ISO-8601 dateTime, YYYY-MM-DDThh:mm:ssZ e.g. 2021-04-17T13:14:32Z. A timezone component can be included.
2. Specialised primitives
These are also primitive data types for value type properties, but can be interpreted for specific use-cases in Data Graphs :
- latitude – a decimal field for capturing geospatial latitude coordinate values. When combined with a longitude Data Graphs indexes these properties for geospatial search, and also allows your Concepts to be plotted on a map.
- longitude – a decimal field for capturing geospatial latitude coordinate values. When combined with a latitude Data Graphs indexes these properties for geospatial search, and also allows your Concepts to be plotted on a map.
- URL – interpreted and validated as a URL
- imageURL – interpreted and validated as an image URL, and can be set as a canonical preview image of the Concept. Properties defined as imageURLs are rendered as images in Data Graphs.
3. Relationship properties
You can select any other previously defined Concept type as a value of some property. This allows you to define semantic relationships between things in Data Graphs, and lends itself to the knowledge graph or linked data pattern.
When you select a specific Concept type as the data type of some property, Data Graphs is able to validate and constrain the allowed Concept value to be only of this type.
If you have utilised sub-classing, and the property range is some parent class Concept type, then Data Graphs will constrain the range of the relationship to include all Concepts of the parent class selected and the set of all sub-classes of this Concept type.