Comments (5)
Oh, no bother at all! I was curious myself what happened there, just not curious enough to post the issue myself 😄
If you need a UI, have you tried our AAS Manager?
It's not an Eclipse project (yet), but based on our SDK, so it's garantueed to be compatible with it.
from basyx-python-sdk.
I think there's a general problem in the understanding of ModelReference
vs ExternalReference
.
According to our understanding (and therefore our implementation), a ModelReference
is resolvable in implementations of the AAS (since it references another AAS object), whereas a GlobalReference
does not necessarily refer to other AAS objects.
See also the discussion here: #231
And the resulting issue with the specification of the AAS here: aas-specs#350
A ConceptDescription
referenced with an ExternalReference
could be located anywhere, which is why we're using an ExternalReference
and not a ModelReference
. But because we modelled it specifically to be "anywhere" and specifically not "another AAS object", it's in general not possible to programmatically check whether or not the ExternalReference
by chance is resolvable and by even more chance located in the same ObjectStore
.
Therefore, it is my understanding that ConceptDescriptions
referenced via ExternalReference
should not be written into a local AASX. To me, that would speak against the idea of the distinction between ModelReference
and ExternalReference
and would be a bug in the modelling.
When the comment in aaspe#28 mentions, it is recommended to use an ExternalReference
, my understanding is that this means, the ConceptDescription
should also be located somewhere externally, and not be delivered with the AASX.
When a property has a semantic reference to a Concept Description as a ModelReference, the ConceptDescription cannot be looked up within the AAS environment in the Package Explorer. See issue eclipse-aaspe/aaspe#11
As a logical consequence, I would also assume that this is therefore a bug within the AASX Package Explorer.
from basyx-python-sdk.
Oh dear... sorry for bothering you. I have no idea what the idea of that viewer is. I am just trying to build an AAS which is compatible to that thing.
I guess this is how standards go: someone does it wrong, and everybody follows the wrong implementation, just because it has a nice UI. Once there are enough implementations doing it like that, its easier to change the standard than the implementations.
from basyx-python-sdk.
Hi. Similar issue here, and I don't fully understand CDs yet.
Package Explorer does also not automatically include concept descriptions in the AASX file.
However, there is functionality to do that, e.g. in the digital nameplate viewer 1.0 (not in 2.0).
The following picture may demonstrate this:
- The viewer already kicks in and recognizes the digital nameplate (blue frame 1.)
- even if there are no CDs present (violet frame, 2.)
- but there is a button which creates, imports or copies (I can't judge at the moment) the CDs into the current AASX (green frame, 3.)
After clicking the button, you'll find the CDs
The properties then refer to a ModelReference/ConceptDescription
and that concept description then refers to a ModelReference/GlobalReference with a data specification as ExternalReference/GlobalReference.
Obviously the Nameplate Viewer 1.0 thinks that the CDs should be part of the AASX file which uses the CDs. Otherwise they wouldn't have implemented the "Fix missing CDs" functionality.
from basyx-python-sdk.
Okay, so what I've gathered from your screenshots is that the Nameplate Viewer 1.0 references the (magically created?) ConceptDescriptions via ModelReference
s with a Key
with KeyType
GlobalReference
.
This violates the specification on several constraints, most importantly:
Constraint AASd-123: For model references, i.e. References with Reference/type = ModelReference, the value of Key/type of the first key of Reference/keys shall be one of AasIdentifiables.
Could you maybe inquire, what the Nameplate Viewer 1.0's idea is, regarding ConceptDescriptions?
At the very least, this is most likely a bug in their referencing of ConceptDescriptions.
from basyx-python-sdk.
Related Issues (20)
- Misleading error message in case of non-existent file HOT 1
- Update `Development Status` classifier in `setup.py` HOT 1
- Integer value is not accepted for Double value type HOT 4
- aasx: Add failsafe for writing and reading AASX files HOT 1
- Convert primitive types into string when creating a property of type string HOT 2
- Logo: Change logo to the original version
- AAS with submodel/type: "ExternalReference" not supported HOT 7
- Reading published AAS Submodel Templates from aasx HOT 11
- Unable to add SubmodelElementCollection to SubmodelElementList HOT 9
- Remove schema files from repository HOT 1
- Attaching files with spaces in the file name causes a ValueError when writing the AASX HOT 6
- Missing 'aasx-spec' document in AASX HOT 9
- RELATIONSHIP_TYPE_AASX_ORIGIN strings do not match those in the submodel templates from IDTA HOT 2
- model: Allow empty strings in SubmodelElement.value HOT 1
- How to generate unique IDs? HOT 4
- Does a property lose its reference to a concept description when reading an AASX file? HOT 6
- Log a warning if no AAS files are read within an AASX package
- aas:adapter Unable to read aasx file, because of dead links HOT 10
- convert json into aasx fails HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from basyx-python-sdk.