activefacts 1.6.0 → 1.7.1

Sign up to get free protection for your applications and to get access to all the features.
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;