Please see LICENSE.txt in the individual projects for project-specific licenses.
The admin-shell-io logo image is taken from www.plattform-i40.de which is licensed under Creative Commons CC BY-ND 3.0 DE.
Submodel Templates for AAS
License: Creative Commons Attribution 4.0 International
Please see LICENSE.txt in the individual projects for project-specific licenses.
The admin-shell-io logo image is taken from www.plattform-i40.de which is licensed under Creative Commons CC BY-ND 3.0 DE.
When opening the Carbon Footprint submodel, an error message unknown to me is displayed and no content is shown.
I am not able to open the submodel capability (https://github.com/admin-shell-io/submodel-templates/blob/main/development/Capability/1/0/CapabilitySubModelTemplate_V1.3.aasx) in AASXPackageExplorer https://github.com/admin-shell-io/aasx-package-explorer/releases/tag/v2023-09-12.alpha. (Error: Object reference not set to an instance of an object.). The aasx file content may be exported to XML and reviewed manually. Is it not possible to open the file directly in AASXPackageExplorer? Other Submodel Templates may be opened without any problem.
DigitalNameplate V2.0 has an id of www.example.com/ids/sm/1225_9020_5022_1974
:
Why would a standardized submodel template be published with "example" in its id?
This is suspicious and inconsistent with e. g. TechnicalData V1.2, which has a more appropriate id https://admin-shell.io/ZVEI/TechnicalData/Submodel/1/2
.
Hello,
What is the process for publishing submodels in the IDTA GitHub folder "Yellow_Pages"?
In 2018, we developed submodels (~ 20) for lifecycle of assets/pumps with VDMA working groups. Many of the contents coincide with contents that have been published by IDTA in the meantime (Digital nameplate, Maintenance, ...). We would like to publish the submodels whose contents are not yet covered by the published IDTA submodels in the "Yellow_Pages".
Greetings from Cologne,
Björn
All Qualifiable
Elements in the Submodel Digital Nameplate 2.0 except Marking
do have cardinality qualifiers.
Please add the cardinality qualifier to Marking
Submitter:
Magnus Redeker (Fraunhofer IOSB-INA)
Target Users:
Description:
Technologies of interest:
Gaps:
Currently, no "omniscient" register like the Asset Interface Description exists
Links:
None
In the SoftwareNameplate submodel are three properties defined with the type "xs:date" (InstallationDate, BuildDate, ReleaseDate). For that properties are example values declared in the submodel template. For ReleaseDate is this e.g. 20220207
.
When I validated my SoftwareNameplate submodel which was created out of the here published template with this official validation tool, I got an error when specifying the ReleaseDate in that format. I checked again the specification of the Metamodel Version3 and found out, that the right value for an xs:date is 2022-02-07
. With that value the validation tool also said that my submodel is valid.
Can you please check why the example value is in that format in the submodel specification?
That is test...for asset interface description....
TechnicalData V1.2 uses Qualifier "Cardinality".
This is unsupported by the AASX-Explorer JSON Schema Export.
Other templates like ContactInfo and DigitalNameplate use "Multiplicity" for apparently the same semantics.
This is supported by the AASX-Explorer JSON Schema Export.
The IDTA submodels should be consistent here and ideally compatible with AASX Explorer.
Thus, "Multiplicity" should be used.
Consider, how to document SubmodelElementLists in the class tables. Problem: If the lists contains SubmodelElementCollections but these SMC do not have a shortId, the shortId is missing for a class table for that indexed SMC's
Consider units in the class table?
Cardinality is e.g., [0..1] in class tables and "ZeroToOne" as Qualifier value -> Harmonize?
Class table has the row "Explanation:" - Why not harmonize with metamodel to "description" ?
sometimes there is no description (metamodel) but the definition (IEC 61360) available -> Define a description/definition@en ?
It is defined to use, e.g., valueType [String] not [xs:String] -> why not harmonize 1:1 with the metamodel ValueTypes?
With introduction of SubmodelElementListe the cardinality of [..toMany] is not need anymore?! To be reflected in the Guideline?
Regarding CLA topic, here are the findings that need to be discussed.
Approach:
Open points before executing approach
License - we need to specify a license. This should be CC BY 4.0
Is the current DCO enough for us? We need to evaluate this with a lawyer as the DCO does not explicitly mention how to deal with IPR (patents etc.).
If DCO is not sufficient then we need to check with lawyers if we can use the IDTA IPR to create our own CPA. We might need something similar like Apache Corporate CLA or Google Corporate CLA. The thing is that are not allowed to modify the DCO ("Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.").
Agree on a contribution process a)"Review-Then-Commit" or b)"Commit-Then-Review"? (I recommend a) - every contributions should be via fork and pull requests.)
The Carbon Footprint submodel has no content. An error message is displayed when opening the asset administration shell with the AASX Package Explorer.
He everyone,
We are working on the task of converting .aasx files to Aspects. And faced with one problem.
We took the templates that are in your repository as a basis to use these templates to make a correct generator.
So, after I started using your templates, my whole converting process was broke down.
The specialized library eclipse-aas4j/aas4j was taken as a basis, thanks to which we perform the deserialization procedure.
A question was created in the repository of this library.
It turns out that this problem still exists, and this problem is related to an incorrect file structure.
Could you please to describe this situation?
Thanks,
Best Regards!
As stated in the title, the semantic ID for the Submodel "Software Nameplate" is missing in the currently provided template.
Per specification (chapter 2.1, table 1) it has to be...
[IRI] https://admin-shell.io/idta/SoftwareNameplate/1/0
Currently this information is provided as SubmodelReference and Submodel-ID, which does not seem to be correct.
I am using the Basyx Python SDK to read the template but it failed. After posting the issue there I got pointed out that the template does not comply with the spec. In specific the following:
You seem to experience three distinct issues:
KeyError: aas:mimeType on line 505 has no text!
-> Failed to construct aas:file on line 495 using construct_submodel_element!
SubmodelElement
of type File
. I extracted the respective data from the AASX package SMT_pure_ZVEI_Digital_Nameplate_V10.aasx:
<aas:submodelElement>
<aas:file>
<aas:idShort>MarkingFile</aas:idShort>
<aas:category>VARIABLE</aas:category>
<aas:kind>Template</aas:kind>
<aas:semanticId>
<aas:keys>
<aas:key type="ConceptDescription" local="true" idType="IRI">https://admin-shell.io/zvei/nameplate/1/0/Nameplate/Markings/Marking/MarkingFile</aas:key>
</aas:keys>
</aas:semanticId>
<aas:qualifier />
<aas:mimeType />
<aas:value />
</aas:file>
</aas:submodelElement>
File
submodel element is specified at the bottom of page 67 (section 4.7.12) of the DotAAS specification. There it specifies the cardinality of the mimeType
property as 1, meaning that this property has to be present and is not optional. In the excerpt above you see that <aas:mimeType />
is just an empty tag, so the mime type isn't given for this File
element, which is invalid. Because of this invalidity, the File
element cannot be instantiated using this SDK.ValueError: A revision requires a version. This means, if there is no version there is no revision neither.
-> Failed to construct aas:administration on line 590 using construct_administrative_information!
AdministrativeInformation
objects which specify the revision
, but not the version
. Here is an excerpt from SMT_pure_ZVEI_Digital_Nameplate_V10.aasx:
<aas:administration>
<aas:version />
<aas:revision>1</aas:revision>
</aas:administration>
revision
attribute of AdministrativeInformation
has a constraint, stating that if no version is given, there can't be a revision. Thus the AASX package is invalid in this regard.AdministrativeInformation
is an optional attribute, the parent objects such as AssetAdministrationShell
, Submodel
, ConceptDescription
or Asset
are still parsed, just without their administration
attribute.IEC61360ConceptDescription[Identifier(IRI=https://admin-shell.io/zvei/nameplate/1/0/Nameplate)] has a duplicate identifier already parsed in the document! skipping it...
Identifiable
objects with the same Identifier:
<aas:submodel>
<aas:idShort>Nameplate</aas:idShort>
<aas:category>VARIABLE</aas:category>
<aas:identification idType="IRI">https://admin-shell.io/zvei/nameplate/1/0/Nameplate</aas:identification>
[...]
</aas:submodel>
<aas:conceptDescription>
<aas:idShort />
<aas:identification idType="IRI">https://admin-shell.io/zvei/nameplate/1/0/Nameplate</aas:identification>
[...]
</aas:conceptDescription>
Submodel
and the ConceptDescription
, use the IRI https://admin-shell.io/zvei/nameplate/1/0/Nameplate
as their identifier.identification
attribute of an Identifiable
object must be a globally unique identifier. Thus, if two objects thave the same identifier, it isn't globally unique anymore, making it invalid.If you have the time, please forward these issue to https://github.com/admin-shell-io/submodel-templates/issues so the AASX package can get fixed. Thanks!
Originally posted by @jkhsjdhjs in eclipse-basyx/basyx-python-sdk#25 (comment)
Submitter:
Sebastian Käbisch (Siemens)
Target Users:
Description:
Gaps:
Links:
link to presentation here (requires access to IDTA sharepoint)
Looking at carbonfootprint wroking draft.(1/24)
How can we express 'Module'/'Combination' difference in the PCF template?
According to the specification, ValueType
is a mandatory attribute. However, we have noticed that ValueType
is missing in the published AASX files for templates that have qualifiers. This issue occurs in several submodels, including Digital Nameplate
, Contact Information
, Handover Documentation
, Provision of Simulation Models
, Technical Data
, and Time Series Data
.
The used value types inside the Digital Nameplate V2.0 are partially not compliant with the AAS specification, because they use data types that start with an upper case letter for basic types, e.g. String (but there are more).
Load the Sample Digital Nameplate into the AASX Package Explorer and click Menu "File" -> "Check, validate and fix .."
It will show many errors of Schema Violation "dataType does not match allowed enumeration values".
Rework the used value types. Other implementations are dependent on correct types. For example, Basyx off-the-shelf AAS server will exit with an exception on startup, telling that it can't find a valueType of String.
I am trying to implement a service which will return historical data as Time Series JSON string.
A a source I have InFlux database which is filled by OPC UA data.
The influx query like:
var flux = @"from(bucket:""PLCSIMTest"")
|> range(start: -2d)
|> filter(fn: (r) => r[""id""] == ""ns=4;i=3"" or r[""id""] == ""ns=4;i=5"" )
|> sample(n: 5, pos: 1)
";
returns data as:
How can I describe these data in Metadata SM, once it suppose to have just one record?
Thank you
Rudo
Sometimes idShort ManufacturerPartNumer and sometimes idShort ManufacturerArticleNumber ist used in same document.
SMT Template (aasx file) uses ManufacturerArticleNumber.
AASX-PE Add-In Technical data (sheet) model (v.1.1) uses ManufacturerPartNumber.
As stated in the title, the semantic ID for the "Submodel Control Component Type" is missing in the currently provided template.
Per specification (chapter 2.2, table 1) it has to be...
[IRI] https://admin-shell.io/idta/ControlComponent/Type/1/0
Constraint AASd-002: idShort of Referables shall only feature letters, digits, underscore (""); starting mandatory with a letter. I.e. [a-zA-Z][a-zA-Z0-9]+
In multiple submodel-templates the Constraint AASd-002 is violated by SubmodelElements
in SubmodelElementCollection
-objects. Normally people wanna show with {00}
, that the collection is actuallly a list and idShorts will be iterated in SubmodelElementCollection
. E.g. IPCommunication{00}
in the submodel-template "Digital Nameplate".
ContactInformation V1.0 has an id of https://example.com/ids/sm/1231_6162_1022_9579
Why would a standardized submodel template be published with "example" in its id?
This is suspicious and inconsistent with e. g. TechnicalData V1.2, which has a more appropriate id https://admin-shell.io/ZVEI/TechnicalData/Submodel/1/2
.
At line 155 of the inner aasx-xml file of the time-series-template there is this embeddedDataSpecification block:
<aas:embeddedDataSpecification>
<aas:dataSpecification>
<aas:keys />
</aas:dataSpecification>
We used the time series template and it was possible to open the Submodel with AasPackageExplorer V2 but when we opened it with v3 and clicked on it nothing was displayed. Seems as the UI crashes during view-creation.
We removed this block and it was possible to see it also in V3. All other embeddedDataSpecifications there set. Just this one needs to be fixed.
The ContactInformation
SMC from the ContactInformations
template 1.0 is used within the DigitalNameplate
template 2.0.
The semanticId
of ContactInformation
is the same in the ContactInformations
template and the ContactInformation
SMC in the DigitalNameplate
template.
I would thus expect the ContactInformation
SMC to be exactly the same in both templates.
However, this is not the case.
In the ContactInformations
template the NationalCode
has a Multiplicity qualifier of ZeroToOne
.
In the DigitalNameplate
template the NationalCode
has a Multiplicity qualifier of One
.
Please fix or clarify the reason for this breaking inconsistency.
Hello! can you make Asset Interface Description submodel available for use?
Please note this use case is still in wip.
Submitter:
Sebastian Käbisch (Siemens)
Target Users:
Description:
Gaps:
Links:
There is frequent use of category VARIABLE. Should always be PARAMETER for the Nameplate.
From the Specs:
An element with category VARIABLE is an element that is
calculated during runtime, i.e. its value is a runtime value.
SMT_qualified_Technical_Data_V11.aasx wrong dta marked in bold.
aas:conceptDescription
aas:idShortTextStatement</aas:idShort>
<aas:identification idType="IRI">https://admin-shell.io/sandbox/SG2/TechnicalData/TextStatement/1/1</aas:identification>
aas:embeddedDataSpecification
aas:dataSpecificationContent
aas:dataSpecificationIEC61360
IEC:preferredName
<IEC:langString lang="DE">Aussage des Herstellers als Text</IEC:langString>
<IEC:langString lang="EN">Statement by the manufacturer as text</IEC:langString>
</IEC:preferredName>
IEC:shortName
<IEC:langString lang="EN">Valid on date</IEC:langString>
<IEC:langString lang="DE">Gültig am</IEC:langString>
The submodel element Language
is defined as Property
with a Multiplicity qualifier ZeroToOne
.
It is unclear what this is supposed to mean for the ValueOnly serialization (see Details of the Asset AdministrationShell Part 2, chapter 9.4.2, page 81)
Please specify.
Issue on MTP 01
dewdewde
Currently, all Submodel-Templates are published in the form of AASX files, which significantly reduces the benefits provided by Git.
By publishing templates in the form of XML or JSON files we could use Git much more efficiently and take advantage of its features:
Hello I have difficulties to work with Time Series Data SM template.
It is not possible to export the SM to JSON because of an error:
Error: Submodel Write: Object reference not set to an instance of an object. Object reference not set to an instance of an object. at at AasCore.Aas3_0.Visitation.AbstractTransformer`1.Transform(IClass that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\visitation.cs:line 1166
at AasCore.Aas3_0.Jsonization.Transformer.TransformEmbeddedDataSpecification(IEmbeddedDataSpecification that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\jsonization.cs:line 18468
at AasCore.Aas3_0.EmbeddedDataSpecification.Transform[T](ITransformer`1 transformer) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\types.cs:line 12247
at AasCore.Aas3_0.Visitation.AbstractTransformer`1.Transform(IClass that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\visitation.cs:line 1166
at AasCore.Aas3_0.Jsonization.Transformer.TransformProperty(IProperty that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\jsonization.cs:line 16968
at AasCore.Aas3_0.Property.Transform[T](ITransformer`1 transformer) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\types.cs:line 4932
at AasCore.Aas3_0.Visitation.AbstractTransformer`1.Transform(IClass that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\visitation.cs:line 1166
at AasCore.Aas3_0.Jsonization.Transformer.TransformSubmodelElementCollection(ISubmodelElementCollection that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\jsonization.cs:line 16867
at AasCore.Aas3_0.SubmodelElementCollection.Transform[T](ITransformer`1 transformer) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\types.cs:line 4395
at AasCore.Aas3_0.Visitation.AbstractTransformer`1.Transform(IClass that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\visitation.cs:line 1166
at AasCore.Aas3_0.Jsonization.Transformer.TransformSubmodelElementCollection(ISubmodelElementCollection that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\jsonization.cs:line 16867
at AasCore.Aas3_0.SubmodelElementCollection.Transform[T](ITransformer`1 transformer) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\types.cs:line 4395
at AasCore.Aas3_0.Visitation.AbstractTransformer`1.Transform(IClass that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\visitation.cs:line 1166
at AasCore.Aas3_0.Jsonization.Transformer.TransformSubmodel(ISubmodel that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\jsonization.cs:line 16510
at AasCore.Aas3_0.Submodel.Transform[T](ITransformer`1 transformer) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\types.cs:line 2762
at AasCore.Aas3_0.Visitation.AbstractTransformer`1.Transform(IClass that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\visitation.cs:line 1166
at AasCore.Aas3_0.Jsonization.Serialize.ToJsonObject(IClass that) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasCore.Aas3_0\jsonization.cs:line 18698
at AasxPackageLogic.MainWindowHeadless.CommandBinding_GeneralDispatchHeadless(String cmd, AasxMenuItemBase menuItem, AasxMenuActionTicket ticket) in C:\Users\adm2pribis\source\repos\aasx-package-explorer\src\AasxPackageLogic\MainWindowHeadless.cs:line 346.
When I try to change the SM to instance and save it and reopen the saved file I got following result:
I am not sure if it is an issue of AASX Package Explorer or yours, but I like to make you aware about this fact.
I have seen on the website https://industrialdigitaltwin.org/content-hub/teilmodelle that a Battery Data Template is under development.
Does anyone here have any "draft" of this template and know anything about the timeline when this will be published?
I would have expected a draft to be in this repository under the development folder.
Greetings
Benedikt
In the SMT "ContactInformations" various IRDI's are used for MLP or Prop. For example 0173-1#02-AAQ836#005 for "Email".
I can't find these IRDI in EClass.
Am I looking wrong?
We need a general feature where the value and UOM are separated internally but displayed together in the TD-viewer.
The data value and the UOM should be separated data-properties. By placing the unit of measure inside the data value field will add additional parsing when we need to extract the data values with appropriate UOM.
-Jon
The template for the Handover Documentation is not built according to the specifications:
Example:
HandoverDocumentation/DocumentVersion/DigitalFile uses the ElementType "SubmodelElementCollection", but it is specified as "File".
Same goes for the PreviewFile field.
Hi,
unfortunately the the aasx Package Explorer (latest build 191121) crashes without an error message when I try to open the IDTA 2002-1-0_Template_ContactInformation.aasx example.
I have the same issue with the ZVEI_Digital_Nameplate_V10 files.
With my own aasx files the Package Explorer works well.
Do you have an idea what I am doing wrong?
Submitter:
Magnus Redeker (Fraunhofer IOSB-INA)
Target Users:
Description:
Technologies of interest:
Gaps:
Currently, no "omniscient" register like the Asset Interface Description exists
Links:
None
Please provide the following information on your use case description as a new github issue.
There is a suspicious "space" character in ContactInformation.IPCommunication.TypeOfCommunication.id
:
https://admin-shell.io/zvei/nameplate/1/0/ ContactInformations/ContactInformation/IPCommunication/TypeOfCommunication
In all other places that use the is base https://admin-shell.io/zvei/nameplate/1/0/
there is no space.
In SMT TimeSeries there is specified, that some properties are marked as Template. This does not work anymore in V3.0, as Kind is no longer part of SME in V3.0.
Sample_ZVEI_Digital_Nameplate_V10/aasx/https___example_com_ids_aas_9370_1290_3012_2294/https___example_com_ids_aas_9370_1290_3012_2294.aas.xml
The IEC:definition is swapped for these descriptions:
aas:conceptDescription
aas:idShort/
<aas:identification idType="IRI">https://admin-shell.io/zvei/nameplate/1/0/Nameplate/AssetSpecificProperties</aas:identification>
IEC:definition
<IEC:langString lang="en">Collection of guideline-specific properties</IEC:langString>
<IEC:langString lang="de">Sammlung der Richtlinien-spezifischen Merkmale</IEC:langString>
is swapped with
aas:conceptDescription
aas:idShort/
<aas:identification idType="IRI">https://admin-shell.io/zvei/nameplate/1/0/Nameplate/AssetSpecificProperties/GuidelineSpecificProperties</aas:identification>
IEC:definition
<IEC:langString lang="en">Asset specific nameplate information required by guideline, stipulation or legislation</IEC:langString>
<IEC:langString lang="de">Asset-spezifische Typenschildinformation, die von weiteren Normen, Standards und Richtlinien gefordert wird</IEC:langString>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.