sysml-validate 0.11.0 → 0.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +27 -27
- package/README.md +200 -200
- package/out/main.js +596 -141
- package/out/main.js.map +4 -4
- package/package.json +57 -57
- package/resources/sysml.dimension-table.json +1 -1
- package/resources/sysml.library/Domain Libraries/Analysis/.meta.json +9 -9
- package/resources/sysml.library/Domain Libraries/Analysis/.project.json +26 -26
- package/resources/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +33 -33
- package/resources/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +118 -118
- package/resources/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -143
- package/resources/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +170 -170
- package/resources/sysml.library/Domain Libraries/Cause and Effect/.meta.json +7 -7
- package/resources/sysml.library/Domain Libraries/Cause and Effect/.project.json +22 -22
- package/resources/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +82 -82
- package/resources/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -81
- package/resources/sysml.library/Domain Libraries/Geometry/.meta.json +7 -7
- package/resources/sysml.library/Domain Libraries/Geometry/.project.json +26 -26
- package/resources/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +898 -898
- package/resources/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +167 -167
- package/resources/sysml.library/Domain Libraries/Metadata/.meta.json +9 -9
- package/resources/sysml.library/Domain Libraries/Metadata/.project.json +18 -18
- package/resources/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +77 -77
- package/resources/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +142 -142
- package/resources/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +38 -38
- package/resources/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +99 -99
- package/resources/sysml.library/Domain Libraries/Quantities and Units/.meta.json +28 -28
- package/resources/sysml.library/Domain Libraries/Quantities and Units/.project.json +22 -22
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -42
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -439
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -2726
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -206
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -1991
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -1353
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -1223
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -2333
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -958
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -1537
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -1564
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -1169
- package/resources/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -1256
- package/resources/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -30
- package/resources/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -526
- package/resources/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -107
- package/resources/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -70
- package/resources/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -378
- package/resources/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -48
- package/resources/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +49 -49
- package/resources/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -274
- package/resources/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -260
- package/resources/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -62
- package/resources/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +7 -7
- package/resources/sysml.library/Domain Libraries/Requirement Derivation/.project.json +18 -18
- package/resources/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +62 -62
- package/resources/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +38 -38
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +8 -8
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +10 -10
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +176 -176
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -23
- package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +63 -63
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +22 -22
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +14 -14
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +79 -79
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -22
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -68
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -47
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +116 -116
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +42 -42
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -43
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -27
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +42 -42
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +153 -153
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -49
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -56
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +32 -32
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +110 -110
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -25
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +34 -34
- package/resources/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +272 -272
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +21 -21
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +14 -14
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +94 -94
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +155 -155
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +134 -134
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +189 -189
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -483
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +66 -66
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +57 -57
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -212
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +160 -160
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -992
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +292 -292
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +196 -196
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +144 -144
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +280 -280
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +65 -65
- package/resources/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +187 -187
- package/resources/sysml.library/LICENSE +276 -276
- package/resources/sysml.library/NOTICE.md +20 -20
- package/resources/sysml.library/Systems Library/Actions.sysml +556 -556
- package/resources/sysml.library/Systems Library/Allocations.sysml +28 -28
- package/resources/sysml.library/Systems Library/AnalysisCases.sysml +37 -37
- package/resources/sysml.library/Systems Library/Attributes.sysml +24 -24
- package/resources/sysml.library/Systems Library/Calculations.sysml +36 -36
- package/resources/sysml.library/Systems Library/Cases.sysml +70 -70
- package/resources/sysml.library/Systems Library/Connections.sysml +59 -59
- package/resources/sysml.library/Systems Library/Constraints.sysml +43 -43
- package/resources/sysml.library/Systems Library/Flows.sysml +125 -125
- package/resources/sysml.library/Systems Library/Interfaces.sysml +88 -88
- package/resources/sysml.library/Systems Library/Items.sysml +152 -152
- package/resources/sysml.library/Systems Library/Metadata.sysml +31 -31
- package/resources/sysml.library/Systems Library/Parts.sysml +80 -80
- package/resources/sysml.library/Systems Library/Ports.sysml +53 -53
- package/resources/sysml.library/Systems Library/Requirements.sysml +193 -193
- package/resources/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -123
- package/resources/sysml.library/Systems Library/States.sysml +102 -102
- package/resources/sysml.library/Systems Library/SysML.sysml +539 -539
- package/resources/sysml.library/Systems Library/UseCases.sysml +56 -56
- package/resources/sysml.library/Systems Library/VerificationCases.sysml +102 -102
- package/resources/sysml.library/Systems Library/Views.sysml +163 -163
- package/resources/sysml.library.index.json +1 -1
|
@@ -1,177 +1,177 @@
|
|
|
1
|
-
standard library package Collections {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package defines a standard set of Collection data types. Unlike sequences of values
|
|
5
|
-
* defined directly using multiplicity, these data types allow for the possibility of collections
|
|
6
|
-
* as elements of collections.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
private import Base::*;
|
|
10
|
-
private import ScalarValues::*;
|
|
11
|
-
private import SequenceFunctions::size;
|
|
12
|
-
private import SequenceFunctions::equals;
|
|
13
|
-
private import IntegerFunctions::*;
|
|
14
|
-
private import ControlFunctions::*;
|
|
15
|
-
|
|
16
|
-
abstract datatype Collection {
|
|
17
|
-
doc
|
|
18
|
-
/*
|
|
19
|
-
* A Collection is a DataValue that represents a collection of elements of a given type.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
feature elements[0..*] nonunique {
|
|
23
|
-
doc
|
|
24
|
-
/*
|
|
25
|
-
* The contents of the Collection.
|
|
26
|
-
*/
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
abstract datatype OrderedCollection :> Collection {
|
|
31
|
-
doc
|
|
32
|
-
/*
|
|
33
|
-
* An OrderedCollection is a Collection of which the elements are ordered and not necessarily unique.
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
feature elements[0..*] ordered nonunique :>> Collection::elements;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
abstract datatype UniqueCollection :> Collection {
|
|
40
|
-
doc
|
|
41
|
-
/*
|
|
42
|
-
* A UniqueCollection is a Collection of which the elements are unique and not necessarily ordered.
|
|
43
|
-
*/
|
|
44
|
-
|
|
45
|
-
feature elements[0..*] :>> Collection::elements {
|
|
46
|
-
doc
|
|
47
|
-
/* Note: Redefinition of 'elements' is unique by default. */
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
datatype Array :> OrderedCollection {
|
|
52
|
-
doc
|
|
53
|
-
/*
|
|
54
|
-
* An Array is a fixed size, multi-dimensional Collection of which the elements are nonunique and ordered.
|
|
55
|
-
* Its dimensions specify how many dimensions the array has, and how many elements there are in each dimension.
|
|
56
|
-
* The rank is equal to the number of dimensions. The flattenedSize is equal to the total number of elements
|
|
57
|
-
* in the array.
|
|
58
|
-
*
|
|
59
|
-
* Feature elements is a flattened sequence of all elements of an Array and can be accessed by a tuple of indices.
|
|
60
|
-
* The number of indices is equal to rank. The elements are packed according to row-major convention.
|
|
61
|
-
*
|
|
62
|
-
* The elements of an Array can be accessed by a tuple of indices. The number of indices in such tuple is equal to rank.
|
|
63
|
-
* The elements are packed according to the row-major convention.
|
|
64
|
-
*
|
|
65
|
-
* Note 1. Feature dimensions may be empty, which denotes a zero dimensional array, allowing an Array to collapse to a single element.
|
|
66
|
-
* This is useful to allow for specialization of an Array into a type restricted to represent a scalar.
|
|
67
|
-
* The flattenedSize of a zero dimensional array is 1.
|
|
68
|
-
*
|
|
69
|
-
* Note 2: An Array can represent the generalized mathematical concept of an infinite matrix of any rank, i.e. not limited to rank two.
|
|
70
|
-
*/
|
|
71
|
-
|
|
72
|
-
feature dimensions: Positive[0..*] ordered nonunique {
|
|
73
|
-
doc
|
|
74
|
-
/*
|
|
75
|
-
* Defines the N-dimensional shape of the Array.
|
|
76
|
-
*/
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
feature rank: Natural[1] = size(dimensions) {
|
|
80
|
-
doc
|
|
81
|
-
/*
|
|
82
|
-
* The number of dimensions.
|
|
83
|
-
*/
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
feature flattenedSize: Positive[1] = dimensions->reduce '*' ?? 1 {
|
|
87
|
-
doc
|
|
88
|
-
/*
|
|
89
|
-
* The number of elements in the Array, given as the product of the dimensions,
|
|
90
|
-
* or 1 if dimensions is empty.
|
|
91
|
-
*/
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
inv { flattenedSize == size(elements) }
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
datatype Bag :> Collection {
|
|
98
|
-
doc
|
|
99
|
-
/*
|
|
100
|
-
* A Bag is a variable-size Collection of which the elements are unordered and nonunique.
|
|
101
|
-
*/
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
datatype Set :> UniqueCollection {
|
|
105
|
-
doc
|
|
106
|
-
/*
|
|
107
|
-
* A Set is a variable-size Collection of which the elements are unique and unordered.
|
|
108
|
-
*/
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
datatype OrderedSet :> OrderedCollection, UniqueCollection
|
|
112
|
-
intersects OrderedCollection, UniqueCollection {
|
|
113
|
-
doc
|
|
114
|
-
/*
|
|
115
|
-
* An OrderedSet is a variable-size Collection of which the elements are unique and ordered.
|
|
116
|
-
*/
|
|
117
|
-
|
|
118
|
-
feature elements[0..*] ordered :>> OrderedCollection::elements, UniqueCollection::elements {
|
|
119
|
-
doc
|
|
120
|
-
/* Note: Redefinition of elements is unique by default. */
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
datatype List :> OrderedCollection {
|
|
125
|
-
doc
|
|
126
|
-
/*
|
|
127
|
-
* A List is a variable-size Collection of which the elements are nonunique and ordered.
|
|
128
|
-
*/
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
datatype KeyValuePair {
|
|
132
|
-
doc
|
|
133
|
-
/*
|
|
134
|
-
* A KeyValuePair is a DataValue that represents a pair of a key and an associated val,
|
|
135
|
-
* primarily for use in Maps.
|
|
136
|
-
*/
|
|
137
|
-
|
|
138
|
-
feature key: Anything[0..*] ordered nonunique;
|
|
139
|
-
feature val: Anything[0..*] ordered nonunique;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
datatype Map :> Collection {
|
|
143
|
-
doc
|
|
144
|
-
/*
|
|
145
|
-
* Map is a variable-size Collection of which the elements are KeyValuePairs.
|
|
146
|
-
* The keys must be unique within the Map. The vals need not be unique.
|
|
147
|
-
*/
|
|
148
|
-
|
|
149
|
-
feature elements: KeyValuePair[0..*] :>> Collection::elements {
|
|
150
|
-
doc
|
|
151
|
-
/* Note: Redefinition of elements is unique by default.*/
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
inv {
|
|
155
|
-
elements->forAll{ in e1 : KeyValuePair;
|
|
156
|
-
not elements->exists{ in e2 : KeyValuePair;
|
|
157
|
-
e1 != e2 and e1.key->equals(e2.key) }
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
datatype OrderedMap :> Map, OrderedCollection {
|
|
163
|
-
doc
|
|
164
|
-
/*
|
|
165
|
-
* An OrderedMap is a variable-size Map that maintains an ordering of its elements.
|
|
166
|
-
*
|
|
167
|
-
* The ordering may be by key of the KeyValuePair elements, or by order of construction,
|
|
168
|
-
* or any other method. The essential aspect is that ordering is maintained and guaranteed across
|
|
169
|
-
* accesses to the OrderedMap.
|
|
170
|
-
*/
|
|
171
|
-
|
|
172
|
-
feature elements: KeyValuePair[0..*] ordered :>> Map::elements, OrderedCollection::elements {
|
|
173
|
-
doc
|
|
174
|
-
/* Note: Redefinition of elements is unique by default. */
|
|
175
|
-
}
|
|
176
|
-
}
|
|
1
|
+
standard library package Collections {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines a standard set of Collection data types. Unlike sequences of values
|
|
5
|
+
* defined directly using multiplicity, these data types allow for the possibility of collections
|
|
6
|
+
* as elements of collections.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
private import Base::*;
|
|
10
|
+
private import ScalarValues::*;
|
|
11
|
+
private import SequenceFunctions::size;
|
|
12
|
+
private import SequenceFunctions::equals;
|
|
13
|
+
private import IntegerFunctions::*;
|
|
14
|
+
private import ControlFunctions::*;
|
|
15
|
+
|
|
16
|
+
abstract datatype Collection {
|
|
17
|
+
doc
|
|
18
|
+
/*
|
|
19
|
+
* A Collection is a DataValue that represents a collection of elements of a given type.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
feature elements[0..*] nonunique {
|
|
23
|
+
doc
|
|
24
|
+
/*
|
|
25
|
+
* The contents of the Collection.
|
|
26
|
+
*/
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
abstract datatype OrderedCollection :> Collection {
|
|
31
|
+
doc
|
|
32
|
+
/*
|
|
33
|
+
* An OrderedCollection is a Collection of which the elements are ordered and not necessarily unique.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
feature elements[0..*] ordered nonunique :>> Collection::elements;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
abstract datatype UniqueCollection :> Collection {
|
|
40
|
+
doc
|
|
41
|
+
/*
|
|
42
|
+
* A UniqueCollection is a Collection of which the elements are unique and not necessarily ordered.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
feature elements[0..*] :>> Collection::elements {
|
|
46
|
+
doc
|
|
47
|
+
/* Note: Redefinition of 'elements' is unique by default. */
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
datatype Array :> OrderedCollection {
|
|
52
|
+
doc
|
|
53
|
+
/*
|
|
54
|
+
* An Array is a fixed size, multi-dimensional Collection of which the elements are nonunique and ordered.
|
|
55
|
+
* Its dimensions specify how many dimensions the array has, and how many elements there are in each dimension.
|
|
56
|
+
* The rank is equal to the number of dimensions. The flattenedSize is equal to the total number of elements
|
|
57
|
+
* in the array.
|
|
58
|
+
*
|
|
59
|
+
* Feature elements is a flattened sequence of all elements of an Array and can be accessed by a tuple of indices.
|
|
60
|
+
* The number of indices is equal to rank. The elements are packed according to row-major convention.
|
|
61
|
+
*
|
|
62
|
+
* The elements of an Array can be accessed by a tuple of indices. The number of indices in such tuple is equal to rank.
|
|
63
|
+
* The elements are packed according to the row-major convention.
|
|
64
|
+
*
|
|
65
|
+
* Note 1. Feature dimensions may be empty, which denotes a zero dimensional array, allowing an Array to collapse to a single element.
|
|
66
|
+
* This is useful to allow for specialization of an Array into a type restricted to represent a scalar.
|
|
67
|
+
* The flattenedSize of a zero dimensional array is 1.
|
|
68
|
+
*
|
|
69
|
+
* Note 2: An Array can represent the generalized mathematical concept of an infinite matrix of any rank, i.e. not limited to rank two.
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
feature dimensions: Positive[0..*] ordered nonunique {
|
|
73
|
+
doc
|
|
74
|
+
/*
|
|
75
|
+
* Defines the N-dimensional shape of the Array.
|
|
76
|
+
*/
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
feature rank: Natural[1] = size(dimensions) {
|
|
80
|
+
doc
|
|
81
|
+
/*
|
|
82
|
+
* The number of dimensions.
|
|
83
|
+
*/
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
feature flattenedSize: Positive[1] = dimensions->reduce '*' ?? 1 {
|
|
87
|
+
doc
|
|
88
|
+
/*
|
|
89
|
+
* The number of elements in the Array, given as the product of the dimensions,
|
|
90
|
+
* or 1 if dimensions is empty.
|
|
91
|
+
*/
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
inv { flattenedSize == size(elements) }
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
datatype Bag :> Collection {
|
|
98
|
+
doc
|
|
99
|
+
/*
|
|
100
|
+
* A Bag is a variable-size Collection of which the elements are unordered and nonunique.
|
|
101
|
+
*/
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
datatype Set :> UniqueCollection {
|
|
105
|
+
doc
|
|
106
|
+
/*
|
|
107
|
+
* A Set is a variable-size Collection of which the elements are unique and unordered.
|
|
108
|
+
*/
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
datatype OrderedSet :> OrderedCollection, UniqueCollection
|
|
112
|
+
intersects OrderedCollection, UniqueCollection {
|
|
113
|
+
doc
|
|
114
|
+
/*
|
|
115
|
+
* An OrderedSet is a variable-size Collection of which the elements are unique and ordered.
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
feature elements[0..*] ordered :>> OrderedCollection::elements, UniqueCollection::elements {
|
|
119
|
+
doc
|
|
120
|
+
/* Note: Redefinition of elements is unique by default. */
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
datatype List :> OrderedCollection {
|
|
125
|
+
doc
|
|
126
|
+
/*
|
|
127
|
+
* A List is a variable-size Collection of which the elements are nonunique and ordered.
|
|
128
|
+
*/
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
datatype KeyValuePair {
|
|
132
|
+
doc
|
|
133
|
+
/*
|
|
134
|
+
* A KeyValuePair is a DataValue that represents a pair of a key and an associated val,
|
|
135
|
+
* primarily for use in Maps.
|
|
136
|
+
*/
|
|
137
|
+
|
|
138
|
+
feature key: Anything[0..*] ordered nonunique;
|
|
139
|
+
feature val: Anything[0..*] ordered nonunique;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
datatype Map :> Collection {
|
|
143
|
+
doc
|
|
144
|
+
/*
|
|
145
|
+
* Map is a variable-size Collection of which the elements are KeyValuePairs.
|
|
146
|
+
* The keys must be unique within the Map. The vals need not be unique.
|
|
147
|
+
*/
|
|
148
|
+
|
|
149
|
+
feature elements: KeyValuePair[0..*] :>> Collection::elements {
|
|
150
|
+
doc
|
|
151
|
+
/* Note: Redefinition of elements is unique by default.*/
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
inv {
|
|
155
|
+
elements->forAll{ in e1 : KeyValuePair;
|
|
156
|
+
not elements->exists{ in e2 : KeyValuePair;
|
|
157
|
+
e1 != e2 and e1.key->equals(e2.key) }
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
datatype OrderedMap :> Map, OrderedCollection {
|
|
163
|
+
doc
|
|
164
|
+
/*
|
|
165
|
+
* An OrderedMap is a variable-size Map that maintains an ordering of its elements.
|
|
166
|
+
*
|
|
167
|
+
* The ordering may be by key of the KeyValuePair elements, or by order of construction,
|
|
168
|
+
* or any other method. The essential aspect is that ordering is maintained and guaranteed across
|
|
169
|
+
* accesses to the OrderedMap.
|
|
170
|
+
*/
|
|
171
|
+
|
|
172
|
+
feature elements: KeyValuePair[0..*] ordered :>> Map::elements, OrderedCollection::elements {
|
|
173
|
+
doc
|
|
174
|
+
/* Note: Redefinition of elements is unique by default. */
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
177
|
}
|
package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
standard library package ScalarValues {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package contains a basic set of primitive scalar (non-collection) data types.
|
|
5
|
-
* These include Boolean and String types and a hierarchy of concrete Number types, from
|
|
6
|
-
* the most general type of Complex numbers to the most specific type of Positive integers.</p>
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
private import Base::DataValue;
|
|
10
|
-
|
|
11
|
-
abstract datatype ScalarValue specializes DataValue;
|
|
12
|
-
datatype Boolean specializes ScalarValue;
|
|
13
|
-
datatype String specializes ScalarValue;
|
|
14
|
-
abstract datatype NumericalValue specializes ScalarValue;
|
|
15
|
-
|
|
16
|
-
abstract datatype Number specializes NumericalValue;
|
|
17
|
-
datatype Complex specializes Number;
|
|
18
|
-
datatype Real specializes Complex;
|
|
19
|
-
datatype Rational specializes Real;
|
|
20
|
-
datatype Integer specializes Rational;
|
|
21
|
-
datatype Natural specializes Integer;
|
|
22
|
-
datatype Positive specializes Natural;
|
|
23
|
-
}
|
|
1
|
+
standard library package ScalarValues {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package contains a basic set of primitive scalar (non-collection) data types.
|
|
5
|
+
* These include Boolean and String types and a hierarchy of concrete Number types, from
|
|
6
|
+
* the most general type of Complex numbers to the most specific type of Positive integers.</p>
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
private import Base::DataValue;
|
|
10
|
+
|
|
11
|
+
abstract datatype ScalarValue specializes DataValue;
|
|
12
|
+
datatype Boolean specializes ScalarValue;
|
|
13
|
+
datatype String specializes ScalarValue;
|
|
14
|
+
abstract datatype NumericalValue specializes ScalarValue;
|
|
15
|
+
|
|
16
|
+
abstract datatype Number specializes NumericalValue;
|
|
17
|
+
datatype Complex specializes Number;
|
|
18
|
+
datatype Real specializes Complex;
|
|
19
|
+
datatype Rational specializes Real;
|
|
20
|
+
datatype Integer specializes Rational;
|
|
21
|
+
datatype Natural specializes Integer;
|
|
22
|
+
datatype Positive specializes Natural;
|
|
23
|
+
}
|
package/resources/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
standard library package VectorValues {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package provides a basic model of abstract vectors as well as concrete vectors
|
|
5
|
-
* whose components are numerical values. The package VectorFunctions defines the
|
|
6
|
-
* corresponding vector-space functions.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
private import ScalarValues::NumericalValue;
|
|
10
|
-
private import ScalarValues::Real;
|
|
11
|
-
private import Collections::Array;
|
|
12
|
-
|
|
13
|
-
abstract datatype VectorValue {
|
|
14
|
-
doc
|
|
15
|
-
/*
|
|
16
|
-
* A VectorValue is an abstract data type whose values may be operated on using
|
|
17
|
-
* VectorFunctions.
|
|
18
|
-
*/
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
datatype NumericalVectorValue :> VectorValue, Array intersects VectorValue, Array {
|
|
22
|
-
doc
|
|
23
|
-
/*
|
|
24
|
-
* A NumericalVectorValue is a kind of VectorValue that is specifically represented
|
|
25
|
-
* as a one-dimensional array of NumericalValues. The dimension is allowed to be empty,
|
|
26
|
-
* permitting a NumericalVectorValue of rank 0, which is essentially isomorphic to a
|
|
27
|
-
* scalar NumericalValue.
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
feature dimension[0..1] :>> dimensions;
|
|
31
|
-
feature :>> elements : NumericalValue;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
datatype CartesianVectorValue :> NumericalVectorValue {
|
|
35
|
-
doc
|
|
36
|
-
/*
|
|
37
|
-
* CartesianVectorValue is a specialization Numerical VectorValue for which there are
|
|
38
|
-
* specific implementations in VectorFunctions of the abstract vector-space functions.
|
|
39
|
-
*
|
|
40
|
-
* Note: The restriction of the element type to Real is to facilitate
|
|
41
|
-
* the complete definition of these functions.
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
feature :>> elements : Real;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
datatype ThreeVectorValue :> NumericalVectorValue {
|
|
48
|
-
doc
|
|
49
|
-
/*
|
|
50
|
-
* A ThreeVectorValue is a NumericalVectorValue that has dimension 3.
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
feature :>> dimension = 3;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
datatype CartesianThreeVectorValue :> CartesianVectorValue, ThreeVectorValue
|
|
57
|
-
intersects CartesianVectorValue, ThreeVectorValue {
|
|
58
|
-
doc
|
|
59
|
-
/*
|
|
60
|
-
* A CartesianThreeVectorValue is a NumericalVectorValue that is both Cartesian and
|
|
61
|
-
* has dimension 3.
|
|
62
|
-
*/
|
|
63
|
-
}
|
|
1
|
+
standard library package VectorValues {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package provides a basic model of abstract vectors as well as concrete vectors
|
|
5
|
+
* whose components are numerical values. The package VectorFunctions defines the
|
|
6
|
+
* corresponding vector-space functions.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
private import ScalarValues::NumericalValue;
|
|
10
|
+
private import ScalarValues::Real;
|
|
11
|
+
private import Collections::Array;
|
|
12
|
+
|
|
13
|
+
abstract datatype VectorValue {
|
|
14
|
+
doc
|
|
15
|
+
/*
|
|
16
|
+
* A VectorValue is an abstract data type whose values may be operated on using
|
|
17
|
+
* VectorFunctions.
|
|
18
|
+
*/
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
datatype NumericalVectorValue :> VectorValue, Array intersects VectorValue, Array {
|
|
22
|
+
doc
|
|
23
|
+
/*
|
|
24
|
+
* A NumericalVectorValue is a kind of VectorValue that is specifically represented
|
|
25
|
+
* as a one-dimensional array of NumericalValues. The dimension is allowed to be empty,
|
|
26
|
+
* permitting a NumericalVectorValue of rank 0, which is essentially isomorphic to a
|
|
27
|
+
* scalar NumericalValue.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
feature dimension[0..1] :>> dimensions;
|
|
31
|
+
feature :>> elements : NumericalValue;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
datatype CartesianVectorValue :> NumericalVectorValue {
|
|
35
|
+
doc
|
|
36
|
+
/*
|
|
37
|
+
* CartesianVectorValue is a specialization Numerical VectorValue for which there are
|
|
38
|
+
* specific implementations in VectorFunctions of the abstract vector-space functions.
|
|
39
|
+
*
|
|
40
|
+
* Note: The restriction of the element type to Real is to facilitate
|
|
41
|
+
* the complete definition of these functions.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
feature :>> elements : Real;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
datatype ThreeVectorValue :> NumericalVectorValue {
|
|
48
|
+
doc
|
|
49
|
+
/*
|
|
50
|
+
* A ThreeVectorValue is a NumericalVectorValue that has dimension 3.
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
feature :>> dimension = 3;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
datatype CartesianThreeVectorValue :> CartesianVectorValue, ThreeVectorValue
|
|
57
|
+
intersects CartesianVectorValue, ThreeVectorValue {
|
|
58
|
+
doc
|
|
59
|
+
/*
|
|
60
|
+
* A CartesianThreeVectorValue is a NumericalVectorValue that is both Cartesian and
|
|
61
|
+
* has dimension 3.
|
|
62
|
+
*/
|
|
63
|
+
}
|
|
64
64
|
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
{
|
|
2
|
-
"index": {
|
|
3
|
-
"BaseFunctions": "BaseFunctions.kerml",
|
|
4
|
-
"BooleanFunctions": "BooleanFunctions.kerml",
|
|
5
|
-
"CollectionFunctions": "CollectionFunctions.kerml",
|
|
6
|
-
"ComplexFunctions": "ComplexFunctions.kerml",
|
|
7
|
-
"ControlFunctions": "ControlFunctions.kerml",
|
|
8
|
-
"DataFunctions": "DataFunctions.kerml",
|
|
9
|
-
"IntegerFunctions": "IntegerFunctions.kerml",
|
|
10
|
-
"NaturalFunctions": "NaturalFunctions.kerml",
|
|
11
|
-
"NumericalFunctions": "NumericalFunctions.kerml",
|
|
12
|
-
"OccurrenceFunctions": "OccurrenceFunctions.kerml",
|
|
13
|
-
"RationalFunctions": "RationalFunctions.kerml",
|
|
14
|
-
"RealFunctions": "RealFunctions.kerml",
|
|
15
|
-
"ScalarFunctions": "ScalarFunctions.kerml",
|
|
16
|
-
"SequenceFunctions": "SequenceFunctions.kerml",
|
|
17
|
-
"StringFunctions": "StringFunctions.kerml",
|
|
18
|
-
"TrigFunctions": "TrigFunctions.kerml",
|
|
19
|
-
"VectorFunctions": "VectorFunctions.kerml"
|
|
20
|
-
},
|
|
21
|
-
"created": "2025-03-13T00:00:00Z",
|
|
22
|
-
"metamodel": "https://www.omg.org/spec/KerML/20250201"
|
|
1
|
+
{
|
|
2
|
+
"index": {
|
|
3
|
+
"BaseFunctions": "BaseFunctions.kerml",
|
|
4
|
+
"BooleanFunctions": "BooleanFunctions.kerml",
|
|
5
|
+
"CollectionFunctions": "CollectionFunctions.kerml",
|
|
6
|
+
"ComplexFunctions": "ComplexFunctions.kerml",
|
|
7
|
+
"ControlFunctions": "ControlFunctions.kerml",
|
|
8
|
+
"DataFunctions": "DataFunctions.kerml",
|
|
9
|
+
"IntegerFunctions": "IntegerFunctions.kerml",
|
|
10
|
+
"NaturalFunctions": "NaturalFunctions.kerml",
|
|
11
|
+
"NumericalFunctions": "NumericalFunctions.kerml",
|
|
12
|
+
"OccurrenceFunctions": "OccurrenceFunctions.kerml",
|
|
13
|
+
"RationalFunctions": "RationalFunctions.kerml",
|
|
14
|
+
"RealFunctions": "RealFunctions.kerml",
|
|
15
|
+
"ScalarFunctions": "ScalarFunctions.kerml",
|
|
16
|
+
"SequenceFunctions": "SequenceFunctions.kerml",
|
|
17
|
+
"StringFunctions": "StringFunctions.kerml",
|
|
18
|
+
"TrigFunctions": "TrigFunctions.kerml",
|
|
19
|
+
"VectorFunctions": "VectorFunctions.kerml"
|
|
20
|
+
},
|
|
21
|
+
"created": "2025-03-13T00:00:00Z",
|
|
22
|
+
"metamodel": "https://www.omg.org/spec/KerML/20250201"
|
|
23
23
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Kernel Function Library",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Standard function library for the Kernel Modeling Language (KerML)",
|
|
5
|
-
"usage": [
|
|
6
|
-
{
|
|
7
|
-
"resource": "https://www.omg.org/spec/KerML/20250201/Semantic-Library.kpar",
|
|
8
|
-
"versionConstraint": "1.0.0"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"resource": "https://www.omg.org/spec/KerML/20250201/Data-Type-Library.kpar",
|
|
12
|
-
"versionConstraint": "1.0.0"
|
|
13
|
-
}
|
|
14
|
-
]
|
|
1
|
+
{
|
|
2
|
+
"name": "Kernel Function Library",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Standard function library for the Kernel Modeling Language (KerML)",
|
|
5
|
+
"usage": [
|
|
6
|
+
{
|
|
7
|
+
"resource": "https://www.omg.org/spec/KerML/20250201/Semantic-Library.kpar",
|
|
8
|
+
"versionConstraint": "1.0.0"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"resource": "https://www.omg.org/spec/KerML/20250201/Data-Type-Library.kpar",
|
|
12
|
+
"versionConstraint": "1.0.0"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
15
|
}
|