@rsconcept/rstool 1.9.0 → 2.0.0
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 +3 -3
- package/dist/mappers/model-adapter.d.ts +1 -2
- package/dist/mappers/schema-adapter.d.ts +1 -2
- package/dist/mappers/types.d.ts +4 -5
- package/dist/models/rstool-agent.js +1 -2
- package/dist/session/session-store.d.ts +3 -3
- package/dist/session/session-store.js +1 -2
- package/dist/wrapper/client.d.ts +3 -4
- package/docs/BRIEF.md +93 -0
- package/docs/CONCEPTUAL-SCHEMA.md +16 -1
- package/docs/CONSTRUCTIONS.md +14 -2
- package/docs/DIAGNOSTICS.md +3 -2
- package/docs/DOMAIN.md +12 -0
- package/docs/METHOD.md +208 -0
- package/docs/PORTAL-API.md +38 -285
- package/docs/PORTAL-MODELS.md +24 -0
- package/docs/PORTAL-OSS.md +56 -0
- package/docs/PORTAL-PUBLISH.md +39 -0
- package/docs/PORTAL-READ.md +301 -0
- package/docs/README.md +7 -4
- package/docs/REQUIREMENTS.md +61 -0
- package/docs/SYNTAX.md +4 -3
- package/docs/TYPIFICATION.md +1 -1
- package/docs/brief.schema.json +173 -0
- package/examples/README.md +16 -2
- package/examples/access-control/NOTES.md +23 -0
- package/examples/access-control/anti/collapsed.json +439 -0
- package/examples/access-control/anti/weakened.json +439 -0
- package/examples/access-control/brief-v1.json +231 -0
- package/examples/access-control/brief.json +310 -0
- package/examples/access-control/build-rsform.ts +151 -0
- package/examples/access-control/requirements-v1.md +9 -0
- package/examples/access-control/requirements-v2.md +4 -0
- package/examples/access-control/rsform-session-v1.json +439 -0
- package/examples/access-control/rsform-session.json +523 -0
- package/examples/audit-diagnostics.ts +9 -1
- package/examples/briefs.test.ts +126 -0
- package/examples/clinic-booking/NOTES.md +24 -0
- package/examples/clinic-booking/anti/collapsed.json +615 -0
- package/examples/clinic-booking/anti/species-as-genus.json +568 -0
- package/examples/clinic-booking/brief-v1.json +332 -0
- package/examples/clinic-booking/brief.json +405 -0
- package/examples/clinic-booking/build-rsform.ts +174 -0
- package/examples/clinic-booking/requirements-v1.md +9 -0
- package/examples/clinic-booking/requirements-v2.md +4 -0
- package/examples/clinic-booking/rsform-session-v1.json +615 -0
- package/examples/clinic-booking/rsform-session.json +700 -0
- package/examples/diagnostics-utils.ts +26 -0
- package/examples/kinship/brief.json +337 -0
- package/examples/kinship/build-rsform.ts +7 -4
- package/examples/kinship/rsform-session.json +20 -63
- package/examples/kinship/rsmodel-session.json +14 -14
- package/examples/kinship-subordination/NOTES.md +49 -0
- package/examples/kinship-subordination/brief.json +161 -0
- package/examples/kinship-subordination/build-rsform.ts +100 -0
- package/examples/kinship-subordination/rsform-session.json +795 -0
- package/examples/library-loans/NOTES.md +46 -0
- package/examples/library-loans/anti/collapsed.json +481 -0
- package/examples/library-loans/anti/species-as-genus.json +334 -0
- package/examples/library-loans/anti/uncovered.json +406 -0
- package/examples/library-loans/anti/weakened.json +464 -0
- package/examples/library-loans/brief-v1.json +340 -0
- package/examples/library-loans/brief.json +502 -0
- package/examples/library-loans/build-rsform.ts +239 -0
- package/examples/library-loans/requirements-v1.md +11 -0
- package/examples/library-loans/requirements-v2.md +5 -0
- package/examples/library-loans/rsform-session-v1.json +481 -0
- package/examples/library-loans/rsform-session.json +652 -0
- package/examples/library-loans/source-markup.md +18 -0
- package/examples/movd/brief.json +220 -0
- package/examples/movd/build-rsform.ts +5 -2
- package/examples/movd/rsform-session.json +14 -46
- package/examples/subordination/NOTES.md +59 -0
- package/examples/subordination/anti/collapsed.json +556 -0
- package/examples/subordination/anti/single-relation.json +125 -0
- package/examples/subordination/anti/transitive.json +573 -0
- package/examples/subordination/anti/weakened.json +539 -0
- package/examples/subordination/brief.json +386 -0
- package/examples/subordination/build-rsform.ts +63 -0
- package/examples/subordination/constants.ts +115 -0
- package/examples/subordination/rsform-session.json +556 -0
- package/examples/subordination/source-markup.md +19 -0
- package/examples/subordination/source.md +40 -0
- package/package.json +18 -10
- package/skills/INSTALL.md +28 -29
- package/skills/README.md +25 -10
- package/skills/rs-core/SKILL.md +56 -0
- package/skills/rs-explain/SKILL.md +28 -0
- package/skills/rs-explicate/SKILL.md +71 -0
- package/skills/rs-interpret/SKILL.md +67 -0
- package/skills/rs-portal/SKILL.md +51 -0
- package/skills/rs-review/SKILL.md +79 -0
- package/skills/rs-scope/SKILL.md +67 -0
- package/skills/rs-synthesis/SKILL.md +52 -0
- package/skills/rstool/SKILL.md +70 -0
- package/skills/rstool-helper/GUIDE.md +18 -299
- package/skills/rstool-helper/SKILL.md +8 -58
- package/skills/{rstool-helper → rstool-runtime}/EXAMPLES.md +16 -12
- package/skills/{rstool-helper → rstool-runtime}/REFERENCE.md +7 -5
- package/skills/rstool-runtime/SKILL.md +96 -0
- package/skills/scripts/brief-check.test.ts +165 -0
- package/skills/scripts/brief-check.ts +826 -0
- package/skills/scripts/check-brief.ts +94 -0
- package/skills/scripts/rstool-skills.mjs +119 -0
- package/skills/scripts/skill-stubs.test.ts +48 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"status": "confirmed",
|
|
4
|
+
"approach": "education",
|
|
5
|
+
"object": "Ориентировка субъекта в ситуации и выбор действия",
|
|
6
|
+
"task": "Учебная схема: развести состав ситуации, значимое для субъекта, рассматриваемые и выбранное действия",
|
|
7
|
+
"source": "examples/movd",
|
|
8
|
+
"restrictions": [
|
|
9
|
+
{
|
|
10
|
+
"id": "L1",
|
|
11
|
+
"excludes": "время и последовательность эпизодов",
|
|
12
|
+
"inexpressible": ["раньше рассмотренное действие", "смена выбора"]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "L2",
|
|
16
|
+
"excludes": "мотивы и оценки действий",
|
|
17
|
+
"inexpressible": ["лучшее действие", "причина выбора"]
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"expressiveness": [
|
|
21
|
+
{
|
|
22
|
+
"id": "E1",
|
|
23
|
+
"concept": "состав ситуации",
|
|
24
|
+
"via": "фильтр S1 по ситуации",
|
|
25
|
+
"constituent": "F1"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "E2",
|
|
29
|
+
"concept": "значимые элементы для субъекта в ситуации",
|
|
30
|
+
"via": "фильтр S2 по паре (субъект, ситуация)",
|
|
31
|
+
"constituent": "F2"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "E3",
|
|
35
|
+
"concept": "пространство действий субъекта в ситуации",
|
|
36
|
+
"via": "фильтр S3",
|
|
37
|
+
"constituent": "F3"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "E4",
|
|
41
|
+
"concept": "выбранное действие",
|
|
42
|
+
"via": "единственный элемент фильтра S4",
|
|
43
|
+
"constituent": "F4"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "E5",
|
|
47
|
+
"concept": "эпизоды ориентировки",
|
|
48
|
+
"via": "Pr1,2 выделения значимого",
|
|
49
|
+
"constituent": "D6"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"distinctions": [
|
|
53
|
+
{
|
|
54
|
+
"id": "V1",
|
|
55
|
+
"between": ["E1", "D5"],
|
|
56
|
+
"text": "элементы ситуации ≠ значимые элементы"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "V2",
|
|
60
|
+
"between": ["E3", "E4"],
|
|
61
|
+
"text": "рассматриваемые действия ≠ выбранное"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"invariants": [
|
|
65
|
+
{
|
|
66
|
+
"id": "I1",
|
|
67
|
+
"text": "Значимые элементы входят в состав ситуации",
|
|
68
|
+
"constituent": "A1",
|
|
69
|
+
"positive": "SC1",
|
|
70
|
+
"negative": "SC2"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "I2",
|
|
74
|
+
"text": "Рассматривать действия можно только после ориентировки",
|
|
75
|
+
"constituent": "A2",
|
|
76
|
+
"positive": "SC1",
|
|
77
|
+
"negative": "SC3"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "I3",
|
|
81
|
+
"text": "В эпизоде выбрано одно действие",
|
|
82
|
+
"constituent": "A3",
|
|
83
|
+
"positive": "SC1",
|
|
84
|
+
"negative": "SC4"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "I4",
|
|
88
|
+
"text": "Выбирают из рассмотренных действий",
|
|
89
|
+
"constituent": "A4",
|
|
90
|
+
"positive": "SC1",
|
|
91
|
+
"negative": "SC5"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"decisions": [
|
|
95
|
+
{
|
|
96
|
+
"id": "DC1",
|
|
97
|
+
"topic": "эпизод",
|
|
98
|
+
"alternatives": ["эпизод как сущность X#", "эпизод — пара (субъект, ситуация) в тройках S2–S4"],
|
|
99
|
+
"choice": "пары (субъект, ситуация) внутри S2, S3, S4",
|
|
100
|
+
"rationale": "эпизод не имеет собственных свойств, кроме субъекта и ситуации (L1)"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "DC2",
|
|
104
|
+
"topic": "выбор действия",
|
|
105
|
+
"alternatives": ["функция эпизод → действие", "отношение S4 и аксиома единственности A3"],
|
|
106
|
+
"choice": "S4 и A3",
|
|
107
|
+
"rationale": "выбор бывает не в каждом эпизоде; функция требовала бы всюду определённости"
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"scenarios": [
|
|
111
|
+
{
|
|
112
|
+
"id": "SC1",
|
|
113
|
+
"title": "Субъект выделил a и выбрал go из двух действий",
|
|
114
|
+
"values": {
|
|
115
|
+
"X1": ["sit1"],
|
|
116
|
+
"X2": ["a", "b", "c", "d"],
|
|
117
|
+
"X3": ["u"],
|
|
118
|
+
"X4": ["go", "wait", "run"],
|
|
119
|
+
"S1": [
|
|
120
|
+
["sit1", "a"],
|
|
121
|
+
["sit1", "b"],
|
|
122
|
+
["sit1", "c"]
|
|
123
|
+
],
|
|
124
|
+
"S2": [["u", "sit1", "a"]],
|
|
125
|
+
"S3": [
|
|
126
|
+
["u", "sit1", "go"],
|
|
127
|
+
["u", "sit1", "wait"]
|
|
128
|
+
],
|
|
129
|
+
"S4": [["u", "sit1", "go"]]
|
|
130
|
+
},
|
|
131
|
+
"expect": [
|
|
132
|
+
{
|
|
133
|
+
"of": "F1",
|
|
134
|
+
"args": ["sit1"],
|
|
135
|
+
"value": ["a", "b", "c"]
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"of": "F2",
|
|
139
|
+
"args": ["u", "sit1"],
|
|
140
|
+
"value": ["a"]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"of": "F3",
|
|
144
|
+
"args": ["u", "sit1"],
|
|
145
|
+
"value": ["go", "wait"]
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"of": "F4",
|
|
149
|
+
"args": ["u", "sit1"],
|
|
150
|
+
"value": "go"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"of": "D6",
|
|
154
|
+
"value": [["u", "sit1"]]
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"id": "SC2",
|
|
160
|
+
"title": "Значимый элемент вне ситуации",
|
|
161
|
+
"base": "SC1",
|
|
162
|
+
"values": {
|
|
163
|
+
"S2": [["u", "sit1", "d"]]
|
|
164
|
+
},
|
|
165
|
+
"expect": [
|
|
166
|
+
{
|
|
167
|
+
"of": "A1",
|
|
168
|
+
"holds": false
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"id": "SC3",
|
|
174
|
+
"title": "Действия без ориентировки",
|
|
175
|
+
"base": "SC1",
|
|
176
|
+
"values": {
|
|
177
|
+
"S2": []
|
|
178
|
+
},
|
|
179
|
+
"expect": [
|
|
180
|
+
{
|
|
181
|
+
"of": "A2",
|
|
182
|
+
"holds": false
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"id": "SC4",
|
|
188
|
+
"title": "Два выбранных действия",
|
|
189
|
+
"base": "SC1",
|
|
190
|
+
"values": {
|
|
191
|
+
"S4": [
|
|
192
|
+
["u", "sit1", "go"],
|
|
193
|
+
["u", "sit1", "wait"]
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
"expect": [
|
|
197
|
+
{
|
|
198
|
+
"of": "A3",
|
|
199
|
+
"holds": false
|
|
200
|
+
}
|
|
201
|
+
]
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"id": "SC5",
|
|
205
|
+
"title": "Выбрано нерассмотренное действие",
|
|
206
|
+
"base": "SC1",
|
|
207
|
+
"values": {
|
|
208
|
+
"S4": [["u", "sit1", "run"]]
|
|
209
|
+
},
|
|
210
|
+
"expect": [
|
|
211
|
+
{
|
|
212
|
+
"of": "A4",
|
|
213
|
+
"holds": false
|
|
214
|
+
}
|
|
215
|
+
]
|
|
216
|
+
}
|
|
217
|
+
],
|
|
218
|
+
"assumptions": [],
|
|
219
|
+
"openQuestions": []
|
|
220
|
+
}
|
|
@@ -7,7 +7,7 @@ type DraftBatch = { draft: AgentConstituentaPatch };
|
|
|
7
7
|
|
|
8
8
|
import { DEFAULT_RSFORM_SESSION_PATH } from './constants';
|
|
9
9
|
import { MOVD_MODEL_SET } from './model-demo';
|
|
10
|
-
import { assertCleanDiagnostics } from '../diagnostics-utils';
|
|
10
|
+
import { assertCleanDiagnostics, assertReady, describeBrief } from '../diagnostics-utils';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Учебная RSForm «МОВД» по Portal rsforms/838 (сокращённо).
|
|
@@ -20,7 +20,9 @@ async function run() {
|
|
|
20
20
|
|
|
21
21
|
try {
|
|
22
22
|
await client.waitUntilReady();
|
|
23
|
-
const session = await client.call<{ sessionId: string; contractVersion: string }>('createSession'
|
|
23
|
+
const session = await client.call<{ sessionId: string; contractVersion: string }>('createSession', {
|
|
24
|
+
initial: { comment: describeBrief(resolve(import.meta.dirname, 'brief.json')) }
|
|
25
|
+
});
|
|
24
26
|
|
|
25
27
|
const drafts: DraftBatch[] = [
|
|
26
28
|
{
|
|
@@ -331,6 +333,7 @@ async function run() {
|
|
|
331
333
|
const exported = await client.call<string>('exportSession', {
|
|
332
334
|
sessionId: session.sessionId
|
|
333
335
|
});
|
|
336
|
+
await assertReady(exported, resolve(import.meta.dirname, 'brief.json'), 'movd RSForm');
|
|
334
337
|
const outputPath = resolve(process.cwd(), DEFAULT_RSFORM_SESSION_PATH);
|
|
335
338
|
await writeFile(outputPath, exported, 'utf8');
|
|
336
339
|
console.log(`Exported: ${outputPath}`);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"contractVersion": "
|
|
2
|
+
"contractVersion": "3.3.0",
|
|
3
3
|
"state": {
|
|
4
|
-
"sessionId": "
|
|
4
|
+
"sessionId": "41f94491-79cd-4c59-9d87-46f796ae2117",
|
|
5
5
|
"alias": "",
|
|
6
6
|
"title": "",
|
|
7
|
-
"comment": "",
|
|
8
|
-
"createdAt": "2026-
|
|
9
|
-
"updatedAt": "2026-
|
|
7
|
+
"comment": "Ориентировка субъекта в ситуации и выбор действия. Учебная схема: развести состав ситуации, значимое для субъекта, рассматриваемые и выбранное действия.\nL1. Исключено: время и последовательность эпизодов; невыразимо: раньше рассмотренное действие, смена выбора.\nL2. Исключено: мотивы и оценки действий; невыразимо: лучшее действие, причина выбора.\nDC1. эпизод: пары (субъект, ситуация) внутри S2, S3, S4 — эпизод не имеет собственных свойств, кроме субъекта и ситуации (L1).\nDC2. выбор действия: S4 и A3 — выбор бывает не в каждом эпизоде; функция требовала бы всюду определённости.",
|
|
8
|
+
"createdAt": "2026-10-25T18:35:08.051Z",
|
|
9
|
+
"updatedAt": "2026-10-25T18:35:08.134Z",
|
|
10
10
|
"revisions": [
|
|
11
11
|
{
|
|
12
|
-
"revisionId": "
|
|
13
|
-
"at": "2026-
|
|
12
|
+
"revisionId": "d2b34f98-3494-427d-a4bb-b8eec60863a4",
|
|
13
|
+
"at": "2026-10-25T18:35:08.134Z",
|
|
14
14
|
"message": "КС «МОВД» (rsforms/838): Pr1,2, Fi1,2, pr1,2 на ℬ(X3×X1×X2) и ℬ(X3×X1×X4)"
|
|
15
15
|
}
|
|
16
16
|
],
|
|
@@ -766,62 +766,30 @@
|
|
|
766
766
|
"id": 5,
|
|
767
767
|
"type": "ℬ(X1×X1)",
|
|
768
768
|
"value": [
|
|
769
|
-
[
|
|
770
|
-
|
|
771
|
-
0,
|
|
772
|
-
0
|
|
773
|
-
],
|
|
774
|
-
[
|
|
775
|
-
-111,
|
|
776
|
-
0,
|
|
777
|
-
1
|
|
778
|
-
]
|
|
769
|
+
[-111, 0, 0],
|
|
770
|
+
[-111, 0, 1]
|
|
779
771
|
]
|
|
780
772
|
},
|
|
781
773
|
{
|
|
782
774
|
"id": 6,
|
|
783
775
|
"type": "ℬ(X1×X1×X1)",
|
|
784
|
-
"value": [
|
|
785
|
-
[
|
|
786
|
-
-111,
|
|
787
|
-
0,
|
|
788
|
-
0,
|
|
789
|
-
0
|
|
790
|
-
]
|
|
791
|
-
]
|
|
776
|
+
"value": [[-111, 0, 0, 0]]
|
|
792
777
|
},
|
|
793
778
|
{
|
|
794
779
|
"id": 7,
|
|
795
780
|
"type": "ℬ(X1×X1×X1)",
|
|
796
781
|
"value": [
|
|
797
|
-
[
|
|
798
|
-
|
|
799
|
-
0,
|
|
800
|
-
0,
|
|
801
|
-
0
|
|
802
|
-
],
|
|
803
|
-
[
|
|
804
|
-
-111,
|
|
805
|
-
0,
|
|
806
|
-
0,
|
|
807
|
-
1
|
|
808
|
-
]
|
|
782
|
+
[-111, 0, 0, 0],
|
|
783
|
+
[-111, 0, 0, 1]
|
|
809
784
|
]
|
|
810
785
|
},
|
|
811
786
|
{
|
|
812
787
|
"id": 8,
|
|
813
788
|
"type": "ℬ(X1×X1×X1)",
|
|
814
|
-
"value": [
|
|
815
|
-
[
|
|
816
|
-
-111,
|
|
817
|
-
0,
|
|
818
|
-
0,
|
|
819
|
-
0
|
|
820
|
-
]
|
|
821
|
-
]
|
|
789
|
+
"value": [[-111, 0, 0, 0]]
|
|
822
790
|
}
|
|
823
791
|
]
|
|
824
792
|
}
|
|
825
793
|
},
|
|
826
794
|
"diagnostics": []
|
|
827
|
-
}
|
|
795
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# «Начальники и подчинённые»: ход рассуждения
|
|
2
|
+
|
|
3
|
+
Учебная микротеория по разбору Т2 §4.2.1 — полный путь этапов 1–5. Метод — [`docs/METHOD.md`](../../docs/METHOD.md). Файлы: [`source.md`](source.md) (фрагменты книги), [`source-markup.md`](source-markup.md) (расчистка), [`brief.json`](brief.json) (бриф), [`constants.ts`](constants.ts) и [`build-rsform.ts`](build-rsform.ts) (схема и антипримеры), [`rsform-session.json`](rsform-session.json).
|
|
4
|
+
|
|
5
|
+
Проверка: `pnpm --filter @rsconcept/rstool exec tsx skills/scripts/check-brief.ts --session examples/subordination/rsform-session.json --brief examples/subordination/brief.json`.
|
|
6
|
+
|
|
7
|
+
Цитаты — по изданию: З. А. Кучкаров, «Методы концептуального анализа и синтеза…», т. 2 (М.: Концепт, 2008).
|
|
8
|
+
|
|
9
|
+
## Этап 1 · Постановка
|
|
10
|
+
|
|
11
|
+
**Задача.** «Построить концептуальную схему, порождающую разнообразие отношений “начальник – подчиненный”» (§4.2.1.1). Конкретной практической задачи нет, поэтому, как пишет автор, «ограничения будут выбираться произвольно» (§4.2.1.2); `approach: education`.
|
|
12
|
+
|
|
13
|
+
**Ограничения задают предметную область отрицательно, и у каждого названа цена.** Из властных отношений остаётся только подчинение — «демократия» и «единовластие» невыразимы (`L1`). Время исключено: «понятие “мой подчиненный, который является моим бывшим начальником” – невыразимо в этой теории» (`L2`). Процедуры и кадры (`L3`), психология — «сам себе приказываю» (`L4`), способы получения власти (`L5`). Остаются «бестелесные, бездуховные субъекты, между которыми расставлены отношения подчинения».
|
|
14
|
+
|
|
15
|
+
**Требования к выразительным средствам** (§4.2.1.3): прямое и косвенное подчинение, линии прямого подчинения, коллективное руководство группой и одним человеком, подчинение внутри коллективного руководства, «чистое» коллегиальное руководство и коллегиальное с единоначалием. Пример «армия» из того же параграфа стал сценарием `SC1`: главнокомандующий начальствует над армией, начальник генштаба подчинён главнокомандующему, а главнокомандующий подчинён генштабу.
|
|
16
|
+
|
|
17
|
+
## Этап 2 · Ядро
|
|
18
|
+
|
|
19
|
+
**Исходные понятия как гипотеза (`DC1`).** Первая гипотеза — два понятия, «начальник» и «подчинённый». Проверка: «могут ли начальники сами быть подчиненными… Известное содержание однозначно говорит, что могут… существует более высокая абстракция» (§4.2.1.4). Исходное понятие — люди.
|
|
20
|
+
|
|
21
|
+
**Три гипотезы основного отношения (`DC2`).** Единичное отношение «человек — человек», множественное «совокупность — совокупность» или оба: «Постулируя одно из двух или оба отношения, мы либо делаем теорию избыточной…, либо недостаточной» (§4.2.1.5.1). Сначала выбрано единичное — как простейшее.
|
|
22
|
+
|
|
23
|
+
**Проверка выразительности меняет гипотезу (`DC3` отменяет `DC2`).** На атрибутивном уровне: если у человека три начальника, «сказать, что А, С, D – коллективный начальник В было бы неправомерно. Т.е. это отношение не дает понятия “коллективного руководства”» (§4.2.1.7). Требования `E4`–`E8` невыразимы — меняется ядро, а не формулы. Множественное отношение `S1: ℬ(ℬ(X1)×ℬ(X1))` «покрывает понятийные отношения предыдущего»: единоличное руководство — пара с одноэлементной первой совокупностью (`D2`). Решение не стирается, а отменяется новым — с `supersedes`.
|
|
24
|
+
|
|
25
|
+
**Свойства как решения (`DC5`–`DC10`).** По книге (§4.2.1.5.3):
|
|
26
|
+
|
|
27
|
+
| Свойство | Решение | Почему |
|
|
28
|
+
| :----------------- | :----------- | :------------------------------------------------------------------------------------------------ |
|
|
29
|
+
| антирефлексивность | аксиома `A1` | «сам себе не начальник» — отсечение психологии (`L4`) |
|
|
30
|
+
| универсальность | без аксиомы | «отсутствие аксиом – тоже решение, т.к. это соответствует содержанию» |
|
|
31
|
+
| симметричность | без аксиомы | подчинение многоаспектно: капитан команды подчинён нападающему — своему начальнику отдела (`SC4`) |
|
|
32
|
+
| транзитивность | без аксиомы | «вассал моего вассала – не мой вассал» |
|
|
33
|
+
| однозначность | без аксиомы | «человек может руководить многими и быть подчинен многим» |
|
|
34
|
+
| непустота сторон | аксиома `A2` | в книге подразумевается (§4.2.1.8); в ЯРЭ записано явно |
|
|
35
|
+
|
|
36
|
+
Антирефлексивность во множественном отношении записана по одной паре: никто не входит сразу в руководящую и руководимую совокупность одного отношения. В разных отношениях — может; книга оставляет это вопросом (§4.2.1.7), а здесь он решён так, чтобы подчинение внутри коллектива (`E6`) было выразимо.
|
|
37
|
+
|
|
38
|
+
Обратите внимание: циклов книга не запрещает — в `SC1` главнокомандующий и генштаб подчинены друг другу. Аксиома «ацикличность» здесь была бы видом вместо рода: она сделала бы пример «армия» недопустимым.
|
|
39
|
+
|
|
40
|
+
## Этап 3 · Экспликация
|
|
41
|
+
|
|
42
|
+
Развёртывание от требований. Раскрытие структуры: прямое подчинение людей `D1` — пары из руководящей и руководимой совокупностей одного отношения. Обособление: `F1` (прямые подчинённые), `F2` (линии прямого подчинения — замыкание через `R{}`), `F3` (косвенные). Виды руководства — отбор по мощности сторон (`D2`–`D5`). Подчинение внутри совокупности — `F4` с параметром `σ∈ℬ(X1)`, на нём держатся «чистое» коллегиальное руководство `D8` и коллегиальное с единоначалием `D9`.
|
|
43
|
+
|
|
44
|
+
## Этап 4 · Интерпретация
|
|
45
|
+
|
|
46
|
+
`SC1` — армия из §4.2.1.3: генштаб `{chief, s1, s2}` — коллективный начальник главнокомандующего и коллегиальное руководство с единоначалием (начальник генштаба руководит `s1`, `s2`); `{s1, s2}` — «чистое» коллегиальное руководство армией; `cat` вне отношений подчинения. Армия — косвенные подчинённые начальника генштаба: «вассал моего вассала — не мой вассал». `SC4` — футбольная команда: взаимное подчинение допустимо. `SC2`, `SC3` — негативы для `A1`, `A2`.
|
|
47
|
+
|
|
48
|
+
## Антипримеры
|
|
49
|
+
|
|
50
|
+
«Зелёные» схемы (диагностик нет), которые не отвечают брифу. Снимки — [`anti/`](anti/).
|
|
51
|
+
|
|
52
|
+
| Снимок | Ошибка | Что ловит |
|
|
53
|
+
| :-------------------------------------------------- | :---------------------------------------------------------------------- | :-------------------------------------------------------------------- |
|
|
54
|
+
| [`single-relation.json`](anti/single-relation.json) | остановились на первой гипотезе — единичное отношение | требования `E1`–`E10` без конституент; значения сценариев не задаются |
|
|
55
|
+
| [`weakened.json`](anti/weakened.json) | `A1` удалена | `I1` без аксиомы; негатив `SC2`; удаление без решения |
|
|
56
|
+
| [`collapsed.json`](anti/collapsed.json) | «чистое» коллегиальное руководство `D8 := D6` (все коллективы) | `SC1`: значение `D8`; тривиальная формула |
|
|
57
|
+
| [`transitive.json`](anti/transitive.json) | добавлена транзитивность — «подчинённый подчинённого — мой подчинённый» | допустимый сценарий `SC1`: `A3` ложна; противоречит `DC8` |
|
|
58
|
+
|
|
59
|
+
Каждая ошибка проходит анализатор. Ловит её только то, что записано в брифе до формул: требования, решения и сценарии.
|