Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VISS Base vs. Extensions #385

Closed
erikbosch opened this issue May 5, 2021 · 5 comments
Closed

VISS Base vs. Extensions #385

erikbosch opened this issue May 5, 2021 · 5 comments
Labels
VISS v2 Generation Two of the spec

Comments

@erikbosch
Copy link
Contributor

In #381 and #382 it is discussed if certain parts of VISS should be optional. Would it be an idea to have a generic concept/syntax where certain parts of VISS can be specified as mandatory (base functionality) while others are specified as optional extensions. Somewhat similar to https://en.wikipedia.org/wiki/RISC-V#ISA_base_and_extensions

That could possibly be useful for the future when organizations start offering VISS implementations to possibly customers (both clients/applications and server-solutions) to have a common language to describe what is supported. E.g. a syntax to specify that a VISS server implementation for example supports Authorization and PathFilter but not CaptureFilter

@petervolvowinz
Copy link

What would be the merits of a special syntax in this case. I think it is pretty clear what is optional and what is not ? You just add optional to the paragraph ? I my view this is overcomplicating things.

@SebastianSchildt
Copy link

Marking things as "optional" (or/and mark "core/essential") definitely is the most important step.

In my opinion an important point and takeaway from Erik's suggestion is, that our model should be: There is "base/essential" required feature level, the rest are understood as "features" that can be (more or less) mixed and matched as people require (which is in line with the RISC V ISA model), and not a set of "Feature Level 1,2...3" where every level bundles a fixed amount of features. That would lead to endless discussions :) Probably the market will show what are useful "feature sets".

For practical purposes it might be useful to have something like a "capabilities" query, which returns a nicely formatted JSON or text string listing supported features in a machine readable way..

@erikbosch
Copy link
Contributor Author

Syntax is maybe not the right wording, I was more thinking if it would make sense to have some form of identifiers for the optional parts/capabilities, so that you cay something like "Our product X supports the following optional capabilities from VISS: AAAA, BBBB and CCCC, but not DDDD". But the section headings of the optional parts could possibly suffice for that purpose.

@UlfBj
Copy link
Contributor

UlfBj commented May 25, 2021

I agree with what has been said above. So the next step would then be to

  1. exactly specify what should be optional (all not optional is mandatory).
  2. Decide how a client queries the server on its capabilities.

I would propose that 2. is solved by using the "static metadata" request that the spec supports (CORE ch 7.4), by adding
"server-capability" to the list of supported key names.
An HTTP request would then look like below.
GET /Vehicle?filter={"op-type":"metadata", "op-value":"static","op-extra":"server-capability"} HTTP/1.1
The outstanding question would then be how the server expresses its capabilities?
Maybe the different optional parts in the spec can be tagged (shown in the spec), and the server then replies with a list of the tags that are supported?

@peterMelco peterMelco added the VISS v2 Generation Two of the spec label Sep 28, 2021
@UlfBj
Copy link
Contributor

UlfBj commented Dec 15, 2021

Fixed in PR#437

@UlfBj UlfBj closed this as completed Dec 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
VISS v2 Generation Two of the spec
Projects
None yet
Development

No branches or pull requests

5 participants