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,24 +0,0 @@
1
- vocabulary Monogamy;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Name is written as String;
7
- Person ID is written as Auto Counter;
8
-
9
- /*
10
- * Entity Types
11
- */
12
- Person is identified by its ID;
13
- Person is called one Name;
14
-
15
- Boy is a kind of Person;
16
-
17
- Girl is a kind of Person;
18
- Girl (as Girlfriend) is going out with at most one Boy (as Boyfriend) [symmetric],
19
- Boyfriend is going out with at most one Girlfriend;
20
-
21
- /*
22
- * Constraints:
23
- */
24
- either Person is a Girl or Person is a Boy but not both;
@@ -1,22 +0,0 @@
1
- vocabulary MultiInheritance;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Employee ID is written as Auto Counter;
7
- Person Name is written as String;
8
- TFN is written as Char(9);
9
-
10
- /*
11
- * Entity Types
12
- */
13
- Person is identified by its Name;
14
-
15
- Australian is a kind of Person;
16
- Australian has at most one TFN,
17
- TFN is of one Australian;
18
-
19
- Employee is a kind of Person identified by its ID;
20
-
21
- Australian Employee is a kind of Employee, Australian;
22
-
@@ -1,14 +0,0 @@
1
- vocabulary NonRoleId;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Comparison Id is written as Auto Counter;
7
- Ordinal is written as Auto Counter;
8
-
9
- /*
10
- * Entity Types
11
- */
12
- Comparison is identified by its Id where
13
- Ordinal comes before larger-Ordinal;
14
-
@@ -1,18 +0,0 @@
1
- vocabulary OddIdentifier;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Ordinal is written as Signed Integer(32);
7
- Text is written as String;
8
- Thing ID is written as Auto Counter;
9
-
10
- /*
11
- * Entity Types
12
- */
13
- Thing is identified by its ID;
14
-
15
- Thing Sequence is identified by Thing and Text where
16
- Thing has Ordinal occurrence,
17
- Thing Sequence has one Text;
18
-
@@ -1,53 +0,0 @@
1
- vocabulary OilSupply;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Cost is written as Money;
7
- Month Nr is written as Signed Integer(32);
8
- Product Name is written as String;
9
- Quantity is written as Unsigned Integer(32);
10
- Refinery Name is written as String(80);
11
- Region Name is written as String;
12
- Season is written as String(6) restricted to {'Autumn', 'Spring', 'Summer', 'Winter'};
13
- Transport Method is written as String restricted to {'Rail', 'Road', 'Sea'};
14
- Year Nr is written as Signed Integer(32);
15
-
16
- /*
17
- * Entity Types
18
- */
19
- Month [static] is identified by its Nr restricted to {1..12};
20
- Month is in one Season;
21
-
22
- Product is independent identified by its Name;
23
-
24
- Refinery is independent identified by its Name;
25
-
26
- Region is independent identified by its Name;
27
-
28
- Transport Route is where
29
- Transport Method transportation is available from Refinery to Region,
30
- Transport Method transportation is available to Region from Refinery;
31
- Transport Route incurs at most one Cost per kl;
32
-
33
- Year is identified by its Nr;
34
-
35
- Acceptable Substitution is where
36
- Product may be substituted by alternate-Product in Season [acyclic, intransitive],
37
- alternate-Product is an acceptable substitute for Product in Season;
38
-
39
- Supply Period [separate, static] is identified by Year and Month where
40
- Supply Period is in one Year,
41
- Supply Period is in one Month;
42
-
43
- Production Forecast is where
44
- Refinery in Supply Period will make Product in one Quantity,
45
- Refinery will make Product in Supply Period in Quantity,
46
- Refinery will make Quantity of Product in Supply Period;
47
- Production Forecast predicts at most one Cost;
48
-
49
- Regional Demand is where
50
- Region in Supply Period will need Product in one Quantity,
51
- Region will need Product in Supply Period in Quantity,
52
- Region will need Quantity of Product in Supply Period;
53
-
@@ -1,17 +0,0 @@
1
- vocabulary OneToOnes;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Boy ID is written as Auto Counter;
7
- Girl ID is written as Auto Counter;
8
-
9
- /*
10
- * Entity Types
11
- */
12
- Boy is independent identified by its ID;
13
-
14
- Girl is independent identified by its ID;
15
- Girl is going out with at most one Boy,
16
- Boy is going out with at most one Girl;
17
-
@@ -1,111 +0,0 @@
1
- vocabulary Orienteering;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Accessibility is written as Char(1) restricted to {'A'..'D'};
7
- Club Code is written as String(6);
8
- Club Name is written as String(32);
9
- Control Number is written as Unsigned Integer(32) restricted to {1..1000};
10
- Course is written as String(16) restricted to {'A'..'E', 'PW'};
11
- Entry ID is written as Auto Counter;
12
- Event ID is written as Auto Counter;
13
- Event Name is written as String(50);
14
- Family Name is written as String(48);
15
- Gender is written as Char(1) restricted to {'F', 'M'};
16
- Given Name is written as String(48);
17
- Location is written as String(200);
18
- Map ID is written as Auto Counter;
19
- Map Name is written as String(80);
20
- Number is written as Unsigned Integer(32) restricted to {1..100};
21
- Person ID is written as Auto Counter;
22
- Placing is written as Unsigned Integer(32);
23
- Point Value is written as Unsigned Integer(32);
24
- Post Code is written as Unsigned Integer(32);
25
- Punch ID is written as Auto Counter;
26
- Score is written as Signed Integer(32);
27
- Scoring Method is written as String(32) restricted to {'Scatter', 'Score', 'Special'};
28
- Series ID is written as Auto Counter;
29
- Series Name is written as String(40);
30
- Start Time is written as Date Time;
31
- Time is written as Date Time;
32
- Year is written as Unsigned Integer(32) restricted to {1900..3000};
33
-
34
- /*
35
- * Entity Types
36
- */
37
- Club is identified by its Code;
38
- Club Name is name of at most one Club,
39
- Club is called one Club Name;
40
-
41
- Event is identified by its ID;
42
- Club runs Event,
43
- Event is run by one Club;
44
- Event is called at most one Event Name,
45
- Event Name is name of at most one Event;
46
- Event has at most one Number;
47
- Event is held on one Start Time;
48
- Event starts at one start-Location,
49
- Location is place Event starts;
50
-
51
- Event Control is where
52
- Event includes at least one Control Number;
53
- Event Control has at most one Point Value;
54
-
55
- Event Scoring Method is where
56
- Scoring Method is used for Course of Event,
57
- Course of Event uses one Scoring Method;
58
-
59
- Map is identified by its ID;
60
- Club (as Owner) owns Map,
61
- Map is owned by one Owner;
62
- Map has at most one Accessibility;
63
- Map is map for Event,
64
- Event uses one Map;
65
- Map has one Map Name,
66
- Map Name is of at most one Map;
67
-
68
- Person is identified by its ID;
69
- Person is member of at most one Club;
70
- Person has one Family Name,
71
- Family Name is of Person;
72
- Person is of at most one Gender;
73
- Person has one Given Name,
74
- Given Name is name of Person;
75
- Person has at most one Post Code;
76
- Person was born in at most one birth-Year;
77
-
78
- Punch is identified by its ID;
79
-
80
- Punch Placement is where
81
- Punch is placed at Event Control;
82
-
83
- Series is identified by its ID;
84
- Event is in at most one Series;
85
- Series has one Series Name (as Name),
86
- Name is of at most one Series;
87
-
88
- Entry is identified by its ID where
89
- Person entered Course of Event,
90
- Person entered Event in one Course;
91
- Entry received at most one Score;
92
- Entry finished in at most one finish-Placing;
93
-
94
- Visit is where
95
- Punch was visited by Entry at Time;
96
-
97
- /*
98
- * Constraints:
99
- */
100
- Event is in Series
101
- if and only if
102
- Event has Number;
103
- each Event Control occurs at least one time in
104
- Punch is placed at Event Control;
105
- either Event is called Event Name or Event is in Series;
106
- each combination Given Name, Family Name occurs at most one time in
107
- Person has Given Name,
108
- Person has Family Name;
109
- each combination Series, Number occurs at most one time in
110
- Event is in Series,
111
- Event has Number;
@@ -1,18 +0,0 @@
1
- vocabulary PersonPlaysGame;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Game Code is written as Char;
7
- Person Name is written as String;
8
-
9
- /*
10
- * Entity Types
11
- */
12
- Game is identified by its Code;
13
-
14
- Person is identified by its Name;
15
-
16
- Playing is where
17
- Person plays Game;
18
-
@@ -1,34 +0,0 @@
1
- vocabulary RedundantDependency;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Address Id is written as Auto Counter;
7
- District Number is written as Signed Integer(32);
8
- Politician Id is written as Auto Counter;
9
- Postal Code is written as Signed Integer(32);
10
- State Or Province Id is written as Auto Counter;
11
-
12
- /*
13
- * Entity Types
14
- */
15
- Address is identified by its Id;
16
- Address is assigned at most one Postal Code;
17
-
18
- Politician is identified by its Id;
19
-
20
- State Or Province is identified by its Id;
21
- Address is in at most one State Or Province;
22
-
23
- Legislative District is identified by District Number and State Or Province where
24
- Legislative District has one District Number,
25
- Legislative District is for one State Or Province;
26
- Address is in at most one Legislative District;
27
- Politician represents at most one Legislative District,
28
- Legislative District is represented by one Politician;
29
-
30
- /*
31
- * Constraints:
32
- */
33
- Address is in Legislative District
34
- only if Address is in State Or Province and Legislative District is for State Or Province;
@@ -1,33 +0,0 @@
1
- vocabulary SchoolActivities;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Activity Name is written as String(32);
7
- School Name is written as String;
8
- Student Name is written as String;
9
-
10
- /*
11
- * Entity Types
12
- */
13
- Activity is identified by its Name;
14
-
15
- School is identified by its Name;
16
-
17
- School Activity is where
18
- School sanctions Activity;
19
-
20
- Student is identified by its Name;
21
- Student is enrolled in one School;
22
-
23
- Student Participation is where
24
- Student represents School in Activity,
25
- Student participates in Activity as representative of one School;
26
-
27
- /*
28
- * Constraints:
29
- */
30
- Student represents School in Activity
31
- only if School sanctions Activity;
32
- Student represents School in Activity
33
- only if Student is enrolled in School;
@@ -1,30 +0,0 @@
1
- vocabulary SeparateSubtype;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Claim ID is written as Auto Counter;
7
- Date Time is written as Date Time;
8
- Person Name is written as String;
9
-
10
- /*
11
- * Entity Types
12
- */
13
- Claim is identified by its ID;
14
-
15
- Incident is identified by Claim where
16
- Claim concerns at most one Incident,
17
- Incident resulted in one Claim;
18
- Incident occurred on at most one Date Time;
19
-
20
- Person is identified by its Name;
21
-
22
- Vehicle Incident is a kind of Incident [separate];
23
-
24
- Witness is a kind of Person;
25
- Witness saw Incident,
26
- Incident was independently witnessed by at most one Witness;
27
-
28
- Driver is a kind of Person;
29
- Vehicle Incident occurred while at most one Driver was in charge;
30
-
@@ -1,276 +0,0 @@
1
- vocabulary ServiceDirector;
2
-
3
- /*
4
- * Value Types
5
- */
6
- Company Code is written as Char(5);
7
- Credential Nr is written as Signed Integer(32);
8
- Data Store Name is written as String(15);
9
- Date is written as String;
10
- Date Time is written as String;
11
- Email Address is written as String(50);
12
- Host System Name is written as String(15);
13
- IP is written as String(16);
14
- Message Data is written as Blob(8000);
15
- Message Header is written as String(30);
16
- Monitor Id is written as Auto Counter;
17
- Monitoring Application Name is written as String(10);
18
- Name is written as String(15);
19
- Netmask is written as String(16);
20
- Network Nr is written as Signed Integer(32);
21
- Notification Level Nr is written as Signed Integer(32);
22
- Notification Type Name is written as String(20);
23
- Password is written as String;
24
- Path is written as String(20);
25
- Port is written as Signed Integer(32);
26
- Provider Type Id is written as Signed Integer(20);
27
- Recurring Schedule Id is written as Auto Counter;
28
- Satellite Message Id is written as Unsigned Integer(32);
29
- Seconds is written as Unsigned Integer(32);
30
- Serial Number is written as String(20);
31
- Service Type [independent] is written as String(15);
32
- Subscription Nr is written as Signed Integer(32);
33
- Switch Id is written as Auto Counter;
34
- Time is written as String;
35
- Transaction Nr is written as Unsigned Integer(32);
36
- Truck PCID is written as Unsigned Integer(32);
37
- User Name is written as String(20);
38
- Version is written as Char(5);
39
-
40
- /*
41
- * Entity Types
42
- */
43
- Company is identified by its Code;
44
- Company has one Operating-Name;
45
- Company is client;
46
- Company is vendor;
47
-
48
- Credential is identified by its Nr;
49
- Credential has at most one Expiration-Date;
50
- Credential has one Password;
51
- Credential has one User Name;
52
-
53
- Data Store is identified by its Name;
54
- Data Store requires at least one Credential;
55
- Data Store has one Friendly-Name;
56
- Data Store has at most one HeartBeat-Truck PCID;
57
- Data Store has one Internal-Credential;
58
- Data Store is one Major-Version;
59
- Data Store is one Minor-Version;
60
- Data Store is one Revision-Version;
61
-
62
- Duration is identified by Seconds where
63
- Duration has one Seconds,
64
- Seconds is of at most one Duration;
65
-
66
- Geocode File is identified by Path where
67
- Geocode File has one Path,
68
- Path is of at most one Geocode File;
69
- Data Store uses at most one Geocode File;
70
-
71
- Host System is identified by its Name;
72
- Data Store is on one Primary-Host System;
73
- Data Store is on one Secondary-Host System;
74
-
75
- Monitor is identified by its Id;
76
- Monitor monitors one Data Store;
77
- Monitor is disabled;
78
-
79
- Monitoring Application is independent identified by its Name;
80
- Monitor is owned by one Monitoring Application;
81
-
82
- Network is identified by its Nr;
83
- Company has at least one Origin-Network;
84
- Data Store has TcpProxy-Network,
85
- TcpProxy-Network is in at most one Data Store;
86
- Host System uses at least one Network,
87
- Network is used by at most one Host System;
88
- Network uses at most one Domain-Name;
89
- Network has at most one Ending-IP;
90
- Network has one Initial-IP;
91
- Network uses at most one Netmask;
92
- Network is ip_range;
93
- Network is ip_single;
94
- Network is ip_subnet;
95
-
96
- Notification Level is identified by its Nr;
97
- Notification Level has one InitialDelay-Duration;
98
- Notification Level has one Repeat-Duration;
99
-
100
- Notification Type is independent identified by its Name;
101
-
102
- Provider Type is identified by its Id;
103
-
104
- Recurring Schedule is identified by its Id;
105
- Monitor has AllExclusion-Recurring Schedule,
106
- AllExclusion-Recurring Schedule applies to at most one Monitor;
107
- Monitor (as IntegratingMonitor) has IntegrationExclusion-Recurring Schedule; // Avoid ambiguity; this is a new fact type
108
- Monitor (as IntegratingMonitor) has IntegrationExclusion-Recurring Schedule,
109
- IntegrationExclusion-Recurring Schedule applies to at most one IntegratingMonitor;
110
- Recurring Schedule has one Duration;
111
- Recurring Schedule has one Start-Time;
112
- Recurring Schedule friday;
113
- Recurring Schedule monday;
114
- Recurring Schedule saturday;
115
- Recurring Schedule sunday;
116
- Recurring Schedule thursday;
117
- Recurring Schedule tuesday;
118
- Recurring Schedule wednesday;
119
-
120
- Satellite Message is identified by its Id;
121
- Satellite Message is designated for one Data Store;
122
- Satellite Message has at most one Message Data;
123
- Satellite Message has at most one Message Header;
124
- Satellite Message is of at most one Provider Type;
125
- Satellite Message has one Serial Number;
126
- Satellite Message has one insertion-Date Time;
127
-
128
- Subscription is identified by its Nr;
129
- Company has one DriverTech-Subscription;
130
- Subscription has one Beginning-Date;
131
- Subscription has at most one Ending-Date;
132
- Subscription is enabled;
133
-
134
- Switch is identified by its Id;
135
- Data Store has at most one Legacy-Switch;
136
- Switch is one Major-Version;
137
- Switch is one Minor-Version;
138
- Switch has one Operating-Port;
139
- Switch is one Revision-Version;
140
- Switch has one monitoring-Port;
141
- Switch (as Private Interface Switch) is on private-Network,
142
- private-Network connects to at most one Private Interface Switch;
143
- Switch (as Public Interface Switch) is on public-Network; // Avoid ambiguity; this is a new fact type
144
- Switch (as Public Interface Switch) is on at least one public-Network,
145
- Network connects to at most one Public Interface Switch;
146
- Switch is backup messages;
147
- Switch is backup updates;
148
- Switch is send disabled;
149
- Switch is test vectors enabled;
150
-
151
- Transaction is identified by its Nr;
152
- Satellite Message has at most one Group-Transaction;
153
-
154
- User is identified by its Name;
155
- User has one Primary-Email Address;
156
- User has at most one Secondary-Email Address;
157
- User is monitor notification disabled;
158
-
159
- Vendor is a kind of Company [separate];
160
- Vendor requires at least one Credential;
161
-
162
- Client is a kind of Company [separate];
163
- Client has at most one default-Data Store;
164
- Data Store belongs to one Client,
165
- Client uses Data Store;
166
-
167
- File Host System is a kind of Host System;
168
- File Host System has one Port;
169
-
170
- Host System Runs Switch is where
171
- Host System runs Switch;
172
-
173
- Monitor Notification Type is where
174
- Monitor has at least one Notification Type;
175
- Monitor Notification Type is excluded;
176
-
177
- Monitor Notification User is where
178
- Monitor Notification Type has notification-User;
179
- Monitor Notification User has one Notification Level;
180
-
181
- Service is identified by Vendor and Service Type where
182
- Vendor provides Service,
183
- Service is of one Service Type;
184
-
185
- Data Store File Host System is where
186
- Data Store has one File Host System;
187
- Data Store File Host System has one Internal-Credential;
188
-
189
- Data Store Service is where
190
- Service is from at least one Data Store,
191
- Data Store has Service;
192
- Data Store Service belongs to one Client;
193
- Data Store Service requires at least one Credential;
194
- Data Store Service has one Subscription;
195
-
196
- /*
197
- * Constraints:
198
- */
199
- either Company is client or Company is vendor but not both;
200
- for each Credential exactly one of these holds:
201
- Data Store (2) requires Credential,
202
- Data Store Service requires Credential,
203
- Vendor requires Credential,
204
- Data Store File Host System has Internal-Credential,
205
- Data Store (1) has Internal-Credential;
206
- for each Network exactly one of these holds:
207
- Network is used by Host System,
208
- Company has Origin-Network,
209
- TcpProxy-Network is in Data Store;
210
- for each Network exactly one of these holds:
211
- Network is ip_single,
212
- Network is ip_subnet,
213
- Network is ip_range;
214
- either Host System runs Switch or Data Store has Legacy-Switch but not both;
215
- for each Network at most one of these holds:
216
- Network is ip_single,
217
- Network has Ending-IP;
218
- Data Store Service (in which Service is from Data Store) belongs to Client
219
- if and only if
220
- Client has default Data Store;
221
- Network has Ending IP
222
- if and only if
223
- Network is ip_range;
224
- Network is ip_subnet
225
- if and only if
226
- Network uses Netmask;
227
- Switch is on private Network
228
- if and only if
229
- Data Store has Legacy Switch;
230
- Client has default Data Store
231
- only if Client uses Data Store;
232
- TcpProxy Network is in Data Store
233
- only if Network is ip_single;
234
- Network uses Domain Name
235
- only if Network is ip_single;
236
- each Credential occurs at most one time in
237
- Data Store File Host System has Internal Credential;
238
- each Credential occurs at most one time in
239
- Data Store Service requires Credential;
240
- each Credential occurs at most one time in
241
- Data Store has Internal Credential;
242
- each Credential occurs at most one time in
243
- Data Store requires Credential;
244
- each Credential occurs at most one time in
245
- Vendor requires Credential;
246
- each IP occurs at most one time in
247
- Network has Ending IP;
248
- each IP occurs at most one time in
249
- Network has Initial IP;
250
- each Name occurs at most one time in
251
- Data Store has Friendly Name;
252
- each Network occurs at most one time in
253
- Company has Origin Network;
254
- each Port occurs at most one time in
255
- Switch has monitoring Port;
256
- each Recurring Schedule occurs at least one time in
257
- Recurring Schedule monday,
258
- Recurring Schedule tuesday,
259
- Recurring Schedule wednesday,
260
- Recurring Schedule thursday,
261
- Recurring Schedule friday,
262
- Recurring Schedule saturday,
263
- Recurring Schedule sunday;
264
- each Service occurs one time in
265
- Vendor provides Service;
266
- each Subscription occurs at most one time in
267
- Company has DriverTech Subscription;
268
- each Subscription occurs at most one time in
269
- Data Store Service has Subscription;
270
- each Switch occurs at most one time in
271
- Data Store has Legacy Switch;
272
- each combination User Name, Vendor, Data Store Service, Data Store occurs at most one time in
273
- Credential has User Name,
274
- Vendor requires Credential,
275
- Data Store Service requires Credential,
276
- Data Store requires Credential;