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

[Task] Asset Administration Shell - variable range values for constraints #171

Open
yk0 opened this issue Jul 29, 2022 · 3 comments
Open
Labels
acknowledged Has been viewed by one of the maintainers and is ready for further work, discussion or other steps. task to be discussed To be discussed in the OMP Semantic Data Structuring WG

Comments

@yk0
Copy link

yk0 commented Jul 29, 2022

Is your task related to a problem? Please describe.
Constraints in BAMM can be used to restrict value ranges for properties in AAS submodels. On the other side, BAMM constraints do only support static values, while in a lot of use cases the range of a property might depend on other properties of the same (or another) AAS. An example: nominal power input voltage for a device depends on the target region the device was produced for (220 V for Europe, 110 V for USA).

Describe the solution you'd like
One solution would be for a BAMM constraint to reference the source where the actual value(s) for the constraint is stored, in the case of the AAS it would be the path to the AAS submodel property storing the value.

Describe alternatives you've considered
none

Additional context

@yk0 yk0 added the task label Jul 29, 2022
@atextor
Copy link
Contributor

atextor commented Aug 1, 2022

Hello @yk0,
I understand the use case and the flexibility for a modeler this grants. Currently this is not possible, but with addressing #160 this should become viable. When something like this is to be implemented, we need to take great care to not diminish the value of an Aspect Model for a solution developer when the value is increased for a modeler. In other words, the capabability of code generation from an Aspect Model must not be restricted. If certain information is not present in the model itself, then it should be made present at the moment the code is generated (i.e., the Constraint-specific code generator knows how to resolve a certain value) or it must be well-defined how the value can be retrieved at run time (so that code can be generated that does this). The latter option could be a technical challenge, since validation frameworks such as Jackson (which is used in the generated Java code) validate mostly using compile-time annotations, i.e., the constraint values must be known at code generation time.
In any case, the first step would be to define how a model should look like and what the exact semantics are.

@atextor atextor added the to be discussed To be discussed in the OMP Semantic Data Structuring WG label Aug 1, 2022
@yk0
Copy link
Author

yk0 commented Aug 24, 2022

Hi @atextor,

just a sketch of how a rather minimally invasive solution might look like by using one inderection level for attribute values:
image
With such a solution it is possible to just define static values independently from other data sources, but also to reference external (specific) data sources like AAS.

@atextor
Copy link
Contributor

atextor commented Sep 8, 2022

WG discussion 2022-09-08:

  • We can't model the source for information
  • There is currently no concept of a constant (on model level) that could be referenced
  • There is also currently no concept for referring to a (runtime) value of another property
  • Further discussion is required.

@chris-volk chris-volk added the acknowledged Has been viewed by one of the maintainers and is ready for further work, discussion or other steps. label Feb 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
acknowledged Has been viewed by one of the maintainers and is ready for further work, discussion or other steps. task to be discussed To be discussed in the OMP Semantic Data Structuring WG
Projects
None yet
Development

No branches or pull requests

3 participants