sysml-validate 0.10.18 → 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,67 +1,67 @@
|
|
|
1
|
-
standard library package Links {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package defines associations and features that are related to the typing of links.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
private import Base::Anything;
|
|
8
|
-
private import Base::things;
|
|
9
|
-
|
|
10
|
-
abstract assoc Link specializes Anything {
|
|
11
|
-
doc
|
|
12
|
-
/*
|
|
13
|
-
* Link is the most general association between two or more things.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
feature participant: Anything[2..*] nonunique ordered;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
assoc all BinaryLink specializes Link {
|
|
20
|
-
doc
|
|
21
|
-
/*
|
|
22
|
-
* BinaryLink is the most general binary association between exactly two things,
|
|
23
|
-
* nominally directed from source to target.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
feature participant: Anything[2] nonunique ordered redefines Link::participant;
|
|
27
|
-
|
|
28
|
-
end feature source: Anything[1] subsets participant;
|
|
29
|
-
end feature target: Anything[1] subsets participant;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
assoc all SelfLink specializes BinaryLink {
|
|
33
|
-
doc
|
|
34
|
-
/*
|
|
35
|
-
* SelfLink is a binary association in which the things at the two ends are asserted
|
|
36
|
-
* to be the same.
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
end feature thisThing: Anything redefines source subsets sameThing crosses sameThing.self;
|
|
40
|
-
end self2 [1] feature sameThing: Anything redefines target subsets thisThing;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
abstract feature links: Link[0..*] nonunique subsets things {
|
|
44
|
-
doc
|
|
45
|
-
/*
|
|
46
|
-
* links is the most general feature of links between individuals.
|
|
47
|
-
*/
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
abstract feature binaryLinks: BinaryLink[0..*] nonunique subsets links {
|
|
51
|
-
doc
|
|
52
|
-
/*
|
|
53
|
-
* binaryLinks is a specialization of links restricted to type BinaryLink.
|
|
54
|
-
*/
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
abstract feature selfLinks: SelfLink[0..*] nonunique subsets binaryLinks {
|
|
58
|
-
doc
|
|
59
|
-
/*
|
|
60
|
-
* selfLinks is a specialization of binaryLinks restricted to type SelfLink.
|
|
61
|
-
*/
|
|
62
|
-
|
|
63
|
-
end feature thisThing: Anything redefines SelfLink::thisThing, binaryLinks::source;
|
|
64
|
-
end feature sameThing: Anything redefines SelfLink::sameThing, binaryLinks::target;
|
|
65
|
-
}
|
|
66
|
-
|
|
1
|
+
standard library package Links {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines associations and features that are related to the typing of links.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
private import Base::Anything;
|
|
8
|
+
private import Base::things;
|
|
9
|
+
|
|
10
|
+
abstract assoc Link specializes Anything {
|
|
11
|
+
doc
|
|
12
|
+
/*
|
|
13
|
+
* Link is the most general association between two or more things.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
feature participant: Anything[2..*] nonunique ordered;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
assoc all BinaryLink specializes Link {
|
|
20
|
+
doc
|
|
21
|
+
/*
|
|
22
|
+
* BinaryLink is the most general binary association between exactly two things,
|
|
23
|
+
* nominally directed from source to target.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
feature participant: Anything[2] nonunique ordered redefines Link::participant;
|
|
27
|
+
|
|
28
|
+
end feature source: Anything[1] subsets participant;
|
|
29
|
+
end feature target: Anything[1] subsets participant;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
assoc all SelfLink specializes BinaryLink {
|
|
33
|
+
doc
|
|
34
|
+
/*
|
|
35
|
+
* SelfLink is a binary association in which the things at the two ends are asserted
|
|
36
|
+
* to be the same.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
end feature thisThing: Anything redefines source subsets sameThing crosses sameThing.self;
|
|
40
|
+
end self2 [1] feature sameThing: Anything redefines target subsets thisThing;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
abstract feature links: Link[0..*] nonunique subsets things {
|
|
44
|
+
doc
|
|
45
|
+
/*
|
|
46
|
+
* links is the most general feature of links between individuals.
|
|
47
|
+
*/
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
abstract feature binaryLinks: BinaryLink[0..*] nonunique subsets links {
|
|
51
|
+
doc
|
|
52
|
+
/*
|
|
53
|
+
* binaryLinks is a specialization of links restricted to type BinaryLink.
|
|
54
|
+
*/
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
abstract feature selfLinks: SelfLink[0..*] nonunique subsets binaryLinks {
|
|
58
|
+
doc
|
|
59
|
+
/*
|
|
60
|
+
* selfLinks is a specialization of binaryLinks restricted to type SelfLink.
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
end feature thisThing: Anything redefines SelfLink::thisThing, binaryLinks::source;
|
|
64
|
+
end feature sameThing: Anything redefines SelfLink::sameThing, binaryLinks::target;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
67
|
}
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
standard library package Metaobjects {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package defines Metaclasses and Features that are related to the typing of syntactic and semantic metadata.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
private import Objects::Object;
|
|
8
|
-
private import Objects::objects;
|
|
9
|
-
private import KerML::Element;
|
|
10
|
-
private import KerML::Type;
|
|
11
|
-
|
|
12
|
-
abstract metaclass Metaobject specializes Object {
|
|
13
|
-
doc
|
|
14
|
-
/*
|
|
15
|
-
* A Metaobject contains syntactic or semantic information about one or more annotatedElements.
|
|
16
|
-
* It is the most general Metaclass. All other Metaclasses must subclassify it directly or indirectly.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
feature redefines self : Metaobject;
|
|
20
|
-
|
|
21
|
-
abstract feature annotatedElement : Element[1..*] {
|
|
22
|
-
doc
|
|
23
|
-
/*
|
|
24
|
-
* The Elements annotated by this Metaobject. This is set automatically when a Metaobject is
|
|
25
|
-
* instantiated as the value of a MetadataFeature.
|
|
26
|
-
*/
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
abstract metaclass SemanticMetadata specializes Metaobject {
|
|
31
|
-
doc
|
|
32
|
-
/*
|
|
33
|
-
* SemanticMetadata is a Metaobject that requires its single annotatedType to directly or indirectly specialize
|
|
34
|
-
* a baseType that models the semantics for the annotatedType.
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
abstract feature redefines annotatedElement : Type[1] {
|
|
38
|
-
doc
|
|
39
|
-
/*
|
|
40
|
-
* The single annotatedElement of this SemanticMetadata, which must be a Type.
|
|
41
|
-
*/
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
feature baseType : Type[1] {
|
|
45
|
-
doc
|
|
46
|
-
/*
|
|
47
|
-
* The required base Type for the annotatedType.
|
|
48
|
-
*/
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
feature metaobjects : Metaobject[0..*] :> objects {
|
|
53
|
-
/*
|
|
54
|
-
* metaobjects is a specialization of objects restricted to type Metadata. It is the most general
|
|
55
|
-
* MetadataFeature. All other MetadataFeatures must subset it directly or indirectly.
|
|
56
|
-
*/
|
|
57
|
-
}
|
|
1
|
+
standard library package Metaobjects {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines Metaclasses and Features that are related to the typing of syntactic and semantic metadata.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
private import Objects::Object;
|
|
8
|
+
private import Objects::objects;
|
|
9
|
+
private import KerML::Element;
|
|
10
|
+
private import KerML::Type;
|
|
11
|
+
|
|
12
|
+
abstract metaclass Metaobject specializes Object {
|
|
13
|
+
doc
|
|
14
|
+
/*
|
|
15
|
+
* A Metaobject contains syntactic or semantic information about one or more annotatedElements.
|
|
16
|
+
* It is the most general Metaclass. All other Metaclasses must subclassify it directly or indirectly.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
feature redefines self : Metaobject;
|
|
20
|
+
|
|
21
|
+
abstract feature annotatedElement : Element[1..*] {
|
|
22
|
+
doc
|
|
23
|
+
/*
|
|
24
|
+
* The Elements annotated by this Metaobject. This is set automatically when a Metaobject is
|
|
25
|
+
* instantiated as the value of a MetadataFeature.
|
|
26
|
+
*/
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
abstract metaclass SemanticMetadata specializes Metaobject {
|
|
31
|
+
doc
|
|
32
|
+
/*
|
|
33
|
+
* SemanticMetadata is a Metaobject that requires its single annotatedType to directly or indirectly specialize
|
|
34
|
+
* a baseType that models the semantics for the annotatedType.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
abstract feature redefines annotatedElement : Type[1] {
|
|
38
|
+
doc
|
|
39
|
+
/*
|
|
40
|
+
* The single annotatedElement of this SemanticMetadata, which must be a Type.
|
|
41
|
+
*/
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
feature baseType : Type[1] {
|
|
45
|
+
doc
|
|
46
|
+
/*
|
|
47
|
+
* The required base Type for the annotatedType.
|
|
48
|
+
*/
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
feature metaobjects : Metaobject[0..*] :> objects {
|
|
53
|
+
/*
|
|
54
|
+
* metaobjects is a specialization of objects restricted to type Metadata. It is the most general
|
|
55
|
+
* MetadataFeature. All other MetadataFeatures must subset it directly or indirectly.
|
|
56
|
+
*/
|
|
57
|
+
}
|
|
58
58
|
}
|
|
@@ -1,212 +1,212 @@
|
|
|
1
|
-
standard library package Objects {
|
|
2
|
-
doc
|
|
3
|
-
/*
|
|
4
|
-
* This package defines classifiers and features that are related to the typing of objects, including link objects.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
private import Base::Anything;
|
|
8
|
-
private import Base::things;
|
|
9
|
-
private import Links::*;
|
|
10
|
-
private import Occurrences::Occurrence;
|
|
11
|
-
private import Occurrences::occurrences;
|
|
12
|
-
private import Occurrences::HappensLink;
|
|
13
|
-
private import Occurrences::SelfSameLifeLink;
|
|
14
|
-
private import Occurrences::WithinBoth;
|
|
15
|
-
private import Performances::Performance;
|
|
16
|
-
private import Performances::performances;
|
|
17
|
-
private import SequenceFunctions::isEmpty;
|
|
18
|
-
private import SequenceFunctions::notEmpty;
|
|
19
|
-
private import SequenceFunctions::union;
|
|
20
|
-
private import CollectionFunctions::contains;
|
|
21
|
-
private import ScalarValues::Integer;
|
|
22
|
-
private import ScalarValues::Natural;
|
|
23
|
-
|
|
24
|
-
abstract struct Object specializes Occurrence {
|
|
25
|
-
doc
|
|
26
|
-
/*
|
|
27
|
-
* Object is the most general class of structural occurrences that may change over time.
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
feature self: Object redefines Occurrence::self;
|
|
31
|
-
|
|
32
|
-
composite feature subobjects: Object[0..*] subsets objects, suboccurrences
|
|
33
|
-
intersects objects, suboccurrences {
|
|
34
|
-
doc
|
|
35
|
-
/*
|
|
36
|
-
* The suboccurrences of this Object that are also Objects.
|
|
37
|
-
*/
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
feature involvingPerformances: Performance[0..*] subsets performances {
|
|
41
|
-
doc
|
|
42
|
-
/*
|
|
43
|
-
* Performances in which this object is involved.
|
|
44
|
-
*/
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
abstract step enactedPerformances: Performance[0..*] subsets involvingPerformances, timeEnclosedOccurrences
|
|
48
|
-
intersects involvingPerformances, timeEnclosedOccurrences {
|
|
49
|
-
doc
|
|
50
|
-
/*
|
|
51
|
-
* Performances that are enacted by this object.
|
|
52
|
-
*/
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
composite step ownedPerformances: Performance[0..*] subsets involvingPerformances, timeEnclosedOccurrences, suboccurrences
|
|
56
|
-
intersects involvingPerformances, timeEnclosedOccurrences, suboccurrences {
|
|
57
|
-
doc
|
|
58
|
-
/*
|
|
59
|
-
* Performances that are owned by this object.
|
|
60
|
-
*/
|
|
61
|
-
|
|
62
|
-
feature redefines this default that {
|
|
63
|
-
doc
|
|
64
|
-
/*
|
|
65
|
-
* The owning object is the default "this" reference for all ownedPerformances.
|
|
66
|
-
*/
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
portion structuredSpaceBoundary : StructuredSpaceObject[0..1] subsets spaceBoundary {
|
|
71
|
-
doc
|
|
72
|
-
/*
|
|
73
|
-
* A space boundary that is a structured space object.
|
|
74
|
-
*/
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
abstract assoc struct LinkObject specializes Link, Object intersects Link, Object {
|
|
79
|
-
doc
|
|
80
|
-
/*
|
|
81
|
-
* LinkObject is the most general association structure, being both a Link and an Object.
|
|
82
|
-
*/
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
assoc struct BinaryLinkObject specializes BinaryLink, LinkObject intersects BinaryLink, LinkObject {
|
|
86
|
-
doc
|
|
87
|
-
/*
|
|
88
|
-
* BinaryLinkObject is the most general binary association structure, being both a
|
|
89
|
-
* BinaryLink and a LinkObject.
|
|
90
|
-
*/
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
abstract feature objects: Object[0..*] nonunique subsets occurrences {
|
|
94
|
-
doc
|
|
95
|
-
/*
|
|
96
|
-
* objects is a specialization of occurrences restricted to type Object.
|
|
97
|
-
*/
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
abstract feature linkObjects: LinkObject[0..*] nonunique subsets links, objects intersects links, objects {
|
|
101
|
-
doc
|
|
102
|
-
/*
|
|
103
|
-
* linkObjects is a specializations of links and objects restricted to type LinkObjects.
|
|
104
|
-
*/
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
abstract feature binaryLinkObjects: BinaryLinkObject[0..*] nonunique subsets binaryLinks, linkObjects
|
|
108
|
-
intersects binaryLinks, linkObjects {
|
|
109
|
-
doc
|
|
110
|
-
/*
|
|
111
|
-
* binaryLinkObjects is a specialization of binaryLinks and linkObjects restricted to
|
|
112
|
-
* type BinaryLinkObjects.
|
|
113
|
-
*/
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
struct all Body specializes Object {
|
|
118
|
-
doc
|
|
119
|
-
/*
|
|
120
|
-
* A Body is an Object of inner space dimension 3.
|
|
121
|
-
*/
|
|
122
|
-
|
|
123
|
-
feature redefines innerSpaceDimension = 3;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
struct all Surface specializes Object {
|
|
127
|
-
doc
|
|
128
|
-
/*
|
|
129
|
-
* A Surface is an Object of inner space dimension 2.
|
|
130
|
-
*/
|
|
131
|
-
|
|
132
|
-
feature redefines innerSpaceDimension = 2;
|
|
133
|
-
/* The number of "holes" in this Surface, assuming it isClosed. */
|
|
134
|
-
feature genus : Natural[0..1] default 0;
|
|
135
|
-
|
|
136
|
-
inv { notEmpty(genus) implies isClosed }
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
struct all Curve specializes Object {
|
|
140
|
-
doc
|
|
141
|
-
/*
|
|
142
|
-
* A Curve is an Object of inner space dimension 1.
|
|
143
|
-
*/
|
|
144
|
-
|
|
145
|
-
feature redefines innerSpaceDimension = 1;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
struct all Point specializes Object {
|
|
149
|
-
doc
|
|
150
|
-
/*
|
|
151
|
-
* A Point is an Object of inner space dimension 0.
|
|
152
|
-
*/
|
|
153
|
-
|
|
154
|
-
feature redefines innerSpaceDimension = 0;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
abstract struct StructuredSpaceObject specializes Object {
|
|
158
|
-
doc
|
|
159
|
-
/*
|
|
160
|
-
* A StructuredSpaceObject is an Object that is broken up into smaller structured space objects (cells) of
|
|
161
|
-
* the same or lower inner space dimension: faces that are surfaces, edges that are curves, and vertices
|
|
162
|
-
* that are points, with edges and vertices on the boundary of faces, and vertices on the boundary of
|
|
163
|
-
* edges. Cells meet when a structured space object is closed, as required to be a space boundary of
|
|
164
|
-
* an object (faces meet at their edges and/or vertices, while edges meet at their vertices). The
|
|
165
|
-
* inner space dimension of structured space object is the highest of their cells.
|
|
166
|
-
*/
|
|
167
|
-
|
|
168
|
-
abstract portion feature structuredSpaceObjectCells : StructuredSpaceObject[1..*] subsets Occurrence::spaceSlices {
|
|
169
|
-
feature cellOrientation : Integer [0..1];
|
|
170
|
-
inv { notEmpty(cellOrientation) implies (cellOrientation >= -1 & cellOrientation <= 1) }
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
comment about StructuredSurface, StructuredCurve, StructuredPoint
|
|
174
|
-
/*
|
|
175
|
-
* The structures StructuredSurface, StructuredCurve and StructuredPoint provide common, necessary redefinitions of
|
|
176
|
-
* innerSpaceDimension. They also provide single types for the StructuredSpaceObject features faces, edges and
|
|
177
|
-
* vertices, which avoids problems when these features are related by connectors with ends that have owned
|
|
178
|
-
* cross features.
|
|
179
|
-
*/
|
|
180
|
-
struct StructuredSurface specializes StructuredSpaceObject, Surface {
|
|
181
|
-
feature redefines StructuredSpaceObject::innerSpaceDimension, Surface::innerSpaceDimension;
|
|
182
|
-
}
|
|
183
|
-
struct StructuredCurve specializes StructuredSpaceObject, Curve {
|
|
184
|
-
feature redefines StructuredSpaceObject::innerSpaceDimension, Curve::innerSpaceDimension;
|
|
185
|
-
}
|
|
186
|
-
struct StructuredPoint specializes StructuredSpaceObject, Point {
|
|
187
|
-
feature redefines StructuredSpaceObject::innerSpaceDimension, Point::innerSpaceDimension;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
portion feature faces : StructuredSurface[0..*] ordered subsets structuredSpaceObjectCells {
|
|
191
|
-
feature redefines that : StructuredSpaceObject;
|
|
192
|
-
feature redefines edges subsets that.edges;
|
|
193
|
-
feature redefines vertices subsets that.vertices;
|
|
194
|
-
derived feature redefines spaceBoundary;
|
|
195
|
-
inv { isEmpty(spaceBoundary) == isEmpty(union(edges, vertices)) }
|
|
196
|
-
inv { notEmpty(spaceBoundary) implies contains(spaceBoundary.unionsOf, union(edges, vertices)) }
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
portion feature edges : StructuredCurve[0..*] ordered subsets structuredSpaceObjectCells {
|
|
200
|
-
feature redefines that : StructuredSpaceObject;
|
|
201
|
-
feature redefines vertices subsets that.vertices;
|
|
202
|
-
derived feature redefines spaceBoundary;
|
|
203
|
-
inv { isEmpty(spaceBoundary) == isEmpty(vertices) }
|
|
204
|
-
inv { notEmpty(spaceBoundary) implies contains(spaceBoundary.unionsOf, vertices) }
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
portion feature vertices : StructuredPoint[0..*] ordered subsets structuredSpaceObjectCells;
|
|
208
|
-
|
|
209
|
-
derived feature redefines innerSpaceDimension =
|
|
210
|
-
if notEmpty(faces) ? 2 else if notEmpty(edges) ? 1 else 0;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
1
|
+
standard library package Objects {
|
|
2
|
+
doc
|
|
3
|
+
/*
|
|
4
|
+
* This package defines classifiers and features that are related to the typing of objects, including link objects.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
private import Base::Anything;
|
|
8
|
+
private import Base::things;
|
|
9
|
+
private import Links::*;
|
|
10
|
+
private import Occurrences::Occurrence;
|
|
11
|
+
private import Occurrences::occurrences;
|
|
12
|
+
private import Occurrences::HappensLink;
|
|
13
|
+
private import Occurrences::SelfSameLifeLink;
|
|
14
|
+
private import Occurrences::WithinBoth;
|
|
15
|
+
private import Performances::Performance;
|
|
16
|
+
private import Performances::performances;
|
|
17
|
+
private import SequenceFunctions::isEmpty;
|
|
18
|
+
private import SequenceFunctions::notEmpty;
|
|
19
|
+
private import SequenceFunctions::union;
|
|
20
|
+
private import CollectionFunctions::contains;
|
|
21
|
+
private import ScalarValues::Integer;
|
|
22
|
+
private import ScalarValues::Natural;
|
|
23
|
+
|
|
24
|
+
abstract struct Object specializes Occurrence {
|
|
25
|
+
doc
|
|
26
|
+
/*
|
|
27
|
+
* Object is the most general class of structural occurrences that may change over time.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
feature self: Object redefines Occurrence::self;
|
|
31
|
+
|
|
32
|
+
composite feature subobjects: Object[0..*] subsets objects, suboccurrences
|
|
33
|
+
intersects objects, suboccurrences {
|
|
34
|
+
doc
|
|
35
|
+
/*
|
|
36
|
+
* The suboccurrences of this Object that are also Objects.
|
|
37
|
+
*/
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
feature involvingPerformances: Performance[0..*] subsets performances {
|
|
41
|
+
doc
|
|
42
|
+
/*
|
|
43
|
+
* Performances in which this object is involved.
|
|
44
|
+
*/
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
abstract step enactedPerformances: Performance[0..*] subsets involvingPerformances, timeEnclosedOccurrences
|
|
48
|
+
intersects involvingPerformances, timeEnclosedOccurrences {
|
|
49
|
+
doc
|
|
50
|
+
/*
|
|
51
|
+
* Performances that are enacted by this object.
|
|
52
|
+
*/
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
composite step ownedPerformances: Performance[0..*] subsets involvingPerformances, timeEnclosedOccurrences, suboccurrences
|
|
56
|
+
intersects involvingPerformances, timeEnclosedOccurrences, suboccurrences {
|
|
57
|
+
doc
|
|
58
|
+
/*
|
|
59
|
+
* Performances that are owned by this object.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
feature redefines this default that {
|
|
63
|
+
doc
|
|
64
|
+
/*
|
|
65
|
+
* The owning object is the default "this" reference for all ownedPerformances.
|
|
66
|
+
*/
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
portion structuredSpaceBoundary : StructuredSpaceObject[0..1] subsets spaceBoundary {
|
|
71
|
+
doc
|
|
72
|
+
/*
|
|
73
|
+
* A space boundary that is a structured space object.
|
|
74
|
+
*/
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
abstract assoc struct LinkObject specializes Link, Object intersects Link, Object {
|
|
79
|
+
doc
|
|
80
|
+
/*
|
|
81
|
+
* LinkObject is the most general association structure, being both a Link and an Object.
|
|
82
|
+
*/
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
assoc struct BinaryLinkObject specializes BinaryLink, LinkObject intersects BinaryLink, LinkObject {
|
|
86
|
+
doc
|
|
87
|
+
/*
|
|
88
|
+
* BinaryLinkObject is the most general binary association structure, being both a
|
|
89
|
+
* BinaryLink and a LinkObject.
|
|
90
|
+
*/
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
abstract feature objects: Object[0..*] nonunique subsets occurrences {
|
|
94
|
+
doc
|
|
95
|
+
/*
|
|
96
|
+
* objects is a specialization of occurrences restricted to type Object.
|
|
97
|
+
*/
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
abstract feature linkObjects: LinkObject[0..*] nonunique subsets links, objects intersects links, objects {
|
|
101
|
+
doc
|
|
102
|
+
/*
|
|
103
|
+
* linkObjects is a specializations of links and objects restricted to type LinkObjects.
|
|
104
|
+
*/
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
abstract feature binaryLinkObjects: BinaryLinkObject[0..*] nonunique subsets binaryLinks, linkObjects
|
|
108
|
+
intersects binaryLinks, linkObjects {
|
|
109
|
+
doc
|
|
110
|
+
/*
|
|
111
|
+
* binaryLinkObjects is a specialization of binaryLinks and linkObjects restricted to
|
|
112
|
+
* type BinaryLinkObjects.
|
|
113
|
+
*/
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
struct all Body specializes Object {
|
|
118
|
+
doc
|
|
119
|
+
/*
|
|
120
|
+
* A Body is an Object of inner space dimension 3.
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
feature redefines innerSpaceDimension = 3;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
struct all Surface specializes Object {
|
|
127
|
+
doc
|
|
128
|
+
/*
|
|
129
|
+
* A Surface is an Object of inner space dimension 2.
|
|
130
|
+
*/
|
|
131
|
+
|
|
132
|
+
feature redefines innerSpaceDimension = 2;
|
|
133
|
+
/* The number of "holes" in this Surface, assuming it isClosed. */
|
|
134
|
+
feature genus : Natural[0..1] default 0;
|
|
135
|
+
|
|
136
|
+
inv { notEmpty(genus) implies isClosed }
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
struct all Curve specializes Object {
|
|
140
|
+
doc
|
|
141
|
+
/*
|
|
142
|
+
* A Curve is an Object of inner space dimension 1.
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
feature redefines innerSpaceDimension = 1;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
struct all Point specializes Object {
|
|
149
|
+
doc
|
|
150
|
+
/*
|
|
151
|
+
* A Point is an Object of inner space dimension 0.
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
feature redefines innerSpaceDimension = 0;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
abstract struct StructuredSpaceObject specializes Object {
|
|
158
|
+
doc
|
|
159
|
+
/*
|
|
160
|
+
* A StructuredSpaceObject is an Object that is broken up into smaller structured space objects (cells) of
|
|
161
|
+
* the same or lower inner space dimension: faces that are surfaces, edges that are curves, and vertices
|
|
162
|
+
* that are points, with edges and vertices on the boundary of faces, and vertices on the boundary of
|
|
163
|
+
* edges. Cells meet when a structured space object is closed, as required to be a space boundary of
|
|
164
|
+
* an object (faces meet at their edges and/or vertices, while edges meet at their vertices). The
|
|
165
|
+
* inner space dimension of structured space object is the highest of their cells.
|
|
166
|
+
*/
|
|
167
|
+
|
|
168
|
+
abstract portion feature structuredSpaceObjectCells : StructuredSpaceObject[1..*] subsets Occurrence::spaceSlices {
|
|
169
|
+
feature cellOrientation : Integer [0..1];
|
|
170
|
+
inv { notEmpty(cellOrientation) implies (cellOrientation >= -1 & cellOrientation <= 1) }
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
comment about StructuredSurface, StructuredCurve, StructuredPoint
|
|
174
|
+
/*
|
|
175
|
+
* The structures StructuredSurface, StructuredCurve and StructuredPoint provide common, necessary redefinitions of
|
|
176
|
+
* innerSpaceDimension. They also provide single types for the StructuredSpaceObject features faces, edges and
|
|
177
|
+
* vertices, which avoids problems when these features are related by connectors with ends that have owned
|
|
178
|
+
* cross features.
|
|
179
|
+
*/
|
|
180
|
+
struct StructuredSurface specializes StructuredSpaceObject, Surface {
|
|
181
|
+
feature redefines StructuredSpaceObject::innerSpaceDimension, Surface::innerSpaceDimension;
|
|
182
|
+
}
|
|
183
|
+
struct StructuredCurve specializes StructuredSpaceObject, Curve {
|
|
184
|
+
feature redefines StructuredSpaceObject::innerSpaceDimension, Curve::innerSpaceDimension;
|
|
185
|
+
}
|
|
186
|
+
struct StructuredPoint specializes StructuredSpaceObject, Point {
|
|
187
|
+
feature redefines StructuredSpaceObject::innerSpaceDimension, Point::innerSpaceDimension;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
portion feature faces : StructuredSurface[0..*] ordered subsets structuredSpaceObjectCells {
|
|
191
|
+
feature redefines that : StructuredSpaceObject;
|
|
192
|
+
feature redefines edges subsets that.edges;
|
|
193
|
+
feature redefines vertices subsets that.vertices;
|
|
194
|
+
derived feature redefines spaceBoundary;
|
|
195
|
+
inv { isEmpty(spaceBoundary) == isEmpty(union(edges, vertices)) }
|
|
196
|
+
inv { notEmpty(spaceBoundary) implies contains(spaceBoundary.unionsOf, union(edges, vertices)) }
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
portion feature edges : StructuredCurve[0..*] ordered subsets structuredSpaceObjectCells {
|
|
200
|
+
feature redefines that : StructuredSpaceObject;
|
|
201
|
+
feature redefines vertices subsets that.vertices;
|
|
202
|
+
derived feature redefines spaceBoundary;
|
|
203
|
+
inv { isEmpty(spaceBoundary) == isEmpty(vertices) }
|
|
204
|
+
inv { notEmpty(spaceBoundary) implies contains(spaceBoundary.unionsOf, vertices) }
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
portion feature vertices : StructuredPoint[0..*] ordered subsets structuredSpaceObjectCells;
|
|
208
|
+
|
|
209
|
+
derived feature redefines innerSpaceDimension =
|
|
210
|
+
if notEmpty(faces) ? 2 else if notEmpty(edges) ? 1 else 0;
|
|
211
|
+
}
|
|
212
|
+
}
|