activefacts-metamodel 1.9.6 → 1.9.8
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/activefacts-metamodel.gemspec +1 -1
- data/cql/Metamodel.cql +18 -8
- data/lib/activefacts/metamodel/extensions.rb +507 -473
- data/lib/activefacts/metamodel/metamodel.rb +131 -122
- data/lib/activefacts/metamodel/validate/composition.rb +146 -0
- data/lib/activefacts/metamodel/version.rb +1 -1
- data/lib/activefacts/support.rb +8 -8
- data/orm/Metamodel.cql.diffs +15 -21
- data/orm/Metamodel.orm +3669 -3341
- metadata +4 -9
@@ -7,51 +7,51 @@ module ActiveFacts
|
|
7
7
|
one_to_one :guid, mandatory: true # Component has Guid, see Guid#component
|
8
8
|
has_one :name # Component projects Name, see Name#all_component
|
9
9
|
has_one :ordinal # Component has Ordinal rank, see Ordinal#all_component
|
10
|
-
has_one :parent, class:
|
10
|
+
has_one :parent, class: Component, counterpart: :member # Member belongs to Parent, see Component#all_member
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
class Mapping < Component
|
14
14
|
has_one :object_type, mandatory: true # Mapping represents Object Type, see ObjectType#all_mapping
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
class AccessPath
|
18
18
|
identified_by :guid
|
19
19
|
one_to_one :guid, mandatory: true # Access Path has Guid, see Guid#access_path
|
20
20
|
has_one :composite, mandatory: true # Access Path is to Composite, see Composite#all_access_path
|
21
21
|
has_one :name # Access Path is called Name, see Name#all_access_path
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
class Guid < ::Guid
|
25
25
|
value_type
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
class Name < String
|
29
29
|
value_type length: 64
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
class Composition
|
33
33
|
identified_by :guid
|
34
34
|
one_to_one :guid, mandatory: true # Composition has Guid, see Guid#composition
|
35
35
|
one_to_one :name, mandatory: true # Composition is called Name, see Name#composition
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
class Constraint
|
39
39
|
identified_by :concept
|
40
40
|
one_to_one :concept, mandatory: true # Constraint is an instance of Concept, see Concept#constraint
|
41
41
|
has_one :name # Constraint is called Name, see Name#all_constraint
|
42
42
|
has_one :vocabulary # Constraint belongs to Vocabulary, see Vocabulary#all_constraint
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
class Frequency < UnsignedInteger
|
46
46
|
value_type length: 32
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
class RoleSequence
|
50
50
|
identified_by :guid
|
51
51
|
one_to_one :guid, mandatory: true # Role Sequence has Guid, see Guid#role_sequence
|
52
52
|
maybe :has_unused_dependency_to_force_table_in_norma # Has Unused Dependency To Force Table In Norma
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
class PresenceConstraint < Constraint
|
56
56
|
maybe :is_mandatory # Is Mandatory
|
57
57
|
maybe :is_preferred_identifier # Is Preferred Identifier
|
@@ -59,32 +59,33 @@ module ActiveFacts
|
|
59
59
|
has_one :max_frequency, class: Frequency # Presence Constraint has max-Frequency, see Frequency#all_presence_constraint_as_max_frequency
|
60
60
|
has_one :min_frequency, class: Frequency # Presence Constraint has min-Frequency, see Frequency#all_presence_constraint_as_min_frequency
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
class Index < AccessPath
|
64
64
|
maybe :is_unique # Is Unique
|
65
65
|
has_one :presence_constraint, mandatory: true # Index derives from Presence Constraint, see PresenceConstraint#all_index
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
class Composite
|
69
69
|
identified_by :mapping
|
70
70
|
one_to_one :mapping, mandatory: true # Composite consists of Mapping, see Mapping#composite
|
71
71
|
has_one :composition, mandatory: true # Composite belongs to Composition, see Composition#all_composite
|
72
|
+
one_to_one :natural_index, class: Index # Composite has natural-Index, see Index#composite_as_natural_index
|
72
73
|
one_to_one :primary_index, class: Index # Composite has primary-Index, see Index#composite_as_primary_index
|
73
74
|
end
|
74
|
-
|
75
|
+
|
75
76
|
class ForeignKey < AccessPath
|
76
77
|
has_one :source_composite, mandatory: true, class: Composite # Foreign Key traverses from source-Composite, see Composite#all_foreign_key_as_source_composite
|
77
78
|
end
|
78
|
-
|
79
|
+
|
79
80
|
class Pronoun < String
|
80
81
|
value_type length: 20
|
81
82
|
end
|
82
|
-
|
83
|
+
|
83
84
|
class Vocabulary
|
84
85
|
identified_by :name
|
85
86
|
one_to_one :name, mandatory: true # Vocabulary is called Name, see Name#vocabulary
|
86
87
|
end
|
87
|
-
|
88
|
+
|
88
89
|
class ObjectType
|
89
90
|
identified_by :vocabulary, :name
|
90
91
|
has_one :vocabulary, mandatory: true # Object Type belongs to Vocabulary, see Vocabulary#all_object_type
|
@@ -92,37 +93,37 @@ module ActiveFacts
|
|
92
93
|
maybe :is_independent # Is Independent
|
93
94
|
has_one :pronoun # Object Type uses Pronoun, see Pronoun#all_object_type
|
94
95
|
end
|
95
|
-
|
96
|
+
|
96
97
|
class FullAbsorption
|
97
98
|
identified_by :composition, :object_type
|
98
99
|
has_one :composition, mandatory: true # Full Absorption involves Composition, see Composition#all_full_absorption
|
99
100
|
has_one :object_type, mandatory: true # Full Absorption involves Object Type, see ObjectType#all_full_absorption
|
100
101
|
end
|
101
|
-
|
102
|
+
|
102
103
|
class NestingMode < String
|
103
104
|
value_type
|
104
105
|
end
|
105
|
-
|
106
|
+
|
106
107
|
class ImplicationRuleName < String
|
107
108
|
value_type
|
108
109
|
end
|
109
|
-
|
110
|
+
|
110
111
|
class ImplicationRule
|
111
112
|
identified_by :implication_rule_name
|
112
113
|
one_to_one :implication_rule_name, mandatory: true # Implication Rule has Implication Rule Name, see ImplicationRuleName#implication_rule
|
113
114
|
end
|
114
|
-
|
115
|
+
|
115
116
|
class Population
|
116
117
|
identified_by :vocabulary, :name
|
117
118
|
has_one :vocabulary # Population belongs to Vocabulary, see Vocabulary#all_population
|
118
119
|
has_one :name, mandatory: true # Population has Name, see Name#all_population
|
119
120
|
end
|
120
|
-
|
121
|
+
|
121
122
|
class Topic
|
122
123
|
identified_by :topic_name
|
123
124
|
one_to_one :topic_name, mandatory: true, class: Name # Topic has topic-Name, see Name#topic_as_topic_name
|
124
125
|
end
|
125
|
-
|
126
|
+
|
126
127
|
class Concept
|
127
128
|
identified_by :guid
|
128
129
|
one_to_one :guid, mandatory: true # Concept has Guid, see Guid#concept
|
@@ -132,61 +133,61 @@ module ActiveFacts
|
|
132
133
|
one_to_one :role # Role is an instance of Concept, see Role#concept
|
133
134
|
has_one :topic # Concept belongs to Topic, see Topic#all_concept
|
134
135
|
end
|
135
|
-
|
136
|
+
|
136
137
|
class FactType
|
137
138
|
identified_by :concept
|
138
139
|
one_to_one :concept, mandatory: true # Fact Type is an instance of Concept, see Concept#fact_type
|
139
140
|
end
|
140
|
-
|
141
|
+
|
141
142
|
class LinkFactType < FactType
|
142
143
|
end
|
143
|
-
|
144
|
+
|
144
145
|
class Ordinal < UnsignedInteger
|
145
146
|
value_type length: 16
|
146
147
|
end
|
147
|
-
|
148
|
+
|
148
149
|
class RegularExpression < String
|
149
150
|
value_type
|
150
151
|
end
|
151
|
-
|
152
|
+
|
152
153
|
class DomainObjectType < ObjectType
|
153
154
|
end
|
154
|
-
|
155
|
+
|
155
156
|
class Length < UnsignedInteger
|
156
157
|
value_type length: 32
|
157
158
|
end
|
158
|
-
|
159
|
+
|
159
160
|
class Scale < UnsignedInteger
|
160
161
|
value_type length: 32
|
161
162
|
end
|
162
|
-
|
163
|
+
|
163
164
|
class TransactionPhase < String
|
164
165
|
value_type
|
165
166
|
end
|
166
|
-
|
167
|
+
|
167
168
|
class Denominator < UnsignedInteger
|
168
169
|
value_type length: 32
|
169
170
|
end
|
170
|
-
|
171
|
+
|
171
172
|
class Numerator < Decimal
|
172
173
|
value_type
|
173
174
|
end
|
174
|
-
|
175
|
+
|
175
176
|
class Coefficient
|
176
177
|
identified_by :numerator, :denominator, :is_precise
|
177
178
|
has_one :numerator, mandatory: true # Coefficient has Numerator, see Numerator#all_coefficient
|
178
179
|
has_one :denominator, mandatory: true # Coefficient has Denominator, see Denominator#all_coefficient
|
179
180
|
maybe :is_precise # Is Precise
|
180
181
|
end
|
181
|
-
|
182
|
+
|
182
183
|
class EphemeraURL < String
|
183
184
|
value_type
|
184
185
|
end
|
185
|
-
|
186
|
+
|
186
187
|
class Offset < Decimal
|
187
188
|
value_type
|
188
189
|
end
|
189
|
-
|
190
|
+
|
190
191
|
class Unit
|
191
192
|
identified_by :concept
|
192
193
|
one_to_one :concept, mandatory: true # Unit is an instance of Concept, see Concept#unit
|
@@ -198,7 +199,7 @@ module ActiveFacts
|
|
198
199
|
has_one :offset # Unit has Offset, see Offset#all_unit
|
199
200
|
one_to_one :plural_name, class: Name, counterpart: :plural_named_unit # Plural Named Unit has plural-Name, see Name#plural_named_unit
|
200
201
|
end
|
201
|
-
|
202
|
+
|
202
203
|
class ValueType < DomainObjectType
|
203
204
|
has_one :length # Value Type has Length, see Length#all_value_type
|
204
205
|
has_one :scale # Value Type has Scale, see Scale#all_value_type
|
@@ -206,23 +207,23 @@ module ActiveFacts
|
|
206
207
|
has_one :transaction_phase # Value Type is auto-assigned at Transaction Phase, see TransactionPhase#all_value_type
|
207
208
|
has_one :unit # Value Type is of Unit, see Unit#all_value_type
|
208
209
|
end
|
209
|
-
|
210
|
+
|
210
211
|
class ValueConstraint < Constraint
|
211
212
|
has_one :regular_expression # Value Constraint requires matching Regular Expression, see RegularExpression#all_value_constraint
|
212
213
|
one_to_one :value_type # Value Constraint constrains Value Type, see ValueType#value_constraint
|
213
214
|
end
|
214
|
-
|
215
|
+
|
215
216
|
class Query
|
216
217
|
identified_by :concept
|
217
218
|
one_to_one :concept, mandatory: true # Query is an instance of Concept, see Concept#query
|
218
219
|
end
|
219
|
-
|
220
|
+
|
220
221
|
class AlternativeSet
|
221
222
|
identified_by :guid
|
222
223
|
one_to_one :guid, mandatory: true # Alternative Set has Guid, see Guid#alternative_set
|
223
224
|
maybe :members_are_exclusive # Members Are Exclusive
|
224
225
|
end
|
225
|
-
|
226
|
+
|
226
227
|
class Step
|
227
228
|
identified_by :guid
|
228
229
|
one_to_one :guid, mandatory: true # Step has Guid, see Guid#step
|
@@ -231,15 +232,15 @@ module ActiveFacts
|
|
231
232
|
has_one :fact_type, mandatory: true # Step specifies Fact Type, see FactType#all_step
|
232
233
|
has_one :alternative_set # Step falls under Alternative Set, see AlternativeSet#all_step
|
233
234
|
end
|
234
|
-
|
235
|
+
|
235
236
|
class Subscript < UnsignedInteger
|
236
237
|
value_type length: 16
|
237
238
|
end
|
238
|
-
|
239
|
+
|
239
240
|
class Literal < String
|
240
241
|
value_type
|
241
242
|
end
|
242
|
-
|
243
|
+
|
243
244
|
class Value
|
244
245
|
identified_by :literal, :is_literal_string, :unit
|
245
246
|
has_one :literal, mandatory: true # Value is represented by Literal, see Literal#all_value
|
@@ -247,7 +248,7 @@ module ActiveFacts
|
|
247
248
|
has_one :unit # Value is in Unit, see Unit#all_value
|
248
249
|
has_one :value_type, mandatory: true # Value is of Value Type, see ValueType#all_value
|
249
250
|
end
|
250
|
-
|
251
|
+
|
251
252
|
class Variable
|
252
253
|
identified_by :query, :ordinal
|
253
254
|
has_one :query, mandatory: true # Variable is in Query, see Query#all_variable
|
@@ -258,7 +259,7 @@ module ActiveFacts
|
|
258
259
|
has_one :subscript # Variable has Subscript, see Subscript#all_variable
|
259
260
|
has_one :value # Variable is bound to Value, see Value#all_variable
|
260
261
|
end
|
261
|
-
|
262
|
+
|
262
263
|
class Role
|
263
264
|
identified_by :fact_type, :ordinal
|
264
265
|
has_one :fact_type, mandatory: true # Role belongs to Fact Type, see FactType#all_role
|
@@ -269,7 +270,7 @@ module ActiveFacts
|
|
269
270
|
one_to_one :role_value_constraint, class: ValueConstraint # Role has role-Value Constraint, see ValueConstraint#role_as_role_value_constraint
|
270
271
|
one_to_one :variable, counterpart: :projection # Projection is projected from Variable, see Variable#projection
|
271
272
|
end
|
272
|
-
|
273
|
+
|
273
274
|
class Absorption < Mapping
|
274
275
|
maybe :flattens # Flattens
|
275
276
|
has_one :child_role, mandatory: true, class: Role # Absorption traverses to child-Role, see Role#all_absorption_as_child_role
|
@@ -279,44 +280,44 @@ module ActiveFacts
|
|
279
280
|
has_one :nesting_mode # Absorption uses Nesting Mode, see NestingMode#all_absorption
|
280
281
|
one_to_one :reverse_absorption, class: Absorption, counterpart: :forward_absorption # forward-Absorption is matched by reverse-Absorption, see Absorption#forward_absorption
|
281
282
|
end
|
282
|
-
|
283
|
+
|
283
284
|
class Adjective < String
|
284
285
|
value_type length: 64
|
285
286
|
end
|
286
|
-
|
287
|
+
|
287
288
|
class AgentName < String
|
288
289
|
value_type
|
289
290
|
end
|
290
|
-
|
291
|
+
|
291
292
|
class Agent
|
292
293
|
identified_by :agent_name
|
293
294
|
one_to_one :agent_name, mandatory: true # Agent has Agent Name, see AgentName#agent
|
294
295
|
end
|
295
|
-
|
296
|
+
|
296
297
|
class AggregateCode < String
|
297
298
|
value_type length: 32
|
298
299
|
end
|
299
|
-
|
300
|
+
|
300
301
|
class Aggregate
|
301
302
|
identified_by :aggregate_code
|
302
303
|
one_to_one :aggregate_code, mandatory: true # Aggregate has Aggregate Code, see AggregateCode#aggregate
|
303
304
|
end
|
304
|
-
|
305
|
+
|
305
306
|
class Aggregation
|
306
307
|
identified_by :aggregate, :aggregated_variable
|
307
308
|
has_one :aggregate, mandatory: true # Aggregation involves Aggregate, see Aggregate#all_aggregation
|
308
309
|
has_one :aggregated_variable, mandatory: true, class: Variable # Aggregation involves Variable, see Variable#all_aggregation_as_aggregated_variable
|
309
310
|
has_one :variable, mandatory: true # Aggregation involves Variable, see Variable#all_aggregation
|
310
311
|
end
|
311
|
-
|
312
|
+
|
312
313
|
class ContextNoteKind < String
|
313
314
|
value_type
|
314
315
|
end
|
315
|
-
|
316
|
+
|
316
317
|
class Discussion < String
|
317
318
|
value_type
|
318
319
|
end
|
319
|
-
|
320
|
+
|
320
321
|
class ContextNote
|
321
322
|
identified_by :concept
|
322
323
|
one_to_one :concept, mandatory: true # Context Note is an instance of Concept, see Concept#context_note
|
@@ -324,49 +325,49 @@ module ActiveFacts
|
|
324
325
|
has_one :discussion, mandatory: true # Context Note has Discussion, see Discussion#all_context_note
|
325
326
|
has_one :relevant_concept, class: Concept # Context Note applies to relevant-Concept, see Concept#all_context_note_as_relevant_concept
|
326
327
|
end
|
327
|
-
|
328
|
+
|
328
329
|
class Date < ::Date
|
329
330
|
value_type
|
330
331
|
end
|
331
|
-
|
332
|
+
|
332
333
|
class Agreement
|
333
334
|
identified_by :context_note
|
334
335
|
one_to_one :context_note, mandatory: true # Agreement covers Context Note, see ContextNote#agreement
|
335
336
|
has_one :date # Agreement was on Date, see Date#all_agreement
|
336
337
|
end
|
337
|
-
|
338
|
+
|
338
339
|
class Bound
|
339
340
|
identified_by :value, :is_inclusive
|
340
341
|
has_one :value, mandatory: true # Bound has Value, see Value#all_bound
|
341
342
|
maybe :is_inclusive # Is Inclusive
|
342
343
|
end
|
343
|
-
|
344
|
+
|
344
345
|
class ValueRange
|
345
346
|
identified_by :minimum_bound, :maximum_bound
|
346
347
|
has_one :minimum_bound, class: Bound # Value Range has minimum-Bound, see Bound#all_value_range_as_minimum_bound
|
347
348
|
has_one :maximum_bound, class: Bound # Value Range has maximum-Bound, see Bound#all_value_range_as_maximum_bound
|
348
349
|
end
|
349
|
-
|
350
|
+
|
350
351
|
class AllowedRange
|
351
352
|
identified_by :value_constraint, :value_range
|
352
353
|
has_one :value_constraint, mandatory: true # Allowed Range involves Value Constraint, see ValueConstraint#all_allowed_range
|
353
354
|
has_one :value_range, mandatory: true # Allowed Range involves Value Range, see ValueRange#all_allowed_range
|
354
355
|
end
|
355
|
-
|
356
|
+
|
356
357
|
class Annotation < String
|
357
358
|
value_type
|
358
359
|
end
|
359
|
-
|
360
|
+
|
360
361
|
class Assimilation < String
|
361
362
|
value_type
|
362
363
|
end
|
363
|
-
|
364
|
+
|
364
365
|
class ConceptAnnotation
|
365
366
|
identified_by :concept, :mapping_annotation
|
366
367
|
has_one :concept, mandatory: true # Concept Annotation involves Concept, see Concept#all_concept_annotation
|
367
368
|
has_one :mapping_annotation, mandatory: true, class: Annotation # Concept Annotation involves Annotation, see Annotation#all_concept_annotation_as_mapping_annotation
|
368
369
|
end
|
369
|
-
|
370
|
+
|
370
371
|
class Shape
|
371
372
|
identified_by :guid
|
372
373
|
one_to_one :guid, mandatory: true # Shape has Guid, see Guid#shape
|
@@ -374,70 +375,71 @@ module ActiveFacts
|
|
374
375
|
has_one :orm_diagram, mandatory: true, class: "ORMDiagram" # Shape is in ORM Diagram, see ORMDiagram#all_shape_as_orm_diagram
|
375
376
|
has_one :location # Shape is at Location, see Location#all_shape
|
376
377
|
end
|
377
|
-
|
378
|
+
|
378
379
|
class ConstraintShape < Shape
|
379
380
|
has_one :constraint, mandatory: true # Constraint Shape is for Constraint, see Constraint#all_constraint_shape
|
380
381
|
end
|
381
|
-
|
382
|
+
|
382
383
|
class ContextAccordingTo
|
383
384
|
identified_by :context_note, :agent
|
384
385
|
has_one :context_note, mandatory: true # Context According To involves Context Note, see ContextNote#all_context_according_to
|
385
386
|
has_one :agent, mandatory: true # Context According To involves Agent, see Agent#all_context_according_to
|
386
387
|
has_one :date # Context According To was lodged on Date, see Date#all_context_according_to
|
387
388
|
end
|
388
|
-
|
389
|
+
|
389
390
|
class ContextAgreedBy
|
390
391
|
identified_by :agreement, :agent
|
391
392
|
has_one :agreement, mandatory: true # Context Agreed By involves Agreement, see Agreement#all_context_agreed_by
|
392
393
|
has_one :agent, mandatory: true # Context Agreed By involves Agent, see Agent#all_context_agreed_by
|
393
394
|
end
|
394
|
-
|
395
|
+
|
395
396
|
class Exponent < SignedInteger
|
396
397
|
value_type length: 16
|
397
398
|
end
|
398
|
-
|
399
|
+
|
399
400
|
class Derivation
|
400
401
|
identified_by :derived_unit, :base_unit
|
401
402
|
has_one :derived_unit, mandatory: true, class: Unit # Derivation involves Unit, see Unit#all_derivation_as_derived_unit
|
402
403
|
has_one :base_unit, mandatory: true, class: Unit # Derivation involves Unit, see Unit#all_derivation_as_base_unit
|
403
404
|
has_one :exponent # Derivation has Exponent, see Exponent#all_derivation
|
404
405
|
end
|
405
|
-
|
406
|
+
|
406
407
|
class Diagram
|
407
408
|
identified_by :vocabulary, :name
|
408
409
|
has_one :vocabulary, mandatory: true # Diagram is for Vocabulary, see Vocabulary#all_diagram
|
409
410
|
has_one :name, mandatory: true # Diagram is called Name, see Name#all_diagram
|
410
411
|
end
|
411
|
-
|
412
|
+
|
412
413
|
class Discriminator < Component
|
413
414
|
end
|
414
|
-
|
415
|
+
|
415
416
|
class DiscriminatedRole
|
416
417
|
identified_by :discriminator, :role
|
417
418
|
has_one :discriminator, mandatory: true # Discriminated Role involves Discriminator, see Discriminator#all_discriminated_role
|
418
419
|
has_one :role, mandatory: true # Discriminated Role involves Role, see Role#all_discriminated_role
|
419
420
|
has_one :value, mandatory: true # Discriminated Role involves Value, see Value#all_discriminated_role
|
420
421
|
end
|
421
|
-
|
422
|
+
|
422
423
|
class DisplayRoleNamesSetting < String
|
423
424
|
value_type
|
424
425
|
end
|
425
|
-
|
426
|
+
|
426
427
|
class EnforcementCode < String
|
427
428
|
value_type length: 16
|
428
429
|
end
|
429
|
-
|
430
|
+
|
430
431
|
class Enforcement
|
431
432
|
identified_by :constraint
|
432
433
|
one_to_one :constraint, mandatory: true # Enforcement applies to Constraint, see Constraint#enforcement
|
433
434
|
has_one :enforcement_code, mandatory: true # Enforcement has Enforcement Code, see EnforcementCode#all_enforcement
|
434
435
|
has_one :agent # Enforcement notifies Agent, see Agent#all_enforcement
|
435
436
|
end
|
436
|
-
|
437
|
+
|
437
438
|
class EntityType < DomainObjectType
|
438
439
|
one_to_one :fact_type # Entity Type objectifies Fact Type, see FactType#entity_type
|
440
|
+
has_one :implicitly_objectified_fact_type, class: FactType # Entity Type implicitly objectifies implicitly- objectified Fact Type, see FactType#all_entity_type_as_implicitly_objectified_fact_type
|
439
441
|
end
|
440
|
-
|
442
|
+
|
441
443
|
class Instance
|
442
444
|
identified_by :concept
|
443
445
|
one_to_one :concept, mandatory: true # Instance is an instance of Concept, see Concept#instance
|
@@ -445,7 +447,7 @@ module ActiveFacts
|
|
445
447
|
has_one :population, mandatory: true # Instance belongs to Population, see Population#all_instance
|
446
448
|
has_one :value # Instance has Value, see Value#all_instance
|
447
449
|
end
|
448
|
-
|
450
|
+
|
449
451
|
class Fact
|
450
452
|
identified_by :concept
|
451
453
|
one_to_one :concept, mandatory: true # Fact is an instance of Concept, see Concept#fact
|
@@ -453,14 +455,14 @@ module ActiveFacts
|
|
453
455
|
has_one :population, mandatory: true # Fact belongs to Population, see Population#all_fact
|
454
456
|
one_to_one :instance # Fact is objectified as Instance, see Instance#fact
|
455
457
|
end
|
456
|
-
|
458
|
+
|
457
459
|
class ObjectifiedFactTypeNameShape < Shape
|
458
460
|
end
|
459
|
-
|
461
|
+
|
460
462
|
class Text < String
|
461
463
|
value_type length: 256
|
462
464
|
end
|
463
|
-
|
465
|
+
|
464
466
|
class Reading
|
465
467
|
identified_by :fact_type, :ordinal
|
466
468
|
has_one :fact_type, mandatory: true # Reading is for Fact Type, see FactType#all_reading
|
@@ -469,15 +471,15 @@ module ActiveFacts
|
|
469
471
|
has_one :role_sequence, mandatory: true # Reading is in Role Sequence, see RoleSequence#all_reading
|
470
472
|
has_one :text, mandatory: true # Reading has Text, see Text#all_reading
|
471
473
|
end
|
472
|
-
|
474
|
+
|
473
475
|
class ReadingShape < Shape
|
474
476
|
has_one :reading, mandatory: true # Reading Shape is for Reading, see Reading#all_reading_shape
|
475
477
|
end
|
476
|
-
|
478
|
+
|
477
479
|
class RotationSetting < String
|
478
480
|
value_type
|
479
481
|
end
|
480
|
-
|
482
|
+
|
481
483
|
class FactTypeShape < Shape
|
482
484
|
has_one :fact_type, mandatory: true # Fact Type Shape is for Fact Type, see FactType#all_fact_type_shape
|
483
485
|
has_one :display_role_names_setting # Fact Type Shape has Display Role Names Setting, see DisplayRoleNamesSetting#all_fact_type_shape
|
@@ -485,7 +487,7 @@ module ActiveFacts
|
|
485
487
|
one_to_one :reading_shape # Fact Type Shape has Reading Shape, see ReadingShape#fact_type_shape
|
486
488
|
has_one :rotation_setting # Fact Type Shape has Rotation Setting, see RotationSetting#all_fact_type_shape
|
487
489
|
end
|
488
|
-
|
490
|
+
|
489
491
|
class ForeignKeyField
|
490
492
|
identified_by :foreign_key, :ordinal
|
491
493
|
has_one :foreign_key, mandatory: true # Foreign Key Field involves Foreign Key, see ForeignKey#all_foreign_key_field
|
@@ -493,7 +495,7 @@ module ActiveFacts
|
|
493
495
|
has_one :component, mandatory: true # Foreign Key Field involves Component, see Component#all_foreign_key_field
|
494
496
|
has_one :value # Foreign Key Field is discriminated by Value, see Value#all_foreign_key_field
|
495
497
|
end
|
496
|
-
|
498
|
+
|
497
499
|
class IndexField
|
498
500
|
identified_by :access_path, :ordinal
|
499
501
|
has_one :access_path, mandatory: true # Index Field involves Access Path, see AccessPath#all_index_field
|
@@ -501,48 +503,48 @@ module ActiveFacts
|
|
501
503
|
has_one :component, mandatory: true # Index Field involves Component, see Component#all_index_field
|
502
504
|
has_one :value # Index Field is discriminated by Value, see Value#all_index_field
|
503
505
|
end
|
504
|
-
|
506
|
+
|
505
507
|
class Indicator < Component
|
506
508
|
has_one :role, mandatory: true # Indicator indicates Role played, see Role#all_indicator
|
507
509
|
end
|
508
|
-
|
510
|
+
|
509
511
|
class Injection < Mapping
|
510
512
|
end
|
511
|
-
|
513
|
+
|
512
514
|
class LeafConstraint
|
513
515
|
identified_by :component, :leaf_constraint
|
514
516
|
has_one :component, mandatory: true # Leaf Constraint involves Component, see Component#all_leaf_constraint
|
515
517
|
has_one :leaf_constraint, mandatory: true, class: Constraint # Leaf Constraint involves Constraint, see Constraint#all_leaf_constraint_as_leaf_constraint
|
516
518
|
end
|
517
|
-
|
519
|
+
|
518
520
|
class LocalConstraint
|
519
521
|
identified_by :composite, :local_constraint
|
520
522
|
has_one :composite, mandatory: true # Local Constraint involves Composite, see Composite#all_local_constraint
|
521
523
|
has_one :local_constraint, mandatory: true, class: Constraint # Local Constraint involves Constraint, see Constraint#all_local_constraint_as_local_constraint
|
522
524
|
end
|
523
|
-
|
525
|
+
|
524
526
|
class X < SignedInteger
|
525
527
|
value_type length: 32
|
526
528
|
end
|
527
|
-
|
529
|
+
|
528
530
|
class Y < SignedInteger
|
529
531
|
value_type length: 32
|
530
532
|
end
|
531
|
-
|
533
|
+
|
532
534
|
class Location
|
533
535
|
identified_by :x, :y
|
534
536
|
has_one :x, mandatory: true # Location is at X, see X#all_location
|
535
537
|
has_one :y, mandatory: true # Location is at Y, see Y#all_location
|
536
538
|
end
|
537
|
-
|
539
|
+
|
538
540
|
class MirrorRole < Role
|
539
541
|
one_to_one :base_role, class: Role # Mirror Role is for Base Role, see Role#mirror_role_as_base_role
|
540
542
|
end
|
541
|
-
|
543
|
+
|
542
544
|
class ModelNoteShape < Shape
|
543
545
|
has_one :context_note, mandatory: true # Model Note Shape is for Context Note, see ContextNote#all_model_note_shape
|
544
546
|
end
|
545
|
-
|
547
|
+
|
546
548
|
class Nesting
|
547
549
|
identified_by :absorption, :ordinal
|
548
550
|
has_one :absorption, mandatory: true # Nesting involves Absorption, see Absorption#all_nesting
|
@@ -550,15 +552,15 @@ module ActiveFacts
|
|
550
552
|
has_one :index_role, mandatory: true, class: Role # Nesting involves Role, see Role#all_nesting_as_index_role
|
551
553
|
has_one :key_name, class: Name # Nesting has key-Name, see Name#all_nesting_as_key_name
|
552
554
|
end
|
553
|
-
|
555
|
+
|
554
556
|
class ORMDiagram < Diagram
|
555
557
|
end
|
556
|
-
|
558
|
+
|
557
559
|
class ObjectTypeShape < Shape
|
558
560
|
maybe :has_expanded_reference_mode # Has Expanded Reference Mode
|
559
561
|
has_one :object_type, mandatory: true # Object Type Shape is for Object Type, see ObjectType#all_object_type_shape
|
560
562
|
end
|
561
|
-
|
563
|
+
|
562
564
|
class RoleRef
|
563
565
|
identified_by :role_sequence, :ordinal
|
564
566
|
has_one :role_sequence, mandatory: true # Role Ref involves Role Sequence, see RoleSequence#all_role_ref
|
@@ -567,7 +569,7 @@ module ActiveFacts
|
|
567
569
|
has_one :leading_adjective, class: Adjective # Role Ref has leading-Adjective, see Adjective#all_role_ref_as_leading_adjective
|
568
570
|
has_one :trailing_adjective, class: Adjective # Role Ref has trailing-Adjective, see Adjective#all_role_ref_as_trailing_adjective
|
569
571
|
end
|
570
|
-
|
572
|
+
|
571
573
|
class Play
|
572
574
|
identified_by :step, :role
|
573
575
|
has_one :step, mandatory: true # Play involves Step, see Step#all_play
|
@@ -576,28 +578,28 @@ module ActiveFacts
|
|
576
578
|
has_one :variable, mandatory: true # Play involves Variable, see Variable#all_play
|
577
579
|
one_to_one :role_ref # Play projects Role Ref, see RoleRef#play
|
578
580
|
end
|
579
|
-
|
581
|
+
|
580
582
|
class RingType < String
|
581
583
|
value_type
|
582
584
|
end
|
583
|
-
|
585
|
+
|
584
586
|
class RingConstraint < Constraint
|
585
587
|
has_one :ring_type, mandatory: true # Ring Constraint is of Ring Type, see RingType#all_ring_constraint
|
586
588
|
has_one :other_role, class: Role # Ring Constraint has other-Role, see Role#all_ring_constraint_as_other_role
|
587
589
|
has_one :role # Ring Constraint has Role, see Role#all_ring_constraint
|
588
590
|
end
|
589
|
-
|
591
|
+
|
590
592
|
class RingConstraintShape < ConstraintShape
|
591
593
|
has_one :fact_type_shape, mandatory: true # Ring Constraint Shape is attached to Fact Type Shape, see FactTypeShape#all_ring_constraint_shape
|
592
594
|
end
|
593
|
-
|
595
|
+
|
594
596
|
class RoleNameShape < Shape
|
595
597
|
end
|
596
|
-
|
598
|
+
|
597
599
|
class ValueConstraintShape < ConstraintShape
|
598
600
|
has_one :object_type_shape # Value Constraint Shape is for Object Type Shape, see ObjectTypeShape#all_value_constraint_shape
|
599
601
|
end
|
600
|
-
|
602
|
+
|
601
603
|
class RoleDisplay
|
602
604
|
identified_by :fact_type_shape, :ordinal
|
603
605
|
has_one :fact_type_shape, mandatory: true # Role Display involves Fact Type Shape, see FactTypeShape#all_role_display
|
@@ -606,7 +608,7 @@ module ActiveFacts
|
|
606
608
|
one_to_one :role_name_shape # Role Display has Role Name Shape, see RoleNameShape#role_display
|
607
609
|
one_to_one :value_constraint_shape # Role Display has Value Constraint Shape, see ValueConstraintShape#role_display
|
608
610
|
end
|
609
|
-
|
611
|
+
|
610
612
|
class RoleValue
|
611
613
|
identified_by :fact, :role
|
612
614
|
has_one :fact, mandatory: true # Role Value fulfils Fact, see Fact#all_role_value
|
@@ -614,44 +616,48 @@ module ActiveFacts
|
|
614
616
|
has_one :instance, mandatory: true # Role Value is of Instance, see Instance#all_role_value
|
615
617
|
has_one :population, mandatory: true # Role Value belongs to Population, see Population#all_role_value
|
616
618
|
end
|
617
|
-
|
619
|
+
|
618
620
|
class Scoping < Mapping
|
619
621
|
end
|
620
|
-
|
622
|
+
|
621
623
|
class SetConstraint < Constraint
|
622
624
|
end
|
623
|
-
|
625
|
+
|
624
626
|
class SetComparisonConstraint < SetConstraint
|
625
627
|
end
|
626
|
-
|
628
|
+
|
627
629
|
class SetComparisonRoles
|
628
630
|
identified_by :set_comparison_constraint, :ordinal
|
629
631
|
has_one :set_comparison_constraint, mandatory: true # Set Comparison Roles involves Set Comparison Constraint, see SetComparisonConstraint#all_set_comparison_roles
|
630
632
|
has_one :ordinal, mandatory: true # Set Comparison Roles involves Ordinal, see Ordinal#all_set_comparison_roles
|
631
633
|
has_one :role_sequence, mandatory: true # Set Comparison Roles involves Role Sequence, see RoleSequence#all_set_comparison_roles
|
632
634
|
end
|
633
|
-
|
635
|
+
|
634
636
|
class SetEqualityConstraint < SetComparisonConstraint
|
635
637
|
end
|
636
|
-
|
638
|
+
|
637
639
|
class SetExclusionConstraint < SetComparisonConstraint
|
638
640
|
maybe :is_mandatory # Is Mandatory
|
639
641
|
end
|
640
|
-
|
642
|
+
|
641
643
|
class SpanningConstraint
|
642
644
|
identified_by :composite, :spanning_constraint
|
643
645
|
has_one :composite, mandatory: true # Spanning Constraint involves Composite, see Composite#all_spanning_constraint
|
644
646
|
has_one :spanning_constraint, mandatory: true, class: Constraint # Spanning Constraint involves Constraint, see Constraint#all_spanning_constraint_as_spanning_constraint
|
645
647
|
end
|
646
|
-
|
648
|
+
|
647
649
|
class SubsetConstraint < SetConstraint
|
648
650
|
has_one :subset_role_sequence, mandatory: true, class: RoleSequence # Subset Constraint covers subset-Role Sequence, see RoleSequence#all_subset_constraint_as_subset_role_sequence
|
649
651
|
has_one :superset_role_sequence, mandatory: true, class: RoleSequence # Subset Constraint covers superset-Role Sequence, see RoleSequence#all_subset_constraint_as_superset_role_sequence
|
650
652
|
end
|
651
|
-
|
653
|
+
|
652
654
|
class SurrogateKey < Injection
|
653
655
|
end
|
654
|
-
|
656
|
+
|
657
|
+
class TemporalMapping < Mapping
|
658
|
+
has_one :value_type, mandatory: true # Temporal Mapping records time using Value Type, see ValueType#all_temporal_mapping
|
659
|
+
end
|
660
|
+
|
655
661
|
class TypeInheritance < FactType
|
656
662
|
identified_by :subtype, :supertype
|
657
663
|
has_one :subtype, mandatory: true, class: EntityType # Type Inheritance involves Entity Type, see EntityType#all_type_inheritance_as_subtype
|
@@ -659,17 +665,20 @@ module ActiveFacts
|
|
659
665
|
maybe :provides_identification # Provides Identification
|
660
666
|
has_one :assimilation # Type Inheritance uses Assimilation, see Assimilation#all_type_inheritance
|
661
667
|
end
|
662
|
-
|
668
|
+
|
669
|
+
class ValidFrom < Injection
|
670
|
+
end
|
671
|
+
|
663
672
|
class ValueField < Injection
|
664
673
|
end
|
665
|
-
|
674
|
+
|
666
675
|
class ValueTypeParameter
|
667
676
|
identified_by :value_type, :name
|
668
677
|
has_one :value_type, mandatory: true # Value Type Parameter involves Value Type, see ValueType#all_value_type_parameter
|
669
678
|
has_one :name, mandatory: true # Value Type Parameter involves Name, see Name#all_value_type_parameter
|
670
679
|
has_one :parameter_value_type, mandatory: true, class: ValueType # Value Type Parameter requires value of parameter-Value Type, see ValueType#all_value_type_parameter_as_parameter_value_type
|
671
680
|
end
|
672
|
-
|
681
|
+
|
673
682
|
class ValueTypeParameterRestriction
|
674
683
|
identified_by :value_type, :value_type_parameter
|
675
684
|
has_one :value_type, mandatory: true # Value Type Parameter Restriction involves Value Type, see ValueType#all_value_type_parameter_restriction
|