Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

VSS modelling language 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. 

Info
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.
CriteriaRequirement descriptionCurrent (VSPEC)
Must Have Requirement NameBusiness RequirementRequirementVSPEC
DesiredNotes/Questions

Simplicity

Must be

*

The quality or condition of being easy to understand

and adopt.  

, use or do

  • Must be human-readable.
  • Must be easily understood by
engineers, analysts
  • Must not be so complex that only a handful of data scientists understand it
  • Must be understandable and useable by engineers
    • 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 (
    < 1 day?)
    • e.g., a few hours).
    • Must be easy to contribute
    /add new (signals, elements)YesThe approach for describing data structures is human-friendly and easy to understand and contribute to.YesTechnology Agnosticism
    • (i.e., to extend the controlled vocabulary).

    ✅ Yes

    ✅ Yes

    Technology Agnosticism*

    Interoperable and flexible across various platforms, devices, or environments, not tied to specific vendors, technologies, or frameworks. 


    • Must be compatible with little effort to other artefacts and must not be a constrainer.
  • Must work with a variety of widely industry adopted tools for adoption and cost.
  • Ease of adoption
  • Ease of contribution
    • Must work with a variety of technologies

    ✅ Yes

    Via vss-tools.

    Yes
    Specification offers a vocabulary only. It can be exported into multiple formats and could be potentially used in any downstream system, as long as there is a tool for exporting it as desired.Yes

    Modularity*

    Quality of being composed of separate, interchangeable units or modules that, when combined, form a complete whole, facilitating flexibility, scalability, and ease of maintenance.


    Having independent components (modules) that can be developed, managed, and modified separately yet seamlessly integrated or combined.

    • Must allow the use (or contribution) of only the pieces needed.
    Modularity
  • Adopt and contribute only the pieces needed.
  • Ease of adoption
  • Ease of contribution
    • 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

    that will be read as a whole during the export.

    . However, not all components are reusable (e.g., allowed values).

    Yes

    Scalability & Maintainability

    • Ease of adoption 
    • Ease of contribution
    • Flexibility
    • Cost

    *

    Ability to grow and and handle increasing demands while being easily understood, modified, and maintained.

    • 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.
    • Should extend beyond passenger cars (e.g., Motorcycle).

    ⚠️ 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

    Partly

    *

    See note

    • 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

    This sounds like a concept identifier:


    A concept identifier in data modeling is a unique and stable reference (often called an identifier or key) that represents a specific concept or entity within a data model. It's used to clearly distinguish one concept from another and to enable reliable referencing and linkage of data across different contexts or systems.

    Key characteristics of a concept identifier:

    • Uniqueness: Each identifier uniquely references one concept or entity.

    • Stability: The identifier remains consistent over time, even if the concept’s attributes change.

    • Non-descriptive: Often identifiers are abstract (e.g., numerical or UUID), so they don't carry inherent semantic meaning, which prevents misinterpretation or ambiguity.

    • Interoperability: Enables consistent referencing across multiple systems or data sets.

    Examples:

    • UUID: Universally Unique Identifier, e.g., 550e8400-e29b-41d4-a716-446655440000

    • Primary Key: Database-generated auto-incrementing IDs, e.g., CustomerID = 12345

    • Standardized Codes: e.g., ISO country codes (US, DE), or standardized identifiers in medical contexts (SNOMED CT IDs).

    Practical usage in data modeling:

    • Used as a primary key in database tables to uniquely identify records.

    • Supports linking data from multiple sources through foreign keys or reference identifiers.

    • Facilitates interoperability and integration among different data systems and external sources.

    Importance:

    Having clearly defined concept identifiers ensures:

    • Data integrity and consistency.

    • Simplified integration and interoperability between systems.

    • Improved traceability and data governance.

    In summary, a concept identifier is foundational in robust data modeling because it provides clear, stable, and unambiguous references to concepts within data systems.

    Support for Multiple Classification Schemes
    No
    *
    • Concepts of interest in a domain model can be classified with arbitrary hierarchies.

    ❌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

    Daniel Alvarez Would you please elaborate on this and provide an example?

    Support for Cross Domain References
    No
    *
    • Elements of the model can be re used and nested arbitrarily.

    ❌No

    VSS tree has one dimension only. One

    could have multiple trees, but (currently) each tree would continue to be an independent domain.

    fixed hierarchy!

    Yes
    Support for the Specification of Capabilities
    NoThere are is the concept of Actuators and Sensors.  Actuators do something when set.
    *
    • Not only the data structure is specified, but also the allowed operations on the data are formalised (e.g., API-oriented).

    ❌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
    ✅ Yes
    Community and Tools*
    • Must scale across Automotive and adjacent industries
  • Cost
  • Ease of Adoption
  • Ease of Contribution
    • .
    • Low development and maintenance costs.
    • Based on a well-established set of stable open-source tools.
    • Specified domain models should be usable outside COVESA.

    ❌No

    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

    **

    • Resulting domain models could implement basic inferences. 

    ❌No

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

    ⚠️Partly

    Only via add-ons.


    Other? <Add here>



    * = Must-have feature!

    ** = Nice-to-have feature that is not seen as essential by the members in COVESA. Possible limited support of it via add-ons. 

    VSS modelling language alternatives


    CriteriaVSPECGraphQLSKOS (RDF)GraphQL + SKOSUML (XMI)OMG IDLProtobufOpenAPISHACL (RDF)JSON SchemaOWL (RDF)
    Simplicity*

    ✅ Yes

    ✅ Yes⚠️ Partly ✅ Yes❌No?✅ Yes✅ Yes❌No⚠️ Verbose❌No
    Technology Agnosticism*

    ✅ Yes

    ✅ Yes⚠️ Partly ✅ Yes⚠️ Partly?❌No✅ Yes⚠️ Partly ✅ Yes❌No
    Modularity*

    ⚠️ Partly 

    ✅ Yes✅ Yes✅ Yes✅ Yes?❌No⚠️ Partly ✅ Yes✅ Yes✅ Yes
    Scalability & Maintainability*

    ⚠️ Partly

    ✅ Yes✅ Yes✅ Yes❌No?⚠️ Partly ⚠️ Partly ⚠️ Partly⚠️ Partly❌No
    Metadata Resource Uniqueness*

    ⚠️Partly

    ⚠️ Partly✅ Yes✅ Yes❌No?⚠️ Partly ⚠️ Partly ✅ Yes❌No✅ Yes
    Support for Multiple Classification Schemes*

    ❌No

    ⚠️ Partly✅ Yes✅ Yes⚠️ Partly ?❌No❌No⚠️ Partly❌No✅ Yes
    Support for Cross Domain References*

    ❌No

    ✅ Yes✅ Yes✅ Yes⚠️ Partly ?❌No❌No✅ Yes✅ Yes✅ Yes
    Support for the Specification of Capabilities*

    ❌No

    ✅ Yes❌No✅ Yes⚠️ Partly ?❌No✅ Yes❌No❌No❌No
    Community and Tools*

    ❌No

    ✅ Yes⚠️ Partly✅ Yes⚠️ Partly ?✅ Yes✅ Yes❌No✅ Yes⚠️ Partly

    Support for Automated Reasoning**

    ❌No

    ❌No

    ⚠️ Partly

    ⚠️ Partly

    ❌No

    ?

    ❌No

    ❌No

    ❌No

    ❌No

    ✅ Yes