Lehrstuhl für Informations- und Automatisierungssysteme issueshttps://git.rwth-aachen.de/groups/acplt/-/issues2022-08-25T10:23:50+02:00https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/153Compliance tool2022-08-25T10:23:50+02:00Waleed ShabbirCompliance toolHow does compliance tool works exactly? I tried to validate some same valid aasx.json files with compliance tool but It always shows test failed.
The only time test was successful when I run same files generated from examples which are...How does compliance tool works exactly? I tried to validate some same valid aasx.json files with compliance tool but It always shows test failed.
The only time test was successful when I run same files generated from examples which are already inside this repo.https://git.rwth-aachen.de/acplt/basys4.2/ccProfilesUA/-/issues/5Add behaviour tests for implemented ES and OM facets2022-06-03T16:01:25+02:00Julian Grothoffj.grothoff@plt.rwth-aachen.deAdd behaviour tests for implemented ES and OM facetsAlso implement cross over behaviour for OC and EM facets, e.g. PRIO<->OCCUPIED change.Also implement cross over behaviour for OC and EM facets, e.g. PRIO<->OCCUPIED change.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/152Example AAS with constraint violation2022-01-20T18:13:00+01:00Igor GarmaevExample AAS with constraint violationOperationVariable in ExampleOperation-Object from create_full_example() has kind=ModelingType.INSTANCE. It is a Constraint violation.OperationVariable in ExampleOperation-Object from create_full_example() has kind=ModelingType.INSTANCE. It is a Constraint violation.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/151Add method for duplicating Referable objects (e.g. submodelelements)2022-01-14T13:39:53+01:00Jingyun ZhaoAdd method for duplicating Referable objects (e.g. submodelelements)I tried to add the same submodel elemement to different submodels, but it raised the following error:
raise ValueError("Object has already a parent, but it must not be part of two namespaces."
ValueError: Object has already a parent, but...I tried to add the same submodel elemement to different submodels, but it raised the following error:
raise ValueError("Object has already a parent, but it must not be part of two namespaces."
ValueError: Object has already a parent, but it must not be part of two namespaces.
Is there another method to duplicate a submodel element to another different submodel?https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/150IEC61360ConceptDescription recognized as ConceptDescription2022-01-19T07:38:33+01:00Igor GarmaevIEC61360ConceptDescription recognized as ConceptDescription"Weight" IEC61360ConceptDescription in [17_ABB.aasx](http://www.admin-shell-io.com/samples/aasx/17_ABB.aasx) is recognized as ConceptDescription."Weight" IEC61360ConceptDescription in [17_ABB.aasx](http://www.admin-shell-io.com/samples/aasx/17_ABB.aasx) is recognized as ConceptDescription.Leon Mauritz MöllerLeon Mauritz Möllerhttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/148Add new class MimeType2022-01-10T13:13:22+01:00Igor GarmaevAdd new class MimeTypeMimeType is defined now as: `MimeType = str`. It's reasonable to create a new class MimeType where e.g. some of typical types are presented as class variables. A new class would also be usefull for type checking: now it's allowed to set ...MimeType is defined now as: `MimeType = str`. It's reasonable to create a new class MimeType where e.g. some of typical types are presented as class variables. A new class would also be usefull for type checking: now it's allowed to set any param to str where MimeType is required and it will not be detected. In a class it will also be possible to check if structure of MimeType value is correct.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/147Add new class LangStringSet2022-01-10T12:50:17+01:00Igor GarmaevAdd new class LangStringSetLangStringSet is defined now as: `LangStringSet = Dict[str, str]`
It's reasonable to create a new class LangStringSet where it's possible to choose e.g. default language to show in repr. A new class would also be usefull for type checkin...LangStringSet is defined now as: `LangStringSet = Dict[str, str]`
It's reasonable to create a new class LangStringSet where it's possible to choose e.g. default language to show in repr. A new class would also be usefull for type checking: now it's allowed to set any param to Dict[str, str] where LangStringSet required and it will not be detected.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/146invalid ValueType langString2021-12-03T10:11:31+01:00janfelixkleininvalid ValueType langStringHello,
I just came across your asset administration implementation in python and wanted to try it out by using the commonly used example:
`Example_AAS_ServoDCMotor_21.xml`
However, when using the xml adapter, some submodel elements can...Hello,
I just came across your asset administration implementation in python and wanted to try it out by using the commonly used example:
`Example_AAS_ServoDCMotor_21.xml`
However, when using the xml adapter, some submodel elements cannot be created due to the following problem:
`ValueError: aas:valueType on line 108 has invalid text: langString`
As it seems like langString is not a supported valueType since it is not part of the dictionary where it is searched for during the deseialization process:
`{'duration': <class 'dateutil.relativedelta.relativedelta'>, 'dateTime': <class 'datetime.datetime'>, 'date': <class 'aas.model.datatypes.Date'>, 'time': <class 'datetime.time'>, 'gYearMonth': <class 'aas.model.datatypes.GYearMonth'>, 'gYear': <class 'aas.model.datatypes.GYear'>, 'gMonthDay': <class 'aas.model.datatypes.GMonthDay'>, 'gMonth': <class 'aas.model.datatypes.GMonth'>, 'gDay': <class 'aas.model.datatypes.GDay'>, 'boolean': <class 'bool'>, 'base64Binary': <class 'aas.model.datatypes.Base64Binary'>, 'heyBinary': <class 'aas.model.datatypes.HexBinary'>, 'float': <class 'aas.model.datatypes.Float'>, 'double': <class 'float'>, 'decimal': <class 'decimal.Decimal'>, 'integer': <class 'int'>, 'long': <class 'aas.model.datatypes.Long'>, 'int': <class 'aas.model.datatypes.Int'>, 'short': <class 'aas.model.datatypes.Short'>, 'byte': <class 'aas.model.datatypes.Byte'>, 'nonPositiveInteger': <class 'aas.model.datatypes.NonPositiveInteger'>, 'negativeInteger': <class 'aas.model.datatypes.NegativeInteger'>, 'nonNegativeInteger': <class 'aas.model.datatypes.NonNegativeInteger'>, 'positiveInteger': <class 'aas.model.datatypes.PositiveInteger'>, 'unsignedLong': <class 'aas.model.datatypes.UnsignedLong'>, 'unsignedShort': <class 'aas.model.datatypes.UnsignedShort'>, 'unsignedByte': <class 'aas.model.datatypes.UnsignedInt'>, 'anyURI': <class 'aas.model.datatypes.AnyURI'>, 'string': <class 'str'>, 'normalizedString': <class 'aas.model.datatypes.NormalizedString'>}`
Is this correct or am I missing something?https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/145Fix id_short checks and default values2021-11-10T17:23:25+01:00Michael ThiesFix id_short checks and default valuesid_short constraint checks are broken on multiple branches. Additionally, they seem not to be standard compliant w.r.t. optional/mandatory-ness. And, the default value for optional id_short attributes in the constructor arguments (on V3....id_short constraint checks are broken on multiple branches. Additionally, they seem not to be standard compliant w.r.t. optional/mandatory-ness. And, the default value for optional id_short attributes in the constructor arguments (on V3.0RC02) should not be "NotSet", but None.
For mandatory id_short (according to the standard) we could still allow `id_short == None` as long as the object is not part of a Namespace (i.e. as long as `parent is None`).https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/143README: reference AAS Manager2021-10-28T21:04:25+02:00Leon Mauritz MöllerREADME: reference AAS ManagerWe should reference the [AAS Manager](https://github.com/zrgt/pygui40aas), developed by @zrgt, in the README. If an adoption of the project to the [acplt group](https://git.rwth-aachen.de/acplt) is planned, we may as well wait until this...We should reference the [AAS Manager](https://github.com/zrgt/pygui40aas), developed by @zrgt, in the README. If an adoption of the project to the [acplt group](https://git.rwth-aachen.de/acplt) is planned, we may as well wait until this is done so we don't have to update the README twice.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/141Does compliance_tool check consistency between model.Reference's value and id...2021-07-08T08:16:48+02:00Ghost UserDoes compliance_tool check consistency between model.Reference's value and id_type?example_aas.py
It seems that the semantic_id of "ManufactureName" has reference to ELCASS.
But the code in example_aas.py uses IRI instead of IRDI for its id_type.
Do you think this kind of inconsistency can be detected by the compl...example_aas.py
It seems that the semantic_id of "ManufactureName" has reference to ELCASS.
But the code in example_aas.py uses IRI instead of IRDI for its id_type.
Do you think this kind of inconsistency can be detected by the complience_tool?
semantic_id=model.Reference((model.Key(type_=model.KeyElements.GLOBAL_REFERENCE,
local=False,
value='0173-1#02-AAO677#002',
id_type=model.KeyType.IRI),)), <--- should be IRDIhttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/139Could not load example from Compliance Tool in AASX package explorer2021-05-31T08:06:05+02:00Yannik MerschCould not load example from Compliance Tool in AASX package explorerOpening the example from the Compliance tool crashes the package explorer without error message. Drag and drop creates the following error message:
Version from package explorer tested:
- v2021-05-02.alpha
- v2021-02-25.alpha
```
Error...Opening the example from the Compliance tool crashes the package explorer without error message. Drag and drop creates the following error message:
Version from package explorer tested:
- v2021-05-02.alpha
- v2021-02-25.alpha
```
Error: while receiving file drop to window: PackageCentral: while performing load from C:\...\example.xml at \PackageCentral.cs:Zeile 96. gave: Mindestens ein Fehler ist aufgetreten. PackageCentral: while performing load from C:\...\example.xml at \PackageCentral.cs:Zeile 96. gave: Mindestens ein Fehler ist aufgetreten.
InnerException: Mindestens ein Fehler ist aufgetreten.
InnerException: While opening aasx C:\...\example.xml from source local file: C:\...\example.xml at \AdminShellPackageEnv.cs:Zeile 257. gave: While reading AAS C:\...\example.xml at \AdminShellPackageEnv.cs:Zeile 250. gave: Type error for XML file at bei AasxWpfControlLibrary.PackageCentral.PackageCentralItem.Load(PackageCentral packageCentral, String location, String fullItemLocation, Boolean overrideLoadResident, PackageContainerOptionsBase containerOptions, PackCntRuntimeOptions runtimeOptions) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxWpfControlLibrary\PackageCentral\PackageCentral.cs:Zeile 105.
bei AasxPackageExplorer.MainWindow.UiLoadPackageWithNew(PackageCentralItem packItem, AdminShellPackageEnv takeOverEnv, String loadLocalFilename, String info, Boolean onlyAuxiliary, Boolean doNotNavigateAfterLoaded, PackageContainerBase takeOverContainer, String storeFnToLRU) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.xaml.cs:Zeile 222.
bei AasxPackageExplorer.MainWindow.Window_Drop(Object sender, DragEventArgs e) in D:\a\aasx-package-explorer\aasx-package-explorer\src\AasxPackageExplorer\MainWindow.xaml.cs:Zeile 1970..
```
[example.aasx](/uploads/d28b67aa12114ccdf49912f46ac0f1ee/example.aasx)
[example.xml](/uploads/a0fdc7195ad86e97ff8b515818f736b5/example.xml)https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/134NamespaceSet: update_nss_from() on V30RC01 does not update Qualifiers and Ext...2021-02-22T12:25:17+01:00Michael ThiesNamespaceSet: update_nss_from() on V30RC01 does not update Qualifiers and Extensions correctlyThis issue is only relevant for the V30RC01 branch.
In the current version of the improve/V30RC01-branch, the `update_nss_from()` method of NamespaceSets does not consider Qualifiers and Extensions correctly. If a Referable object with ...This issue is only relevant for the V30RC01 branch.
In the current version of the improve/V30RC01-branch, the `update_nss_from()` method of NamespaceSets does not consider Qualifiers and Extensions correctly. If a Referable object with Qualifiers or Extensions is updated from another Referable object, only new and deleted Qualifiers/Extensions will be updated, whereas changed Qualifiers/Extensions are not updated. This is due to the missing code in `base.py` near line 1477: https://git.rwth-aachen.de/acplt/pyi40aas/-/blob/6711a5bb3f9d951e59d3c4311600b1b5a6413bd1/aas/model/base.py#L1477
Since Qualifiers and Extensions are not Referable and thus have no `update_from()` method, we cannot update them recursively. Instead, we should just replace the old objects with the new ones. In fact, this simplyfies the whole `update_nss_from()` behaviour: We don't have to divide into new, deleted and update Qualifiers/Extensions, but instead, we can simply remove all of these objects from `self` and move all of the ones from `other` into `self`. Thus, I propose to add a high-level `if` statement, that checks if the NamespaceSet uses the `id_short` attribute for identification: If it does, we can use the old behaviour of `update_nss_from()` (we don't even need to check the type of the objects), if not, we should use the simplified updating (deleting and moving).Leon Mauritz MöllerLeon Mauritz Möllerhttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/133model: Uniqueness checks are not functional2021-02-22T09:59:23+01:00Leon Mauritz Möllermodel: Uniqueness checks are not functional`Referable.update_from()` patches the `self` object with the `other` object by iterating over the attributes of the `other` objects using the python built-in `vars()`. `vars()` only iterates over an objects attributes, not properties e.g...`Referable.update_from()` patches the `self` object with the `other` object by iterating over the attributes of the `other` objects using the python built-in `vars()`. `vars()` only iterates over an objects attributes, not properties e.g. getter/setter functions. The `id_short` attribute of `Referable` is a property, which performs additional checks when setting the `id_short`, such as checking for uniqueness within the namespace by searching the objects contained in the `parent` object. The actual value of the `id_short` is stored in the protected attribute `_id_short`.
Since `_id_short` is an attribute and `id_short` is a property, the `vars()` built-in returns the `_id_short` attribute instead of the `id_short` property, which causes `update_from()` to update the `_id_short` directly, skipping the setter function and thus the uniqueness check.
This is also the case for the `semantic_id` property of `HasSemantics`, which also checks for uniqueness.
A solution proposed by @sebastian.heppner and @mhthies is to add dictionaries to each class, mapping the protected attributes to the respective property. These dictionaries would then be searched by `update_from()`, which can then set the property instead of the attribute.
---
Another issue is that this uniqueness check is not performed for objects contained in one or more `AbstractObjectStore`, because these are not referenced by the `parent` attribute.
---
The third and final issue is located in `NamespaceSet.update_nss_from()`. [...]
---
Each fix has to be backported to the not yet existent `V2.0` branch.
**Progress Tracker:**
- [ ] Uniqueness not checked in `Referable.update_from()`
- [ ] No uniqueness check for objects inside an `AbstractObjectStore`
- [ ] `NamespaceSet.update_nss_from()`https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/131examples: These tutorials need updating2021-01-27T14:10:14+01:00Sebastian Heppners.heppner@iat.rwth-aachen.deexamples: These tutorials need updating- [ ] `tutorial_dynamic_model`: does not exist
- [ ] `docs/source/tutorials/tutorial_serialization_deserialization.rst`: Fix missing link to `tutorial_dynamic_model`
- [ ] `tutorial_create_simple_aas`: Introduction is outdated
- [ ] `tut...- [ ] `tutorial_dynamic_model`: does not exist
- [ ] `docs/source/tutorials/tutorial_serialization_deserialization.rst`: Fix missing link to `tutorial_dynamic_model`
- [ ] `tutorial_create_simple_aas`: Introduction is outdated
- [ ] `tutorial_serialization_deserialization`: Step 1 is outdated
One problem, that we currently have with the tutorials, is that we have to maintain two versions. Firstly, the `examples.tutorial` python modules and secondly the `docs/source/tutorials/*.rst` restructured text files. When we begin to host the documentation, I would propose we only keep the restructured text ones.https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/126model: Add Iterable[...] with correct specialization as base class of Namespa...2021-01-12T13:30:48+01:00Michael Thiesmodel: Add Iterable[...] with correct specialization as base class of Namespace and inheriting classeshttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/124model: Fix docstring of AASReference.__init__ w.r.t. to target_type parameter2021-10-28T21:12:49+02:00Igor Garmaevmodel: Fix docstring of AASReference.__init__ w.r.t. to target_type parameterDelete `target_type` parameter in `__init__` of `AASReference`. Use for `type` type of last element of `key`.
If it is not possible, please fix doc of `__init__`: replace "type_" with "target_type"Delete `target_type` parameter in `__init__` of `AASReference`. Use for `type` type of last element of `key`.
If it is not possible, please fix doc of `__init__`: replace "type_" with "target_type"https://git.rwth-aachen.de/acplt/pyi40aas/-/issues/121model: Implement CustomSet() with Objekts unique by definied attribute2021-01-12T13:32:15+01:00Torben Minymodel: Implement CustomSet() with Objekts unique by definied attributeFor HasExtension and Qualifiable custom sets are needed that contain objects that are unique based on an attribute.
The sets have to be similar to the namespace set, which contains referable objects unique by idshort.
Maybe there is an...For HasExtension and Qualifiable custom sets are needed that contain objects that are unique based on an attribute.
The sets have to be similar to the namespace set, which contains referable objects unique by idshort.
Maybe there is an elegant way to make it generic, so that dublicated code can be avoid.
In conjunction with #118Torben MinyTorben Minyhttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/120aasx.writer: Add searching and adding referenced ConceptDescriptions to write...2021-01-12T13:38:58+01:00Michael Thiesaasx.writer: Add searching and adding referenced ConceptDescriptions to write_aashttps://git.rwth-aachen.de/acplt/pyi40aas/-/issues/118model: Implement Constraint AASd-026: check for duplicate semanticID in Colle...2021-01-12T13:33:19+01:00Michael Thiesmodel: Implement Constraint AASd-026: check for duplicate semanticID in Collections with allowDuplicates=falseSooner or later, we need to implement some look-up mechanism for SubmodelElements by semanticId to provide the relevant API methods. When we implemented this, we can use it to check the constraint as well.
In conjunction with #121Sooner or later, we need to implement some look-up mechanism for SubmodelElements by semanticId to provide the relevant API methods. When we implemented this, we can use it to check the constraint as well.
In conjunction with #121Torben MinyTorben Miny