activefacts 1.6.0 → 1.7.1

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.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +14 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +60 -0
  8. data/Rakefile +3 -80
  9. data/activefacts.gemspec +36 -0
  10. data/bin/afgen +4 -2
  11. data/bin/cql +5 -1
  12. data/lib/activefacts.rb +3 -12
  13. data/lib/activefacts/{vocabulary/query_evaluator.rb → query/evaluator.rb} +0 -0
  14. data/lib/activefacts/version.rb +2 -2
  15. metadata +48 -296
  16. data/History.txt +0 -4
  17. data/LICENSE +0 -19
  18. data/Manifest.txt +0 -165
  19. data/README.rdoc +0 -81
  20. data/css/offline.css +0 -3
  21. data/css/orm2.css +0 -124
  22. data/css/print.css +0 -8
  23. data/css/style-print.css +0 -357
  24. data/css/style.css +0 -387
  25. data/download.html +0 -110
  26. data/examples/CQL/Address.cql +0 -44
  27. data/examples/CQL/Blog.cql +0 -54
  28. data/examples/CQL/CompanyDirectorEmployee.cql +0 -56
  29. data/examples/CQL/Death.cql +0 -17
  30. data/examples/CQL/Diplomacy.cql +0 -48
  31. data/examples/CQL/Genealogy.cql +0 -98
  32. data/examples/CQL/Insurance.cql +0 -320
  33. data/examples/CQL/Marriage.cql +0 -18
  34. data/examples/CQL/Metamodel.cql +0 -493
  35. data/examples/CQL/Monogamy.cql +0 -24
  36. data/examples/CQL/MultiInheritance.cql +0 -22
  37. data/examples/CQL/NonRoleId.cql +0 -14
  38. data/examples/CQL/OddIdentifier.cql +0 -18
  39. data/examples/CQL/OilSupply.cql +0 -53
  40. data/examples/CQL/OneToOnes.cql +0 -17
  41. data/examples/CQL/Orienteering.cql +0 -111
  42. data/examples/CQL/PersonPlaysGame.cql +0 -18
  43. data/examples/CQL/RedundantDependency.cql +0 -34
  44. data/examples/CQL/SchoolActivities.cql +0 -33
  45. data/examples/CQL/SeparateSubtype.cql +0 -30
  46. data/examples/CQL/ServiceDirector.cql +0 -276
  47. data/examples/CQL/SimplestUnary.cql +0 -12
  48. data/examples/CQL/Supervision.cql +0 -34
  49. data/examples/CQL/WaiterTips.cql +0 -33
  50. data/examples/CQL/Warehousing.cql +0 -101
  51. data/examples/CQL/WindowInRoomInBldg.cql +0 -28
  52. data/examples/CQL/unit.cql +0 -474
  53. data/examples/index.html +0 -420
  54. data/examples/intro.html +0 -327
  55. data/examples/local.css +0 -24
  56. data/index.html +0 -111
  57. data/lib/activefacts/cql.rb +0 -35
  58. data/lib/activefacts/cql/CQLParser.treetop +0 -158
  59. data/lib/activefacts/cql/Context.treetop +0 -48
  60. data/lib/activefacts/cql/Expressions.treetop +0 -67
  61. data/lib/activefacts/cql/FactTypes.treetop +0 -358
  62. data/lib/activefacts/cql/Language/English.treetop +0 -315
  63. data/lib/activefacts/cql/LexicalRules.treetop +0 -253
  64. data/lib/activefacts/cql/ObjectTypes.treetop +0 -210
  65. data/lib/activefacts/cql/Rakefile +0 -14
  66. data/lib/activefacts/cql/Terms.treetop +0 -183
  67. data/lib/activefacts/cql/ValueTypes.treetop +0 -202
  68. data/lib/activefacts/cql/compiler.rb +0 -156
  69. data/lib/activefacts/cql/compiler/clause.rb +0 -1137
  70. data/lib/activefacts/cql/compiler/constraint.rb +0 -581
  71. data/lib/activefacts/cql/compiler/entity_type.rb +0 -457
  72. data/lib/activefacts/cql/compiler/expression.rb +0 -443
  73. data/lib/activefacts/cql/compiler/fact.rb +0 -390
  74. data/lib/activefacts/cql/compiler/fact_type.rb +0 -421
  75. data/lib/activefacts/cql/compiler/query.rb +0 -106
  76. data/lib/activefacts/cql/compiler/shared.rb +0 -161
  77. data/lib/activefacts/cql/compiler/value_type.rb +0 -174
  78. data/lib/activefacts/cql/nodes.rb +0 -49
  79. data/lib/activefacts/cql/parser.rb +0 -241
  80. data/lib/activefacts/dependency_analyser.rb +0 -182
  81. data/lib/activefacts/generate/absorption.rb +0 -70
  82. data/lib/activefacts/generate/composition.rb +0 -118
  83. data/lib/activefacts/generate/cql.rb +0 -714
  84. data/lib/activefacts/generate/dm.rb +0 -279
  85. data/lib/activefacts/generate/help.rb +0 -64
  86. data/lib/activefacts/generate/helpers/inject.rb +0 -16
  87. data/lib/activefacts/generate/helpers/oo.rb +0 -162
  88. data/lib/activefacts/generate/helpers/ordered.rb +0 -605
  89. data/lib/activefacts/generate/helpers/rails.rb +0 -57
  90. data/lib/activefacts/generate/html/glossary.rb +0 -461
  91. data/lib/activefacts/generate/json.rb +0 -337
  92. data/lib/activefacts/generate/null.rb +0 -32
  93. data/lib/activefacts/generate/rails/models.rb +0 -246
  94. data/lib/activefacts/generate/rails/schema.rb +0 -216
  95. data/lib/activefacts/generate/records.rb +0 -46
  96. data/lib/activefacts/generate/ruby.rb +0 -133
  97. data/lib/activefacts/generate/sql/mysql.rb +0 -280
  98. data/lib/activefacts/generate/sql/server.rb +0 -273
  99. data/lib/activefacts/generate/stats.rb +0 -69
  100. data/lib/activefacts/generate/text.rb +0 -27
  101. data/lib/activefacts/generate/topics.rb +0 -265
  102. data/lib/activefacts/generate/traits/datavault.rb +0 -241
  103. data/lib/activefacts/generate/traits/oo.rb +0 -73
  104. data/lib/activefacts/generate/traits/ordered.rb +0 -33
  105. data/lib/activefacts/generate/traits/ruby.rb +0 -210
  106. data/lib/activefacts/generate/transform/datavault.rb +0 -266
  107. data/lib/activefacts/generate/transform/surrogate.rb +0 -214
  108. data/lib/activefacts/generate/version.rb +0 -26
  109. data/lib/activefacts/input/cql.rb +0 -43
  110. data/lib/activefacts/input/orm.rb +0 -1636
  111. data/lib/activefacts/mapping/rails.rb +0 -132
  112. data/lib/activefacts/persistence.rb +0 -15
  113. data/lib/activefacts/persistence/columns.rb +0 -446
  114. data/lib/activefacts/persistence/foreignkey.rb +0 -187
  115. data/lib/activefacts/persistence/index.rb +0 -240
  116. data/lib/activefacts/persistence/object_type.rb +0 -198
  117. data/lib/activefacts/persistence/reference.rb +0 -434
  118. data/lib/activefacts/persistence/tables.rb +0 -380
  119. data/lib/activefacts/registry.rb +0 -11
  120. data/lib/activefacts/support.rb +0 -132
  121. data/lib/activefacts/vocabulary.rb +0 -9
  122. data/lib/activefacts/vocabulary/extensions.rb +0 -1348
  123. data/lib/activefacts/vocabulary/metamodel.rb +0 -570
  124. data/lib/activefacts/vocabulary/verbaliser.rb +0 -804
  125. data/script/txt2html +0 -71
  126. data/spec/absorption_spec.rb +0 -95
  127. data/spec/cql/comparison_spec.rb +0 -89
  128. data/spec/cql/context_spec.rb +0 -94
  129. data/spec/cql/contractions_spec.rb +0 -224
  130. data/spec/cql/deontic_spec.rb +0 -88
  131. data/spec/cql/entity_type_spec.rb +0 -320
  132. data/spec/cql/expressions_spec.rb +0 -66
  133. data/spec/cql/fact_type_matching_spec.rb +0 -338
  134. data/spec/cql/french_spec.rb +0 -21
  135. data/spec/cql/parser/bad_literals_spec.rb +0 -86
  136. data/spec/cql/parser/constraints_spec.rb +0 -19
  137. data/spec/cql/parser/entity_types_spec.rb +0 -106
  138. data/spec/cql/parser/expressions_spec.rb +0 -199
  139. data/spec/cql/parser/fact_types_spec.rb +0 -44
  140. data/spec/cql/parser/literals_spec.rb +0 -312
  141. data/spec/cql/parser/pragmas_spec.rb +0 -89
  142. data/spec/cql/parser/value_types_spec.rb +0 -42
  143. data/spec/cql/role_matching_spec.rb +0 -148
  144. data/spec/cql/samples_spec.rb +0 -244
  145. data/spec/cql_cql_spec.rb +0 -73
  146. data/spec/cql_dm_spec.rb +0 -136
  147. data/spec/cql_mysql_spec.rb +0 -69
  148. data/spec/cql_parse_spec.rb +0 -34
  149. data/spec/cql_ruby_spec.rb +0 -73
  150. data/spec/cql_sql_spec.rb +0 -72
  151. data/spec/cql_symbol_tables_spec.rb +0 -261
  152. data/spec/cqldump_spec.rb +0 -170
  153. data/spec/helpers/array_matcher.rb +0 -23
  154. data/spec/helpers/ctrl_c_support.rb +0 -52
  155. data/spec/helpers/diff_matcher.rb +0 -39
  156. data/spec/helpers/file_matcher.rb +0 -34
  157. data/spec/helpers/parse_to_ast_matcher.rb +0 -80
  158. data/spec/helpers/string_matcher.rb +0 -30
  159. data/spec/helpers/test_parser.rb +0 -15
  160. data/spec/norma_cql_spec.rb +0 -66
  161. data/spec/norma_ruby_spec.rb +0 -62
  162. data/spec/norma_ruby_sql_spec.rb +0 -107
  163. data/spec/norma_sql_spec.rb +0 -57
  164. data/spec/norma_tables_spec.rb +0 -95
  165. data/spec/ruby_api_spec.rb +0 -23
  166. data/spec/spec_helper.rb +0 -35
  167. data/spec/transform_surrogate_spec.rb +0 -59
  168. data/status.html +0 -138
  169. data/why.html +0 -60
@@ -1,18 +0,0 @@
1
- vocabulary Marriage;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Name is written as String;
7
-
8
- /*
9
- * Entity Types
10
- */
11
- Person is independent identified by given-Name and family-Name where
12
- Person has one given-Name,
13
- Person has one family-Name;
14
-
15
- Marriage is identified by Husband and Wife where
16
- Marriage is by one husband-Person (as Husband),
17
- Marriage is of one wife-Person (as Wife);
18
-
@@ -1,493 +0,0 @@
1
- vocabulary Metamodel;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Adjective is written as String(64);
7
- Agent Name is written as String;
8
- Aggregate Code is written as String(32);
9
- Annotation is written as String;
10
- Assimilation is written as String restricted to {'absorbed', 'partitioned', 'separate'};
11
- Context Note Kind is written as String restricted to {'as_opposed_to', 'because', 'so_that', 'to_avoid'};
12
- Date is written as Date;
13
- Denominator is written as Unsigned Integer(32);
14
- Discussion is written as String;
15
- Display Role Names Setting is written as String restricted to {'false', 'true'};
16
- Enforcement Code is written as String(16);
17
- Ephemera URL is written as String;
18
- Exponent is written as Signed Integer(16);
19
- Frequency is written as Unsigned Integer(32);
20
- Guid is written as Guid auto-assigned at assert;
21
- Implication Rule Name is written as String;
22
- Length is written as Unsigned Integer(32);
23
- Literal is written as String;
24
- Name is written as String(64);
25
- Numerator is written as Decimal;
26
- Offset is written as Decimal;
27
- Ordinal is written as Unsigned Integer(16);
28
- Pronoun is written as String(20) restricted to {'feminine', 'masculine', 'neuter', 'personal'};
29
- Regular Expression is written as String;
30
- Ring Type is written as String;
31
- Rotation Setting is written as String restricted to {'left', 'right'};
32
- Scale is written as Unsigned Integer(32);
33
- Subscript is written as Unsigned Integer(16);
34
- Text is written as String(256);
35
- Transaction Phase is written as String restricted to {'assert', 'commit'};
36
- X is written as Signed Integer(32);
37
- Y is written as Signed Integer(32);
38
-
39
- /*
40
- * Entity Types
41
- */
42
- Agent is identified by its Name;
43
-
44
- Aggregate is identified by its Code;
45
-
46
- Alternative Set is identified by Guid where
47
- Alternative Set has one Guid,
48
- Guid is of at most one Alternative Set;
49
- Alternative Set members are exclusive;
50
-
51
- Coefficient is identified by Numerator and Denominator and Coefficient is precise where
52
- Coefficient has one Numerator,
53
- Coefficient has one Denominator,
54
- Coefficient is precise;
55
-
56
- Concept is identified by Guid where
57
- Concept has one Guid,
58
- Guid is of at most one Concept;
59
-
60
- Concept Annotation is where
61
- Concept has mapping-Annotation,
62
- Annotation applies to Concept;
63
-
64
- Constraint [separate] is identified by Concept where
65
- Constraint is an instance of one Concept;
66
- Name is of Constraint,
67
- Constraint is called at most one Name;
68
-
69
- Context Note is identified by Concept where
70
- Context Note is an instance of one Concept;
71
- Context Note has one Context Note Kind,
72
- Context Note Kind is of Context Note;
73
- Context Note has one Discussion,
74
- Discussion is for Context Note;
75
- Context Note applies to at most one relevant-Concept,
76
- Concept has Context Note;
77
-
78
- Enforcement is identified by Constraint where
79
- Constraint requires at most one Enforcement,
80
- Enforcement applies to one Constraint;
81
- Enforcement notifies at most one Agent;
82
- Enforcement has one Enforcement Code,
83
- Enforcement Code is of Enforcement;
84
-
85
- Fact is identified by Concept where
86
- Fact is an instance of one Concept;
87
-
88
- Fact Type is independent identified by Concept where
89
- Fact Type is an instance of one Concept;
90
- Fact is of one Fact Type;
91
-
92
- Implication Rule is identified by its Name;
93
- Concept is implied by at most one Implication Rule;
94
-
95
- Instance is identified by Concept where
96
- Instance is an instance of one Concept;
97
- Instance objectifies at most one Fact,
98
- Fact is objectified as at most one Instance;
99
-
100
- Link Fact Type is a kind of Fact Type;
101
-
102
- Location is identified by X and Y where
103
- Location is at one X,
104
- Location is at one Y;
105
-
106
- Presence Constraint is a kind of Constraint;
107
- Presence Constraint has at most one max-Frequency restricted to {1..};
108
- Presence Constraint has at most one min-Frequency restricted to {2..};
109
- Presence Constraint is mandatory;
110
- Presence Constraint is preferred identifier;
111
-
112
- Query is identified by Concept where
113
- Query is an instance of one Concept;
114
-
115
- Reading is identified by Fact Type and Ordinal where
116
- Fact Type has Reading,
117
- Reading is for one Fact Type,
118
- Reading is in one Ordinal position,
119
- Ordinal reading for fact type is Reading;
120
- Reading has one Text;
121
- Reading is negative;
122
-
123
- Ring Constraint is a kind of Constraint;
124
- Ring Constraint is of one Ring Type;
125
-
126
- Role is identified by Fact Type and Ordinal where
127
- Role belongs to one Fact Type,
128
- Fact Type contains Role,
129
- Role fills one Ordinal,
130
- Ordinal applies to Role;
131
- Link Fact Type has one implying-Role,
132
- implying-Role implies at most one Link Fact Type;
133
- Ring Constraint has at most one other-Role,
134
- other-Role is of Ring Constraint;
135
- Role is an instance of one Concept;
136
- Role is of Ring Constraint; // Avoid ambiguity; this is a new fact type
137
- Role is of Ring Constraint,
138
- Ring Constraint has at most one Role;
139
- Role has at most one role-Name,
140
- role-Name is name of at least one Role;
141
-
142
- Role Sequence is identified by Guid where
143
- Role Sequence has one Guid,
144
- Guid is of at most one Role Sequence;
145
- Presence Constraint covers one Role Sequence;
146
- Reading is in one Role Sequence,
147
- Role Sequence is for Reading;
148
- Role Sequence has unused dependency to force table in norma;
149
-
150
- Role Value is identified by Fact and Role where
151
- Role Value fulfils one Fact,
152
- Fact includes at least one Role Value,
153
- Role Value is of one Role;
154
- Instance plays Role Value,
155
- Role Value is of one Instance;
156
-
157
- Set Constraint is a kind of Constraint;
158
-
159
- Shape is identified by Guid where
160
- Shape has one Guid,
161
- Guid is of at most one Shape;
162
- Shape is at at most one Location;
163
- Shape is expanded;
164
-
165
- Step is identified by Guid where
166
- Step has one Guid,
167
- Guid is of at most one Step;
168
- Step falls under at most one Alternative Set,
169
- Alternative Set covers at least one Step;
170
- Step specifies one Fact Type,
171
- Fact Type directs Step;
172
- Step is disallowed;
173
- Step is optional;
174
-
175
- Subset Constraint is a kind of Set Constraint;
176
- Subset Constraint covers one subset-Role Sequence;
177
- Subset Constraint covers one superset-Role Sequence;
178
-
179
- Topic is identified by topic-Name where
180
- Topic has one topic-Name,
181
- topic-Name is of at most one Topic;
182
- Concept belongs to at most one Topic,
183
- Topic contains Concept;
184
-
185
- Unit is identified by Concept where
186
- Unit is an instance of one Concept;
187
- Ephemera URL provides Unit coefficient,
188
- Unit uses coefficient from at most one Ephemera URL;
189
- Name is of at most one Unit,
190
- Unit is called one Name;
191
- Unit has at most one Coefficient;
192
- Unit has at most one Offset;
193
- Unit (as Plural Named Unit) has plural-Name; // Avoid ambiguity; this is a new fact type
194
- Unit (as Plural Named Unit) has at most one plural-Name,
195
- plural-Name is of at most one Plural Named Unit;
196
- Unit is fundamental;
197
-
198
- Value is identified by Literal and Value is literal string and Unit where
199
- Value is represented by one Literal,
200
- Literal represents Value,
201
- Value is literal string,
202
- Value is in at most one Unit,
203
- Unit is of Value;
204
- Instance has at most one Value;
205
-
206
- Value Constraint is a kind of Constraint;
207
- Role has at most one role-Value Constraint,
208
- Value Constraint applies to at most one Role;
209
- Value Constraint requires matching at most one Regular Expression;
210
-
211
- Variable is identified by Query and Ordinal where
212
- Query includes at least one Variable,
213
- Variable is in one Query,
214
- Variable has one Ordinal position;
215
- Variable projects at most one Role (as Projection),
216
- Projection is projected from at most one Variable;
217
- Variable (as Objectification Variable) matches nesting over at most one Step,
218
- Step nests as at most one Objectification Variable;
219
- Variable has at most one Subscript,
220
- Subscript is of Variable;
221
- Variable is bound to at most one Value;
222
- Variable has at most one role-Name,
223
- Name is of Variable;
224
-
225
- Vocabulary is identified by Name where
226
- Vocabulary is called one Name;
227
- Vocabulary contains Constraint,
228
- Constraint belongs to at most one Vocabulary;
229
- Vocabulary includes Unit,
230
- Unit is in one Vocabulary;
231
-
232
- Aggregation is where
233
- Variable is bound to Aggregate over aggregated-Variable,
234
- Aggregate of aggregated-Variable is bound as one Variable;
235
-
236
- Agreement is identified by Context Note where
237
- Context Note was added by at most one Agreement,
238
- Agreement covers one Context Note;
239
- Agreement was on at most one Date,
240
- Date is of Agreement;
241
-
242
- Bound is identified by Value and Bound is inclusive where
243
- Bound has one Value,
244
- Value is of at least one Bound,
245
- Bound is inclusive;
246
-
247
- Constraint Shape is a kind of Shape;
248
- Constraint Shape is for one Constraint;
249
-
250
- Context According To is where
251
- Context Note is according to Agent,
252
- Agent claims Context Note;
253
- Context According To was lodged on at most one Date;
254
-
255
- Context Agreed By is where
256
- Agreement was reached by Agent,
257
- Agent agreed on Agreement;
258
-
259
- Derivation is where
260
- Unit (as Derived Unit) is derived from base-Unit (as Base Unit) [acyclic, intransitive];
261
- Derivation has at most one Exponent;
262
-
263
- Diagram is identified by Vocabulary and Name where
264
- Diagram is for one Vocabulary,
265
- Vocabulary contains Diagram,
266
- Diagram is called one Name,
267
- Name is of Diagram;
268
-
269
- Fact Type Shape is a kind of Shape;
270
- Fact Type Shape has at most one Display Role Names Setting;
271
- Fact Type Shape is for one Fact Type,
272
- Fact Type has Fact Type Shape;
273
- Fact Type Shape has at most one Rotation Setting;
274
-
275
- Model Note Shape is a kind of Shape;
276
- Model Note Shape is for one Context Note;
277
-
278
- ORM Diagram is a kind of Diagram;
279
- Shape is in one ORM Diagram,
280
- ORM Diagram includes Shape;
281
-
282
- Object Type is identified by Vocabulary and Name where
283
- Object Type belongs to one Vocabulary,
284
- Object Type is called one Name;
285
- Instance is of one Object Type;
286
- Object Type is an instance of one Concept;
287
- Object Type uses at most one Pronoun;
288
- Object Type plays Role,
289
- Role is played by one Object Type;
290
- Object Type is independent;
291
- Variable is for one Object Type,
292
- Object Type is referenced in Variable;
293
-
294
- Object Type Shape is a kind of Shape;
295
- Object Type Shape is for one Object Type,
296
- Object Type has Object Type Shape;
297
- Object Type Shape has expanded reference mode;
298
-
299
- Objectified Fact Type Name Shape is a kind of Shape;
300
- Objectified Fact Type Name Shape is for one Fact Type Shape,
301
- Fact Type Shape has at most one Objectified Fact Type Name Shape;
302
-
303
- Play is where
304
- Variable is restricted by Role of Step,
305
- Step contains Role restricting one Variable;
306
- Play is input;
307
-
308
- Population is identified by Vocabulary and Name where
309
- Vocabulary includes Population,
310
- Population belongs to at most one Vocabulary,
311
- Population has one Name,
312
- Name is of Population;
313
- Population is an instance of one Concept;
314
- Population includes Fact,
315
- Fact belongs to one Population;
316
- Population includes Instance,
317
- Instance belongs to one Population;
318
- Population includes Role Value,
319
- Role Value belongs to one Population;
320
-
321
- Reading Shape is a kind of Shape;
322
- Fact Type Shape has at most one Reading Shape,
323
- Reading Shape is for one Fact Type Shape;
324
- Reading Shape is for one Reading,
325
- Reading has Reading Shape;
326
-
327
- Ring Constraint Shape is a kind of Constraint Shape;
328
- Ring Constraint Shape is attached to one Fact Type Shape;
329
-
330
- Role Display is where
331
- Fact Type Shape displays Role in Ordinal position,
332
- Fact Type Shape displays in Ordinal position one Role;
333
-
334
- Role Name Shape is a kind of Shape;
335
- Role Name Shape is for one Role Display,
336
- Role Display has at most one Role Name Shape;
337
-
338
- Role Ref is where
339
- Role Sequence in Ordinal position includes one Role,
340
- Role is in Role Sequence in one Ordinal place,
341
- Role Sequence includes Role in Ordinal place,
342
- Role has Ordinal place in Role Sequence;
343
- Play projects at most one Role Ref,
344
- Role Ref is projected from at most one Play;
345
- Role Ref has at most one leading-Adjective;
346
- Role Ref has at most one trailing-Adjective;
347
-
348
- Set Comparison Constraint is a kind of Set Constraint;
349
-
350
- Set Comparison Roles is where
351
- Set Comparison Constraint has in Ordinal position one Role Sequence,
352
- Role Sequence is Ordinal in Set Comparison Constraint,
353
- in Ordinal position Set Comparison Constraint has Role Sequence,
354
- Set Comparison Constraint has Role Sequence in one Ordinal position;
355
-
356
- Set Equality Constraint is a kind of Set Comparison Constraint;
357
-
358
- Set Exclusion Constraint is a kind of Set Comparison Constraint;
359
- Set Exclusion Constraint is mandatory;
360
-
361
- Value Constraint Shape is a kind of Constraint Shape;
362
- Role Display has at most one Value Constraint Shape,
363
- Value Constraint Shape is for at most one Role Display;
364
- Value Constraint Shape is for at most one Object Type Shape,
365
- Object Type Shape has Value Constraint Shape;
366
-
367
- Value Range is identified by minimum-Bound and maximum-Bound where
368
- Value Range has at most one minimum-Bound,
369
- Value Range has at most one maximum-Bound;
370
-
371
- Allowed Range is where
372
- Value Constraint allows Value Range;
373
-
374
- Domain Object Type is a kind of Object Type;
375
-
376
- Entity Type is a kind of Domain Object Type;
377
- Entity Type nests at most one Fact Type,
378
- Fact Type is nested as at most one Entity Type;
379
-
380
- Type Inheritance is a kind of Fact Type identified by Subtype and Supertype where
381
- Entity Type (as Subtype) is subtype of super-Entity Type (as Supertype) [acyclic, intransitive],
382
- Supertype is supertype of Subtype;
383
- Assimilation applies to Type Inheritance,
384
- Type Inheritance uses at most one Assimilation;
385
- Type Inheritance provides identification;
386
-
387
- Value Type is a kind of Domain Object Type;
388
- Value is of one Value Type,
389
- Value Type has Value;
390
- Value Type has at most one Length,
391
- Length is of Value Type;
392
- Value Type has at most one Scale,
393
- Scale is of Value Type;
394
- Value Type is auto-assigned at at most one Transaction Phase;
395
- Value Type is of at most one Unit;
396
- Value Type has at most one Value Constraint,
397
- Value Constraint constrains at most one Value Type;
398
- Value Type is subtype of at most one super-Value Type (as Supertype) [acyclic, transitive],
399
- Supertype is supertype of Value Type;
400
-
401
- Value Type Parameter is where
402
- Value Type has facet called Name,
403
- Name is a facet of Value Type;
404
- Value Type Parameter requires value of one facet-Value Type;
405
-
406
- Value Type Parameter Restriction is where
407
- Value Type receives Value Type Parameter,
408
- Value Type Parameter applies to Value Type;
409
- Value Type Parameter Restriction has one Value;
410
-
411
- Implicit Boolean Value Type is a kind of Value Type;
412
-
413
- /*
414
- * Constraints:
415
- */
416
- for each Concept exactly one of these holds:
417
- Object Type is an instance of Concept,
418
- Fact Type is an instance of Concept,
419
- Role is an instance of Concept,
420
- Constraint is an instance of Concept,
421
- Context Note is an instance of Concept,
422
- Unit is an instance of Concept,
423
- Instance is an instance of Concept,
424
- Fact is an instance of Concept,
425
- Population is an instance of Concept,
426
- Query is an instance of Concept;
427
- for each Constraint exactly one of these holds:
428
- Constraint is a Presence Constraint,
429
- Constraint is a Set Constraint,
430
- Constraint is a Ring Constraint;
431
- either Domain Object Type is a Value Type or Domain Object Type is an Entity Type but not both;
432
- for each Role Sequence exactly one of these holds:
433
- Role Sequence is for Reading,
434
- Presence Constraint covers Role Sequence,
435
- Subset Constraint (1) covers subset-Role Sequence,
436
- Subset Constraint (2) covers superset-Role Sequence,
437
- Role Sequence is Ordinal in Set Comparison Constraint;
438
- either Set Comparison Constraint is a Set Exclusion Constraint or Set Comparison Constraint is a Set Equality Constraint but not both;
439
- either Set Constraint is a Set Comparison Constraint or Set Constraint is a Subset Constraint but not both;
440
- either Unit uses coefficient from Ephemera URL or Unit has Coefficient but not both;
441
- either Unit is fundamental or Unit is derived from base-Unit but not both;
442
- either Value Constraint Shape is for Object Type Shape or Value Constraint Shape is for Role Display but not both;
443
- either Value Constraint allows Value Range or Value Constraint requires matching Regular Expression but not both;
444
- either Value Constraint constrains Value Type or Value Constraint applies to Role but not both;
445
- for each Instance at most one of these holds:
446
- Instance has Value,
447
- Instance objectifies Fact;
448
- Role Value is of Instance that is of Object Type
449
- if and only if
450
- Role Value is of Role that is played by Object Type;
451
- Role Value fulfils Fact that is of Fact Type
452
- if and only if
453
- Role Value is of Role that belongs to Fact Type;
454
- Step specifies Fact Type that contains Role
455
- if and only if
456
- Step contains Role restricting Variable;
457
- Variable is for Object Type that plays Role
458
- if and only if
459
- Variable is restricted by Role of Step;
460
- Presence Constraint is preferred identifier
461
- only if Presence Constraint has max Frequency;
462
- Value Type has Scale
463
- only if Value Type has Length;
464
- Variable matches nesting over Step
465
- only if Variable is for Object Type and Step specifies Fact Type;
466
- either Agreement was reached by Agent or Agreement was on Date;
467
- each Concept occurs at most one time in
468
- Object Type is an instance of Concept;
469
- each Concept occurs at most one time in
470
- Population is an instance of Concept;
471
- each Concept occurs at most one time in
472
- Role is an instance of Concept;
473
- each combination Entity Type(1), Type Inheritance occurs at most one time in
474
- Entity Type(1) is subtype of super Entity Type(2),
475
- Type Inheritance provides identification;
476
- each combination ORM Diagram, Location occurs at most one time in
477
- Shape is in ORM Diagram,
478
- Shape is at Location;
479
- each Presence Constraint occurs at least one time in
480
- Presence Constraint has min Frequency(2),
481
- Presence Constraint has max Frequency(1),
482
- Presence Constraint is mandatory;
483
- each Role Sequence occurs at least one time in
484
- Role Sequence in Ordinal position includes Role;
485
- each Set Comparison Constraint occurs at least 2 times in
486
- Set Comparison Constraint has in Ordinal position Role Sequence;
487
- either Value Range has minimum Bound(2) or Value Range has maximum Bound(1);
488
- each combination Vocabulary, Name occurs at most one time in
489
- Constraint belongs to Vocabulary,
490
- Constraint is called Name;
491
- each combination Vocabulary, Name occurs at most one time in
492
- Unit is in Vocabulary,
493
- Unit is called Name;