Functional requirement | VSS item | GraphQL correspondance |
- Human-friendly context is provided.
| Concatenated path | - docs/_TYPE
- Hierarchy outside GraphQL (context, field...)
|
- Properties can be grouped. Hierarchical concept scheme to group properties belonging to the same area of interest is supported.
| Branch type Aggregate Struct | - type based
- grouping is implicit
|
- Properties whose values do not change often can be specified.
| Attribute type | |
- Properties whose value might change often can be specified as observable or actuatable.
| Sensor type Actuator type | - A field is specified. The associated value is assigned with the instance data
|
- Definitions can be reused when there are multiple occurrences.
| Instances | |
- Arrays or lists are supported.
| Arrays (i.e., datatype[]) | |
- Extended list of primitive datatypes is supported.
| (u)intX, boolean, float, double, string | |
- Units and quantity kind can be specified.
| Unit Dimension | type DrivingJourney { driver: Person! passengers: [Person!] vehicle: Vehicle! road: [Road] maxSpeed(unit: SpeedUnit = KILOMETERS_PER_HOUR): Float } enum SpeedUnit { KILOMETERS_PER_HOUR MILES_PER_HOUR }
|
- Default values can be specified.
| Default | - handling of default values depends on your server-side implementation
- It can be added for informative purposes as a comment in the schema
|
- Allowed values can be specified.
| allowed: [‘value1’, ..., ‘valueN’] | |
- A custom redefinition of the concepts is possible.
| Overlay | - schema stiching
- schema extension
|
- Min and max expected values can be specified.
| min: 0 max: 100 | - custom scalar type and directive
- implementation of the necessary validation logic on the server-side
- Alternative: include the information in the comment.
|
- Concepts in the model can evolve.
| deprecation | |
- Model can be specified in multiple files.
| Include | - It is possible to specify schema across multiple files.
- Command Line tool has to include all files/links.
|