@rsconcept/rstool 0.10.3 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -33
- package/dist/agent-workflow-Gk0Vfnv1.d.ts +64 -0
- package/dist/analysis-LLnPhmGa.d.ts +23 -0
- package/dist/{common-DxLg3eXX.d.ts → common-DHJalS-Q.d.ts} +6 -1
- package/dist/constituenta-DnGR6bnM.d.ts +54 -0
- package/dist/diagnostic-D9yl_mEL.d.ts +19 -0
- package/dist/evaluation-Cns8BFm4.d.ts +31 -0
- package/dist/index.d.ts +11 -11
- package/dist/index.js +1 -2
- package/dist/mappers/model-adapter.d.ts +3 -3
- package/dist/mappers/schema-adapter.d.ts +4 -4
- package/dist/mappers/types.d.ts +6 -2
- package/dist/mappers/types.js +2 -0
- package/dist/mappers/types.js.map +1 -1
- package/dist/{model-value-SFAVj0dw.d.ts → model-value-BbonPzMz.d.ts} +14 -3
- package/dist/models/agent-workflow.d.ts +2 -0
- package/dist/models/agent-workflow.js +1 -0
- package/dist/models/analysis.d.ts +1 -1
- package/dist/models/common.d.ts +1 -1
- package/dist/models/constituenta.d.ts +2 -2
- package/dist/models/diagnostic.d.ts +1 -1
- package/dist/models/evaluation.d.ts +2 -2
- package/dist/models/index.d.ts +11 -11
- package/dist/models/index.js +2 -2
- package/dist/models/model-value.d.ts +2 -2
- package/dist/models/rstool-agent.d.ts +1 -1
- package/dist/models/rstool-agent.js +1 -1
- package/dist/models/session.d.ts +1 -1
- package/dist/models/tool-contract.d.ts +2 -2
- package/dist/models/tool-contract.js +2 -1
- package/dist/models/tool-contract.js.map +1 -1
- package/dist/models-Bw6Uum8i.js +685 -0
- package/dist/models-Bw6Uum8i.js.map +1 -0
- package/dist/rstool-agent-D2cQze_b.d.ts +71 -0
- package/dist/session/session-store.d.ts +18 -5
- package/dist/session/session-store.js +1 -64
- package/dist/{session-BPgsE80c.d.ts → session-ChexW8i7.d.ts} +11 -8
- package/dist/tool-contract-0uRGhEfW.d.ts +164 -0
- package/dist/wrapper/client.d.ts +23 -0
- package/dist/wrapper/client.js +17 -0
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/stdio-wrapper.js +75 -63
- package/dist/wrapper/stdio-wrapper.js.map +1 -1
- package/docs/CONSTITUENTA.md +2 -2
- package/docs/DIAGNOSTICS.md +6 -5
- package/docs/MODEL-TESTING.md +3 -3
- package/docs/PORTAL-API.md +24 -18
- package/examples/README.md +1 -1
- package/examples/agent-client.ts +11 -41
- package/examples/build-chocolate-nim-rsform.ts +21 -70
- package/examples/chocolate-nim/build-rsform.ts +23 -18
- package/examples/chocolate-nim/build-rsmodel.ts +10 -12
- package/examples/chocolate-nim/rsform-session.json +290 -290
- package/examples/chocolate-nim/rsmodel-session.json +291 -291
- package/examples/expression-bank/bank-constituents.ts +304 -53
- package/examples/expression-bank/build-rsform.ts +19 -16
- package/examples/expression-bank/rsform-session.json +1551 -1551
- package/examples/kinship/build-rsform.ts +23 -18
- package/examples/kinship/build-rsmodel.ts +16 -16
- package/examples/kinship/rsform-session.json +219 -219
- package/examples/kinship/rsmodel-session.json +221 -221
- package/examples/kinship/session.ts +19 -21
- package/examples/movd/build-rsform.ts +23 -18
- package/examples/movd/build-rsmodel.ts +18 -20
- package/examples/movd/rsform-session.json +262 -262
- package/examples/movd/rsmodel-session.json +264 -264
- package/examples/sample/build-rsform.ts +18 -51
- package/examples/sample/build-rsmodel.ts +25 -44
- package/examples/sample/rsform-session.json +10 -7
- package/examples/sample/rsmodel-session.json +36 -33
- package/examples/template-apply/build-rsform.ts +27 -24
- package/examples/template-apply/rsform-session.json +48 -48
- package/package.json +4 -2
- package/skills/rstool-helper/EXAMPLES.md +44 -116
- package/skills/rstool-helper/GUIDE.md +40 -25
- package/skills/rstool-helper/REFERENCE.md +40 -177
- package/src/index.ts +24 -17
- package/src/mappers/portal-adapter.ts +49 -0
- package/src/mappers/types.ts +4 -0
- package/src/models/agent-workflow.ts +66 -0
- package/src/models/analysis.ts +7 -0
- package/src/models/common.ts +7 -0
- package/src/models/constituenta.ts +24 -6
- package/src/models/diagnostic.ts +4 -0
- package/src/models/evaluation.ts +11 -0
- package/src/models/import-detect.test.ts +66 -0
- package/src/models/import-detect.ts +42 -0
- package/src/models/import-export.ts +24 -0
- package/src/models/index.ts +22 -14
- package/src/models/model-value.ts +12 -0
- package/src/models/portal-json.test.ts +38 -0
- package/src/models/portal-json.ts +54 -1
- package/src/models/rstool-agent.test.ts +698 -146
- package/src/models/rstool-agent.ts +392 -92
- package/src/models/session.ts +8 -5
- package/src/models/tool-contract.ts +81 -42
- package/src/session/batch-apply.test.ts +123 -0
- package/src/session/batch-apply.ts +82 -0
- package/src/session/persistence.test.ts +63 -0
- package/src/session/persistence.ts +69 -0
- package/src/session/session-store.ts +76 -6
- package/src/wrapper/client.test.ts +58 -0
- package/src/wrapper/client.ts +23 -0
- package/src/wrapper/stdio-handler.test.ts +101 -0
- package/src/wrapper/stdio-handler.ts +195 -0
- package/src/wrapper/stdio-wrapper.ts +4 -187
- package/dist/analysis-JiwOYDKx.d.ts +0 -16
- package/dist/constituenta-Dnd6iToB.d.ts +0 -36
- package/dist/diagnostic-BMYvciz8.d.ts +0 -15
- package/dist/evaluation-CCVYH0wA.d.ts +0 -21
- package/dist/index-uhkmwruf.d.ts +0 -46
- package/dist/rstool-agent-BZi5jO1y.js +0 -158
- package/dist/rstool-agent-BZi5jO1y.js.map +0 -1
- package/dist/rstool-agent-pRaPnZay.d.ts +0 -35
- package/dist/session/session-store.js.map +0 -1
- package/dist/tool-contract-n1ghUOrK.d.ts +0 -32
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
|
-
"contractVersion": "
|
|
2
|
+
"contractVersion": "2.0.0",
|
|
3
3
|
"state": {
|
|
4
|
-
"sessionId": "
|
|
4
|
+
"sessionId": "9c7ee71c-73c3-48e4-adf9-778055d4efa1",
|
|
5
5
|
"alias": "",
|
|
6
6
|
"title": "",
|
|
7
7
|
"comment": "",
|
|
8
|
-
"createdAt": "2026-
|
|
9
|
-
"updatedAt": "2026-
|
|
8
|
+
"createdAt": "2026-07-01T17:12:46.165Z",
|
|
9
|
+
"updatedAt": "2026-07-01T17:13:06.465Z",
|
|
10
10
|
"revisions": [
|
|
11
11
|
{
|
|
12
|
-
"revisionId": "
|
|
13
|
-
"at": "2026-
|
|
12
|
+
"revisionId": "e1721f47-a1f3-4632-abf4-74ef743c51fb",
|
|
13
|
+
"at": "2026-07-01T17:12:46.201Z",
|
|
14
14
|
"message": "КС «родственные отношения»: браки, пол, сиблинги; ∆ ⊆ ⊂ ⊄ ∨ ⇒ ⇔ bool red Pr1,2 Fi1,2 pr1,2, упакованные кванторы"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
"revisionId": "
|
|
18
|
-
"at": "2026-
|
|
17
|
+
"revisionId": "1a244230-2941-401e-97e2-4d1e7079e93c",
|
|
18
|
+
"at": "2026-07-01T17:13:06.465Z",
|
|
19
19
|
"message": "Модель kinship: D3 непуст; A1 card(X1)≤10 выполняется"
|
|
20
20
|
}
|
|
21
21
|
],
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"cstType": "basic",
|
|
27
27
|
"definitionFormal": "",
|
|
28
28
|
"term": "люди",
|
|
29
|
-
"convention": "Базисное множество людей предметной области «родственные отношения».",
|
|
30
29
|
"definitionText": "",
|
|
30
|
+
"convention": "Базисное множество людей предметной области «родственные отношения».",
|
|
31
31
|
"analysis": {
|
|
32
32
|
"success": true,
|
|
33
33
|
"type": {
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"cstType": "structure",
|
|
48
48
|
"definitionFormal": "ℬ(X1×X1)",
|
|
49
49
|
"term": "родитель-ребенок",
|
|
50
|
-
"convention": "Множество пар: родитель и его ребёнок. Порядок в паре задаётся конвенцией на предметной области.",
|
|
51
50
|
"definitionText": "",
|
|
51
|
+
"convention": "Множество пар: родитель и его ребёнок. Порядок в паре задаётся конвенцией на предметной области.",
|
|
52
52
|
"analysis": {
|
|
53
53
|
"success": true,
|
|
54
54
|
"type": {
|
|
@@ -92,6 +92,57 @@
|
|
|
92
92
|
"diagnostics": []
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
|
+
{
|
|
96
|
+
"id": 5,
|
|
97
|
+
"alias": "D2",
|
|
98
|
+
"cstType": "term",
|
|
99
|
+
"definitionFormal": "Pr2(S1)",
|
|
100
|
+
"term": "потомки",
|
|
101
|
+
"definitionText": "Люди, являющиеся ребёнком хотя бы в одном отношении родитель — ребёнок",
|
|
102
|
+
"convention": "",
|
|
103
|
+
"analysis": {
|
|
104
|
+
"success": true,
|
|
105
|
+
"type": {
|
|
106
|
+
"typeID": 5,
|
|
107
|
+
"base": {
|
|
108
|
+
"typeID": 3,
|
|
109
|
+
"baseID": "X1"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"valueClass": "value",
|
|
113
|
+
"diagnostics": []
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": 59,
|
|
118
|
+
"alias": "D13",
|
|
119
|
+
"cstType": "term",
|
|
120
|
+
"definitionFormal": "Pr2,1(S1)",
|
|
121
|
+
"term": "пары ребёнок — родитель",
|
|
122
|
+
"definitionText": "Все отношения ребёнок — родитель как пары людей",
|
|
123
|
+
"convention": "",
|
|
124
|
+
"analysis": {
|
|
125
|
+
"success": true,
|
|
126
|
+
"type": {
|
|
127
|
+
"typeID": 5,
|
|
128
|
+
"base": {
|
|
129
|
+
"typeID": 4,
|
|
130
|
+
"factors": [
|
|
131
|
+
{
|
|
132
|
+
"typeID": 3,
|
|
133
|
+
"baseID": "X1"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"typeID": 3,
|
|
137
|
+
"baseID": "X1"
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"valueClass": "value",
|
|
143
|
+
"diagnostics": []
|
|
144
|
+
}
|
|
145
|
+
},
|
|
95
146
|
{
|
|
96
147
|
"id": 4,
|
|
97
148
|
"alias": "F1",
|
|
@@ -161,27 +212,6 @@
|
|
|
161
212
|
"diagnostics": []
|
|
162
213
|
}
|
|
163
214
|
},
|
|
164
|
-
{
|
|
165
|
-
"id": 5,
|
|
166
|
-
"alias": "D2",
|
|
167
|
-
"cstType": "term",
|
|
168
|
-
"definitionFormal": "Pr2(S1)",
|
|
169
|
-
"term": "потомки",
|
|
170
|
-
"definitionText": "Люди, являющиеся ребёнком хотя бы в одном отношении родитель — ребёнок",
|
|
171
|
-
"convention": "",
|
|
172
|
-
"analysis": {
|
|
173
|
-
"success": true,
|
|
174
|
-
"type": {
|
|
175
|
-
"typeID": 5,
|
|
176
|
-
"base": {
|
|
177
|
-
"typeID": 3,
|
|
178
|
-
"baseID": "X1"
|
|
179
|
-
}
|
|
180
|
-
},
|
|
181
|
-
"valueClass": "value",
|
|
182
|
-
"diagnostics": []
|
|
183
|
-
}
|
|
184
|
-
},
|
|
185
215
|
{
|
|
186
216
|
"id": 6,
|
|
187
217
|
"alias": "F2",
|
|
@@ -215,6 +245,23 @@
|
|
|
215
245
|
"diagnostics": []
|
|
216
246
|
}
|
|
217
247
|
},
|
|
248
|
+
{
|
|
249
|
+
"id": 67,
|
|
250
|
+
"alias": "T1",
|
|
251
|
+
"cstType": "statement",
|
|
252
|
+
"definitionFormal": "∀(μ,ν)∈S1 μ∉F2[ν]",
|
|
253
|
+
"term": "родитель не потомок ребёнка",
|
|
254
|
+
"definitionText": "В каждой паре родитель — ребёнок родитель не является потомком ребёнка",
|
|
255
|
+
"convention": "",
|
|
256
|
+
"analysis": {
|
|
257
|
+
"success": true,
|
|
258
|
+
"type": {
|
|
259
|
+
"typeID": 6
|
|
260
|
+
},
|
|
261
|
+
"valueClass": "value",
|
|
262
|
+
"diagnostics": []
|
|
263
|
+
}
|
|
264
|
+
},
|
|
218
265
|
{
|
|
219
266
|
"id": 7,
|
|
220
267
|
"alias": "F3",
|
|
@@ -341,8 +388,8 @@
|
|
|
341
388
|
"cstType": "structure",
|
|
342
389
|
"definitionFormal": "ℬ(X1)",
|
|
343
390
|
"term": "мужчины",
|
|
344
|
-
"convention": "Пол человека устанавливается в соответствии с документами",
|
|
345
391
|
"definitionText": "",
|
|
392
|
+
"convention": "Пол человека устанавливается в соответствии с документами",
|
|
346
393
|
"analysis": {
|
|
347
394
|
"success": true,
|
|
348
395
|
"type": {
|
|
@@ -362,8 +409,8 @@
|
|
|
362
409
|
"cstType": "structure",
|
|
363
410
|
"definitionFormal": "ℬ(X1)",
|
|
364
411
|
"term": "женщины",
|
|
365
|
-
"convention": "Пол человека устанавливается в соответствии с документами",
|
|
366
412
|
"definitionText": "",
|
|
413
|
+
"convention": "Пол человека устанавливается в соответствии с документами",
|
|
367
414
|
"analysis": {
|
|
368
415
|
"success": true,
|
|
369
416
|
"type": {
|
|
@@ -377,31 +424,14 @@
|
|
|
377
424
|
"diagnostics": []
|
|
378
425
|
}
|
|
379
426
|
},
|
|
380
|
-
{
|
|
381
|
-
"id": 15,
|
|
382
|
-
"alias": "A2",
|
|
383
|
-
"cstType": "axiom",
|
|
384
|
-
"definitionFormal": "S2∪S3=X1 & S2∩S3=∅",
|
|
385
|
-
"term": "разбиение людей по полу",
|
|
386
|
-
"definitionText": "Каждый человек является либо мужчиной, либо женщиной",
|
|
387
|
-
"convention": "",
|
|
388
|
-
"analysis": {
|
|
389
|
-
"success": true,
|
|
390
|
-
"type": {
|
|
391
|
-
"typeID": 6
|
|
392
|
-
},
|
|
393
|
-
"valueClass": "value",
|
|
394
|
-
"diagnostics": []
|
|
395
|
-
}
|
|
396
|
-
},
|
|
397
427
|
{
|
|
398
428
|
"id": 41,
|
|
399
429
|
"alias": "S4",
|
|
400
430
|
"cstType": "structure",
|
|
401
431
|
"definitionFormal": "ℬ(S2×S3)",
|
|
402
432
|
"term": "браки",
|
|
403
|
-
"convention": "Действующие браки",
|
|
404
433
|
"definitionText": "",
|
|
434
|
+
"convention": "Действующие браки",
|
|
405
435
|
"analysis": {
|
|
406
436
|
"success": true,
|
|
407
437
|
"type": {
|
|
@@ -487,6 +517,78 @@
|
|
|
487
517
|
"diagnostics": []
|
|
488
518
|
}
|
|
489
519
|
},
|
|
520
|
+
{
|
|
521
|
+
"id": 50,
|
|
522
|
+
"alias": "A4",
|
|
523
|
+
"cstType": "axiom",
|
|
524
|
+
"definitionFormal": "card(S4)=card(D4) & card(S4)=card(D5)",
|
|
525
|
+
"term": "единственность браков",
|
|
526
|
+
"definitionText": "Каждый человек может состоять только в одном браке",
|
|
527
|
+
"convention": "",
|
|
528
|
+
"analysis": {
|
|
529
|
+
"success": true,
|
|
530
|
+
"type": {
|
|
531
|
+
"typeID": 6
|
|
532
|
+
},
|
|
533
|
+
"valueClass": "value",
|
|
534
|
+
"diagnostics": []
|
|
535
|
+
}
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"id": 57,
|
|
539
|
+
"alias": "D12",
|
|
540
|
+
"cstType": "term",
|
|
541
|
+
"definitionFormal": "S2∆S3",
|
|
542
|
+
"term": "люди",
|
|
543
|
+
"definitionText": "Совокупность мужчин и женщин как симметрическая разность разбиения по полу",
|
|
544
|
+
"convention": "",
|
|
545
|
+
"analysis": {
|
|
546
|
+
"success": true,
|
|
547
|
+
"type": {
|
|
548
|
+
"typeID": 5,
|
|
549
|
+
"base": {
|
|
550
|
+
"typeID": 3,
|
|
551
|
+
"baseID": "X1"
|
|
552
|
+
}
|
|
553
|
+
},
|
|
554
|
+
"valueClass": "value",
|
|
555
|
+
"diagnostics": []
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"id": 69,
|
|
560
|
+
"alias": "T2",
|
|
561
|
+
"cstType": "statement",
|
|
562
|
+
"definitionFormal": "S2⊄S3",
|
|
563
|
+
"term": "не все мужчины — женщины",
|
|
564
|
+
"definitionText": "Множество мужчин не содержится в множестве женщин",
|
|
565
|
+
"convention": "",
|
|
566
|
+
"analysis": {
|
|
567
|
+
"success": true,
|
|
568
|
+
"type": {
|
|
569
|
+
"typeID": 6
|
|
570
|
+
},
|
|
571
|
+
"valueClass": "value",
|
|
572
|
+
"diagnostics": []
|
|
573
|
+
}
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
"id": 15,
|
|
577
|
+
"alias": "A2",
|
|
578
|
+
"cstType": "axiom",
|
|
579
|
+
"definitionFormal": "S2∪S3=X1 & S2∩S3=∅",
|
|
580
|
+
"term": "разбиение людей по полу",
|
|
581
|
+
"definitionText": "Каждый человек является либо мужчиной, либо женщиной",
|
|
582
|
+
"convention": "",
|
|
583
|
+
"analysis": {
|
|
584
|
+
"success": true,
|
|
585
|
+
"type": {
|
|
586
|
+
"typeID": 6
|
|
587
|
+
},
|
|
588
|
+
"valueClass": "value",
|
|
589
|
+
"diagnostics": []
|
|
590
|
+
}
|
|
591
|
+
},
|
|
490
592
|
{
|
|
491
593
|
"id": 45,
|
|
492
594
|
"alias": "F31",
|
|
@@ -524,33 +626,27 @@
|
|
|
524
626
|
}
|
|
525
627
|
},
|
|
526
628
|
{
|
|
527
|
-
"id":
|
|
528
|
-
"alias": "
|
|
629
|
+
"id": 48,
|
|
630
|
+
"alias": "F34",
|
|
529
631
|
"cstType": "function",
|
|
530
|
-
"definitionFormal": "[
|
|
531
|
-
"term": "жены
|
|
532
|
-
"definitionText": "
|
|
632
|
+
"definitionFormal": "[α∈D5] debool(F31[{α}])",
|
|
633
|
+
"term": "муж жены",
|
|
634
|
+
"definitionText": "",
|
|
533
635
|
"convention": "",
|
|
534
636
|
"analysis": {
|
|
535
637
|
"success": true,
|
|
536
638
|
"type": {
|
|
537
639
|
"typeID": 7,
|
|
538
640
|
"result": {
|
|
539
|
-
"typeID":
|
|
540
|
-
"
|
|
541
|
-
"typeID": 3,
|
|
542
|
-
"baseID": "X1"
|
|
543
|
-
}
|
|
641
|
+
"typeID": 3,
|
|
642
|
+
"baseID": "X1"
|
|
544
643
|
},
|
|
545
644
|
"args": [
|
|
546
645
|
{
|
|
547
|
-
"alias": "
|
|
646
|
+
"alias": "α",
|
|
548
647
|
"type": {
|
|
549
|
-
"typeID":
|
|
550
|
-
"
|
|
551
|
-
"typeID": 3,
|
|
552
|
-
"baseID": "X1"
|
|
553
|
-
}
|
|
648
|
+
"typeID": 3,
|
|
649
|
+
"baseID": "X1"
|
|
554
650
|
}
|
|
555
651
|
}
|
|
556
652
|
]
|
|
@@ -560,12 +656,12 @@
|
|
|
560
656
|
}
|
|
561
657
|
},
|
|
562
658
|
{
|
|
563
|
-
"id":
|
|
564
|
-
"alias": "
|
|
659
|
+
"id": 46,
|
|
660
|
+
"alias": "F32",
|
|
565
661
|
"cstType": "function",
|
|
566
|
-
"definitionFormal": "[σ∈ℬ(X1)]
|
|
567
|
-
"term": "
|
|
568
|
-
"definitionText": "
|
|
662
|
+
"definitionFormal": "[σ∈ℬ(X1)] Pr2(Fi1[σ](S4))",
|
|
663
|
+
"term": "жены группы людей",
|
|
664
|
+
"definitionText": "Жёны людей из данной группы людей",
|
|
569
665
|
"convention": "",
|
|
570
666
|
"analysis": {
|
|
571
667
|
"success": true,
|
|
@@ -595,36 +691,6 @@
|
|
|
595
691
|
"diagnostics": []
|
|
596
692
|
}
|
|
597
693
|
},
|
|
598
|
-
{
|
|
599
|
-
"id": 48,
|
|
600
|
-
"alias": "F34",
|
|
601
|
-
"cstType": "function",
|
|
602
|
-
"definitionFormal": "[α∈D5] debool(F31[{α}])",
|
|
603
|
-
"term": "муж жены",
|
|
604
|
-
"definitionText": "",
|
|
605
|
-
"convention": "",
|
|
606
|
-
"analysis": {
|
|
607
|
-
"success": true,
|
|
608
|
-
"type": {
|
|
609
|
-
"typeID": 7,
|
|
610
|
-
"result": {
|
|
611
|
-
"typeID": 3,
|
|
612
|
-
"baseID": "X1"
|
|
613
|
-
},
|
|
614
|
-
"args": [
|
|
615
|
-
{
|
|
616
|
-
"alias": "α",
|
|
617
|
-
"type": {
|
|
618
|
-
"typeID": 3,
|
|
619
|
-
"baseID": "X1"
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
]
|
|
623
|
-
},
|
|
624
|
-
"valueClass": "value",
|
|
625
|
-
"diagnostics": []
|
|
626
|
-
}
|
|
627
|
-
},
|
|
628
694
|
{
|
|
629
695
|
"id": 49,
|
|
630
696
|
"alias": "F35",
|
|
@@ -656,38 +722,66 @@
|
|
|
656
722
|
}
|
|
657
723
|
},
|
|
658
724
|
{
|
|
659
|
-
"id":
|
|
660
|
-
"alias": "
|
|
661
|
-
"cstType": "
|
|
662
|
-
"definitionFormal": "
|
|
663
|
-
"term": "
|
|
664
|
-
"definitionText": "
|
|
725
|
+
"id": 54,
|
|
726
|
+
"alias": "D9",
|
|
727
|
+
"cstType": "term",
|
|
728
|
+
"definitionFormal": "I{(σ, γ) | σ:∈D4; γ:=F35[σ]}",
|
|
729
|
+
"term": "пары муж — жена",
|
|
730
|
+
"definitionText": "Множество пар, состоящих из мужа и его жены",
|
|
665
731
|
"convention": "",
|
|
666
732
|
"analysis": {
|
|
667
733
|
"success": true,
|
|
668
734
|
"type": {
|
|
669
|
-
"typeID":
|
|
735
|
+
"typeID": 5,
|
|
736
|
+
"base": {
|
|
737
|
+
"typeID": 4,
|
|
738
|
+
"factors": [
|
|
739
|
+
{
|
|
740
|
+
"typeID": 3,
|
|
741
|
+
"baseID": "X1"
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
"typeID": 3,
|
|
745
|
+
"baseID": "X1"
|
|
746
|
+
}
|
|
747
|
+
]
|
|
748
|
+
}
|
|
670
749
|
},
|
|
671
750
|
"valueClass": "value",
|
|
672
751
|
"diagnostics": []
|
|
673
752
|
}
|
|
674
753
|
},
|
|
675
754
|
{
|
|
676
|
-
"id":
|
|
677
|
-
"alias": "
|
|
678
|
-
"cstType": "
|
|
679
|
-
"definitionFormal": "
|
|
680
|
-
"term": "
|
|
681
|
-
"definitionText": "
|
|
755
|
+
"id": 47,
|
|
756
|
+
"alias": "F33",
|
|
757
|
+
"cstType": "function",
|
|
758
|
+
"definitionFormal": "[σ∈ℬ(X1)] F31[σ]∪F32[σ]",
|
|
759
|
+
"term": "супруги группы людей",
|
|
760
|
+
"definitionText": "Супруги людей из данной группы людей",
|
|
682
761
|
"convention": "",
|
|
683
762
|
"analysis": {
|
|
684
763
|
"success": true,
|
|
685
764
|
"type": {
|
|
686
|
-
"typeID":
|
|
687
|
-
"
|
|
688
|
-
"typeID":
|
|
689
|
-
"
|
|
690
|
-
|
|
765
|
+
"typeID": 7,
|
|
766
|
+
"result": {
|
|
767
|
+
"typeID": 5,
|
|
768
|
+
"base": {
|
|
769
|
+
"typeID": 3,
|
|
770
|
+
"baseID": "X1"
|
|
771
|
+
}
|
|
772
|
+
},
|
|
773
|
+
"args": [
|
|
774
|
+
{
|
|
775
|
+
"alias": "σ",
|
|
776
|
+
"type": {
|
|
777
|
+
"typeID": 5,
|
|
778
|
+
"base": {
|
|
779
|
+
"typeID": 3,
|
|
780
|
+
"baseID": "X1"
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
]
|
|
691
785
|
},
|
|
692
786
|
"valueClass": "value",
|
|
693
787
|
"diagnostics": []
|
|
@@ -736,29 +830,20 @@
|
|
|
736
830
|
}
|
|
737
831
|
},
|
|
738
832
|
{
|
|
739
|
-
"id":
|
|
740
|
-
"alias": "
|
|
833
|
+
"id": 51,
|
|
834
|
+
"alias": "D7",
|
|
741
835
|
"cstType": "term",
|
|
742
|
-
"definitionFormal": "
|
|
743
|
-
"term": "
|
|
744
|
-
"definitionText": "
|
|
836
|
+
"definitionFormal": "D{ξ∈X1 | card(F33[{ξ}]\\{ξ})>1}",
|
|
837
|
+
"term": "люди в нескольких браках",
|
|
838
|
+
"definitionText": "Люди, у которых больше одного супруга",
|
|
745
839
|
"convention": "",
|
|
746
840
|
"analysis": {
|
|
747
841
|
"success": true,
|
|
748
842
|
"type": {
|
|
749
843
|
"typeID": 5,
|
|
750
844
|
"base": {
|
|
751
|
-
"typeID":
|
|
752
|
-
"
|
|
753
|
-
{
|
|
754
|
-
"typeID": 3,
|
|
755
|
-
"baseID": "X1"
|
|
756
|
-
},
|
|
757
|
-
{
|
|
758
|
-
"typeID": 3,
|
|
759
|
-
"baseID": "X1"
|
|
760
|
-
}
|
|
761
|
-
]
|
|
845
|
+
"typeID": 3,
|
|
846
|
+
"baseID": "X1"
|
|
762
847
|
}
|
|
763
848
|
},
|
|
764
849
|
"valueClass": "value",
|
|
@@ -1612,27 +1697,6 @@
|
|
|
1612
1697
|
"diagnostics": []
|
|
1613
1698
|
}
|
|
1614
1699
|
},
|
|
1615
|
-
{
|
|
1616
|
-
"id": 57,
|
|
1617
|
-
"alias": "D12",
|
|
1618
|
-
"cstType": "term",
|
|
1619
|
-
"definitionFormal": "S2∆S3",
|
|
1620
|
-
"term": "люди",
|
|
1621
|
-
"definitionText": "Совокупность мужчин и женщин как симметрическая разность разбиения по полу",
|
|
1622
|
-
"convention": "",
|
|
1623
|
-
"analysis": {
|
|
1624
|
-
"success": true,
|
|
1625
|
-
"type": {
|
|
1626
|
-
"typeID": 5,
|
|
1627
|
-
"base": {
|
|
1628
|
-
"typeID": 3,
|
|
1629
|
-
"baseID": "X1"
|
|
1630
|
-
}
|
|
1631
|
-
},
|
|
1632
|
-
"valueClass": "value",
|
|
1633
|
-
"diagnostics": []
|
|
1634
|
-
}
|
|
1635
|
-
},
|
|
1636
1700
|
{
|
|
1637
1701
|
"id": 58,
|
|
1638
1702
|
"alias": "F36",
|
|
@@ -1666,36 +1730,6 @@
|
|
|
1666
1730
|
"diagnostics": []
|
|
1667
1731
|
}
|
|
1668
1732
|
},
|
|
1669
|
-
{
|
|
1670
|
-
"id": 59,
|
|
1671
|
-
"alias": "D13",
|
|
1672
|
-
"cstType": "term",
|
|
1673
|
-
"definitionFormal": "Pr2,1(S1)",
|
|
1674
|
-
"term": "пары ребёнок — родитель",
|
|
1675
|
-
"definitionText": "Все отношения ребёнок — родитель как пары людей",
|
|
1676
|
-
"convention": "",
|
|
1677
|
-
"analysis": {
|
|
1678
|
-
"success": true,
|
|
1679
|
-
"type": {
|
|
1680
|
-
"typeID": 5,
|
|
1681
|
-
"base": {
|
|
1682
|
-
"typeID": 4,
|
|
1683
|
-
"factors": [
|
|
1684
|
-
{
|
|
1685
|
-
"typeID": 3,
|
|
1686
|
-
"baseID": "X1"
|
|
1687
|
-
},
|
|
1688
|
-
{
|
|
1689
|
-
"typeID": 3,
|
|
1690
|
-
"baseID": "X1"
|
|
1691
|
-
}
|
|
1692
|
-
]
|
|
1693
|
-
}
|
|
1694
|
-
},
|
|
1695
|
-
"valueClass": "value",
|
|
1696
|
-
"diagnostics": []
|
|
1697
|
-
}
|
|
1698
|
-
},
|
|
1699
1733
|
{
|
|
1700
1734
|
"id": 64,
|
|
1701
1735
|
"alias": "A6",
|
|
@@ -1730,40 +1764,6 @@
|
|
|
1730
1764
|
"diagnostics": []
|
|
1731
1765
|
}
|
|
1732
1766
|
},
|
|
1733
|
-
{
|
|
1734
|
-
"id": 67,
|
|
1735
|
-
"alias": "T1",
|
|
1736
|
-
"cstType": "statement",
|
|
1737
|
-
"definitionFormal": "∀(μ,ν)∈S1 μ∉F2[ν]",
|
|
1738
|
-
"term": "родитель не потомок ребёнка",
|
|
1739
|
-
"definitionText": "В каждой паре родитель — ребёнок родитель не является потомком ребёнка",
|
|
1740
|
-
"convention": "",
|
|
1741
|
-
"analysis": {
|
|
1742
|
-
"success": true,
|
|
1743
|
-
"type": {
|
|
1744
|
-
"typeID": 6
|
|
1745
|
-
},
|
|
1746
|
-
"valueClass": "value",
|
|
1747
|
-
"diagnostics": []
|
|
1748
|
-
}
|
|
1749
|
-
},
|
|
1750
|
-
{
|
|
1751
|
-
"id": 69,
|
|
1752
|
-
"alias": "T2",
|
|
1753
|
-
"cstType": "statement",
|
|
1754
|
-
"definitionFormal": "S2⊄S3",
|
|
1755
|
-
"term": "не все мужчины — женщины",
|
|
1756
|
-
"definitionText": "Множество мужчин не содержится в множестве женщин",
|
|
1757
|
-
"convention": "",
|
|
1758
|
-
"analysis": {
|
|
1759
|
-
"success": true,
|
|
1760
|
-
"type": {
|
|
1761
|
-
"typeID": 6
|
|
1762
|
-
},
|
|
1763
|
-
"valueClass": "value",
|
|
1764
|
-
"diagnostics": []
|
|
1765
|
-
}
|
|
1766
|
-
},
|
|
1767
1767
|
{
|
|
1768
1768
|
"id": 12,
|
|
1769
1769
|
"alias": "A1",
|
|
@@ -50,20 +50,20 @@ function getModelItem(model: SessionModelState, id: number): unknown {
|
|
|
50
50
|
|
|
51
51
|
export class KinshipModelSession {
|
|
52
52
|
private genderByName: GenderRegistry = {};
|
|
53
|
+
private readonly client: RSToolWrapperClient;
|
|
54
|
+
public readonly sessionId: string;
|
|
55
|
+
public readonly sessionPath: string;
|
|
53
56
|
|
|
54
|
-
public constructor(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
public constructor(client: RSToolWrapperClient, sessionId: string, sessionPath: string) {
|
|
58
|
+
this.client = client;
|
|
59
|
+
this.sessionId = sessionId;
|
|
60
|
+
this.sessionPath = sessionPath;
|
|
61
|
+
}
|
|
59
62
|
|
|
60
|
-
public static async open(
|
|
61
|
-
client: RSToolWrapperClient,
|
|
62
|
-
sessionPath: string
|
|
63
|
-
): Promise<KinshipModelSession> {
|
|
63
|
+
public static async open(client: RSToolWrapperClient, sessionPath: string): Promise<KinshipModelSession> {
|
|
64
64
|
const absolutePath = resolve(process.cwd(), sessionPath);
|
|
65
65
|
const payload = await readFile(absolutePath, 'utf8');
|
|
66
|
-
const imported = await client.call<{ sessionId: string }>('
|
|
66
|
+
const imported = await client.call<{ sessionId: string }>('importData', { payload });
|
|
67
67
|
const session = new KinshipModelSession(client, imported.sessionId, absolutePath);
|
|
68
68
|
await session.loadGenderFromModel();
|
|
69
69
|
return session;
|
|
@@ -97,23 +97,21 @@ export class KinshipModelSession {
|
|
|
97
97
|
|
|
98
98
|
private async applyModelValues(binding: BasicBinding, s1: S1Value): Promise<SessionModelState> {
|
|
99
99
|
const { s2, s3 } = deriveGenderSets(binding, this.genderByName);
|
|
100
|
-
return this.client.call<SessionModelState>('
|
|
100
|
+
return this.client.call<SessionModelState>('setModelValues', {
|
|
101
101
|
sessionId: this.sessionId,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
]
|
|
109
|
-
}
|
|
102
|
+
set: [
|
|
103
|
+
{ target: X1_ID, value: binding },
|
|
104
|
+
{ target: S1_ID, value: s1 },
|
|
105
|
+
{ target: S2_ID, value: s2 },
|
|
106
|
+
{ target: S3_ID, value: s3 }
|
|
107
|
+
]
|
|
110
108
|
});
|
|
111
109
|
}
|
|
112
110
|
|
|
113
111
|
private async clearModelValues(): Promise<SessionModelState> {
|
|
114
|
-
return this.client.call<SessionModelState>('
|
|
112
|
+
return this.client.call<SessionModelState>('setModelValues', {
|
|
115
113
|
sessionId: this.sessionId,
|
|
116
|
-
|
|
114
|
+
clear: [X1_ID, S1_ID, S2_ID, S3_ID]
|
|
117
115
|
});
|
|
118
116
|
}
|
|
119
117
|
|