diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-01-16 01:41:23 -0500 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-01-16 01:41:23 -0500 |
commit | b685589e596bdc27fd9cbbbdde347a5d6f1439e0 (patch) | |
tree | ff0e8f49b6f107ebc5937b58c1e5e0154c5e37d1 /Tests | |
parent | Initial workspace setup (diff) | |
download | VIATRA-Generator-b685589e596bdc27fd9cbbbdde347a5d6f1439e0.tar.gz VIATRA-Generator-b685589e596bdc27fd9cbbbdde347a5d6f1439e0.tar.zst VIATRA-Generator-b685589e596bdc27fd9cbbbdde347a5d6f1439e0.zip |
FAM MM transformation works
Diffstat (limited to 'Tests')
19 files changed, 2519 insertions, 185 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/medicalSystem.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/medicalSystem.logicproblem new file mode 100644 index 00000000..6c5f1457 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/medicalSystem.logicproblem | |||
@@ -0,0 +1,998 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation"> | ||
3 | <types xsi:type="language_1:TypeDeclaration" name="Patient class"/> | ||
4 | <types xsi:type="language_1:TypeDeclaration" name="HealthSystem class" subtypes="//@types.14 //@types.15" isAbstract="true"/> | ||
5 | <types xsi:type="language_1:TypeDeclaration" name="Examination class"/> | ||
6 | <types xsi:type="language_1:TypeDeclaration" name="Symptom class"/> | ||
7 | <types xsi:type="language_1:TypeDeclaration" name="ExaminationResult class"/> | ||
8 | <types xsi:type="language_1:TypeDeclaration" name="MedicalRecord class"/> | ||
9 | <types xsi:type="language_1:TypeDeclaration" name="HealthProblem class" subtypes="//@types.11 //@types.12 //@types.13" isAbstract="true"/> | ||
10 | <types xsi:type="language_1:TypeDeclaration" name="Medicine class"/> | ||
11 | <types xsi:type="language_1:TypeDeclaration" name="Treatment class" subtypes="//@types.9 //@types.10" isAbstract="true"/> | ||
12 | <types xsi:type="language_1:TypeDeclaration" name="Medication class" supertypes="//@types.8"/> | ||
13 | <types xsi:type="language_1:TypeDeclaration" name="Immunization class" supertypes="//@types.8"/> | ||
14 | <types xsi:type="language_1:TypeDeclaration" name="Allergy class" supertypes="//@types.6"/> | ||
15 | <types xsi:type="language_1:TypeDeclaration" name="Disease class" supertypes="//@types.6"/> | ||
16 | <types xsi:type="language_1:TypeDeclaration" name="Injury class" supertypes="//@types.6"/> | ||
17 | <types xsi:type="language_1:TypeDefinition" name="HealthSystem class DefinedPart" supertypes="//@types.1" elements="//@elements.0"/> | ||
18 | <types xsi:type="language_1:TypeDeclaration" name="HealthSystem class UndefinedPart" supertypes="//@types.1"/> | ||
19 | <assertions name="upperMultiplicity healthsystem Patient" annotations="//@annotations.0"> | ||
20 | <value xsi:type="language_1:Forall"> | ||
21 | <quantifiedVariables name="src"> | ||
22 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
23 | </quantifiedVariables> | ||
24 | <quantifiedVariables name="trg 1"> | ||
25 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
26 | </quantifiedVariables> | ||
27 | <quantifiedVariables name="trg 2"> | ||
28 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
29 | </quantifiedVariables> | ||
30 | <expression xsi:type="language_1:Impl"> | ||
31 | <leftOperand xsi:type="language_1:And"> | ||
32 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
33 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
34 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/> | ||
35 | </operands> | ||
36 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
37 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
38 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/> | ||
39 | </operands> | ||
40 | </leftOperand> | ||
41 | <rightOperand xsi:type="language_1:Not"> | ||
42 | <operand xsi:type="language_1:Distinct"> | ||
43 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/> | ||
44 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/> | ||
45 | </operand> | ||
46 | </rightOperand> | ||
47 | </expression> | ||
48 | </value> | ||
49 | </assertions> | ||
50 | <assertions name="upperMultiplicity examination HealthSystem" annotations="//@annotations.1"> | ||
51 | <value xsi:type="language_1:Forall"> | ||
52 | <quantifiedVariables name="src"> | ||
53 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
54 | </quantifiedVariables> | ||
55 | <quantifiedVariables name="trg 1"> | ||
56 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
57 | </quantifiedVariables> | ||
58 | <quantifiedVariables name="trg 2"> | ||
59 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
60 | </quantifiedVariables> | ||
61 | <expression xsi:type="language_1:Impl"> | ||
62 | <leftOperand xsi:type="language_1:And"> | ||
63 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
64 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
65 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
66 | </operands> | ||
67 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
68 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
69 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> | ||
70 | </operands> | ||
71 | </leftOperand> | ||
72 | <rightOperand xsi:type="language_1:Not"> | ||
73 | <operand xsi:type="language_1:Distinct"> | ||
74 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
75 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> | ||
76 | </operand> | ||
77 | </rightOperand> | ||
78 | </expression> | ||
79 | </value> | ||
80 | </assertions> | ||
81 | <assertions name="upperMultiplicity healthsystem Examination" annotations="//@annotations.2"> | ||
82 | <value xsi:type="language_1:Forall"> | ||
83 | <quantifiedVariables name="src"> | ||
84 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
85 | </quantifiedVariables> | ||
86 | <quantifiedVariables name="trg 1"> | ||
87 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
88 | </quantifiedVariables> | ||
89 | <quantifiedVariables name="trg 2"> | ||
90 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
91 | </quantifiedVariables> | ||
92 | <expression xsi:type="language_1:Impl"> | ||
93 | <leftOperand xsi:type="language_1:And"> | ||
94 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
95 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
96 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
97 | </operands> | ||
98 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
99 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
100 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
101 | </operands> | ||
102 | </leftOperand> | ||
103 | <rightOperand xsi:type="language_1:Not"> | ||
104 | <operand xsi:type="language_1:Distinct"> | ||
105 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
106 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
107 | </operand> | ||
108 | </rightOperand> | ||
109 | </expression> | ||
110 | </value> | ||
111 | </assertions> | ||
112 | <assertions name="lowerMultiplicity medicalrecord Symptom" annotations="//@annotations.3"> | ||
113 | <value xsi:type="language_1:Forall"> | ||
114 | <quantifiedVariables name="src"> | ||
115 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
116 | </quantifiedVariables> | ||
117 | <expression xsi:type="language_1:Exists"> | ||
118 | <quantifiedVariables name="trg 1"> | ||
119 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
120 | </quantifiedVariables> | ||
121 | <expression xsi:type="language_1:And"> | ||
122 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
123 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
124 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@expression/@quantifiedVariables.0"/> | ||
125 | </operands> | ||
126 | </expression> | ||
127 | </expression> | ||
128 | </value> | ||
129 | </assertions> | ||
130 | <assertions name="upperMultiplicity medicalrecord Symptom" annotations="//@annotations.4"> | ||
131 | <value xsi:type="language_1:Forall"> | ||
132 | <quantifiedVariables name="src"> | ||
133 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
134 | </quantifiedVariables> | ||
135 | <quantifiedVariables name="trg 1"> | ||
136 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
137 | </quantifiedVariables> | ||
138 | <quantifiedVariables name="trg 2"> | ||
139 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
140 | </quantifiedVariables> | ||
141 | <expression xsi:type="language_1:Impl"> | ||
142 | <leftOperand xsi:type="language_1:And"> | ||
143 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
144 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
145 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> | ||
146 | </operands> | ||
147 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
148 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
149 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> | ||
150 | </operands> | ||
151 | </leftOperand> | ||
152 | <rightOperand xsi:type="language_1:Not"> | ||
153 | <operand xsi:type="language_1:Distinct"> | ||
154 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> | ||
155 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> | ||
156 | </operand> | ||
157 | </rightOperand> | ||
158 | </expression> | ||
159 | </value> | ||
160 | </assertions> | ||
161 | <assertions name="lowerMultiplicity examinationType ExaminationResult" annotations="//@annotations.5"> | ||
162 | <value xsi:type="language_1:Forall"> | ||
163 | <quantifiedVariables name="src"> | ||
164 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
165 | </quantifiedVariables> | ||
166 | <expression xsi:type="language_1:Exists"> | ||
167 | <quantifiedVariables name="trg 1"> | ||
168 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
169 | </quantifiedVariables> | ||
170 | <expression xsi:type="language_1:And"> | ||
171 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
172 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
173 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@expression/@quantifiedVariables.0"/> | ||
174 | </operands> | ||
175 | </expression> | ||
176 | </expression> | ||
177 | </value> | ||
178 | </assertions> | ||
179 | <assertions name="upperMultiplicity examinationType ExaminationResult" annotations="//@annotations.6"> | ||
180 | <value xsi:type="language_1:Forall"> | ||
181 | <quantifiedVariables name="src"> | ||
182 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
183 | </quantifiedVariables> | ||
184 | <quantifiedVariables name="trg 1"> | ||
185 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
186 | </quantifiedVariables> | ||
187 | <quantifiedVariables name="trg 2"> | ||
188 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
189 | </quantifiedVariables> | ||
190 | <expression xsi:type="language_1:Impl"> | ||
191 | <leftOperand xsi:type="language_1:And"> | ||
192 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
193 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
194 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
195 | </operands> | ||
196 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
197 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
198 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> | ||
199 | </operands> | ||
200 | </leftOperand> | ||
201 | <rightOperand xsi:type="language_1:Not"> | ||
202 | <operand xsi:type="language_1:Distinct"> | ||
203 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
204 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> | ||
205 | </operand> | ||
206 | </rightOperand> | ||
207 | </expression> | ||
208 | </value> | ||
209 | </assertions> | ||
210 | <assertions name="lowerMultiplicity medicalrecord ExaminationResult" annotations="//@annotations.7"> | ||
211 | <value xsi:type="language_1:Forall"> | ||
212 | <quantifiedVariables name="src"> | ||
213 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
214 | </quantifiedVariables> | ||
215 | <expression xsi:type="language_1:Exists"> | ||
216 | <quantifiedVariables name="trg 1"> | ||
217 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
218 | </quantifiedVariables> | ||
219 | <expression xsi:type="language_1:And"> | ||
220 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
221 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> | ||
222 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@expression/@quantifiedVariables.0"/> | ||
223 | </operands> | ||
224 | </expression> | ||
225 | </expression> | ||
226 | </value> | ||
227 | </assertions> | ||
228 | <assertions name="upperMultiplicity medicalrecord ExaminationResult" annotations="//@annotations.8"> | ||
229 | <value xsi:type="language_1:Forall"> | ||
230 | <quantifiedVariables name="src"> | ||
231 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
232 | </quantifiedVariables> | ||
233 | <quantifiedVariables name="trg 1"> | ||
234 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
235 | </quantifiedVariables> | ||
236 | <quantifiedVariables name="trg 2"> | ||
237 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
238 | </quantifiedVariables> | ||
239 | <expression xsi:type="language_1:Impl"> | ||
240 | <leftOperand xsi:type="language_1:And"> | ||
241 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
242 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
243 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> | ||
244 | </operands> | ||
245 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
246 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
247 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> | ||
248 | </operands> | ||
249 | </leftOperand> | ||
250 | <rightOperand xsi:type="language_1:Not"> | ||
251 | <operand xsi:type="language_1:Distinct"> | ||
252 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> | ||
253 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> | ||
254 | </operand> | ||
255 | </rightOperand> | ||
256 | </expression> | ||
257 | </value> | ||
258 | </assertions> | ||
259 | <assertions name="lowerMultiplicity patient MedicalRecord" annotations="//@annotations.9"> | ||
260 | <value xsi:type="language_1:Forall"> | ||
261 | <quantifiedVariables name="src"> | ||
262 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
263 | </quantifiedVariables> | ||
264 | <expression xsi:type="language_1:Exists"> | ||
265 | <quantifiedVariables name="trg 1"> | ||
266 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
267 | </quantifiedVariables> | ||
268 | <expression xsi:type="language_1:And"> | ||
269 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
270 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> | ||
271 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@expression/@quantifiedVariables.0"/> | ||
272 | </operands> | ||
273 | </expression> | ||
274 | </expression> | ||
275 | </value> | ||
276 | </assertions> | ||
277 | <assertions name="upperMultiplicity patient MedicalRecord" annotations="//@annotations.10"> | ||
278 | <value xsi:type="language_1:Forall"> | ||
279 | <quantifiedVariables name="src"> | ||
280 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
281 | </quantifiedVariables> | ||
282 | <quantifiedVariables name="trg 1"> | ||
283 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
284 | </quantifiedVariables> | ||
285 | <quantifiedVariables name="trg 2"> | ||
286 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
287 | </quantifiedVariables> | ||
288 | <expression xsi:type="language_1:Impl"> | ||
289 | <leftOperand xsi:type="language_1:And"> | ||
290 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
291 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/> | ||
292 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/> | ||
293 | </operands> | ||
294 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
295 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/> | ||
296 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/> | ||
297 | </operands> | ||
298 | </leftOperand> | ||
299 | <rightOperand xsi:type="language_1:Not"> | ||
300 | <operand xsi:type="language_1:Distinct"> | ||
301 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/> | ||
302 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/> | ||
303 | </operand> | ||
304 | </rightOperand> | ||
305 | </expression> | ||
306 | </value> | ||
307 | </assertions> | ||
308 | <assertions name="lowerMultiplicity record HealthProblem" annotations="//@annotations.11"> | ||
309 | <value xsi:type="language_1:Forall"> | ||
310 | <quantifiedVariables name="src"> | ||
311 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
312 | </quantifiedVariables> | ||
313 | <expression xsi:type="language_1:Exists"> | ||
314 | <quantifiedVariables name="trg 1"> | ||
315 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
316 | </quantifiedVariables> | ||
317 | <expression xsi:type="language_1:And"> | ||
318 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
319 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/> | ||
320 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@expression/@quantifiedVariables.0"/> | ||
321 | </operands> | ||
322 | </expression> | ||
323 | </expression> | ||
324 | </value> | ||
325 | </assertions> | ||
326 | <assertions name="upperMultiplicity record HealthProblem" annotations="//@annotations.12"> | ||
327 | <value xsi:type="language_1:Forall"> | ||
328 | <quantifiedVariables name="src"> | ||
329 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
330 | </quantifiedVariables> | ||
331 | <quantifiedVariables name="trg 1"> | ||
332 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
333 | </quantifiedVariables> | ||
334 | <quantifiedVariables name="trg 2"> | ||
335 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
336 | </quantifiedVariables> | ||
337 | <expression xsi:type="language_1:Impl"> | ||
338 | <leftOperand xsi:type="language_1:And"> | ||
339 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
340 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
341 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/> | ||
342 | </operands> | ||
343 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
344 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
345 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/> | ||
346 | </operands> | ||
347 | </leftOperand> | ||
348 | <rightOperand xsi:type="language_1:Not"> | ||
349 | <operand xsi:type="language_1:Distinct"> | ||
350 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/> | ||
351 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/> | ||
352 | </operand> | ||
353 | </rightOperand> | ||
354 | </expression> | ||
355 | </value> | ||
356 | </assertions> | ||
357 | <assertions name="lowerMultiplicity medicine Treatment" annotations="//@annotations.13"> | ||
358 | <value xsi:type="language_1:Forall"> | ||
359 | <quantifiedVariables name="src"> | ||
360 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
361 | </quantifiedVariables> | ||
362 | <expression xsi:type="language_1:Exists"> | ||
363 | <quantifiedVariables name="trg 1"> | ||
364 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
365 | </quantifiedVariables> | ||
366 | <expression xsi:type="language_1:And"> | ||
367 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> | ||
368 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/> | ||
369 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@expression/@quantifiedVariables.0"/> | ||
370 | </operands> | ||
371 | </expression> | ||
372 | </expression> | ||
373 | </value> | ||
374 | </assertions> | ||
375 | <assertions name="upperMultiplicity medicine Treatment" annotations="//@annotations.14"> | ||
376 | <value xsi:type="language_1:Forall"> | ||
377 | <quantifiedVariables name="src"> | ||
378 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
379 | </quantifiedVariables> | ||
380 | <quantifiedVariables name="trg 1"> | ||
381 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
382 | </quantifiedVariables> | ||
383 | <quantifiedVariables name="trg 2"> | ||
384 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
385 | </quantifiedVariables> | ||
386 | <expression xsi:type="language_1:Impl"> | ||
387 | <leftOperand xsi:type="language_1:And"> | ||
388 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> | ||
389 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
390 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/> | ||
391 | </operands> | ||
392 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> | ||
393 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
394 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/> | ||
395 | </operands> | ||
396 | </leftOperand> | ||
397 | <rightOperand xsi:type="language_1:Not"> | ||
398 | <operand xsi:type="language_1:Distinct"> | ||
399 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/> | ||
400 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/> | ||
401 | </operand> | ||
402 | </rightOperand> | ||
403 | </expression> | ||
404 | </value> | ||
405 | </assertions> | ||
406 | <assertions name="oppositeReference records Patient" annotations="//@annotations.15"> | ||
407 | <value xsi:type="language_1:Forall"> | ||
408 | <quantifiedVariables name="src"> | ||
409 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
410 | </quantifiedVariables> | ||
411 | <quantifiedVariables name="trg"> | ||
412 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
413 | </quantifiedVariables> | ||
414 | <expression xsi:type="language_1:Iff"> | ||
415 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
416 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
417 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
418 | </leftOperand> | ||
419 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
420 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
421 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
422 | </rightOperand> | ||
423 | </expression> | ||
424 | </value> | ||
425 | </assertions> | ||
426 | <assertions name="oppositeReference healthsystem Patient" annotations="//@annotations.16"> | ||
427 | <value xsi:type="language_1:Forall"> | ||
428 | <quantifiedVariables name="src"> | ||
429 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
430 | </quantifiedVariables> | ||
431 | <quantifiedVariables name="trg"> | ||
432 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
433 | </quantifiedVariables> | ||
434 | <expression xsi:type="language_1:Iff"> | ||
435 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
436 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/> | ||
437 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/> | ||
438 | </leftOperand> | ||
439 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
440 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/> | ||
441 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/> | ||
442 | </rightOperand> | ||
443 | </expression> | ||
444 | </value> | ||
445 | </assertions> | ||
446 | <assertions name="oppositeReference examination HealthSystem" annotations="//@annotations.17"> | ||
447 | <value xsi:type="language_1:Forall"> | ||
448 | <quantifiedVariables name="src"> | ||
449 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
450 | </quantifiedVariables> | ||
451 | <quantifiedVariables name="trg"> | ||
452 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
453 | </quantifiedVariables> | ||
454 | <expression xsi:type="language_1:Iff"> | ||
455 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
456 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
457 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/> | ||
458 | </leftOperand> | ||
459 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
460 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/> | ||
461 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
462 | </rightOperand> | ||
463 | </expression> | ||
464 | </value> | ||
465 | </assertions> | ||
466 | <assertions name="oppositeReference examinationResult Examination" annotations="//@annotations.18"> | ||
467 | <value xsi:type="language_1:Forall"> | ||
468 | <quantifiedVariables name="src"> | ||
469 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
470 | </quantifiedVariables> | ||
471 | <quantifiedVariables name="trg"> | ||
472 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
473 | </quantifiedVariables> | ||
474 | <expression xsi:type="language_1:Iff"> | ||
475 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
476 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/> | ||
477 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/> | ||
478 | </leftOperand> | ||
479 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
480 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/> | ||
481 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/> | ||
482 | </rightOperand> | ||
483 | </expression> | ||
484 | </value> | ||
485 | </assertions> | ||
486 | <assertions name="oppositeReference medicalrecord Symptom" annotations="//@annotations.19"> | ||
487 | <value xsi:type="language_1:Forall"> | ||
488 | <quantifiedVariables name="src"> | ||
489 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
490 | </quantifiedVariables> | ||
491 | <quantifiedVariables name="trg"> | ||
492 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
493 | </quantifiedVariables> | ||
494 | <expression xsi:type="language_1:Iff"> | ||
495 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
496 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/> | ||
497 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/> | ||
498 | </leftOperand> | ||
499 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
500 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/> | ||
501 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/> | ||
502 | </rightOperand> | ||
503 | </expression> | ||
504 | </value> | ||
505 | </assertions> | ||
506 | <assertions name="oppositeReference medicalrecord ExaminationResult" annotations="//@annotations.20"> | ||
507 | <value xsi:type="language_1:Forall"> | ||
508 | <quantifiedVariables name="src"> | ||
509 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
510 | </quantifiedVariables> | ||
511 | <quantifiedVariables name="trg"> | ||
512 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
513 | </quantifiedVariables> | ||
514 | <expression xsi:type="language_1:Iff"> | ||
515 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
516 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> | ||
517 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/> | ||
518 | </leftOperand> | ||
519 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
520 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/> | ||
521 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> | ||
522 | </rightOperand> | ||
523 | </expression> | ||
524 | </value> | ||
525 | </assertions> | ||
526 | <assertions name="oppositeReference healthProblems MedicalRecord" annotations="//@annotations.21"> | ||
527 | <value xsi:type="language_1:Forall"> | ||
528 | <quantifiedVariables name="src"> | ||
529 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
530 | </quantifiedVariables> | ||
531 | <quantifiedVariables name="trg"> | ||
532 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
533 | </quantifiedVariables> | ||
534 | <expression xsi:type="language_1:Iff"> | ||
535 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> | ||
536 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> | ||
537 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/> | ||
538 | </leftOperand> | ||
539 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
540 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/> | ||
541 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> | ||
542 | </rightOperand> | ||
543 | </expression> | ||
544 | </value> | ||
545 | </assertions> | ||
546 | <assertions name="upperMultiplicity height Patient" annotations="//@annotations.22"> | ||
547 | <value xsi:type="language_1:Forall"> | ||
548 | <quantifiedVariables name="src"> | ||
549 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
550 | </quantifiedVariables> | ||
551 | <quantifiedVariables name="trg 1"> | ||
552 | <range xsi:type="language_1:IntTypeReference"/> | ||
553 | </quantifiedVariables> | ||
554 | <quantifiedVariables name="trg 2"> | ||
555 | <range xsi:type="language_1:IntTypeReference"/> | ||
556 | </quantifiedVariables> | ||
557 | <expression xsi:type="language_1:Impl"> | ||
558 | <leftOperand xsi:type="language_1:And"> | ||
559 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18"> | ||
560 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/> | ||
561 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.1"/> | ||
562 | </operands> | ||
563 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18"> | ||
564 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/> | ||
565 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.2"/> | ||
566 | </operands> | ||
567 | </leftOperand> | ||
568 | <rightOperand xsi:type="language_1:Not"> | ||
569 | <operand xsi:type="language_1:Distinct"> | ||
570 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.1"/> | ||
571 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.2"/> | ||
572 | </operand> | ||
573 | </rightOperand> | ||
574 | </expression> | ||
575 | </value> | ||
576 | </assertions> | ||
577 | <assertions name="errorpattern ca mcgill dp19 queries treatmentWithoutSymptom" annotations="//@annotations.33"> | ||
578 | <value xsi:type="language_1:Forall"> | ||
579 | <quantifiedVariables name="mr"> | ||
580 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
581 | </quantifiedVariables> | ||
582 | <expression xsi:type="language_1:Not"> | ||
583 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> | ||
584 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/> | ||
585 | </operand> | ||
586 | </expression> | ||
587 | </value> | ||
588 | </assertions> | ||
589 | <assertions name="errorpattern ca mcgill dp19 queries healthProblemsWithoutExaminationResult" annotations="//@annotations.34"> | ||
590 | <value xsi:type="language_1:Forall"> | ||
591 | <quantifiedVariables name="mr"> | ||
592 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
593 | </quantifiedVariables> | ||
594 | <expression xsi:type="language_1:Not"> | ||
595 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24"> | ||
596 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/> | ||
597 | </operand> | ||
598 | </expression> | ||
599 | </value> | ||
600 | </assertions> | ||
601 | <assertions name="errorpattern ca mcgill dp19 queries allergyWithoutSymptom" annotations="//@annotations.35"> | ||
602 | <value xsi:type="language_1:Forall"> | ||
603 | <quantifiedVariables name="mr"> | ||
604 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
605 | </quantifiedVariables> | ||
606 | <expression xsi:type="language_1:Not"> | ||
607 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26"> | ||
608 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/> | ||
609 | </operand> | ||
610 | </expression> | ||
611 | </value> | ||
612 | </assertions> | ||
613 | <assertions name="errorpattern ca mcgill dp19 queries prescribedMedicineNotRecommended" annotations="//@annotations.36"> | ||
614 | <value xsi:type="language_1:Forall"> | ||
615 | <quantifiedVariables name="mr"> | ||
616 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
617 | </quantifiedVariables> | ||
618 | <quantifiedVariables name="med"> | ||
619 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
620 | </quantifiedVariables> | ||
621 | <expression xsi:type="language_1:Not"> | ||
622 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28"> | ||
623 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/> | ||
624 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.1"/> | ||
625 | </operand> | ||
626 | </expression> | ||
627 | </value> | ||
628 | </assertions> | ||
629 | <relations xsi:type="language_1:RelationDeclaration" name="records reference Patient"> | ||
630 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
631 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
632 | </relations> | ||
633 | <relations xsi:type="language_1:RelationDeclaration" name="healthsystem reference Patient"> | ||
634 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
635 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
636 | </relations> | ||
637 | <relations xsi:type="language_1:RelationDeclaration" name="patient reference HealthSystem"> | ||
638 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
639 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
640 | </relations> | ||
641 | <relations xsi:type="language_1:RelationDeclaration" name="examination reference HealthSystem"> | ||
642 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
643 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
644 | </relations> | ||
645 | <relations xsi:type="language_1:RelationDeclaration" name="medicine reference HealthSystem"> | ||
646 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
647 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
648 | </relations> | ||
649 | <relations xsi:type="language_1:RelationDeclaration" name="examinationResult reference Examination"> | ||
650 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
651 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
652 | </relations> | ||
653 | <relations xsi:type="language_1:RelationDeclaration" name="healthsystem reference Examination"> | ||
654 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
655 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
656 | </relations> | ||
657 | <relations xsi:type="language_1:RelationDeclaration" name="medicalrecord reference Symptom"> | ||
658 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
659 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
660 | </relations> | ||
661 | <relations xsi:type="language_1:RelationDeclaration" name="examinationType reference ExaminationResult"> | ||
662 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
663 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
664 | </relations> | ||
665 | <relations xsi:type="language_1:RelationDeclaration" name="medicalrecord reference ExaminationResult"> | ||
666 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
667 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
668 | </relations> | ||
669 | <relations xsi:type="language_1:RelationDeclaration" name="patient reference MedicalRecord"> | ||
670 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
671 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
672 | </relations> | ||
673 | <relations xsi:type="language_1:RelationDeclaration" name="healthProblems reference MedicalRecord"> | ||
674 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
675 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
676 | </relations> | ||
677 | <relations xsi:type="language_1:RelationDeclaration" name="symptom reference MedicalRecord"> | ||
678 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
679 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
680 | </relations> | ||
681 | <relations xsi:type="language_1:RelationDeclaration" name="examinationResults reference MedicalRecord"> | ||
682 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
683 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
684 | </relations> | ||
685 | <relations xsi:type="language_1:RelationDeclaration" name="treatment reference MedicalRecord"> | ||
686 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
687 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
688 | </relations> | ||
689 | <relations xsi:type="language_1:RelationDeclaration" name="record reference HealthProblem"> | ||
690 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
691 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
692 | </relations> | ||
693 | <relations xsi:type="language_1:RelationDeclaration" name="recommended_medicine reference HealthProblem"> | ||
694 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
695 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
696 | </relations> | ||
697 | <relations xsi:type="language_1:RelationDeclaration" name="medicine reference Treatment"> | ||
698 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
699 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
700 | </relations> | ||
701 | <relations xsi:type="language_1:RelationDeclaration" name="height attribute Patient"> | ||
702 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
703 | <parameters xsi:type="language_1:IntTypeReference"/> | ||
704 | </relations> | ||
705 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries treatment" annotations="//@annotations.23"> | ||
706 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
707 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
708 | <variables name="parameter mr"> | ||
709 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
710 | </variables> | ||
711 | <variables name="parameter tr"> | ||
712 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
713 | </variables> | ||
714 | <value xsi:type="language_1:Or"> | ||
715 | <operands xsi:type="language_1:And"> | ||
716 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14"> | ||
717 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/> | ||
718 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/> | ||
719 | </operands> | ||
720 | <operands xsi:type="language_1:InstanceOf"> | ||
721 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/> | ||
722 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
723 | </operands> | ||
724 | </operands> | ||
725 | </value> | ||
726 | </relations> | ||
727 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries examinationresult" annotations="//@annotations.24"> | ||
728 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
729 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
730 | <variables name="parameter mr"> | ||
731 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
732 | </variables> | ||
733 | <variables name="parameter er"> | ||
734 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
735 | </variables> | ||
736 | <value xsi:type="language_1:Or"> | ||
737 | <operands xsi:type="language_1:And"> | ||
738 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
739 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/> | ||
740 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/> | ||
741 | </operands> | ||
742 | </operands> | ||
743 | </value> | ||
744 | </relations> | ||
745 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries symptom" annotations="//@annotations.25"> | ||
746 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
747 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
748 | <variables name="parameter mr"> | ||
749 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
750 | </variables> | ||
751 | <variables name="parameter sy"> | ||
752 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
753 | </variables> | ||
754 | <value xsi:type="language_1:Or"> | ||
755 | <operands xsi:type="language_1:And"> | ||
756 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
757 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/> | ||
758 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/> | ||
759 | </operands> | ||
760 | </operands> | ||
761 | </value> | ||
762 | </relations> | ||
763 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries treatmentWithoutSymptom" annotations="//@annotations.26"> | ||
764 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
765 | <variables name="parameter mr"> | ||
766 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
767 | </variables> | ||
768 | <value xsi:type="language_1:Or"> | ||
769 | <operands xsi:type="language_1:Exists"> | ||
770 | <quantifiedVariables name="variable tr"> | ||
771 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
772 | </quantifiedVariables> | ||
773 | <expression xsi:type="language_1:Forall"> | ||
774 | <quantifiedVariables name="variable 0"> | ||
775 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
776 | </quantifiedVariables> | ||
777 | <expression xsi:type="language_1:And"> | ||
778 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> | ||
779 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> | ||
780 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/> | ||
781 | </operands> | ||
782 | <operands xsi:type="language_1:Not"> | ||
783 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21"> | ||
784 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> | ||
785 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@expression/@quantifiedVariables.0"/> | ||
786 | </operand> | ||
787 | </operands> | ||
788 | </expression> | ||
789 | </expression> | ||
790 | </operands> | ||
791 | </value> | ||
792 | </relations> | ||
793 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries healthProblems" annotations="//@annotations.27"> | ||
794 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
795 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
796 | <variables name="parameter mr"> | ||
797 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
798 | </variables> | ||
799 | <variables name="parameter hp"> | ||
800 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
801 | </variables> | ||
802 | <value xsi:type="language_1:Or"> | ||
803 | <operands xsi:type="language_1:And"> | ||
804 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> | ||
805 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/> | ||
806 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.1"/> | ||
807 | </operands> | ||
808 | </operands> | ||
809 | </value> | ||
810 | </relations> | ||
811 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries healthProblemsWithoutExaminationResult" annotations="//@annotations.28"> | ||
812 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
813 | <variables name="parameter mr"> | ||
814 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
815 | </variables> | ||
816 | <value xsi:type="language_1:Or"> | ||
817 | <operands xsi:type="language_1:Exists"> | ||
818 | <quantifiedVariables name="variable hp"> | ||
819 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
820 | </quantifiedVariables> | ||
821 | <expression xsi:type="language_1:Forall"> | ||
822 | <quantifiedVariables name="variable 0"> | ||
823 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
824 | </quantifiedVariables> | ||
825 | <expression xsi:type="language_1:And"> | ||
826 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23"> | ||
827 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/> | ||
828 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@value/@operands.0/@quantifiedVariables.0"/> | ||
829 | </operands> | ||
830 | <operands xsi:type="language_1:Not"> | ||
831 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20"> | ||
832 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/> | ||
833 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@value/@operands.0/@expression/@quantifiedVariables.0"/> | ||
834 | </operand> | ||
835 | </operands> | ||
836 | </expression> | ||
837 | </expression> | ||
838 | </operands> | ||
839 | </value> | ||
840 | </relations> | ||
841 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries allergy" annotations="//@annotations.29"> | ||
842 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
843 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
844 | <variables name="parameter mr"> | ||
845 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
846 | </variables> | ||
847 | <variables name="parameter al"> | ||
848 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
849 | </variables> | ||
850 | <value xsi:type="language_1:Or"> | ||
851 | <operands xsi:type="language_1:And"> | ||
852 | <operands xsi:type="language_1:InstanceOf"> | ||
853 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.1"/> | ||
854 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
855 | </operands> | ||
856 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23"> | ||
857 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/> | ||
858 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.1"/> | ||
859 | </operands> | ||
860 | </operands> | ||
861 | </value> | ||
862 | </relations> | ||
863 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries allergyWithoutSymptom" annotations="//@annotations.30"> | ||
864 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
865 | <variables name="parameter mr"> | ||
866 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
867 | </variables> | ||
868 | <value xsi:type="language_1:Or"> | ||
869 | <operands xsi:type="language_1:Exists"> | ||
870 | <quantifiedVariables name="variable al"> | ||
871 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
872 | </quantifiedVariables> | ||
873 | <expression xsi:type="language_1:Forall"> | ||
874 | <quantifiedVariables name="variable 0"> | ||
875 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
876 | </quantifiedVariables> | ||
877 | <expression xsi:type="language_1:And"> | ||
878 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25"> | ||
879 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/> | ||
880 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/> | ||
881 | </operands> | ||
882 | <operands xsi:type="language_1:Not"> | ||
883 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21"> | ||
884 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/> | ||
885 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@expression/@quantifiedVariables.0"/> | ||
886 | </operand> | ||
887 | </operands> | ||
888 | </expression> | ||
889 | </expression> | ||
890 | </operands> | ||
891 | </value> | ||
892 | </relations> | ||
893 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries recommended" annotations="//@annotations.31"> | ||
894 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
895 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
896 | <variables name="parameter hp"> | ||
897 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
898 | </variables> | ||
899 | <variables name="parameter med"> | ||
900 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
901 | </variables> | ||
902 | <value xsi:type="language_1:Or"> | ||
903 | <operands xsi:type="language_1:And"> | ||
904 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16"> | ||
905 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/> | ||
906 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/> | ||
907 | </operands> | ||
908 | <operands xsi:type="language_1:InstanceOf"> | ||
909 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/> | ||
910 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
911 | </operands> | ||
912 | </operands> | ||
913 | </value> | ||
914 | </relations> | ||
915 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries prescribedMedicineNotRecommended" annotations="//@annotations.32"> | ||
916 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
917 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
918 | <variables name="parameter mr"> | ||
919 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
920 | </variables> | ||
921 | <variables name="parameter med"> | ||
922 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
923 | </variables> | ||
924 | <value xsi:type="language_1:Or"> | ||
925 | <operands xsi:type="language_1:Exists"> | ||
926 | <quantifiedVariables name="variable hp"> | ||
927 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
928 | </quantifiedVariables> | ||
929 | <quantifiedVariables name="variable tr"> | ||
930 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
931 | </quantifiedVariables> | ||
932 | <expression xsi:type="language_1:And"> | ||
933 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23"> | ||
934 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.0"/> | ||
935 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.0"/> | ||
936 | </operands> | ||
937 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> | ||
938 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.0"/> | ||
939 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.1"/> | ||
940 | </operands> | ||
941 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> | ||
942 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.1"/> | ||
943 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.1"/> | ||
944 | </operands> | ||
945 | <operands xsi:type="language_1:InstanceOf"> | ||
946 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.1"/> | ||
947 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
948 | </operands> | ||
949 | <operands xsi:type="language_1:Not"> | ||
950 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27"> | ||
951 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.0"/> | ||
952 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.1"/> | ||
953 | </operand> | ||
954 | </operands> | ||
955 | </expression> | ||
956 | </operands> | ||
957 | </value> | ||
958 | </relations> | ||
959 | <elements name="o 1" definedInType="//@types.14"/> | ||
960 | <containmentHierarchies typesOrderedInHierarchy="//@types.0 //@types.10 //@types.13 //@types.7 //@types.8 //@types.11 //@types.5 //@types.4 //@types.3 //@types.6 //@types.9 //@types.12 //@types.1 //@types.2 //@types.14 //@types.15" containmentRelations="//@relations.0 //@relations.2 //@relations.3 //@relations.4 //@relations.11 //@relations.12 //@relations.13 //@relations.14"/> | ||
961 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.1" upper="1"/> | ||
962 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/> | ||
963 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.6" upper="1"/> | ||
964 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.3" relation="//@relations.7" lower="1"/> | ||
965 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.7" upper="1"/> | ||
966 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.5" relation="//@relations.8" lower="1"/> | ||
967 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.8" upper="1"/> | ||
968 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.7" relation="//@relations.9" lower="1"/> | ||
969 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.9" upper="1"/> | ||
970 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.9" relation="//@relations.10" lower="1"/> | ||
971 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.10" relation="//@relations.10" upper="1"/> | ||
972 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.11" relation="//@relations.15" lower="1"/> | ||
973 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.12" relation="//@relations.15" upper="1"/> | ||
974 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.13" relation="//@relations.17" lower="1"/> | ||
975 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.14" relation="//@relations.17" upper="1"/> | ||
976 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.15" inverseA="//@relations.0" inverseB="//@relations.10"/> | ||
977 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.1" inverseB="//@relations.2"/> | ||
978 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.17" inverseA="//@relations.3" inverseB="//@relations.6"/> | ||
979 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.18" inverseA="//@relations.5" inverseB="//@relations.8"/> | ||
980 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.19" inverseA="//@relations.7" inverseB="//@relations.12"/> | ||
981 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.20" inverseA="//@relations.9" inverseB="//@relations.13"/> | ||
982 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.21" inverseA="//@relations.11" inverseB="//@relations.15"/> | ||
983 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.22" relation="//@relations.18" upper="1"/> | ||
984 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="ca.mcgill.dp19.queries.treatment"/> | ||
985 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="ca.mcgill.dp19.queries.examinationresult"/> | ||
986 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="ca.mcgill.dp19.queries.symptom"/> | ||
987 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="ca.mcgill.dp19.queries.treatmentWithoutSymptom"/> | ||
988 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="ca.mcgill.dp19.queries.healthProblems"/> | ||
989 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="ca.mcgill.dp19.queries.healthProblemsWithoutExaminationResult"/> | ||
990 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="ca.mcgill.dp19.queries.allergy"/> | ||
991 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="ca.mcgill.dp19.queries.allergyWithoutSymptom"/> | ||
992 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.27" patternFullyQualifiedName="ca.mcgill.dp19.queries.recommended"/> | ||
993 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.28" patternFullyQualifiedName="ca.mcgill.dp19.queries.prescribedMedicineNotRecommended"/> | ||
994 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.23" query="//@annotations.26"/> | ||
995 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.24" query="//@annotations.28"/> | ||
996 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.25" query="//@annotations.30"/> | ||
997 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.26" query="//@annotations.32"/> | ||
998 | </language:LogicProblem> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/newMedicalSystem.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/newMedicalSystem.logicproblem new file mode 100644 index 00000000..a8e595b4 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/newMedicalSystem.logicproblem | |||
@@ -0,0 +1,962 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation"> | ||
3 | <types xsi:type="language_1:TypeDeclaration" name="Patient class"/> | ||
4 | <types xsi:type="language_1:TypeDeclaration" name="HealthSystem class" subtypes="//@types.14 //@types.15" isAbstract="true"/> | ||
5 | <types xsi:type="language_1:TypeDeclaration" name="Examination class"/> | ||
6 | <types xsi:type="language_1:TypeDeclaration" name="Symptom class"/> | ||
7 | <types xsi:type="language_1:TypeDeclaration" name="ExaminationResult class"/> | ||
8 | <types xsi:type="language_1:TypeDeclaration" name="MedicalRecord class"/> | ||
9 | <types xsi:type="language_1:TypeDeclaration" name="HealthProblem class" subtypes="//@types.11 //@types.12 //@types.13" isAbstract="true"/> | ||
10 | <types xsi:type="language_1:TypeDeclaration" name="Medicine class"/> | ||
11 | <types xsi:type="language_1:TypeDeclaration" name="Treatment class" subtypes="//@types.9 //@types.10" isAbstract="true"/> | ||
12 | <types xsi:type="language_1:TypeDeclaration" name="Medication class" supertypes="//@types.8"/> | ||
13 | <types xsi:type="language_1:TypeDeclaration" name="Immunization class" supertypes="//@types.8"/> | ||
14 | <types xsi:type="language_1:TypeDeclaration" name="Allergy class" supertypes="//@types.6"/> | ||
15 | <types xsi:type="language_1:TypeDeclaration" name="Disease class" supertypes="//@types.6"/> | ||
16 | <types xsi:type="language_1:TypeDeclaration" name="Injury class" supertypes="//@types.6"/> | ||
17 | <types xsi:type="language_1:TypeDefinition" name="HealthSystem class DefinedPart" supertypes="//@types.1" elements="//@elements.0"/> | ||
18 | <types xsi:type="language_1:TypeDeclaration" name="HealthSystem class UndefinedPart" supertypes="//@types.1"/> | ||
19 | <assertions name="upperMultiplicity healthsystem Patient" annotations="//@annotations.0"> | ||
20 | <value xsi:type="language_1:Forall"> | ||
21 | <quantifiedVariables name="src"> | ||
22 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
23 | </quantifiedVariables> | ||
24 | <quantifiedVariables name="trg 1"> | ||
25 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
26 | </quantifiedVariables> | ||
27 | <quantifiedVariables name="trg 2"> | ||
28 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
29 | </quantifiedVariables> | ||
30 | <expression xsi:type="language_1:Impl"> | ||
31 | <leftOperand xsi:type="language_1:And"> | ||
32 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
33 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
34 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/> | ||
35 | </operands> | ||
36 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
37 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
38 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/> | ||
39 | </operands> | ||
40 | </leftOperand> | ||
41 | <rightOperand xsi:type="language_1:Not"> | ||
42 | <operand xsi:type="language_1:Distinct"> | ||
43 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/> | ||
44 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/> | ||
45 | </operand> | ||
46 | </rightOperand> | ||
47 | </expression> | ||
48 | </value> | ||
49 | </assertions> | ||
50 | <assertions name="upperMultiplicity examination HealthSystem" annotations="//@annotations.1"> | ||
51 | <value xsi:type="language_1:Forall"> | ||
52 | <quantifiedVariables name="src"> | ||
53 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
54 | </quantifiedVariables> | ||
55 | <quantifiedVariables name="trg 1"> | ||
56 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
57 | </quantifiedVariables> | ||
58 | <quantifiedVariables name="trg 2"> | ||
59 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
60 | </quantifiedVariables> | ||
61 | <expression xsi:type="language_1:Impl"> | ||
62 | <leftOperand xsi:type="language_1:And"> | ||
63 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
64 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
65 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
66 | </operands> | ||
67 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
68 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
69 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> | ||
70 | </operands> | ||
71 | </leftOperand> | ||
72 | <rightOperand xsi:type="language_1:Not"> | ||
73 | <operand xsi:type="language_1:Distinct"> | ||
74 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
75 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/> | ||
76 | </operand> | ||
77 | </rightOperand> | ||
78 | </expression> | ||
79 | </value> | ||
80 | </assertions> | ||
81 | <assertions name="upperMultiplicity healthsystem Examination" annotations="//@annotations.2"> | ||
82 | <value xsi:type="language_1:Forall"> | ||
83 | <quantifiedVariables name="src"> | ||
84 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
85 | </quantifiedVariables> | ||
86 | <quantifiedVariables name="trg 1"> | ||
87 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
88 | </quantifiedVariables> | ||
89 | <quantifiedVariables name="trg 2"> | ||
90 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
91 | </quantifiedVariables> | ||
92 | <expression xsi:type="language_1:Impl"> | ||
93 | <leftOperand xsi:type="language_1:And"> | ||
94 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
95 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
96 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
97 | </operands> | ||
98 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
99 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
100 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
101 | </operands> | ||
102 | </leftOperand> | ||
103 | <rightOperand xsi:type="language_1:Not"> | ||
104 | <operand xsi:type="language_1:Distinct"> | ||
105 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
106 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
107 | </operand> | ||
108 | </rightOperand> | ||
109 | </expression> | ||
110 | </value> | ||
111 | </assertions> | ||
112 | <assertions name="lowerMultiplicity medicalrecord Symptom" annotations="//@annotations.3"> | ||
113 | <value xsi:type="language_1:Forall"> | ||
114 | <quantifiedVariables name="src"> | ||
115 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
116 | </quantifiedVariables> | ||
117 | <expression xsi:type="language_1:Exists"> | ||
118 | <quantifiedVariables name="trg 1"> | ||
119 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
120 | </quantifiedVariables> | ||
121 | <expression xsi:type="language_1:And"> | ||
122 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
123 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
124 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@expression/@quantifiedVariables.0"/> | ||
125 | </operands> | ||
126 | </expression> | ||
127 | </expression> | ||
128 | </value> | ||
129 | </assertions> | ||
130 | <assertions name="upperMultiplicity medicalrecord Symptom" annotations="//@annotations.4"> | ||
131 | <value xsi:type="language_1:Forall"> | ||
132 | <quantifiedVariables name="src"> | ||
133 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
134 | </quantifiedVariables> | ||
135 | <quantifiedVariables name="trg 1"> | ||
136 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
137 | </quantifiedVariables> | ||
138 | <quantifiedVariables name="trg 2"> | ||
139 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
140 | </quantifiedVariables> | ||
141 | <expression xsi:type="language_1:Impl"> | ||
142 | <leftOperand xsi:type="language_1:And"> | ||
143 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
144 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
145 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> | ||
146 | </operands> | ||
147 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
148 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
149 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> | ||
150 | </operands> | ||
151 | </leftOperand> | ||
152 | <rightOperand xsi:type="language_1:Not"> | ||
153 | <operand xsi:type="language_1:Distinct"> | ||
154 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/> | ||
155 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/> | ||
156 | </operand> | ||
157 | </rightOperand> | ||
158 | </expression> | ||
159 | </value> | ||
160 | </assertions> | ||
161 | <assertions name="lowerMultiplicity examinationType ExaminationResult" annotations="//@annotations.5"> | ||
162 | <value xsi:type="language_1:Forall"> | ||
163 | <quantifiedVariables name="src"> | ||
164 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
165 | </quantifiedVariables> | ||
166 | <expression xsi:type="language_1:Exists"> | ||
167 | <quantifiedVariables name="trg 1"> | ||
168 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
169 | </quantifiedVariables> | ||
170 | <expression xsi:type="language_1:And"> | ||
171 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
172 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
173 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@expression/@quantifiedVariables.0"/> | ||
174 | </operands> | ||
175 | </expression> | ||
176 | </expression> | ||
177 | </value> | ||
178 | </assertions> | ||
179 | <assertions name="upperMultiplicity examinationType ExaminationResult" annotations="//@annotations.6"> | ||
180 | <value xsi:type="language_1:Forall"> | ||
181 | <quantifiedVariables name="src"> | ||
182 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
183 | </quantifiedVariables> | ||
184 | <quantifiedVariables name="trg 1"> | ||
185 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
186 | </quantifiedVariables> | ||
187 | <quantifiedVariables name="trg 2"> | ||
188 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
189 | </quantifiedVariables> | ||
190 | <expression xsi:type="language_1:Impl"> | ||
191 | <leftOperand xsi:type="language_1:And"> | ||
192 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
193 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
194 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
195 | </operands> | ||
196 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
197 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
198 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> | ||
199 | </operands> | ||
200 | </leftOperand> | ||
201 | <rightOperand xsi:type="language_1:Not"> | ||
202 | <operand xsi:type="language_1:Distinct"> | ||
203 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
204 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/> | ||
205 | </operand> | ||
206 | </rightOperand> | ||
207 | </expression> | ||
208 | </value> | ||
209 | </assertions> | ||
210 | <assertions name="lowerMultiplicity medicalrecord ExaminationResult" annotations="//@annotations.7"> | ||
211 | <value xsi:type="language_1:Forall"> | ||
212 | <quantifiedVariables name="src"> | ||
213 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
214 | </quantifiedVariables> | ||
215 | <expression xsi:type="language_1:Exists"> | ||
216 | <quantifiedVariables name="trg 1"> | ||
217 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
218 | </quantifiedVariables> | ||
219 | <expression xsi:type="language_1:And"> | ||
220 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
221 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/> | ||
222 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@expression/@quantifiedVariables.0"/> | ||
223 | </operands> | ||
224 | </expression> | ||
225 | </expression> | ||
226 | </value> | ||
227 | </assertions> | ||
228 | <assertions name="upperMultiplicity medicalrecord ExaminationResult" annotations="//@annotations.8"> | ||
229 | <value xsi:type="language_1:Forall"> | ||
230 | <quantifiedVariables name="src"> | ||
231 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
232 | </quantifiedVariables> | ||
233 | <quantifiedVariables name="trg 1"> | ||
234 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
235 | </quantifiedVariables> | ||
236 | <quantifiedVariables name="trg 2"> | ||
237 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
238 | </quantifiedVariables> | ||
239 | <expression xsi:type="language_1:Impl"> | ||
240 | <leftOperand xsi:type="language_1:And"> | ||
241 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
242 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
243 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> | ||
244 | </operands> | ||
245 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
246 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/> | ||
247 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> | ||
248 | </operands> | ||
249 | </leftOperand> | ||
250 | <rightOperand xsi:type="language_1:Not"> | ||
251 | <operand xsi:type="language_1:Distinct"> | ||
252 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/> | ||
253 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/> | ||
254 | </operand> | ||
255 | </rightOperand> | ||
256 | </expression> | ||
257 | </value> | ||
258 | </assertions> | ||
259 | <assertions name="lowerMultiplicity patient MedicalRecord" annotations="//@annotations.9"> | ||
260 | <value xsi:type="language_1:Forall"> | ||
261 | <quantifiedVariables name="src"> | ||
262 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
263 | </quantifiedVariables> | ||
264 | <expression xsi:type="language_1:Exists"> | ||
265 | <quantifiedVariables name="trg 1"> | ||
266 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
267 | </quantifiedVariables> | ||
268 | <expression xsi:type="language_1:And"> | ||
269 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
270 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/> | ||
271 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@expression/@quantifiedVariables.0"/> | ||
272 | </operands> | ||
273 | </expression> | ||
274 | </expression> | ||
275 | </value> | ||
276 | </assertions> | ||
277 | <assertions name="upperMultiplicity patient MedicalRecord" annotations="//@annotations.10"> | ||
278 | <value xsi:type="language_1:Forall"> | ||
279 | <quantifiedVariables name="src"> | ||
280 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
281 | </quantifiedVariables> | ||
282 | <quantifiedVariables name="trg 1"> | ||
283 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
284 | </quantifiedVariables> | ||
285 | <quantifiedVariables name="trg 2"> | ||
286 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
287 | </quantifiedVariables> | ||
288 | <expression xsi:type="language_1:Impl"> | ||
289 | <leftOperand xsi:type="language_1:And"> | ||
290 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
291 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/> | ||
292 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/> | ||
293 | </operands> | ||
294 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
295 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/> | ||
296 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/> | ||
297 | </operands> | ||
298 | </leftOperand> | ||
299 | <rightOperand xsi:type="language_1:Not"> | ||
300 | <operand xsi:type="language_1:Distinct"> | ||
301 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/> | ||
302 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/> | ||
303 | </operand> | ||
304 | </rightOperand> | ||
305 | </expression> | ||
306 | </value> | ||
307 | </assertions> | ||
308 | <assertions name="lowerMultiplicity record HealthProblem" annotations="//@annotations.11"> | ||
309 | <value xsi:type="language_1:Forall"> | ||
310 | <quantifiedVariables name="src"> | ||
311 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
312 | </quantifiedVariables> | ||
313 | <expression xsi:type="language_1:Exists"> | ||
314 | <quantifiedVariables name="trg 1"> | ||
315 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
316 | </quantifiedVariables> | ||
317 | <expression xsi:type="language_1:And"> | ||
318 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
319 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/> | ||
320 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@expression/@quantifiedVariables.0"/> | ||
321 | </operands> | ||
322 | </expression> | ||
323 | </expression> | ||
324 | </value> | ||
325 | </assertions> | ||
326 | <assertions name="upperMultiplicity record HealthProblem" annotations="//@annotations.12"> | ||
327 | <value xsi:type="language_1:Forall"> | ||
328 | <quantifiedVariables name="src"> | ||
329 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
330 | </quantifiedVariables> | ||
331 | <quantifiedVariables name="trg 1"> | ||
332 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
333 | </quantifiedVariables> | ||
334 | <quantifiedVariables name="trg 2"> | ||
335 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
336 | </quantifiedVariables> | ||
337 | <expression xsi:type="language_1:Impl"> | ||
338 | <leftOperand xsi:type="language_1:And"> | ||
339 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
340 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
341 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/> | ||
342 | </operands> | ||
343 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
344 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/> | ||
345 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/> | ||
346 | </operands> | ||
347 | </leftOperand> | ||
348 | <rightOperand xsi:type="language_1:Not"> | ||
349 | <operand xsi:type="language_1:Distinct"> | ||
350 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/> | ||
351 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/> | ||
352 | </operand> | ||
353 | </rightOperand> | ||
354 | </expression> | ||
355 | </value> | ||
356 | </assertions> | ||
357 | <assertions name="lowerMultiplicity medicine Treatment" annotations="//@annotations.13"> | ||
358 | <value xsi:type="language_1:Forall"> | ||
359 | <quantifiedVariables name="src"> | ||
360 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
361 | </quantifiedVariables> | ||
362 | <expression xsi:type="language_1:Exists"> | ||
363 | <quantifiedVariables name="trg 1"> | ||
364 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
365 | </quantifiedVariables> | ||
366 | <expression xsi:type="language_1:And"> | ||
367 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> | ||
368 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/> | ||
369 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@expression/@quantifiedVariables.0"/> | ||
370 | </operands> | ||
371 | </expression> | ||
372 | </expression> | ||
373 | </value> | ||
374 | </assertions> | ||
375 | <assertions name="upperMultiplicity medicine Treatment" annotations="//@annotations.14"> | ||
376 | <value xsi:type="language_1:Forall"> | ||
377 | <quantifiedVariables name="src"> | ||
378 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
379 | </quantifiedVariables> | ||
380 | <quantifiedVariables name="trg 1"> | ||
381 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
382 | </quantifiedVariables> | ||
383 | <quantifiedVariables name="trg 2"> | ||
384 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
385 | </quantifiedVariables> | ||
386 | <expression xsi:type="language_1:Impl"> | ||
387 | <leftOperand xsi:type="language_1:And"> | ||
388 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> | ||
389 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
390 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/> | ||
391 | </operands> | ||
392 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> | ||
393 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/> | ||
394 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/> | ||
395 | </operands> | ||
396 | </leftOperand> | ||
397 | <rightOperand xsi:type="language_1:Not"> | ||
398 | <operand xsi:type="language_1:Distinct"> | ||
399 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/> | ||
400 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/> | ||
401 | </operand> | ||
402 | </rightOperand> | ||
403 | </expression> | ||
404 | </value> | ||
405 | </assertions> | ||
406 | <assertions name="oppositeReference records Patient" annotations="//@annotations.15"> | ||
407 | <value xsi:type="language_1:Forall"> | ||
408 | <quantifiedVariables name="src"> | ||
409 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
410 | </quantifiedVariables> | ||
411 | <quantifiedVariables name="trg"> | ||
412 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
413 | </quantifiedVariables> | ||
414 | <expression xsi:type="language_1:Iff"> | ||
415 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
416 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
417 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
418 | </leftOperand> | ||
419 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10"> | ||
420 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/> | ||
421 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/> | ||
422 | </rightOperand> | ||
423 | </expression> | ||
424 | </value> | ||
425 | </assertions> | ||
426 | <assertions name="oppositeReference healthsystem Patient" annotations="//@annotations.16"> | ||
427 | <value xsi:type="language_1:Forall"> | ||
428 | <quantifiedVariables name="src"> | ||
429 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
430 | </quantifiedVariables> | ||
431 | <quantifiedVariables name="trg"> | ||
432 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
433 | </quantifiedVariables> | ||
434 | <expression xsi:type="language_1:Iff"> | ||
435 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
436 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/> | ||
437 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/> | ||
438 | </leftOperand> | ||
439 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
440 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/> | ||
441 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/> | ||
442 | </rightOperand> | ||
443 | </expression> | ||
444 | </value> | ||
445 | </assertions> | ||
446 | <assertions name="oppositeReference examination HealthSystem" annotations="//@annotations.17"> | ||
447 | <value xsi:type="language_1:Forall"> | ||
448 | <quantifiedVariables name="src"> | ||
449 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
450 | </quantifiedVariables> | ||
451 | <quantifiedVariables name="trg"> | ||
452 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
453 | </quantifiedVariables> | ||
454 | <expression xsi:type="language_1:Iff"> | ||
455 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
456 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
457 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/> | ||
458 | </leftOperand> | ||
459 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
460 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/> | ||
461 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/> | ||
462 | </rightOperand> | ||
463 | </expression> | ||
464 | </value> | ||
465 | </assertions> | ||
466 | <assertions name="oppositeReference examinationResult Examination" annotations="//@annotations.18"> | ||
467 | <value xsi:type="language_1:Forall"> | ||
468 | <quantifiedVariables name="src"> | ||
469 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
470 | </quantifiedVariables> | ||
471 | <quantifiedVariables name="trg"> | ||
472 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
473 | </quantifiedVariables> | ||
474 | <expression xsi:type="language_1:Iff"> | ||
475 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
476 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/> | ||
477 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/> | ||
478 | </leftOperand> | ||
479 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
480 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/> | ||
481 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/> | ||
482 | </rightOperand> | ||
483 | </expression> | ||
484 | </value> | ||
485 | </assertions> | ||
486 | <assertions name="oppositeReference medicalrecord Symptom" annotations="//@annotations.19"> | ||
487 | <value xsi:type="language_1:Forall"> | ||
488 | <quantifiedVariables name="src"> | ||
489 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
490 | </quantifiedVariables> | ||
491 | <quantifiedVariables name="trg"> | ||
492 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
493 | </quantifiedVariables> | ||
494 | <expression xsi:type="language_1:Iff"> | ||
495 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
496 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/> | ||
497 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/> | ||
498 | </leftOperand> | ||
499 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
500 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/> | ||
501 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/> | ||
502 | </rightOperand> | ||
503 | </expression> | ||
504 | </value> | ||
505 | </assertions> | ||
506 | <assertions name="oppositeReference medicalrecord ExaminationResult" annotations="//@annotations.20"> | ||
507 | <value xsi:type="language_1:Forall"> | ||
508 | <quantifiedVariables name="src"> | ||
509 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
510 | </quantifiedVariables> | ||
511 | <quantifiedVariables name="trg"> | ||
512 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
513 | </quantifiedVariables> | ||
514 | <expression xsi:type="language_1:Iff"> | ||
515 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9"> | ||
516 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> | ||
517 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/> | ||
518 | </leftOperand> | ||
519 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
520 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/> | ||
521 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/> | ||
522 | </rightOperand> | ||
523 | </expression> | ||
524 | </value> | ||
525 | </assertions> | ||
526 | <assertions name="oppositeReference healthProblems MedicalRecord" annotations="//@annotations.21"> | ||
527 | <value xsi:type="language_1:Forall"> | ||
528 | <quantifiedVariables name="src"> | ||
529 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
530 | </quantifiedVariables> | ||
531 | <quantifiedVariables name="trg"> | ||
532 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
533 | </quantifiedVariables> | ||
534 | <expression xsi:type="language_1:Iff"> | ||
535 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> | ||
536 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> | ||
537 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/> | ||
538 | </leftOperand> | ||
539 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
540 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/> | ||
541 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/> | ||
542 | </rightOperand> | ||
543 | </expression> | ||
544 | </value> | ||
545 | </assertions> | ||
546 | <assertions name="errorpattern ca mcgill dp19 queries treatmentWithoutSymptom" annotations="//@annotations.32"> | ||
547 | <value xsi:type="language_1:Forall"> | ||
548 | <quantifiedVariables name="mr"> | ||
549 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
550 | </quantifiedVariables> | ||
551 | <expression xsi:type="language_1:Not"> | ||
552 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21"> | ||
553 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/> | ||
554 | </operand> | ||
555 | </expression> | ||
556 | </value> | ||
557 | </assertions> | ||
558 | <assertions name="errorpattern ca mcgill dp19 queries healthProblemsWithoutExaminationResult" annotations="//@annotations.33"> | ||
559 | <value xsi:type="language_1:Forall"> | ||
560 | <quantifiedVariables name="mr"> | ||
561 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
562 | </quantifiedVariables> | ||
563 | <expression xsi:type="language_1:Not"> | ||
564 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23"> | ||
565 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/> | ||
566 | </operand> | ||
567 | </expression> | ||
568 | </value> | ||
569 | </assertions> | ||
570 | <assertions name="errorpattern ca mcgill dp19 queries allergyWithoutSymptom" annotations="//@annotations.34"> | ||
571 | <value xsi:type="language_1:Forall"> | ||
572 | <quantifiedVariables name="mr"> | ||
573 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
574 | </quantifiedVariables> | ||
575 | <expression xsi:type="language_1:Not"> | ||
576 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25"> | ||
577 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/> | ||
578 | </operand> | ||
579 | </expression> | ||
580 | </value> | ||
581 | </assertions> | ||
582 | <assertions name="errorpattern ca mcgill dp19 queries prescribedMedicineNotRecommended" annotations="//@annotations.35"> | ||
583 | <value xsi:type="language_1:Forall"> | ||
584 | <quantifiedVariables name="mr"> | ||
585 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
586 | </quantifiedVariables> | ||
587 | <quantifiedVariables name="med"> | ||
588 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
589 | </quantifiedVariables> | ||
590 | <expression xsi:type="language_1:Not"> | ||
591 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27"> | ||
592 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/> | ||
593 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.1"/> | ||
594 | </operand> | ||
595 | </expression> | ||
596 | </value> | ||
597 | </assertions> | ||
598 | <relations xsi:type="language_1:RelationDeclaration" name="records reference Patient"> | ||
599 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
600 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
601 | </relations> | ||
602 | <relations xsi:type="language_1:RelationDeclaration" name="healthsystem reference Patient"> | ||
603 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
604 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
605 | </relations> | ||
606 | <relations xsi:type="language_1:RelationDeclaration" name="patient reference HealthSystem"> | ||
607 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
608 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
609 | </relations> | ||
610 | <relations xsi:type="language_1:RelationDeclaration" name="examination reference HealthSystem"> | ||
611 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
612 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
613 | </relations> | ||
614 | <relations xsi:type="language_1:RelationDeclaration" name="medicine reference HealthSystem"> | ||
615 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
616 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
617 | </relations> | ||
618 | <relations xsi:type="language_1:RelationDeclaration" name="examinationResult reference Examination"> | ||
619 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
620 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
621 | </relations> | ||
622 | <relations xsi:type="language_1:RelationDeclaration" name="healthsystem reference Examination"> | ||
623 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
624 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
625 | </relations> | ||
626 | <relations xsi:type="language_1:RelationDeclaration" name="medicalrecord reference Symptom"> | ||
627 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
628 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
629 | </relations> | ||
630 | <relations xsi:type="language_1:RelationDeclaration" name="examinationType reference ExaminationResult"> | ||
631 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
632 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | ||
633 | </relations> | ||
634 | <relations xsi:type="language_1:RelationDeclaration" name="medicalrecord reference ExaminationResult"> | ||
635 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
636 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
637 | </relations> | ||
638 | <relations xsi:type="language_1:RelationDeclaration" name="patient reference MedicalRecord"> | ||
639 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
640 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
641 | </relations> | ||
642 | <relations xsi:type="language_1:RelationDeclaration" name="healthProblems reference MedicalRecord"> | ||
643 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
644 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
645 | </relations> | ||
646 | <relations xsi:type="language_1:RelationDeclaration" name="symptom reference MedicalRecord"> | ||
647 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
648 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
649 | </relations> | ||
650 | <relations xsi:type="language_1:RelationDeclaration" name="examinationResults reference MedicalRecord"> | ||
651 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
652 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
653 | </relations> | ||
654 | <relations xsi:type="language_1:RelationDeclaration" name="treatment reference MedicalRecord"> | ||
655 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
656 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
657 | </relations> | ||
658 | <relations xsi:type="language_1:RelationDeclaration" name="record reference HealthProblem"> | ||
659 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
660 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
661 | </relations> | ||
662 | <relations xsi:type="language_1:RelationDeclaration" name="recommended_medicine reference HealthProblem"> | ||
663 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
664 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
665 | </relations> | ||
666 | <relations xsi:type="language_1:RelationDeclaration" name="medicine reference Treatment"> | ||
667 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
668 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
669 | </relations> | ||
670 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries treatment" annotations="//@annotations.22"> | ||
671 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
672 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
673 | <variables name="parameter mr"> | ||
674 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
675 | </variables> | ||
676 | <variables name="parameter tr"> | ||
677 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
678 | </variables> | ||
679 | <value xsi:type="language_1:Or"> | ||
680 | <operands xsi:type="language_1:And"> | ||
681 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14"> | ||
682 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/> | ||
683 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/> | ||
684 | </operands> | ||
685 | <operands xsi:type="language_1:InstanceOf"> | ||
686 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/> | ||
687 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
688 | </operands> | ||
689 | </operands> | ||
690 | </value> | ||
691 | </relations> | ||
692 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries examinationresult" annotations="//@annotations.23"> | ||
693 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
694 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
695 | <variables name="parameter mr"> | ||
696 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
697 | </variables> | ||
698 | <variables name="parameter er"> | ||
699 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
700 | </variables> | ||
701 | <value xsi:type="language_1:Or"> | ||
702 | <operands xsi:type="language_1:And"> | ||
703 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13"> | ||
704 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/> | ||
705 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/> | ||
706 | </operands> | ||
707 | </operands> | ||
708 | </value> | ||
709 | </relations> | ||
710 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries symptom" annotations="//@annotations.24"> | ||
711 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
712 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
713 | <variables name="parameter mr"> | ||
714 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
715 | </variables> | ||
716 | <variables name="parameter sy"> | ||
717 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
718 | </variables> | ||
719 | <value xsi:type="language_1:Or"> | ||
720 | <operands xsi:type="language_1:And"> | ||
721 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
722 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/> | ||
723 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/> | ||
724 | </operands> | ||
725 | </operands> | ||
726 | </value> | ||
727 | </relations> | ||
728 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries treatmentWithoutSymptom" annotations="//@annotations.25"> | ||
729 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
730 | <variables name="parameter mr"> | ||
731 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
732 | </variables> | ||
733 | <value xsi:type="language_1:Or"> | ||
734 | <operands xsi:type="language_1:Exists"> | ||
735 | <quantifiedVariables name="variable tr"> | ||
736 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
737 | </quantifiedVariables> | ||
738 | <expression xsi:type="language_1:Forall"> | ||
739 | <quantifiedVariables name="variable 0"> | ||
740 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
741 | </quantifiedVariables> | ||
742 | <expression xsi:type="language_1:And"> | ||
743 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18"> | ||
744 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/> | ||
745 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/> | ||
746 | </operands> | ||
747 | <operands xsi:type="language_1:Not"> | ||
748 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20"> | ||
749 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/> | ||
750 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@expression/@quantifiedVariables.0"/> | ||
751 | </operand> | ||
752 | </operands> | ||
753 | </expression> | ||
754 | </expression> | ||
755 | </operands> | ||
756 | </value> | ||
757 | </relations> | ||
758 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries healthProblems" annotations="//@annotations.26"> | ||
759 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
760 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
761 | <variables name="parameter mr"> | ||
762 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
763 | </variables> | ||
764 | <variables name="parameter hp"> | ||
765 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
766 | </variables> | ||
767 | <value xsi:type="language_1:Or"> | ||
768 | <operands xsi:type="language_1:And"> | ||
769 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> | ||
770 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/> | ||
771 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/> | ||
772 | </operands> | ||
773 | </operands> | ||
774 | </value> | ||
775 | </relations> | ||
776 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries healthProblemsWithoutExaminationResult" annotations="//@annotations.27"> | ||
777 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
778 | <variables name="parameter mr"> | ||
779 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
780 | </variables> | ||
781 | <value xsi:type="language_1:Or"> | ||
782 | <operands xsi:type="language_1:Exists"> | ||
783 | <quantifiedVariables name="variable hp"> | ||
784 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
785 | </quantifiedVariables> | ||
786 | <expression xsi:type="language_1:Forall"> | ||
787 | <quantifiedVariables name="variable 0"> | ||
788 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
789 | </quantifiedVariables> | ||
790 | <expression xsi:type="language_1:And"> | ||
791 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> | ||
792 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/> | ||
793 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/> | ||
794 | </operands> | ||
795 | <operands xsi:type="language_1:Not"> | ||
796 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19"> | ||
797 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/> | ||
798 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@expression/@quantifiedVariables.0"/> | ||
799 | </operand> | ||
800 | </operands> | ||
801 | </expression> | ||
802 | </expression> | ||
803 | </operands> | ||
804 | </value> | ||
805 | </relations> | ||
806 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries allergy" annotations="//@annotations.28"> | ||
807 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
808 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
809 | <variables name="parameter mr"> | ||
810 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
811 | </variables> | ||
812 | <variables name="parameter al"> | ||
813 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
814 | </variables> | ||
815 | <value xsi:type="language_1:Or"> | ||
816 | <operands xsi:type="language_1:And"> | ||
817 | <operands xsi:type="language_1:InstanceOf"> | ||
818 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.1"/> | ||
819 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
820 | </operands> | ||
821 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> | ||
822 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/> | ||
823 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.1"/> | ||
824 | </operands> | ||
825 | </operands> | ||
826 | </value> | ||
827 | </relations> | ||
828 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries allergyWithoutSymptom" annotations="//@annotations.29"> | ||
829 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
830 | <variables name="parameter mr"> | ||
831 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
832 | </variables> | ||
833 | <value xsi:type="language_1:Or"> | ||
834 | <operands xsi:type="language_1:Exists"> | ||
835 | <quantifiedVariables name="variable al"> | ||
836 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/> | ||
837 | </quantifiedVariables> | ||
838 | <expression xsi:type="language_1:Forall"> | ||
839 | <quantifiedVariables name="variable 0"> | ||
840 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
841 | </quantifiedVariables> | ||
842 | <expression xsi:type="language_1:And"> | ||
843 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24"> | ||
844 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/> | ||
845 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/> | ||
846 | </operands> | ||
847 | <operands xsi:type="language_1:Not"> | ||
848 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20"> | ||
849 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/> | ||
850 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@expression/@quantifiedVariables.0"/> | ||
851 | </operand> | ||
852 | </operands> | ||
853 | </expression> | ||
854 | </expression> | ||
855 | </operands> | ||
856 | </value> | ||
857 | </relations> | ||
858 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries recommended" annotations="//@annotations.30"> | ||
859 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
860 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
861 | <variables name="parameter hp"> | ||
862 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
863 | </variables> | ||
864 | <variables name="parameter med"> | ||
865 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
866 | </variables> | ||
867 | <value xsi:type="language_1:Or"> | ||
868 | <operands xsi:type="language_1:And"> | ||
869 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16"> | ||
870 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/> | ||
871 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.1"/> | ||
872 | </operands> | ||
873 | <operands xsi:type="language_1:InstanceOf"> | ||
874 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.1"/> | ||
875 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
876 | </operands> | ||
877 | </operands> | ||
878 | </value> | ||
879 | </relations> | ||
880 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries prescribedMedicineNotRecommended" annotations="//@annotations.31"> | ||
881 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
882 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
883 | <variables name="parameter mr"> | ||
884 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | ||
885 | </variables> | ||
886 | <variables name="parameter med"> | ||
887 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
888 | </variables> | ||
889 | <value xsi:type="language_1:Or"> | ||
890 | <operands xsi:type="language_1:Exists"> | ||
891 | <quantifiedVariables name="variable hp"> | ||
892 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
893 | </quantifiedVariables> | ||
894 | <quantifiedVariables name="variable tr"> | ||
895 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/> | ||
896 | </quantifiedVariables> | ||
897 | <expression xsi:type="language_1:And"> | ||
898 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22"> | ||
899 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/> | ||
900 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/> | ||
901 | </operands> | ||
902 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18"> | ||
903 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/> | ||
904 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.1"/> | ||
905 | </operands> | ||
906 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17"> | ||
907 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.1"/> | ||
908 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/> | ||
909 | </operands> | ||
910 | <operands xsi:type="language_1:InstanceOf"> | ||
911 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/> | ||
912 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
913 | </operands> | ||
914 | <operands xsi:type="language_1:Not"> | ||
915 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26"> | ||
916 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/> | ||
917 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/> | ||
918 | </operand> | ||
919 | </operands> | ||
920 | </expression> | ||
921 | </operands> | ||
922 | </value> | ||
923 | </relations> | ||
924 | <elements name="o 1" definedInType="//@types.14"/> | ||
925 | <containmentHierarchies typesOrderedInHierarchy="//@types.4 //@types.11 //@types.12 //@types.5 //@types.7 //@types.9 //@types.3 //@types.13 //@types.1 //@types.0 //@types.2 //@types.6 //@types.8 //@types.10 //@types.14 //@types.15" containmentRelations="//@relations.0 //@relations.2 //@relations.3 //@relations.4 //@relations.11 //@relations.12 //@relations.13 //@relations.14"/> | ||
926 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.1" upper="1"/> | ||
927 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/> | ||
928 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.6" upper="1"/> | ||
929 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.3" relation="//@relations.7" lower="1"/> | ||
930 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.7" upper="1"/> | ||
931 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.5" relation="//@relations.8" lower="1"/> | ||
932 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.8" upper="1"/> | ||
933 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.7" relation="//@relations.9" lower="1"/> | ||
934 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.9" upper="1"/> | ||
935 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.9" relation="//@relations.10" lower="1"/> | ||
936 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.10" relation="//@relations.10" upper="1"/> | ||
937 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.11" relation="//@relations.15" lower="1"/> | ||
938 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.12" relation="//@relations.15" upper="1"/> | ||
939 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.13" relation="//@relations.17" lower="1"/> | ||
940 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.14" relation="//@relations.17" upper="1"/> | ||
941 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.15" inverseA="//@relations.0" inverseB="//@relations.10"/> | ||
942 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.1" inverseB="//@relations.2"/> | ||
943 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.17" inverseA="//@relations.3" inverseB="//@relations.6"/> | ||
944 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.18" inverseA="//@relations.5" inverseB="//@relations.8"/> | ||
945 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.19" inverseA="//@relations.7" inverseB="//@relations.12"/> | ||
946 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.20" inverseA="//@relations.9" inverseB="//@relations.13"/> | ||
947 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.21" inverseA="//@relations.11" inverseB="//@relations.15"/> | ||
948 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="ca.mcgill.dp19.queries.treatment"/> | ||
949 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="ca.mcgill.dp19.queries.examinationresult"/> | ||
950 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="ca.mcgill.dp19.queries.symptom"/> | ||
951 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="ca.mcgill.dp19.queries.treatmentWithoutSymptom"/> | ||
952 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="ca.mcgill.dp19.queries.healthProblems"/> | ||
953 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="ca.mcgill.dp19.queries.healthProblemsWithoutExaminationResult"/> | ||
954 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="ca.mcgill.dp19.queries.allergy"/> | ||
955 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="ca.mcgill.dp19.queries.allergyWithoutSymptom"/> | ||
956 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="ca.mcgill.dp19.queries.recommended"/> | ||
957 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.27" patternFullyQualifiedName="ca.mcgill.dp19.queries.prescribedMedicineNotRecommended"/> | ||
958 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.22" query="//@annotations.25"/> | ||
959 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.23" query="//@annotations.27"/> | ||
960 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.24" query="//@annotations.29"/> | ||
961 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.25" query="//@annotations.31"/> | ||
962 | </language:LogicProblem> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF index 13fcb7b9..a5999e6d 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF | |||
@@ -16,5 +16,11 @@ Require-Bundle: com.google.guava, | |||
16 | hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0", | 16 | hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0", |
17 | org.eclipse.emf.ecore.xmi;bundle-version="2.13.0", | 17 | org.eclipse.emf.ecore.xmi;bundle-version="2.13.0", |
18 | hu.bme.mit.inf.dlsreasoner.alloy.reasoner;bundle-version="1.0.0", | 18 | hu.bme.mit.inf.dlsreasoner.alloy.reasoner;bundle-version="1.0.0", |
19 | hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0" | 19 | hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0", |
20 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner;bundle-version="1.0.0", | ||
21 | hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatraquery;bundle-version="1.0.0", | ||
22 | hu.bme.mit.inf.dslreasoner.logic2ecore;bundle-version="1.0.0", | ||
23 | hu.bme.mit.inf.dslreasoner.visualisation;bundle-version="1.0.0", | ||
24 | ModelGenExampleFAM_plugin;bundle-version="1.0.0", | ||
25 | ModelGenExampleFAM_plugin.validation;bundle-version="0.0.1" | ||
20 | 26 | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi new file mode 100644 index 00000000..59935a2c --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi | |||
@@ -0,0 +1,4 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <functionalarchitecture:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" | ||
3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam" | ||
4 | xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam FamMetamodel.ecore"/> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem index f5f90f38..2529b6d7 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem | |||
@@ -1,27 +1,27 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"> | 2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"> |
3 | <types xsi:type="language_1:TypeDefinition" name="oldRPS" elements="//@elements.0 //@elements.1 //@elements.2"/> | ||
3 | <assertions name="assertion1"> | 4 | <assertions name="assertion1"> |
4 | <value xsi:type="language_1:Iff"> | 5 | <value xsi:type="language_1:Forall"> |
5 | <leftOperand xsi:type="language_1:Not"> | 6 | <quantifiedVariables name="x"> |
6 | <operand xsi:type="language_1:And"> | 7 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> |
7 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@constants.0"/> | 8 | </quantifiedVariables> |
8 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@constants.1"/> | 9 | <expression xsi:type="language_1:Exists"> |
9 | </operand> | 10 | <quantifiedVariables name="y"> |
10 | </leftOperand> | 11 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> |
11 | <rightOperand xsi:type="language_1:Or"> | 12 | </quantifiedVariables> |
12 | <operands xsi:type="language_1:Not"> | 13 | <expression xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> |
13 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@constants.0"/> | 14 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> |
14 | </operands> | 15 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/> |
15 | <operands xsi:type="language_1:Not"> | 16 | </expression> |
16 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@constants.1"/> | 17 | </expression> |
17 | </operands> | ||
18 | </rightOperand> | ||
19 | </value> | 18 | </value> |
20 | </assertions> | 19 | </assertions> |
21 | <constants xsi:type="language_1:ConstantDeclaration" name="constant1"> | 20 | <relations xsi:type="language_1:RelationDeclaration" name="beats2"> |
22 | <type xsi:type="language_1:BoolTypeReference"/> | 21 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> |
23 | </constants> | 22 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> |
24 | <constants xsi:type="language_1:ConstantDeclaration" name="constant2"> | 23 | </relations> |
25 | <type xsi:type="language_1:BoolTypeReference"/> | 24 | <elements name="Rock" definedInType="//@types.0"/> |
26 | </constants> | 25 | <elements name="Paper" definedInType="//@types.0"/> |
26 | <elements name="Scissor" definedInType="//@types.0"/> | ||
27 | </language:LogicProblem> | 27 | </language:LogicProblem> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp index ddeec4f4..6decf070 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp | |||
@@ -1 +1,38 @@ | |||
1 | %This is an initial Test Comment fof ( assertion1 , axiom , ~ ( constant1 & constant2 ) <=> ( ~ constant1 | ~ constant2 ) ) . | 1 | % This is an initial Test Comment |
2 | fof ( typeDef_FunctionType_enum , axiom , ! [ A ] : ( type_FunctionType_enum ( A ) <=> ( A = "aRoot literal FunctionType" | ( A = "aIntermediate literal FunctionType" | A = "aLeaf literal FunctionType" ) ) ) ) . | ||
3 | fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) . | ||
4 | fof ( compliance_interface_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_FunctionalInterface_class ( Var_1 ) ) ) ) . | ||
5 | fof ( compliance_model_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_model_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_FunctionalArchitectureModel_class ( Var_1 ) ) ) ) . | ||
6 | fof ( compliance_parent_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_parent_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_Function_class ( Var_1 ) ) ) ) . | ||
7 | fof ( compliance_rootElements_reference_FunctionalArchitectureModel , axiom , ! [ Var_0 , Var_1 ] : ( rel_rootElements_reference_FunctionalArchitectureModel ( Var_0 , Var_1 ) => ( type_FunctionalArchitectureModel_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) . | ||
8 | fof ( compliance_subElements_reference_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_subElements_reference_Function ( Var_0 , Var_1 ) => ( type_Function_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) . | ||
9 | fof ( compliance_data_reference_FAMTerminator , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FAMTerminator ( Var_0 , Var_1 ) => ( type_FAMTerminator_class ( Var_0 ) & type_FunctionalData_class ( Var_1 ) ) ) ) . | ||
10 | fof ( compliance_from_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_from_reference_InformationLink ( Var_0 , Var_1 ) => ( type_InformationLink_class ( Var_0 ) & type_FunctionalOutput_class ( Var_1 ) ) ) ) . | ||
11 | fof ( compliance_to_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_to_reference_InformationLink ( Var_0 , Var_1 ) => ( type_InformationLink_class ( Var_0 ) & type_FunctionalInput_class ( Var_1 ) ) ) ) . | ||
12 | fof ( compliance_data_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( type_FunctionalInterface_class ( Var_0 ) & type_FunctionalData_class ( Var_1 ) ) ) ) . | ||
13 | fof ( compliance_element_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_element_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( type_FunctionalInterface_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) . | ||
14 | fof ( compliance_IncomingLinks_reference_FunctionalInput , axiom , ! [ Var_0 , Var_1 ] : ( rel_IncomingLinks_reference_FunctionalInput ( Var_0 , Var_1 ) => ( type_FunctionalInput_class ( Var_0 ) & type_InformationLink_class ( Var_1 ) ) ) ) . | ||
15 | fof ( compliance_outgoingLinks_reference_FunctionalOutput , axiom , ! [ Var_0 , Var_1 ] : ( rel_outgoingLinks_reference_FunctionalOutput ( Var_0 , Var_1 ) => ( type_FunctionalOutput_class ( Var_0 ) & type_InformationLink_class ( Var_1 ) ) ) ) . | ||
16 | fof ( compliance_terminator_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_terminator_reference_FunctionalData ( Var_0 , Var_1 ) => ( type_FunctionalData_class ( Var_0 ) & type_FAMTerminator_class ( Var_1 ) ) ) ) . | ||
17 | fof ( compliance_interface_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalData ( Var_0 , Var_1 ) => ( type_FunctionalData_class ( Var_0 ) & type_FunctionalInterface_class ( Var_1 ) ) ) ) . | ||
18 | fof ( compliance_type_attribute_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_type_attribute_Function ( Var_0 , Var_1 ) => ( type_Function_class ( Var_0 ) & type_FunctionType_enum ( Var_1 ) ) ) ) . | ||
19 | fof ( upperMultiplicity_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_FunctionalInterface_class ( Var_trg_1 ) & type_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
20 | fof ( lowerMultiplicity_model_FunctionalElement , axiom , ! [ Var_src ] : ( type_FunctionalElement_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionalArchitectureModel_class ( Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) ) ) ) . | ||
21 | fof ( upperMultiplicity_model_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_FunctionalArchitectureModel_class ( Var_trg_1 ) & type_FunctionalArchitectureModel_class ( Var_trg_2 ) ) ) => ( ( rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
22 | fof ( upperMultiplicity_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_Function_class ( Var_trg_1 ) & type_Function_class ( Var_trg_2 ) ) ) => ( ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_parent_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
23 | fof ( upperMultiplicity_data_FAMTerminator , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FAMTerminator_class ( Var_src ) & ( type_FunctionalData_class ( Var_trg_1 ) & type_FunctionalData_class ( Var_trg_2 ) ) ) => ( ( rel_data_reference_FAMTerminator ( Var_src , Var_trg_1 ) & rel_data_reference_FAMTerminator ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
24 | fof ( upperMultiplicity_from_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_InformationLink_class ( Var_src ) & ( type_FunctionalOutput_class ( Var_trg_1 ) & type_FunctionalOutput_class ( Var_trg_2 ) ) ) => ( ( rel_from_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_from_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
25 | fof ( lowerMultiplicity_to_InformationLink , axiom , ! [ Var_src ] : ( type_InformationLink_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionalInput_class ( Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) ) ) ) . | ||
26 | fof ( upperMultiplicity_to_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_InformationLink_class ( Var_src ) & ( type_FunctionalInput_class ( Var_trg_1 ) & type_FunctionalInput_class ( Var_trg_2 ) ) ) => ( ( rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
27 | fof ( upperMultiplicity_element_FunctionalInterface , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalInterface_class ( Var_src ) & ( type_FunctionalElement_class ( Var_trg_1 ) & type_FunctionalElement_class ( Var_trg_2 ) ) ) => ( ( rel_element_reference_FunctionalInterface ( Var_src , Var_trg_1 ) & rel_element_reference_FunctionalInterface ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
28 | fof ( upperMultiplicity_terminator_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalData_class ( Var_src ) & ( type_FAMTerminator_class ( Var_trg_1 ) & type_FAMTerminator_class ( Var_trg_2 ) ) ) => ( ( rel_terminator_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_terminator_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
29 | fof ( upperMultiplicity_interface_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalData_class ( Var_src ) & ( type_FunctionalInterface_class ( Var_trg_1 ) & type_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
30 | fof ( oppositeReference_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalElement_class ( Var_src ) & type_FunctionalInterface_class ( Var_trg ) ) => ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_element_reference_FunctionalInterface ( Var_trg , Var_src ) ) ) ) . | ||
31 | fof ( oppositeReference_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalElement_class ( Var_src ) & type_Function_class ( Var_trg ) ) => ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_subElements_reference_Function ( Var_trg , Var_src ) ) ) ) . | ||
32 | fof ( oppositeReference_data_FAMTerminator , axiom , ! [ Var_src , Var_trg ] : ( ( type_FAMTerminator_class ( Var_src ) & type_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FAMTerminator ( Var_src , Var_trg ) <=> rel_terminator_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) . | ||
33 | fof ( oppositeReference_from_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( type_InformationLink_class ( Var_src ) & type_FunctionalOutput_class ( Var_trg ) ) => ( rel_from_reference_InformationLink ( Var_src , Var_trg ) <=> rel_outgoingLinks_reference_FunctionalOutput ( Var_trg , Var_src ) ) ) ) . | ||
34 | fof ( oppositeReference_to_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( type_InformationLink_class ( Var_src ) & type_FunctionalInput_class ( Var_trg ) ) => ( rel_to_reference_InformationLink ( Var_src , Var_trg ) <=> rel_IncomingLinks_reference_FunctionalInput ( Var_trg , Var_src ) ) ) ) . | ||
35 | fof ( oppositeReference_data_FunctionalInterface , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalInterface_class ( Var_src ) & type_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FunctionalInterface ( Var_src , Var_trg ) <=> rel_interface_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) . | ||
36 | fof ( lowerMultiplicity_type_Function , axiom , ! [ Var_src ] : ( type_Function_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionType_enum ( Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_1 ) ) ) ) . | ||
37 | fof ( upperMultiplicity_type_Function , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Function_class ( Var_src ) & ( type_FunctionType_enum ( Var_trg_1 ) & type_FunctionType_enum ( Var_trg_2 ) ) ) => ( ( rel_type_attribute_Function ( Var_src , Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) . | ||
38 | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend new file mode 100644 index 00000000..a8b4dcfb --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend | |||
@@ -0,0 +1,103 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.test | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | ||
5 | import functionalarchitecture.FunctionalarchitecturePackage | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
11 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
14 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
15 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
16 | import java.util.List | ||
17 | import org.eclipse.emf.ecore.EAttribute | ||
18 | import org.eclipse.emf.ecore.EClass | ||
19 | import org.eclipse.emf.ecore.EEnum | ||
20 | import org.eclipse.emf.ecore.EEnumLiteral | ||
21 | import org.eclipse.emf.ecore.EObject | ||
22 | import org.eclipse.emf.ecore.EReference | ||
23 | import org.eclipse.emf.ecore.resource.Resource | ||
24 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
25 | |||
26 | class DslTest { | ||
27 | def static void main(String[] args) { | ||
28 | val inputs = new FileSystemWorkspace('''initialModels/''', "") | ||
29 | val workspace = new FileSystemWorkspace('''outputDslModels/''', "") | ||
30 | workspace.initAndClear | ||
31 | |||
32 | println("Input and output workspaces are created") | ||
33 | |||
34 | val metamodel = loadMetamodel() | ||
35 | val partialModel = loadPartialModel(inputs) | ||
36 | // val queries = loadQueries(metamodel) | ||
37 | |||
38 | println("DSL loaded") | ||
39 | |||
40 | val Ecore2Logic ecore2Logic = new Ecore2Logic | ||
41 | val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) | ||
42 | val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) | ||
43 | val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic | ||
44 | |||
45 | val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) | ||
46 | // val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) | ||
47 | // val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) | ||
48 | |||
49 | val logicProblem = modelGenerationProblem.output | ||
50 | // val logicProblem = modelExtensionProblem.output | ||
51 | // val logicProblem = validModelExtensionProblem.output | ||
52 | |||
53 | |||
54 | println("Problem created") | ||
55 | |||
56 | var LogicResult solution | ||
57 | var LogicReasoner reasoner | ||
58 | //* | ||
59 | reasoner = new VampireSolver | ||
60 | val vampireConfig = new VampireSolverConfiguration => [ | ||
61 | //add configuration things, in config file first | ||
62 | it.writeToFile = false | ||
63 | ] | ||
64 | |||
65 | solution = reasoner.solve(logicProblem, vampireConfig, workspace) | ||
66 | |||
67 | println("Problem solved") | ||
68 | |||
69 | |||
70 | } | ||
71 | |||
72 | def private static loadMetamodel() { | ||
73 | //FAM | ||
74 | val pckg = FunctionalarchitecturePackage.eINSTANCE | ||
75 | val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList | ||
76 | val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList | ||
77 | val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList | ||
78 | val List<EReference> references = classes.map[getEReferences].flatten.toList | ||
79 | val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList | ||
80 | return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) | ||
81 | } | ||
82 | |||
83 | def private static loadPartialModel(ReasonerWorkspace inputs) { | ||
84 | Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); | ||
85 | inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList | ||
86 | // inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList | ||
87 | } | ||
88 | |||
89 | // def private static loadQueries(EcoreMetamodelDescriptor metamodel) { | ||
90 | // val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance | ||
91 | // val patterns = i.specifications.toList | ||
92 | // val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet | ||
93 | // val derivedFeatures = new LinkedHashMap | ||
94 | // derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) | ||
95 | // derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) | ||
96 | // val res = new ViatraQuerySetDescriptor( | ||
97 | // patterns, | ||
98 | // wfPatterns, | ||
99 | // derivedFeatures | ||
100 | // ) | ||
101 | // return res | ||
102 | // } | ||
103 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend new file mode 100644 index 00000000..ccc17617 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend | |||
@@ -0,0 +1,76 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.test | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup | ||
4 | import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage | ||
5 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
6 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
10 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | ||
11 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | ||
12 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory | ||
13 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel | ||
14 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage | ||
15 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | ||
16 | import java.util.Collections | ||
17 | import org.eclipse.emf.common.util.URI | ||
18 | import org.eclipse.emf.ecore.resource.Resource | ||
19 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl | ||
20 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | ||
21 | |||
22 | class MedicalSystem { | ||
23 | def static void main(String[] args) { | ||
24 | init() | ||
25 | val workspace = new FileSystemWorkspace('''outputModels/''',"") | ||
26 | workspace.initAndClear | ||
27 | val root = load() | ||
28 | println("Problem Loaded") | ||
29 | |||
30 | // val rs = new ResourceSetImpl | ||
31 | // val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp")) | ||
32 | // | ||
33 | // var vampireModel = VampireLanguageFactory.eINSTANCE.createVampireModel() | ||
34 | |||
35 | |||
36 | |||
37 | var LogicResult solution | ||
38 | var LogicReasoner reasoner | ||
39 | |||
40 | reasoner = new VampireSolver | ||
41 | val vampireConfig = new VampireSolverConfiguration => [ | ||
42 | //add configuration things, in config file first | ||
43 | it.writeToFile = false | ||
44 | ] | ||
45 | |||
46 | solution = reasoner.solve(root, vampireConfig, workspace) | ||
47 | |||
48 | // vampireModel = solution | ||
49 | // | ||
50 | // logRes.contents.add(vampireModel) | ||
51 | // logRes.save(Collections.EMPTY_MAP) | ||
52 | |||
53 | |||
54 | println("Problem Solved") | ||
55 | |||
56 | } | ||
57 | |||
58 | protected def static LogicProblem load() { | ||
59 | val resourceSet = new ResourceSetImpl | ||
60 | val resource = resourceSet.getResource(URI.createURI("inputLPs/newMedicalSystem.logicproblem"),true) | ||
61 | val root = resource.contents.get(0) as LogicProblem | ||
62 | root | ||
63 | } | ||
64 | |||
65 | protected def static void init() { | ||
66 | LogiclanguagePackage.eINSTANCE.eClass | ||
67 | LogicproblemPackage.eINSTANCE.eClass() | ||
68 | Ecore2logicannotationsPackage.eINSTANCE.eClass() | ||
69 | Viatra2LogicAnnotationsPackage.eINSTANCE.eClass() | ||
70 | val reg = Resource.Factory.Registry.INSTANCE | ||
71 | val map = reg.extensionToFactoryMap | ||
72 | map.put("logicproblem", new XMIResourceFactoryImpl) | ||
73 | map.put("tptp", new XMIResourceFactoryImpl) | ||
74 | VampireLanguageStandaloneSetup.doSetup | ||
75 | } | ||
76 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend index feb28dd5..9d2235f0 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend | |||
@@ -1,176 +1,130 @@ | |||
1 | //package ca.mcgill.ecse.dslreasoner.vampire.test | 1 | //package ca.mcgill.ecse.dslreasoner.vampire.test |
2 | // | 2 | // |
3 | //import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver | ||
4 | //import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration | ||
5 | //import hu.bme.mit.inf.dslreasomer.domains.transima.fam.FunctionalArchitecture.FunctionalArchitecturePackage | ||
6 | //import hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern | ||
7 | //import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
8 | //import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
9 | //import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
10 | //import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | ||
11 | //import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
12 | //import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | ||
13 | //import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor | ||
14 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
15 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml | ||
16 | //import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | 3 | //import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace |
17 | //import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | 4 | //import hu.bme.mit.inf.dslreasomer.domains.transima.fam.FunctionalArchitecture.FunctionalArchitecturePackage |
18 | //import java.util.LinkedHashMap | ||
19 | //import java.util.List | 5 | //import java.util.List |
20 | //import org.eclipse.emf.ecore.EAttribute | ||
21 | //import org.eclipse.emf.ecore.EClass | 6 | //import org.eclipse.emf.ecore.EClass |
22 | //import org.eclipse.emf.ecore.EEnum | ||
23 | //import org.eclipse.emf.ecore.EEnumLiteral | 7 | //import org.eclipse.emf.ecore.EEnumLiteral |
24 | //import org.eclipse.emf.ecore.EObject | ||
25 | //import org.eclipse.emf.ecore.EReference | 8 | //import org.eclipse.emf.ecore.EReference |
9 | //import org.eclipse.emf.ecore.EEnum | ||
10 | //import org.eclipse.emf.ecore.EAttribute | ||
11 | //import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor | ||
12 | //import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | ||
13 | //import org.eclipse.emf.ecore.EObject | ||
14 | //import java.util.LinkedHashMap | ||
15 | //import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor | ||
16 | //import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | ||
17 | //import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | ||
18 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | ||
19 | //import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | ||
20 | //import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | ||
21 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration | ||
22 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod | ||
23 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.StateCoderStrategy | ||
24 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner | ||
25 | //import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | ||
26 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
27 | //import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | ||
26 | //import org.eclipse.emf.ecore.resource.Resource | 28 | //import org.eclipse.emf.ecore.resource.Resource |
27 | //import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 29 | //import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
30 | //import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml | ||
31 | //import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration | ||
32 | //import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver | ||
33 | //import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | ||
34 | //import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
35 | //import java.util.LinkedList | ||
36 | //import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualisation | ||
37 | //import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder | ||
38 | //import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder | ||
28 | // | 39 | // |
29 | //class SimpleRun { | 40 | //class SimpleRun { |
30 | // | 41 | // |
31 | // def static void main(String[] args) { | 42 | // def static void main(String[] args) { |
32 | // val inputs = new FileSystemWorkspace('''initialModels/''', "") | 43 | // val inputs = new FileSystemWorkspace('''initialModels/''',"") |
33 | // val workspace = new FileSystemWorkspace('''outputModels/''', "") | 44 | // val workspace = new FileSystemWorkspace('''outputModels/''',"") |
34 | // workspace.initAndClear | 45 | // workspace.initAndClear |
35 | //// | ||
36 | //// println("Input and output workspaces are created") | ||
37 | //// | ||
38 | //// val metamodel = loadMetamodel() | ||
39 | //// val partialModel = loadPartialModel(inputs) | ||
40 | //// val queries = loadQueries(metamodel) | ||
41 | //// | ||
42 | //// println("DSL loaded") | ||
43 | //// | ||
44 | //// val Ecore2Logic ecore2Logic = new Ecore2Logic | ||
45 | //// val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) | ||
46 | //// val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) | ||
47 | //// val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic | ||
48 | //// | ||
49 | //// val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) | ||
50 | //// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) | ||
51 | //// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) | ||
52 | //// | ||
53 | //// val logicProblem = validModelExtensionProblem.output | ||
54 | //// //*************xmi.save. advntageous cuz seperate and only contains things that are necessary | ||
55 | //// //Write to file. This is importnat to understand | ||
56 | //// //furthermore, output solution1.partialInterpretation contains also the logic probelm | ||
57 | //// //that needs to be solved | ||
58 | //// | ||
59 | //// //Logic problem same for vamp,l alloy, viatra. but fr alloy, vamp, it is mapped into the specific ecore metamodel using the xtext. | ||
60 | //// //initial simple example: take one thing (ex. iff) from the logic problem generated for one of the sample examples, try to make it into vampire | ||
61 | //// //xtext (but only the instance model, not the lines of code) to see how mapping will work. Then ishteh use vampire on it to "solve" it. | ||
62 | // // create logic problem | ||
63 | // var extension builder = new LogicProblemBuilder | ||
64 | // var LogicProblem problem = builder.createProblem | ||
65 | // | ||
66 | // val rock = Element("Rock") | ||
67 | // val paper = Element("Paper") | ||
68 | // val scissor = Element("Scissor") | ||
69 | // | ||
70 | // problem.elements += rock | ||
71 | // problem.elements += paper | ||
72 | // problem.elements += scissor | ||
73 | // | ||
74 | //// val red = Element("Red") | ||
75 | //// val green = Element("Green") | ||
76 | //// | ||
77 | //// problem.elements += red | ||
78 | //// problem.elements += green | ||
79 | // | ||
80 | //// val allRPS = problem.add(TypeDeclaration("allRPS", true)) | ||
81 | // val oldRPS = problem.add(TypeDefinition("oldRPS", false, rock, paper, scissor)) // n+1 axioms, where n is the number of type definitions. 1. rocjk, paper, scissor are all rps. 2. every object is rps | ||
82 | //// val newRPS = problem.add(TypeDeclaration("newRPS", false)) | ||
83 | //// val color = problem.add(TypeDefinition("color", false, red, green)) | ||
84 | //// Supertype(oldRPS, allRPS) | ||
85 | //// Supertype(newRPS, allRPS) | ||
86 | // | 46 | // |
87 | // val beats2 = problem.add(RelationDeclaration("beats2", oldRPS, oldRPS)) | 47 | // println("Input and output workspaces are created") |
88 | // problem.add(Assertion(Forall[ | 48 | // |
89 | // val x = addVar("x", oldRPS) | 49 | // val metamodel = loadMetamodel() |
90 | // // x.range | 50 | // val partialModel = loadPartialModel(inputs) |
91 | // Exists[ | 51 | // val queries = loadQueries(metamodel) |
92 | // val y = addVar("y", oldRPS) | 52 | // |
93 | // beats2.call(x, y) | 53 | // println("DSL loaded") |
94 | // ] | 54 | // |
95 | // ])) | 55 | // val Ecore2Logic ecore2Logic = new Ecore2Logic |
96 | // | 56 | // val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) |
97 | //// val beats = problem.add(RelationDefinition("beats",[ | 57 | // val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) |
98 | //// val x = addVar("x",RPS) | 58 | // val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic |
99 | //// val y = addVar("y",RPS) | 59 | // |
100 | //// (x==rock && y==scissor)||(x==scissor && y==paper)||(x==paper && y==rock) | 60 | // val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) |
101 | //// ])) | 61 | // val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) |
102 | //// | 62 | // val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) |
103 | //// //below needs to be added as an axiom | 63 | // |
104 | //// val beats2 = problem.add(RelationDeclaration("beats2",RPS,RPS)) | 64 | // val logicProblem = validModelExtensionProblem.output |
105 | //// problem.add(Assertion(Forall[ | 65 | // |
106 | //// val x = addVar("x",RPS) | ||
107 | //// Exists[ | ||
108 | //// val y = addVar("y",RPS) | ||
109 | //// beats2.call(x,y) | ||
110 | //// ] | ||
111 | //// ])) | ||
112 | // println("Problem created") | 66 | // println("Problem created") |
113 | // var LogicResult solution | 67 | // var LogicResult solution |
114 | // var LogicReasoner reasoner | 68 | // var LogicReasoner reasoner |
115 | // /* | 69 | // //* |
116 | // * reasoner = new ViatraReasoner | 70 | // reasoner = new ViatraReasoner |
117 | // * val viatraConfig = new ViatraReasonerConfiguration => [ | 71 | // val viatraConfig = new ViatraReasonerConfiguration => [ |
118 | // * it.typeScopes.maxNewElements = 5 | 72 | // it.typeScopes.maxNewElements = 40 |
119 | // * it.typeScopes.minNewElements = 5 | 73 | // it.typeScopes.minNewElements = 40 |
120 | // * it.solutionScope.numberOfRequiredSolution = 1 | ||
121 | // * it.existingQueries = queries.patterns.map[it.internalQueryRepresentation] | ||
122 | // * it.debugCongiguration.logging = false | ||
123 | // * it.debugCongiguration.partalInterpretationVisualisationFrequency = 1 | ||
124 | // * it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation | ||
125 | // * ] | ||
126 | // * solution = reasoner.solve(logicProblem,viatraConfig,workspace) | ||
127 | // /*/ | ||
128 | // reasoner = new AlloySolver | ||
129 | // val alloyConfig = new AlloySolverConfiguration => [ | ||
130 | // it.typeScopes.maxNewElements = 5 | ||
131 | // it.typeScopes.minNewElements = 5 | ||
132 | // it.solutionScope.numberOfRequiredSolution = 1 | 74 | // it.solutionScope.numberOfRequiredSolution = 1 |
133 | // it.typeScopes.maxNewIntegers = 0 | 75 | // it.existingQueries = queries.patterns.map[it.internalQueryRepresentation] |
134 | // it.writeToFile = false | 76 | // it.debugCongiguration.logging = false |
77 | // it.debugCongiguration.partalInterpretationVisualisationFrequency = 1 | ||
78 | // it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation | ||
135 | // ] | 79 | // ] |
136 | // solution = reasoner.solve(problem, alloyConfig, workspace) | 80 | // solution = reasoner.solve(logicProblem,viatraConfig,workspace) |
137 | // // */ | 81 | // /*/ |
138 | // // ************ | 82 | // reasoner = new AlloySolver |
139 | // // since input logic model is also output, we can check out what is the input for alloy and then | 83 | // val alloyConfig = new AlloySolverConfiguration => [ |
140 | // // see what should be input for vampire, as it should be similar to alloy. once i can create the input, | 84 | // it.typeScopes.maxNewElements = 5 |
141 | // // that is the first step. | 85 | // it.typeScopes.minNewElements = 5 |
142 | // // look at allo2logic | 86 | // it.solutionScope.numberOfRequiredSolution = 1 |
143 | // // always keep looking at output | 87 | // it.typeScopes.maxNewIntegers = 0 |
144 | // // try to figure out what rule is used | 88 | // it.writeToFile = true |
145 | // println("Problem solved") | 89 | // ] |
146 | // | 90 | // solution = reasoner.solve(logicProblem,alloyConfig,workspace) |
147 | //// val interpretations = reasoner.getInterpretations(solution as ModelResult) | 91 | // //*/ |
148 | //// val models = new LinkedList | 92 | // |
149 | //// for(interpretation : interpretations) { | 93 | // println("Problem solved")= ^ |
150 | //// val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) | 94 | // |
151 | //// models+=instanceModel | 95 | // |
152 | //// } | 96 | // val interpretations = reasoner.getInterpretations(solution as ModelResult) |
153 | //// | 97 | // val models = new LinkedList |
154 | //// solution.writeSolution(workspace, #[]) | 98 | // for(interpretation : interpretations) { |
99 | // val extension b = new LogicStructureBuilder | ||
100 | // val extension a = new LogicProblemBuilder | ||
101 | // | ||
102 | // | ||
103 | // | ||
104 | // val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) | ||
105 | // models+=instanceModel | ||
106 | // } | ||
107 | // | ||
108 | // solution.writeSolution(workspace, #[]) | ||
155 | // } | 109 | // } |
156 | // | 110 | // |
157 | // def private static loadMetamodel() { | 111 | // def private static loadMetamodel() { |
158 | // val pckg = FunctionalArchitecturePackage.eINSTANCE | 112 | // val pckg = FunctionalArchitecturePackage.eINSTANCE |
159 | // val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList | 113 | // val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList |
160 | // val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList | 114 | // val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList |
161 | // val List<EEnumLiteral> literals = enums.map[ELiterals].flatten.toList | 115 | // val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList |
162 | // val List<EReference> references = classes.map[EReferences].flatten.toList | 116 | // val List<EReference> references = classes.map[getEReferences].flatten.toList |
163 | // val List<EAttribute> attributes = classes.map[EAttributes].flatten.toList | 117 | // val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList |
164 | // return new EcoreMetamodelDescriptor(classes, #{}, false, enums, literals, references, attributes) | 118 | // return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) |
165 | // } | 119 | // } |
166 | // | 120 | // |
167 | // def private static loadQueries(EcoreMetamodelDescriptor metamodel) { | 121 | // def private static loadQueries(EcoreMetamodelDescriptor metamodel) { |
168 | // val i = Pattern.instance | 122 | // val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance |
169 | // val patterns = i.specifications.toList | 123 | // val patterns = i.specifications.toList |
170 | // val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name == "Constraint"]].toSet | 124 | // val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet |
171 | // val derivedFeatures = new LinkedHashMap | 125 | // val derivedFeatures = new LinkedHashMap |
172 | // derivedFeatures.put(i.type.internalQueryRepresentation, metamodel.attributes.filter[it.name == "type"].head) | 126 | // derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) |
173 | // derivedFeatures.put(i.model.internalQueryRepresentation, metamodel.references.filter[it.name == "model"].head) | 127 | // derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) |
174 | // val res = new ViatraQuerySetDescriptor( | 128 | // val res = new ViatraQuerySetDescriptor( |
175 | // patterns, | 129 | // patterns, |
176 | // wfPatterns, | 130 | // wfPatterns, |
@@ -178,36 +132,37 @@ | |||
178 | // ) | 132 | // ) |
179 | // return res | 133 | // return res |
180 | // } | 134 | // } |
181 | // | 135 | // |
182 | // def static loadPartialModel(ReasonerWorkspace inputs) { | 136 | // def static loadPartialModel(ReasonerWorkspace inputs) { |
183 | // Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); | 137 | // Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); |
184 | // inputs.readModel(EObject, "FAM.xmi").eResource.allContents.toList | 138 | // inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList |
185 | // } | 139 | // } |
186 | // | 140 | // |
187 | // def static writeSolution(LogicResult solution, ReasonerWorkspace workspace, List<EObject> models) { | 141 | // def static writeSolution(LogicResult solution, ReasonerWorkspace workspace, List<EObject> models) { |
188 | // if (solution instanceof ModelResult) { | 142 | // if(solution instanceof ModelResult) { |
189 | // val representations = solution.representation | 143 | // val representations = solution.representation |
190 | // for (representationIndex : 0 ..< representations.size) { | 144 | // for(representationIndex : 0..<representations.size) { |
191 | // val representation = representations.get(representationIndex) | 145 | // val representation = representations.get(representationIndex) |
192 | // val representationNumber = representationIndex + 1 | 146 | // val representationNumber = representationIndex + 1 |
193 | // if (representation instanceof PartialInterpretation) { | 147 | // if(representation instanceof PartialInterpretation) { |
194 | // workspace.writeModel(representation, '''solution«representationNumber».partialinterpretation''') | 148 | // workspace.writeModel(representation, '''solution«representationNumber».partialinterpretation''') |
195 | // val partialInterpretation2GML = new PartialInterpretation2Gml | 149 | // val partialInterpretation2GML = new PartialInterpretation2Gml |
196 | // val gml = partialInterpretation2GML.transform(representation) | 150 | // val gml = partialInterpretation2GML.transform(representation) |
197 | // // ecore2GML.transform(root) | 151 | // //ecore2GML.transform(root) |
198 | // workspace.writeText('''solutionVisualisation.gml''', gml) | 152 | // workspace.writeText('''solutionVisualisation.gml''',gml) |
199 | // | 153 | // |
200 | // } else { | 154 | // } else { |
201 | // workspace.writeText('''solution«representationNumber».txt''', representation.toString) | 155 | // workspace.writeText('''solution«representationNumber».txt''',representation.toString) |
202 | // } | 156 | // } |
203 | // } | 157 | // } |
204 | // for (model : models) { | 158 | // for(model : models) { |
205 | // workspace.writeModel(model, "model.xmi") | 159 | // workspace.writeModel(model,"model.xmi") |
206 | // } | 160 | // } |
207 | // println("Solution saved and visualised") | 161 | // println("Solution saved and visualised") |
208 | // } | 162 | // } |
209 | // } | 163 | // } |
210 | // | 164 | // |
211 | // def static visualizeSolution() { | 165 | // def static visualizeSolution() { |
166 | // | ||
212 | // } | 167 | // } |
213 | //} | 168 | //} |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend index 64914fd0..3d36bbf7 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend | |||
@@ -50,7 +50,7 @@ class VampireTest { | |||
50 | 50 | ||
51 | var LogicProblem problem = builder.createProblem | 51 | var LogicProblem problem = builder.createProblem |
52 | 52 | ||
53 | //* | 53 | /* |
54 | deMorgan(problem) | 54 | deMorgan(problem) |
55 | /*/ | 55 | /*/ |
56 | rockPaperScisors(problem) | 56 | rockPaperScisors(problem) |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbin new file mode 100644 index 00000000..59f57d8b --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin new file mode 100644 index 00000000..01664d90 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin index b60ffe4c..6a36d4d4 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin index 881f927c..93a2e4f4 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore index f3c47b99..15b5afc4 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore | |||
@@ -1,2 +1,4 @@ | |||
1 | /.VampireTest.java._trace | 1 | /.VampireTest.java._trace |
2 | /.SimpleRun.java._trace | 2 | /.SimpleRun.java._trace |
3 | /.DslTest.java._trace | ||
4 | /.MedicalSystem.java._trace | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.java new file mode 100644 index 00000000..7b4849e1 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.java | |||
@@ -0,0 +1,111 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.test; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | ||
5 | import com.google.common.collect.Iterables; | ||
6 | import functionalarchitecture.FunctionalarchitecturePackage; | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | ||
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | ||
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | ||
15 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | ||
16 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | ||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | ||
18 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
19 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | ||
20 | import java.util.Collections; | ||
21 | import java.util.List; | ||
22 | import java.util.Map; | ||
23 | import org.eclipse.emf.common.util.EList; | ||
24 | import org.eclipse.emf.ecore.EAttribute; | ||
25 | import org.eclipse.emf.ecore.EClass; | ||
26 | import org.eclipse.emf.ecore.EEnum; | ||
27 | import org.eclipse.emf.ecore.EEnumLiteral; | ||
28 | import org.eclipse.emf.ecore.EObject; | ||
29 | import org.eclipse.emf.ecore.EReference; | ||
30 | import org.eclipse.emf.ecore.resource.Resource; | ||
31 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
32 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
33 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
34 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
35 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
36 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
37 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
38 | import org.eclipse.xtext.xbase.lib.IteratorExtensions; | ||
39 | import org.eclipse.xtext.xbase.lib.ListExtensions; | ||
40 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | ||
41 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
42 | |||
43 | @SuppressWarnings("all") | ||
44 | public class DslTest { | ||
45 | public static void main(final String[] args) { | ||
46 | try { | ||
47 | StringConcatenation _builder = new StringConcatenation(); | ||
48 | _builder.append("initialModels/"); | ||
49 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | ||
50 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
51 | _builder_1.append("outputDslModels/"); | ||
52 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | ||
53 | workspace.initAndClear(); | ||
54 | InputOutput.<String>println("Input and output workspaces are created"); | ||
55 | final EcoreMetamodelDescriptor metamodel = DslTest.loadMetamodel(); | ||
56 | final List<EObject> partialModel = DslTest.loadPartialModel(inputs); | ||
57 | InputOutput.<String>println("DSL loaded"); | ||
58 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); | ||
59 | final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); | ||
60 | final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); | ||
61 | final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); | ||
62 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | ||
63 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | ||
64 | final LogicProblem logicProblem = modelGenerationProblem.getOutput(); | ||
65 | InputOutput.<String>println("Problem created"); | ||
66 | LogicResult solution = null; | ||
67 | LogicReasoner reasoner = null; | ||
68 | VampireSolver _vampireSolver = new VampireSolver(); | ||
69 | reasoner = _vampireSolver; | ||
70 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | ||
71 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | ||
72 | it.writeToFile = false; | ||
73 | }; | ||
74 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | ||
75 | solution = reasoner.solve(logicProblem, vampireConfig, workspace); | ||
76 | InputOutput.<String>println("Problem solved"); | ||
77 | } catch (Throwable _e) { | ||
78 | throw Exceptions.sneakyThrow(_e); | ||
79 | } | ||
80 | } | ||
81 | |||
82 | private static EcoreMetamodelDescriptor loadMetamodel() { | ||
83 | final FunctionalarchitecturePackage pckg = FunctionalarchitecturePackage.eINSTANCE; | ||
84 | final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class)); | ||
85 | final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class)); | ||
86 | final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> { | ||
87 | return it.getELiterals(); | ||
88 | }; | ||
89 | final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function))); | ||
90 | final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> { | ||
91 | return it.getEReferences(); | ||
92 | }; | ||
93 | final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1))); | ||
94 | final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> { | ||
95 | return it.getEAttributes(); | ||
96 | }; | ||
97 | final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2))); | ||
98 | return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes); | ||
99 | } | ||
100 | |||
101 | private static List<EObject> loadPartialModel(final ReasonerWorkspace inputs) { | ||
102 | List<EObject> _xblockexpression = null; | ||
103 | { | ||
104 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
105 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
106 | _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl); | ||
107 | _xblockexpression = IteratorExtensions.<EObject>toList(inputs.<EObject>readModel(EObject.class, "FunctionalArchitectureModel.xmi").eResource().getAllContents()); | ||
108 | } | ||
109 | return _xblockexpression; | ||
110 | } | ||
111 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java new file mode 100644 index 00000000..d4f53d65 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java | |||
@@ -0,0 +1,78 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.test; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | ||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | ||
6 | import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage; | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage; | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage; | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | ||
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; | ||
13 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
14 | import java.util.Map; | ||
15 | import org.eclipse.emf.common.util.URI; | ||
16 | import org.eclipse.emf.ecore.EObject; | ||
17 | import org.eclipse.emf.ecore.resource.Resource; | ||
18 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; | ||
19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
20 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
21 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
22 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
23 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | ||
24 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
25 | |||
26 | @SuppressWarnings("all") | ||
27 | public class MedicalSystem { | ||
28 | public static void main(final String[] args) { | ||
29 | try { | ||
30 | MedicalSystem.init(); | ||
31 | StringConcatenation _builder = new StringConcatenation(); | ||
32 | _builder.append("outputModels/"); | ||
33 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); | ||
34 | workspace.initAndClear(); | ||
35 | final LogicProblem root = MedicalSystem.load(); | ||
36 | InputOutput.<String>println("Problem Loaded"); | ||
37 | LogicResult solution = null; | ||
38 | LogicReasoner reasoner = null; | ||
39 | VampireSolver _vampireSolver = new VampireSolver(); | ||
40 | reasoner = _vampireSolver; | ||
41 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | ||
42 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | ||
43 | it.writeToFile = false; | ||
44 | }; | ||
45 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | ||
46 | solution = reasoner.solve(root, vampireConfig, workspace); | ||
47 | InputOutput.<String>println("Problem Solved"); | ||
48 | } catch (Throwable _e) { | ||
49 | throw Exceptions.sneakyThrow(_e); | ||
50 | } | ||
51 | } | ||
52 | |||
53 | protected static LogicProblem load() { | ||
54 | LogicProblem _xblockexpression = null; | ||
55 | { | ||
56 | final ResourceSetImpl resourceSet = new ResourceSetImpl(); | ||
57 | final Resource resource = resourceSet.getResource(URI.createURI("inputLPs/newMedicalSystem.logicproblem"), true); | ||
58 | EObject _get = resource.getContents().get(0); | ||
59 | final LogicProblem root = ((LogicProblem) _get); | ||
60 | _xblockexpression = root; | ||
61 | } | ||
62 | return _xblockexpression; | ||
63 | } | ||
64 | |||
65 | protected static void init() { | ||
66 | LogiclanguagePackage.eINSTANCE.eClass(); | ||
67 | LogicproblemPackage.eINSTANCE.eClass(); | ||
68 | Ecore2logicannotationsPackage.eINSTANCE.eClass(); | ||
69 | Viatra2LogicAnnotationsPackage.eINSTANCE.eClass(); | ||
70 | final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; | ||
71 | final Map<String, Object> map = reg.getExtensionToFactoryMap(); | ||
72 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
73 | map.put("logicproblem", _xMIResourceFactoryImpl); | ||
74 | XMIResourceFactoryImpl _xMIResourceFactoryImpl_1 = new XMIResourceFactoryImpl(); | ||
75 | map.put("tptp", _xMIResourceFactoryImpl_1); | ||
76 | VampireLanguageStandaloneSetup.doSetup(); | ||
77 | } | ||
78 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java index 73c413b3..d02174f7 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java | |||
@@ -63,7 +63,7 @@ public class VampireTest { | |||
63 | final URI logicURI = URI.createFileURI("output/files/logProb.logicproblem"); | 63 | final URI logicURI = URI.createFileURI("output/files/logProb.logicproblem"); |
64 | final Resource logRes = rs.createResource(logicURI); | 64 | final Resource logRes = rs.createResource(logicURI); |
65 | LogicProblem problem = VampireTest.builder.createProblem(); | 65 | LogicProblem problem = VampireTest.builder.createProblem(); |
66 | VampireTest.deMorgan(problem); | 66 | VampireTest.rockPaperScisors(problem); |
67 | logRes.getContents().add(problem); | 67 | logRes.getContents().add(problem); |
68 | logRes.save(Collections.EMPTY_MAP); | 68 | logRes.save(Collections.EMPTY_MAP); |
69 | InputOutput.<String>println("Problem Created"); | 69 | InputOutput.<String>println("Problem Created"); |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore new file mode 100644 index 00000000..2c8a0d43 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore | |||
@@ -0,0 +1,2 @@ | |||
1 | /.SimpleRun.java._trace | ||
2 | /.MedicalSystem.java._trace | ||