Skip to content

Commit 19e3a1d

Browse files
Merge pull request #54 from admin-shell-io/IDTA-01003-a-3-1_working
V3.1
2 parents 92a551a + 05d83b4 commit 19e3a1d

File tree

90 files changed

+3750
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+3750
-1
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Check-changed-files
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened]
6+
7+
permissions:
8+
actions: read
9+
10+
jobs:
11+
qodana:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Fetch Sources
15+
uses: actions/checkout@v4
16+
with:
17+
fetch-depth: ${{ github.event.pull_request.commits }}
18+
19+
- name: Get two more commits so Qodana we can identify the changes
20+
if: github.event_name == 'pull_request'
21+
run: git fetch --deepen=2
22+
23+
- name: Run Qodana inspection
24+
uses: JetBrains/qodana-action@v2024.3.4
25+
with:
26+
upload-result: true
27+
args: >
28+
--baseline,doc/qodana-baseline.sarif.json,
29+
--config,.qodana/qodana.yaml
30+
31+
# This step uploads the SARIF file to GitHub so that the code scanning feature can use it.
32+
# https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github#example-workflow-that-runs-the-eslint-analysis-tool
33+
- name: Upload SARIF report to GitHub
34+
uses: github/codeql-action/upload-sarif@v3
35+
with:
36+
sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
################################################################################
2+
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
3+
################################################################################
4+
5+
/.vs

.qodana/asciidoc-inspection.xml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<component name="InspectionProjectProfileManager">
2+
<profile version="1.0" is_locked="true">
3+
<!-- GrazieInspection normally has a TYPO preference -->
4+
<inspection_tool class="GrazieInspection" enabled="true" level="WARNING" enabled_by_default="true"/>
5+
<inspection_tool class="AsciiDocAnchorWithoutId" enabled="true" level="WARNING" enabled_by_default="true" />
6+
<inspection_tool class="AsciiDocAttributeContinuation" enabled="true" level="WARNING" enabled_by_default="true" />
7+
<inspection_tool class="AsciiDocBlockMacroShouldBeInlineMacro" enabled="true" level="WARNING" enabled_by_default="true" />
8+
<inspection_tool class="AsciiDocDescriptionExists" enabled="true" level="WARNING" enabled_by_default="true" />
9+
<inspection_tool class="AsciiDocDescriptionLength" enabled="true" level="WARNING" enabled_by_default="true" />
10+
<inspection_tool class="AsciiDocHeadingStyle" enabled="true" level="WARNING" enabled_by_default="true" />
11+
<inspection_tool class="AsciiDocHorizontalRule" enabled="true" level="WARNING" enabled_by_default="true" />
12+
<inspection_tool class="AsciiDocInlineMacroShouldBeBlockOrPreprocessorMacro" enabled="true" level="WARNING" enabled_by_default="true" />
13+
<inspection_tool class="AsciiDocLinkResolve" enabled="true" level="ERROR" enabled_by_default="true" />
14+
<inspection_tool class="AsciiDocListingStyle" enabled="true" level="WARNING" enabled_by_default="true" />
15+
<inspection_tool class="AsciiDocPageBreak" enabled="true" level="WARNING" enabled_by_default="true" />
16+
<inspection_tool class="AsciiDocReferencePattern" enabled="true" level="ERROR" enabled_by_default="true" />
17+
<inspection_tool class="AsciiDocXrefWithFileExtension" enabled="true" level="WARNING" enabled_by_default="true" />
18+
<inspection_tool class="AsciiDocXrefWithNaturalCrossReference" enabled="true" level="WARNING" enabled_by_default="true" />
19+
<inspection_tool class="AsciiDocAttributeShouldBeDefined" enabled="true" level="WARNING" enabled_by_default="true" />
20+
<inspection_tool class="AsciiDocObsoletePassthrough" enabled="true" level="WARNING" enabled_by_default="true" />
21+
<inspection_tool class="AsciiDocUnresolvedAntoraModule" enabled="true" level="ERROR" enabled_by_default="true" />
22+
<inspection_tool class="SpellCheckingInspection" enabled="true" level="WARNING" enabled_by_default="true">
23+
<option name="processCode" value="true" />
24+
<option name="processLiterals" value="true" />
25+
<option name="processComments" value="true" />
26+
</inspection_tool>
27+
<inspection_tool class="Style" enabled="true" level="WARNING" enabled_by_default="true" />
28+
</profile>
29+
</component>

.qodana/qodana.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: 1.0
2+
profile:
3+
path: .qodana/asciidoc-inspection.xml
4+
linter: jetbrains/qodana-jvm-community:2024.3
5+
plugins:
6+
- id: org.asciidoctor.intellij.asciidoc
7+
8+
include:
9+
- name: HttpUrlsUsage
10+
- name: GrazieInspection
11+
12+
exclude:
13+
- name: All
14+
paths:
15+
- .github
16+
- .qodana
17+
- CONTRIBUTING.md
18+
- LICENSE.txt
19+
- README.md

README.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,32 @@ Governance of the specification is done in the working group Open Technology of
88

99
The specification number is: **IDTA-01003-a**
1010

11+
## Releases
12+
13+
The following versioning scheme is applied: 'V\<major>.\<minor>.\<patch>'.
14+
Major versions indicate breaking changes while minor updates are
15+
backward compatible.
16+
The patch position is increased whenever bugfixes need to be applied.
17+
The following release contains the latest version of the AAS schemas
18+
(see also the [releases](https://github.com/admin-shell-io/aas-specs-iec61360/releases)
19+
section of this repository):
20+
21+
* [3.1.0](https://github.com/admin-shell-io/aas-specs-iec61360/releases/tag/v3.1.0)
22+
is the latest release for the `V3.1.0` version of the AAS Specification IDTA-01003-a Data Specification IEC61360,
23+
containing the normative schemas for the published document
24+
"Specification of the Asset Administration Shell: Part 3a - **Version 3.1.0**".
25+
*Use this release if you want to work with the latest specified AAS version.*
26+
27+
Note: The schema for this data specification is included as embedded data specification in the release of [IDTA-01001-3-1](https://github.com/admin-shell-io/aas-specs-metamodel) or its bugfix releases
28+
1129
## Contributing
1230

1331
Feature requests, reports about inconsistencies, mistakes *etc.* are highly
1432
welcome! Please [submit a new issue](
1533
https://github.com/admin-shell-io/aas-specs-iec61360/issues/new
1634
).
1735

18-
If you want to contribute, see [CONTRIBUTING.md](https://github.com/admin-shell-io/aas-specs/blob/master/CONTRIBUTING.md). The same contribution rules apply as for [aas-specs](https://github.com/admin-shell-io/aas-specs)
36+
If you want to contribute, see [CONTRIBUTING.md](https://github.com/admin-shell-io/aas-specs-metamodel/blob/master/CONTRIBUTING.md). The same contribution rules apply as for [aas-specs-metamodel](https://github.com/admin-shell-io/aas-specs-metamodel)
1937

2038
## License
2139

documentation/IDTA-01003-a/antora.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name: IDTA-01003-a
2+
title: 'Part 3a: Data Specification - IEC61360'
3+
version: 'v3.1'
4+
display_version: 'in progress'
5+
prerelease: true
6+
start_page: ROOT:index.adoc
7+
nav:
8+
- modules/ROOT/nav.adoc
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
////
2+
Copyright (c) 2023 Industrial Digital Twin Association
3+
4+
This work is licensed under a [Creative Commons Attribution 4.0 International License](
5+
https://creativecommons.org/licenses/by/4.0/).
6+
7+
SPDX-License-Identifier: CC-BY-4.0
8+
9+
Illustrations:
10+
Plattform Industrie 4.0; Anna Salari, Publik. Agentur für Kommunikation GmbH, designed by Publik. Agentur für Kommunikation GmbH
11+
////
12+
13+
* xref:terms-definitions-and-abbreviations.adoc[Terms and Definitions]
14+
* xref:preamble.adoc[Preamble]
15+
* xref:introduction.adoc[Introduction]
16+
17+
* xref:specification.adoc[Specification]
18+
19+
* xref:summary-and-outlook.adoc[Summary and Outlook]
20+
21+
22+
* xref:./annex/nav-annex.adoc[Annex]
23+
** xref:./annex/background.adoc[Background]
24+
** xref:annex/backus-naur-form.adoc[Backus Naur Form]
25+
** xref:annex/uml.adoc[UML]
26+
** xref:annex/uml-templates.adoc[UML Table Templates]
27+
** xref:./annex/handling-constraints.adoc[Handling Constraints]
28+
29+
* xref:changelog.adoc[Change Log]
30+
* xref:bibliography.adoc[Bibliography]
31+
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
= Background Information
2+
3+
== General
4+
5+
This clause provides general information about sources of information and relevant concepts for the data specification under consideration, as well as its usage in the context of the Asset Administration Shell.
6+
It is not normative.
7+
8+
=== Data Elements (Part 1)
9+
10+
.Metamodel of Data Elements (Part 1)
11+
[[image-data-elements]]
12+
[plantuml, svg]
13+
....
14+
include::partial$diagrams/data-element.puml[]
15+
....
16+
17+
The data specification template IEC61360 is relevant for the definition of concept descriptions for data elements (<<image-data-elements>>).
18+
Submodel Elements inherit from _hasSemantics_, i.e. they have a semanticId and optionally some additional supplementary semantic IDs (<<image-has-semantics>>).
19+
20+
xref:introduction.adoc#image-rel-metamodel-iec61360[Figure Overview Relationship Metamodel Part 1 a & Data Specifications IEC 61360] gives an overview of the relationship of concept descriptions (_ConceptDescription_) and data specifications (DataSpecification, _DataSpecificationContent_ and _HasDataSpecification_) from Part 1 for this concrete data specification template.
21+
22+
.Metamodel of HasSemantics (Part 1)
23+
[[image-has-semantics]]
24+
[plantuml, svg]
25+
....
26+
include::partial$diagrams/has-semantics.puml[]
27+
....
28+
29+
Clause xref:specification.adoc#category-of-concept-descriptions[Category of Concept Descriptions] describes how to use the data specification template to describe further of the metamodel as specified in Part 1 that may also have semantics assigned to them (by inheriting from HasSemantics): Submodel, all other SubmodelElements, SpecificAssetId, Qualifier, and Extension.
30+
In these cases, the preferred name and the definition are mainly used to provide a minimum of information on what the corresponding value is about.
31+
32+
== Examples
33+
34+
<<image-property-max-rotation-speed>> shows an example of a property with idShort "MaxRotationSpeed" with a semantic ID referring to a concept description "MaxRotationSpeed".
35+
The concept description shows that MaxRotationSpeed is a quantitative property because the data type is one of *_MEASURE, namely INTEGER_MEASURE.
36+
In this case, the definition of a physical unit is mandatory.
37+
It is "1/min" for MaxRotationSpeed.
38+
A unique ID is also provided for this physical unit.
39+
Concept descriptions for physical units are described e.g. in Part 4b of this document series on the Details of the Asset Administration Shell.
40+
41+
The type INTEGER_MEASURE of the concept description is mapped to xs:integer of the property.
42+
43+
.Example Quantitative Property MaxRotationSpeed in AASX Package Explorer
44+
[[image-property-max-rotation-speed]]
45+
image::image16.png[align=center]
46+
47+
<<image-property-with-enum>> shows a property "CoolingType".
48+
Its semanticId references a concept description that defines a value list (_DataSpecificationIec612360/valueList_) with two values BAB657 and BAB611.
49+
50+
[#_Toc129706741]
51+
.Example Property with Enumeration in AASX Package Explorer
52+
[[image-property-with-enum]]
53+
image::image17.png[align=center]
54+
55+
<<image-example-cd>> shows the concept description for the value BAB657 that was used in the enumeration in <<image-property-with-enum>>.
56+
Most attributes are not relevant (see Clause xref:specification.adoc#category-of-concept-descriptions[Category of Concept Descriptions]).
57+
However, it is mandatory to set the attribute _DataSpecificationIec61360/value_, the _preferredName_ (open circuit, external cooling), and the data type (for enumeration, the data type is typically just STRING).
58+
59+
.Example Value Concept Description in AASX Package Explorer
60+
[[image-example-cd]]
61+
image::image18.png[align=center]
62+
63+
=== Referencing (Part 1)
64+
65+
Besides the abstract class _HasSemantics,_ the referencing concept explained in Part 1 is also relevant (<<image-reference>>).
66+
In the case of the data specification template IEC61360, the only relevant key types are "GlobalReference" and "ConceptDescription".
67+
In case the concept description is a shadow copy of an existing data dictionary and uses the same ID, it is recommended to use the Global Reference for the _DataSpecificationIec61360/unitId_ or _ValueReferencePair/valueId_.
68+
Otherwise, a model reference with _Key/type_ equal to _ConceptDescription_ is used.
69+
70+
The same applies to _HasSemantics/semanticId_ and semantic IDs in _HasSemantics/supplementalSemanticIds._
71+
72+
.Metamodel of Reference (Part 1)
73+
[[image-reference]]
74+
[plantuml, svg]
75+
....
76+
include::partial$diagrams/reference-metamodel.puml[]
77+
....
78+
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
////
2+
Copyright (c) 2023 Industrial Digital Twin Association
3+
4+
This work is licensed under a [Creative Commons Attribution 4.0 International License](
5+
https://creativecommons.org/licenses/by/4.0/).
6+
7+
SPDX-License-Identifier: CC-BY-4.0
8+
9+
////
10+
11+
12+
[appendix]
13+
= Backus-Naur-Form
14+
15+
The Backus-Naur form (BNF) – a meta-syntax notation for context-free grammars – is used to define grammars.
16+
For more information see https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form[Wikipedia].
17+
18+
A BNF specification is a set of derivation rules, written as
19+
20+
[listing]
21+
....
22+
<symbol> ::= __expression__
23+
....
24+
25+
where:
26+
27+
* <https://en.wikipedia.org/wiki/Symbol[symbol]> is a https://en.wikipedia.org/wiki/Nonterminal[nonterminal] (variable) and the https://en.wikipedia.org/wiki/Expression_(mathematics)[__expression__] consists of one or more sequences of either terminal or nonterminal symbols,
28+
* ::= means that the symbol on the left must be replaced with the expression on the right,
29+
* more sequences of symbols are separated by the https://en.wikipedia.org/wiki/Vertical_bar[vertical bar] "|", indicating a https://en.wikipedia.org/wiki/Alternation_(formal_language_theory)[choice], the whole being a possible substitution for the symbol on the left,
30+
* symbols that never appear on a left side are https://en.wikipedia.org/wiki/Terminal_symbol[terminals], while symbols that appear on a left side are https://en.wikipedia.org/wiki/Nonterminal_symbol[non-terminals] and are always enclosed between the pair of angle brackets <>,
31+
* terminals are enclosed with quotation marks: "text". "" is an empty string,
32+
* optional items are enclosed in square brackets: [<item-x>],
33+
* items existing 0 or more times are enclosed in curly brackets are suffixed with an asterisk (\*) such as <word> ::= <letter> {<letter>}*,
34+
* items existing 1 or more times are suffixed with an addition (plus) symbol, \+, such as <word> ::= {<letter>}+,
35+
* round brackets are used to explicitly to define the order of expansion to indicate precedence, example: ( <symbol1> | <symbol2> ) <symbol3>,
36+
* text without quotation marks is an informal explanation of what is expected; this text is cursive if grammar is non-recursive and vice versa.
37+
38+
[.underline]#Example:#
39+
40+
[example]
41+
....
42+
43+
<contact-address> ::= <name> "e-mail addresses:" <e-mail-Addresses>
44+
45+
<e-mail-Addresses> ::= {<e-mail-Address>}*
46+
47+
<e-mail-Address> ::= <local-part> "@" <domain>
48+
49+
<name> ::= characters
50+
51+
<local-part> ::= characters conformant to local-part in RFC 5322
52+
53+
<domain> ::= characters conformant to domain in RFC 5322
54+
....
55+
56+
Valid contact addresses:
57+
58+
[example]
59+
....
60+
Hugo Me e-mail addresses: Hugo@example.com
61+
62+
Hugo e-mail addresses: Hugo.Me@text.de
63+
....
64+
65+
Invalid contact addresses:
66+
67+
[example]
68+
....
69+
Hugo
70+
71+
Hugo Hugo@ example.com
72+
73+
Hugo@example.com
74+
....
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
////
2+
Copyright (c) 2023 Industrial Digital Twin Association
3+
4+
This work is licensed under a [Creative Commons Attribution 4.0 International License](
5+
https://creativecommons.org/licenses/by/4.0/).
6+
7+
SPDX-License-Identifier: CC-BY-4.0
8+
9+
Illustrations:
10+
Plattform Industrie 4.0; Anna Salari, Publik. Agentur für Kommunikation GmbH, designed by Publik. Agentur für Kommunikation GmbH
11+
////
12+
13+
:page-partial:
14+
15+
= Handling of Constraints
16+
17+
Constraints are prefixed with *AASc-3a-* followed by a three-digit number.
18+
The "c" in "AASc-" was motivated by "Concept Description".
19+
The numbering of constraints is unique within namespace AASc-3a; a number of a constraint that was removed will not be used again.
20+
21+
If a constraint is mentioning the ID of the Template, then the same constraints shall also be valid for deprecated data specification template IDs.
22+
23+
====
24+
Note: in the Annex listing the metamodel changes, constraints with prefix AASd-, AASs- or AASc- are also listed.
25+
These are metamodel, security or data specification constraints, and are now part of the split document parts.
26+
====
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
////
2+
Copyright (c) 2023 Industrial Digital Twin Association
3+
4+
This work is licensed under a [Creative Commons Attribution 4.0 International License](
5+
https://creativecommons.org/licenses/by/4.0/).
6+
7+
SPDX-License-Identifier: CC-BY-4.0
8+
9+
////
10+
11+
12+
////
13+
:page-partial:
14+
15+
[appendix]
16+
* xref:./Annex/IDTA-01003-a_Background.adoc[Background]
17+
* xref:./sharedAnnex/IDTA-01xxx_BackusNaurForm.adoc[Backus Naur Form]
18+
* xref:./sharedAnnex/IDTA-01xxx_UML.adoc[UML]
19+
* xref:./sharedAnnex/IDTA-01xxx_UMLTemplates.adoc[UML Table Templates]
20+
21+
////

0 commit comments

Comments
 (0)