Essential Requirements

The following table represents a zoomed-out view of the essential requirements that the VSS modeling language should satisfy. They are based on the different stakeholders' desires which have been collected through multiple exchanges. 

If you consider that a particular criterium or aspect is missing, feel free to contribute. Bear in mind that any contribution must be framed in a collaborative way to foster community support and future adoption.
CriteriaBusiness RequirementProduct RequirementCurrent (VSPEC)Desired
Simplicity


  • Must be human-readable.
  • Must be easily understood by Subject Matter Experts (SMEs), even when they have little to no knowledge of data modelling best practices.
  • Must be useable by new comers within a reasonable period of time (e.g., a few hours).
  • Must be easy to contribute (i.e., to extend the controlled vocabulary).

✅ Yes

✅ Yes
Technology Agnosticism


  • Must be compatible with little effort to other artefacts and must not be a constrainer.
  • Must work with a variety of technologies

✅ Yes

Via vss-tools.

✅ Yes
Modularity


  • Must allow the use (or contribution) of only the pieces needed.
  • Must be able to adopt only parts of the model that matter to the user.
  • Must be able to extend and override parts of the model as needed for internal and external use.

⚠️ Partly 

Specification can be split into multiple files. However, not all components are reusable (e.g., allowed values).

✅ Yes
Scalability & Maintainability


  • Vocabulary of a domain can grow with constant effort.
  • Must support a wide variety of vehicle domains (e.g. Seating, HVAC, Entertainment, Engine, etc...).
  • Must support the re use of existing models or vocabularies.

⚠️ Partly

Yes in the sense that the vocabulary of vehicle properties can be further extended. However, its expressivity is limited and covering more features requires significant work on the tools.

✅ Yes
Metadata Resource Uniqueness
  • Elements in the domain model must provide explicit future-proof identifiers.
  • Supports versioning. 

⚠️Partly

Just the Fully-Qualified Name (fqn) and the UUID that can be constructed from the metadata are unique. Specification of a concept can appear multiple times.

✅ Yes
Support for Multiple Classification Schemes
  • Concepts of interest

❌No

One tree has one dimension only. Paths of the expanded tree create dependencies and moving a concept to another part in the tree is usually painful.

✅ Yes
Support for Cross Domain References

❌No

VSS tree has one dimension only. One could have multiple trees, but (currently) each tree would continue to be an independent domain.

✅ Yes
Support for the Specification of Capabilities

❌No

VSS focuses on the data structure (e.g., datatypes, units, etc.) But, no possible interactions with the specified data are formally described (e.g., Concept Seat is modeled but not the possible operations on that property).

✅ Yes
Community and Tools
  • Must scale across Automotive and adjacent industries
  • Cost
  • Ease of Adoption
  • Ease of Contribution

❌No

Limited to COVESA community and the vss-tools (mainly exporters). Any change in the modeling language requires rework of the tools.

✅ Yes
Support for Automated Reasoning

❌No

No mechanism for semantic correctness and consistency. (e.g., what distinguishes a Car from a Motorcycle? etc.)

⚠️Partly

This is a nice-to-have feature only. Thus, listed as optional. Add-ons possible.

Other? <Add here>




Proposed Solutions

Solution NameDescriptionLinksNotes
Vehicle Signal SpecificationThe overall goal of the Vehicle Signal Specification (VSS) is to create a common understanding of vehicle signals in order to reach a “common language” independent of the protocol or serialisation format.

GitHub Repository:  https://github.com/COVESA/vehicle_signal_specification


Documentation:  https://covesa.github.io/vehicle_signal_specification/


GraphQLGraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

https://graphql.org/




OMG IDLOMG IDL is a descriptive language used to define data types and interfaces in a way that is independent of the programming language or operating system/processor platform. The IDL specifies only the syntax used to define the data types and interfaces. It is normally used in connection with other specifications that further define how these types/interfaces are utilized in specific contexts and platforms.

https://www.omg.org/spec/IDL/4.2/About-IDL

https://www.dds-foundation.org/omg-dds-standard/

https://marketplace.visualstudio.com/items?itemName=RTI.omg-idl

https://github.com/eProsima/Fast-DDS-Gen