activefacts 0.7.3 → 0.8.5
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +19 -0
- data/Manifest.txt +24 -2
- data/Rakefile +25 -3
- data/bin/afgen +1 -1
- data/bin/cql +13 -2
- data/css/offline.css +3 -0
- data/css/orm2.css +24 -0
- data/css/print.css +8 -0
- data/css/style-print.css +357 -0
- data/css/style.css +387 -0
- data/download.html +85 -0
- data/examples/CQL/Address.cql +3 -3
- data/examples/CQL/Blog.cql +13 -14
- data/examples/CQL/CompanyDirectorEmployee.cql +4 -4
- data/examples/CQL/Death.cql +3 -2
- data/examples/CQL/Genealogy.cql +13 -11
- data/examples/CQL/Marriage.cql +2 -2
- data/examples/CQL/Metamodel.cql +136 -93
- data/examples/CQL/MultiInheritance.cql +2 -2
- data/examples/CQL/OilSupply.cql +14 -10
- data/examples/CQL/Orienteering.cql +22 -19
- data/examples/CQL/PersonPlaysGame.cql +3 -2
- data/examples/CQL/SchoolActivities.cql +4 -2
- data/examples/CQL/SimplestUnary.cql +1 -1
- data/examples/CQL/SubtypePI.cql +6 -7
- data/examples/CQL/Warehousing.cql +16 -19
- data/examples/CQL/unit.cql +584 -0
- data/examples/index.html +276 -0
- data/examples/intro.html +497 -0
- data/examples/local.css +20 -0
- data/index.html +96 -0
- data/lib/activefacts/api/concept.rb +48 -46
- data/lib/activefacts/api/constellation.rb +43 -23
- data/lib/activefacts/api/entity.rb +2 -2
- data/lib/activefacts/api/instance.rb +6 -2
- data/lib/activefacts/api/instance_index.rb +5 -0
- data/lib/activefacts/api/value.rb +8 -2
- data/lib/activefacts/api/vocabulary.rb +15 -10
- data/lib/activefacts/cql/CQLParser.treetop +109 -88
- data/lib/activefacts/cql/Concepts.treetop +32 -10
- data/lib/activefacts/cql/Context.treetop +34 -0
- data/lib/activefacts/cql/Expressions.treetop +9 -9
- data/lib/activefacts/cql/FactTypes.treetop +30 -31
- data/lib/activefacts/cql/Language/English.treetop +50 -0
- data/lib/activefacts/cql/LexicalRules.treetop +2 -1
- data/lib/activefacts/cql/Terms.treetop +117 -0
- data/lib/activefacts/cql/ValueTypes.treetop +152 -0
- data/lib/activefacts/cql/compiler.rb +1718 -0
- data/lib/activefacts/cql/parser.rb +124 -57
- data/lib/activefacts/generate/absorption.rb +1 -1
- data/lib/activefacts/generate/cql.rb +111 -100
- data/lib/activefacts/generate/cql/html.rb +5 -5
- data/lib/activefacts/generate/oo.rb +3 -3
- data/lib/activefacts/generate/ordered.rb +51 -19
- data/lib/activefacts/generate/ruby.rb +10 -8
- data/lib/activefacts/generate/sql/mysql.rb +14 -10
- data/lib/activefacts/generate/sql/server.rb +29 -24
- data/lib/activefacts/input/cql.rb +9 -1264
- data/lib/activefacts/input/orm.rb +213 -200
- data/lib/activefacts/persistence/columns.rb +11 -10
- data/lib/activefacts/persistence/index.rb +15 -18
- data/lib/activefacts/persistence/reference.rb +17 -17
- data/lib/activefacts/persistence/tables.rb +50 -51
- data/lib/activefacts/version.rb +1 -1
- data/lib/activefacts/vocabulary/extensions.rb +79 -8
- data/lib/activefacts/vocabulary/metamodel.rb +183 -114
- data/spec/absorption_ruby_spec.rb +99 -0
- data/spec/absorption_spec.rb +3 -4
- data/spec/api/constellation.rb +1 -1
- data/spec/api/entity_type.rb +3 -1
- data/spec/api/instance.rb +4 -2
- data/spec/api/roles.rb +8 -6
- data/spec/api_spec.rb +1 -2
- data/spec/cql/context_spec.rb +71 -0
- data/spec/cql/samples_spec.rb +154 -0
- data/spec/cql/unit_spec.rb +375 -0
- data/spec/cql_cql_spec.rb +31 -21
- data/spec/cql_mysql_spec.rb +70 -0
- data/spec/cql_parse_spec.rb +15 -9
- data/spec/cql_ruby_spec.rb +27 -13
- data/spec/cql_sql_spec.rb +42 -16
- data/spec/cql_symbol_tables_spec.rb +2 -3
- data/spec/cqldump_spec.rb +7 -7
- data/spec/helpers/file_matcher.rb +39 -0
- data/spec/norma_cql_spec.rb +20 -12
- data/spec/norma_ruby_spec.rb +6 -3
- data/spec/norma_sql_spec.rb +6 -3
- data/spec/norma_tables_spec.rb +6 -4
- data/spec/spec_helper.rb +27 -8
- data/status.html +69 -0
- data/why.html +60 -0
- metadata +34 -11
- data/lib/activefacts/cql/DataTypes.treetop +0 -81
- data/spec/cql_unit_spec.rb +0 -330
@@ -7,14 +7,36 @@ module ActiveFacts
|
|
7
7
|
value_type :length => 64
|
8
8
|
end
|
9
9
|
|
10
|
+
class Assimilation < String
|
11
|
+
value_type
|
12
|
+
restrict 'partitioned', 'separate'
|
13
|
+
end
|
14
|
+
|
10
15
|
class ConstraintId < AutoCounter
|
11
16
|
value_type
|
12
17
|
end
|
13
18
|
|
19
|
+
class ContextNoteId < AutoCounter
|
20
|
+
value_type
|
21
|
+
end
|
22
|
+
|
23
|
+
class ContextNoteKind < String
|
24
|
+
value_type
|
25
|
+
restrict 'as_opposed_to', 'because', 'so_that', 'to_avoid'
|
26
|
+
end
|
27
|
+
|
28
|
+
class Date < ::Date
|
29
|
+
value_type
|
30
|
+
end
|
31
|
+
|
14
32
|
class Denominator < UnsignedInteger
|
15
33
|
value_type :length => 32
|
16
34
|
end
|
17
35
|
|
36
|
+
class Discussion < String
|
37
|
+
value_type
|
38
|
+
end
|
39
|
+
|
18
40
|
class Enforcement < String
|
19
41
|
value_type :length => 16
|
20
42
|
end
|
@@ -43,6 +65,10 @@ module ActiveFacts
|
|
43
65
|
value_type :length => 32
|
44
66
|
end
|
45
67
|
|
68
|
+
class Literal < String
|
69
|
+
value_type
|
70
|
+
end
|
71
|
+
|
46
72
|
class Name < String
|
47
73
|
value_type :length => 64
|
48
74
|
end
|
@@ -51,17 +77,21 @@ module ActiveFacts
|
|
51
77
|
value_type
|
52
78
|
end
|
53
79
|
|
80
|
+
class Offset < Decimal
|
81
|
+
value_type
|
82
|
+
end
|
83
|
+
|
54
84
|
class Ordinal < UnsignedSmallInteger
|
55
85
|
value_type :length => 32
|
56
86
|
end
|
57
87
|
|
58
|
-
class
|
88
|
+
class PersonName < String
|
59
89
|
value_type
|
60
|
-
# REVISIT: Pronoun has restricted values
|
61
90
|
end
|
62
91
|
|
63
|
-
class
|
64
|
-
value_type :length =>
|
92
|
+
class Pronoun < String
|
93
|
+
value_type :length => 20
|
94
|
+
restrict 'feminine', 'masculine', 'neuter', 'personal'
|
65
95
|
end
|
66
96
|
|
67
97
|
class RingType < String
|
@@ -76,172 +106,215 @@ module ActiveFacts
|
|
76
106
|
value_type :length => 32
|
77
107
|
end
|
78
108
|
|
79
|
-
class
|
80
|
-
value_type
|
81
|
-
end
|
82
|
-
|
83
|
-
class Value < String
|
109
|
+
class Text < String
|
84
110
|
value_type :length => 256
|
85
111
|
end
|
86
112
|
|
87
|
-
class
|
113
|
+
class UnitId < AutoCounter
|
88
114
|
value_type
|
89
115
|
end
|
90
116
|
|
91
|
-
class
|
92
|
-
|
93
|
-
maybe :is_inclusive
|
94
|
-
has_one :value # See Value.all_bound
|
117
|
+
class ValueRestrictionId < AutoCounter
|
118
|
+
value_type
|
95
119
|
end
|
96
120
|
|
97
121
|
class Coefficient
|
98
122
|
identified_by :numerator, :denominator, :is_precise
|
99
|
-
has_one :denominator
|
123
|
+
has_one :denominator, :mandatory => true # See Denominator.all_coefficient
|
100
124
|
maybe :is_precise
|
101
|
-
has_one :numerator
|
125
|
+
has_one :numerator, :mandatory => true # See Numerator.all_coefficient
|
102
126
|
end
|
103
127
|
|
104
128
|
class Constraint
|
105
129
|
identified_by :constraint_id
|
106
|
-
one_to_one :constraint_id
|
130
|
+
one_to_one :constraint_id, :mandatory => true # See ConstraintId.constraint
|
107
131
|
has_one :enforcement # See Enforcement.all_constraint
|
108
132
|
has_one :name # See Name.all_constraint
|
109
133
|
has_one :vocabulary # See Vocabulary.all_constraint
|
110
134
|
end
|
111
135
|
|
136
|
+
class ContextNote
|
137
|
+
identified_by :context_note_id
|
138
|
+
has_one :concept # See Concept.all_context_note
|
139
|
+
has_one :constraint # See Constraint.all_context_note
|
140
|
+
one_to_one :context_note_id, :mandatory => true # See ContextNoteId.context_note
|
141
|
+
has_one :context_note_kind, :mandatory => true # See ContextNoteKind.all_context_note
|
142
|
+
has_one :discussion, :mandatory => true # See Discussion.all_context_note
|
143
|
+
has_one :fact_type # See FactType.all_context_note
|
144
|
+
end
|
145
|
+
|
112
146
|
class Fact
|
113
147
|
identified_by :fact_id
|
114
|
-
one_to_one :fact_id
|
115
|
-
has_one :fact_type
|
116
|
-
has_one :population
|
148
|
+
one_to_one :fact_id, :mandatory => true # See FactId.fact
|
149
|
+
has_one :fact_type, :mandatory => true # See FactType.all_fact
|
150
|
+
has_one :population, :mandatory => true # See Population.all_fact
|
117
151
|
end
|
118
152
|
|
119
153
|
class FactType
|
120
154
|
identified_by :fact_type_id
|
121
|
-
one_to_one :fact_type_id
|
155
|
+
one_to_one :fact_type_id, :mandatory => true # See FactTypeId.fact_type
|
122
156
|
end
|
123
157
|
|
124
158
|
class Instance
|
125
159
|
identified_by :instance_id
|
126
|
-
has_one :concept
|
127
|
-
one_to_one :
|
128
|
-
|
160
|
+
has_one :concept, :mandatory => true # See Concept.all_instance
|
161
|
+
one_to_one :fact # See Fact.instance
|
162
|
+
one_to_one :instance_id, :mandatory => true # See InstanceId.instance
|
163
|
+
has_one :population, :mandatory => true # See Population.all_instance
|
129
164
|
has_one :value # See Value.all_instance
|
130
165
|
end
|
131
166
|
|
167
|
+
class Person
|
168
|
+
identified_by :person_name
|
169
|
+
one_to_one :person_name, :mandatory => true # See PersonName.person
|
170
|
+
end
|
171
|
+
|
132
172
|
class PresenceConstraint < Constraint
|
133
173
|
maybe :is_mandatory
|
134
174
|
maybe :is_preferred_identifier
|
135
|
-
has_one :max_frequency, Frequency
|
136
|
-
has_one :min_frequency, Frequency
|
137
|
-
has_one :role_sequence
|
175
|
+
has_one :max_frequency, :class => Frequency # See Frequency.all_presence_constraint_as_max_frequency
|
176
|
+
has_one :min_frequency, :class => Frequency # See Frequency.all_presence_constraint_as_min_frequency
|
177
|
+
has_one :role_sequence, :mandatory => true # See RoleSequence.all_presence_constraint
|
138
178
|
end
|
139
179
|
|
140
180
|
class Reading
|
141
181
|
identified_by :fact_type, :ordinal
|
142
|
-
has_one :fact_type
|
143
|
-
has_one :ordinal
|
144
|
-
has_one :
|
145
|
-
has_one :
|
182
|
+
has_one :fact_type, :mandatory => true # See FactType.all_reading
|
183
|
+
has_one :ordinal, :mandatory => true # See Ordinal.all_reading
|
184
|
+
has_one :role_sequence, :mandatory => true # See RoleSequence.all_reading
|
185
|
+
has_one :text, :mandatory => true # See Text.all_reading
|
146
186
|
end
|
147
187
|
|
148
188
|
class RingConstraint < Constraint
|
149
|
-
has_one :other_role, "Role"
|
150
|
-
has_one :ring_type
|
189
|
+
has_one :other_role, :class => "Role" # See Role.all_ring_constraint_as_other_role
|
190
|
+
has_one :ring_type, :mandatory => true # See RingType.all_ring_constraint
|
151
191
|
has_one :role # See Role.all_ring_constraint
|
152
192
|
end
|
153
193
|
|
194
|
+
class Role
|
195
|
+
identified_by :fact_type, :ordinal
|
196
|
+
has_one :fact_type, :mandatory => true # See FactType.all_role
|
197
|
+
has_one :ordinal, :mandatory => true # See Ordinal.all_role
|
198
|
+
has_one :concept, :mandatory => true # See Concept.all_role
|
199
|
+
has_one :role_name, :class => Name # See Name.all_role_as_role_name
|
200
|
+
has_one :role_value_restriction, :class => "ValueRestriction" # See ValueRestriction.all_role_as_role_value_restriction
|
201
|
+
end
|
202
|
+
|
154
203
|
class RoleSequence
|
155
204
|
identified_by :role_sequence_id
|
156
|
-
one_to_one :role_sequence_id
|
205
|
+
one_to_one :role_sequence_id, :mandatory => true # See RoleSequenceId.role_sequence
|
157
206
|
end
|
158
207
|
|
159
208
|
class RoleValue
|
160
209
|
identified_by :instance, :fact
|
161
|
-
has_one :fact
|
162
|
-
has_one :instance
|
163
|
-
has_one :population
|
164
|
-
has_one :role
|
210
|
+
has_one :fact, :mandatory => true # See Fact.all_role_value
|
211
|
+
has_one :instance, :mandatory => true # See Instance.all_role_value
|
212
|
+
has_one :population, :mandatory => true # See Population.all_role_value
|
213
|
+
has_one :role, :mandatory => true # See Role.all_role_value
|
165
214
|
end
|
166
215
|
|
167
216
|
class SetConstraint < Constraint
|
168
217
|
end
|
169
218
|
|
170
219
|
class SubsetConstraint < SetConstraint
|
171
|
-
has_one :subset_role_sequence, RoleSequence # See RoleSequence.all_subset_constraint_as_subset_role_sequence
|
172
|
-
has_one :superset_role_sequence, RoleSequence # See RoleSequence.all_subset_constraint_as_superset_role_sequence
|
220
|
+
has_one :subset_role_sequence, :class => RoleSequence, :mandatory => true # See RoleSequence.all_subset_constraint_as_subset_role_sequence
|
221
|
+
has_one :superset_role_sequence, :class => RoleSequence, :mandatory => true # See RoleSequence.all_subset_constraint_as_superset_role_sequence
|
173
222
|
end
|
174
223
|
|
175
224
|
class Unit
|
176
225
|
identified_by :unit_id
|
177
226
|
has_one :coefficient # See Coefficient.all_unit
|
227
|
+
maybe :is_ephemeral
|
178
228
|
maybe :is_fundamental
|
179
|
-
has_one :name
|
180
|
-
|
229
|
+
has_one :name, :mandatory => true # See Name.all_unit
|
230
|
+
has_one :offset # See Offset.all_unit
|
231
|
+
one_to_one :unit_id, :mandatory => true # See UnitId.unit
|
232
|
+
has_one :vocabulary, :mandatory => true # See Vocabulary.all_unit
|
181
233
|
end
|
182
234
|
|
183
|
-
class
|
184
|
-
identified_by :
|
185
|
-
|
186
|
-
has_one :
|
187
|
-
has_one :
|
188
|
-
end
|
189
|
-
|
190
|
-
class ValueRange
|
191
|
-
identified_by :minimum_bound, :maximum_bound
|
192
|
-
has_one :maximum_bound, Bound # See Bound.all_value_range_as_maximum_bound
|
193
|
-
has_one :minimum_bound, Bound # See Bound.all_value_range_as_minimum_bound
|
235
|
+
class Value
|
236
|
+
identified_by :literal, :is_a_string, :unit
|
237
|
+
maybe :is_a_string
|
238
|
+
has_one :literal, :mandatory => true # See Literal.all_value
|
239
|
+
has_one :unit # See Unit.all_value
|
194
240
|
end
|
195
241
|
|
196
242
|
class ValueRestriction
|
197
243
|
identified_by :value_restriction_id
|
198
|
-
one_to_one :value_restriction_id
|
199
|
-
end
|
200
|
-
|
201
|
-
class AllowedRange
|
202
|
-
identified_by :value_restriction, :value_range
|
203
|
-
has_one :value_range # See ValueRange.all_allowed_range
|
204
|
-
has_one :value_restriction # See ValueRestriction.all_allowed_range
|
244
|
+
one_to_one :value_restriction_id, :mandatory => true # See ValueRestrictionId.value_restriction
|
205
245
|
end
|
206
246
|
|
207
247
|
class Vocabulary
|
208
248
|
identified_by :name
|
209
|
-
one_to_one :name
|
249
|
+
one_to_one :name, :mandatory => true # See Name.vocabulary
|
210
250
|
end
|
211
251
|
|
212
|
-
class
|
213
|
-
identified_by :
|
214
|
-
|
215
|
-
has_one :
|
252
|
+
class Agreement
|
253
|
+
identified_by :context_note
|
254
|
+
one_to_one :context_note, :mandatory => true # See ContextNote.agreement
|
255
|
+
has_one :date # See Date.all_agreement
|
216
256
|
end
|
217
257
|
|
218
|
-
class
|
258
|
+
class Bound
|
259
|
+
identified_by :value, :is_inclusive
|
260
|
+
maybe :is_inclusive
|
261
|
+
has_one :value, :mandatory => true # See Value.all_bound
|
262
|
+
end
|
263
|
+
|
264
|
+
class Concept
|
219
265
|
identified_by :vocabulary, :name
|
220
|
-
|
221
|
-
has_one :
|
266
|
+
maybe :is_independent
|
267
|
+
has_one :name, :mandatory => true # See Name.all_concept
|
268
|
+
has_one :pronoun # See Pronoun.all_concept
|
269
|
+
has_one :vocabulary, :mandatory => true # See Vocabulary.all_concept
|
270
|
+
end
|
271
|
+
|
272
|
+
class ContextAccordingTo
|
273
|
+
identified_by :context_note, :person
|
274
|
+
has_one :context_note, :mandatory => true # See ContextNote.all_context_according_to
|
275
|
+
has_one :person, :mandatory => true # See Person.all_context_according_to
|
276
|
+
end
|
277
|
+
|
278
|
+
class ContextAgreedBy
|
279
|
+
identified_by :agreement, :person
|
280
|
+
has_one :agreement, :mandatory => true # See Agreement.all_context_agreed_by
|
281
|
+
has_one :person, :mandatory => true # See Person.all_context_agreed_by
|
282
|
+
end
|
283
|
+
|
284
|
+
class Derivation
|
285
|
+
identified_by :derived_unit, :base_unit
|
286
|
+
has_one :base_unit, :class => Unit, :mandatory => true # See Unit.all_derivation_as_base_unit
|
287
|
+
has_one :derived_unit, :class => Unit, :mandatory => true # See Unit.all_derivation_as_derived_unit
|
288
|
+
has_one :exponent # See Exponent.all_derivation
|
222
289
|
end
|
223
290
|
|
224
|
-
class
|
225
|
-
|
226
|
-
has_one :import # See Import.all_correspondence
|
227
|
-
has_one :imported_feature, Feature # See Feature.all_correspondence_as_imported_feature
|
228
|
-
has_one :local_feature, Feature # See Feature.all_correspondence_as_local_feature
|
291
|
+
class EntityType < Concept
|
292
|
+
one_to_one :fact_type # See FactType.entity_type
|
229
293
|
end
|
230
294
|
|
231
295
|
class Population
|
232
296
|
identified_by :vocabulary, :name
|
233
|
-
has_one :name
|
297
|
+
has_one :name, :mandatory => true # See Name.all_population
|
234
298
|
has_one :vocabulary # See Vocabulary.all_population
|
235
299
|
end
|
236
300
|
|
301
|
+
class RoleRef
|
302
|
+
identified_by :role_sequence, :ordinal
|
303
|
+
has_one :ordinal, :mandatory => true # See Ordinal.all_role_ref
|
304
|
+
has_one :role, :mandatory => true # See Role.all_role_ref
|
305
|
+
has_one :role_sequence, :mandatory => true # See RoleSequence.all_role_ref
|
306
|
+
has_one :leading_adjective, :class => Adjective # See Adjective.all_role_ref_as_leading_adjective
|
307
|
+
has_one :trailing_adjective, :class => Adjective # See Adjective.all_role_ref_as_trailing_adjective
|
308
|
+
end
|
309
|
+
|
237
310
|
class SetComparisonConstraint < SetConstraint
|
238
311
|
end
|
239
312
|
|
240
313
|
class SetComparisonRoles
|
241
314
|
identified_by :set_comparison_constraint, :ordinal
|
242
|
-
has_one :ordinal
|
243
|
-
has_one :role_sequence
|
244
|
-
has_one :set_comparison_constraint
|
315
|
+
has_one :ordinal, :mandatory => true # See Ordinal.all_set_comparison_roles
|
316
|
+
has_one :role_sequence, :mandatory => true # See RoleSequence.all_set_comparison_roles
|
317
|
+
has_one :set_comparison_constraint, :mandatory => true # See SetComparisonConstraint.all_set_comparison_roles
|
245
318
|
end
|
246
319
|
|
247
320
|
class SetEqualityConstraint < SetComparisonConstraint
|
@@ -251,58 +324,54 @@ module ActiveFacts
|
|
251
324
|
maybe :is_mandatory
|
252
325
|
end
|
253
326
|
|
254
|
-
class
|
327
|
+
class TypeInheritance < FactType
|
328
|
+
identified_by :subtype, :supertype
|
329
|
+
has_one :subtype, :class => EntityType, :mandatory => true # See EntityType.all_type_inheritance_as_subtype
|
330
|
+
has_one :supertype, :class => EntityType, :mandatory => true # See EntityType.all_type_inheritance_as_supertype
|
331
|
+
has_one :assimilation # See Assimilation.all_type_inheritance
|
332
|
+
maybe :provides_identification
|
255
333
|
end
|
256
334
|
|
257
|
-
class
|
258
|
-
|
259
|
-
has_one :
|
335
|
+
class ValueRange
|
336
|
+
identified_by :minimum_bound, :maximum_bound
|
337
|
+
has_one :maximum_bound, :class => Bound # See Bound.all_value_range_as_maximum_bound
|
338
|
+
has_one :minimum_bound, :class => Bound # See Bound.all_value_range_as_minimum_bound
|
260
339
|
end
|
261
340
|
|
262
|
-
class
|
263
|
-
|
264
|
-
has_one :
|
265
|
-
has_one :
|
266
|
-
has_one :
|
267
|
-
has_one :
|
268
|
-
has_one :role_value_restriction, ValueRestriction # See ValueRestriction.all_role_as_role_value_restriction
|
341
|
+
class ValueType < Concept
|
342
|
+
has_one :length # See Length.all_value_type
|
343
|
+
has_one :scale # See Scale.all_value_type
|
344
|
+
has_one :supertype, :class => ValueType # See ValueType.all_value_type_as_supertype
|
345
|
+
has_one :unit # See Unit.all_value_type
|
346
|
+
has_one :value_restriction # See ValueRestriction.all_value_type
|
269
347
|
end
|
270
348
|
|
271
|
-
class
|
272
|
-
identified_by :
|
273
|
-
has_one :
|
274
|
-
has_one :
|
275
|
-
has_one :role_sequence # See RoleSequence.all_role_ref
|
276
|
-
has_one :leading_adjective, Adjective # See Adjective.all_role_ref_as_leading_adjective
|
277
|
-
has_one :trailing_adjective, Adjective # See Adjective.all_role_ref_as_trailing_adjective
|
349
|
+
class AllowedRange
|
350
|
+
identified_by :value_restriction, :value_range
|
351
|
+
has_one :value_range, :mandatory => true # See ValueRange.all_allowed_range
|
352
|
+
has_one :value_restriction, :mandatory => true # See ValueRestriction.all_allowed_range
|
278
353
|
end
|
279
354
|
|
280
355
|
class Join
|
281
356
|
identified_by :role_ref, :join_step
|
282
|
-
has_one :join_step, Ordinal
|
283
|
-
has_one :role_ref
|
357
|
+
has_one :join_step, :class => Ordinal, :mandatory => true # See Ordinal.all_join_as_join_step
|
358
|
+
has_one :role_ref, :mandatory => true # See RoleRef.all_join
|
284
359
|
has_one :concept # See Concept.all_join
|
285
|
-
has_one :input_role, Role
|
286
|
-
has_one :output_role, Role
|
360
|
+
has_one :input_role, :class => Role # See Role.all_join_as_input_role
|
361
|
+
has_one :output_role, :class => Role # See Role.all_join_as_output_role
|
287
362
|
end
|
288
363
|
|
289
|
-
class
|
290
|
-
|
364
|
+
class Parameter
|
365
|
+
identified_by :name, :value_type
|
366
|
+
has_one :name, :mandatory => true # See Name.all_parameter
|
367
|
+
has_one :value_type, :mandatory => true # See ValueType.all_parameter
|
291
368
|
end
|
292
369
|
|
293
|
-
class
|
294
|
-
identified_by :
|
295
|
-
has_one :
|
296
|
-
has_one :
|
297
|
-
|
298
|
-
end
|
299
|
-
|
300
|
-
class ValueType < Concept
|
301
|
-
has_one :length # See Length.all_value_type
|
302
|
-
has_one :scale # See Scale.all_value_type
|
303
|
-
has_one :supertype, ValueType # See ValueType.all_value_type_as_supertype
|
304
|
-
has_one :unit # See Unit.all_value_type
|
305
|
-
has_one :value_restriction # See ValueRestriction.all_value_type
|
370
|
+
class ParamValue
|
371
|
+
identified_by :value, :parameter
|
372
|
+
has_one :parameter, :mandatory => true # See Parameter.all_param_value
|
373
|
+
has_one :value, :mandatory => true # See Value.all_param_value
|
374
|
+
has_one :value_type, :mandatory => true # See ValueType.all_param_value
|
306
375
|
end
|
307
376
|
|
308
377
|
end
|