F: Add TypeGraph manual page

This commit is contained in:
Ivan 2024-11-19 22:30:33 +03:00
parent 581e7caf9c
commit d0793d0e1c
8 changed files with 62 additions and 9 deletions

View File

@ -169,6 +169,7 @@
"Биективная",
"биективной",
"Булеан",
"булеана",
"Бурбаки",
"Бурбакизатор",
"Версионирование",
@ -186,12 +187,14 @@
"конституент",
"Конституента",
"конституентами",
"конституентах",
"конституенте",
"конституенту",
"конституенты",
"Крайнев",
"Кучкаров",
"Кучкарова",
"мультиграфа",
"неинтерпретируемый",
"неитерируемого",
"Никанорова",

View File

@ -5,6 +5,7 @@ import { toast } from 'react-toastify';
import { ReactFlowProvider } from 'reactflow';
import Modal, { ModalProps } from '@/components/ui/Modal';
import { HelpTopic } from '@/models/miscellaneous';
import { IArgumentInfo } from '@/models/rslang';
import { TMGraph } from '@/models/TMGraph';
import { errors } from '@/utils/labels';
@ -36,6 +37,7 @@ function DlgShowTypification({ hideWindow, alias, resultTypification, args }: Dl
readonly
hideWindow={hideWindow}
className='flex flex-col justify-stretch w-[calc(100dvw-3rem)] h-[calc(100dvh-6rem)]'
helpTopic={HelpTopic.UI_TYPE_GRAPH}
>
<ReactFlowProvider>
<MGraphFlow data={graph} />

View File

@ -90,6 +90,7 @@ export enum HelpTopic {
UI_RS_EDITOR = 'ui-rsform-editor',
UI_GRAPH_TERM = 'ui-graph-term',
UI_FORMULA_TREE = 'ui-formula-tree',
UI_TYPE_GRAPH = 'ui-type-graph',
UI_CST_STATUS = 'ui-rsform-cst-status',
UI_CST_CLASS = 'ui-rsform-cst-class',
UI_OSS_GRAPH = 'ui-oss-graph',
@ -140,6 +141,7 @@ export const topicParent = new Map<HelpTopic, HelpTopic>([
[HelpTopic.UI_RS_EDITOR, HelpTopic.INTERFACE],
[HelpTopic.UI_GRAPH_TERM, HelpTopic.INTERFACE],
[HelpTopic.UI_FORMULA_TREE, HelpTopic.INTERFACE],
[HelpTopic.UI_TYPE_GRAPH, HelpTopic.INTERFACE],
[HelpTopic.UI_CST_STATUS, HelpTopic.INTERFACE],
[HelpTopic.UI_CST_CLASS, HelpTopic.INTERFACE],
[HelpTopic.UI_OSS_GRAPH, HelpTopic.INTERFACE],

View File

@ -38,6 +38,7 @@ import HelpRSGraphTerm from './items/ui/HelpRSGraphTerm';
import HelpRSList from './items/ui/HelpRSList';
import HelpRSMenu from './items/ui/HelpRSMenu';
import HelpSubstitutions from './items/ui/HelpSubstitutions';
import HelpTypeGraph from './items/ui/HelpTypeGraph';
// PDF Viewer setup
const OFFSET_X_SMALL = 32;
@ -64,6 +65,7 @@ function TopicPage({ topic }: TopicPageProps) {
if (topic === HelpTopic.UI_RS_EDITOR) return <HelpRSEditor />;
if (topic === HelpTopic.UI_GRAPH_TERM) return <HelpRSGraphTerm />;
if (topic === HelpTopic.UI_FORMULA_TREE) return <HelpFormulaTree />;
if (topic === HelpTopic.UI_TYPE_GRAPH) return <HelpTypeGraph />;
if (topic === HelpTopic.UI_CST_STATUS) return <HelpCstStatus />;
if (topic === HelpTopic.UI_CST_CLASS) return <HelpCstClass />;
if (topic === HelpTopic.UI_OSS_GRAPH) return <HelpOssGraph />;

View File

@ -20,6 +20,10 @@ function HelpConceptPropagation() {
созданию / удаление / обновлению наследованных конституент. Если удаляемые конституенты находятся в таблице
отождествлений одной из операций, то такие отождествления <u>будут автоматические отменены</u>.
</p>
<p>
После отмены отождествления на заново восстановленную конституенту не обновляются ссылки в собственных
конституентах синтезированный схемы.
</p>
<p>
Удаление концептуальной схемы, привязанной к операции приводит к автоматическому удалению всех наследованных
конституент. В дальнейшем можно повторно выполнить как операцию загрузки, так и синтез. Однако дописанные

View File

@ -1,4 +1,4 @@
import { IconMoveDown, IconMoveUp, IconPredecessor } from '@/components/Icons';
import { IconMoveDown, IconMoveUp, IconOSS, IconPredecessor } from '@/components/Icons';
import LinkTopic from '@/components/ui/LinkTopic';
import { HelpTopic } from '@/models/miscellaneous';
@ -7,24 +7,27 @@ function HelpRelocateCst() {
<div className='text-justify'>
<h1>Перенос конституент</h1>
<p>
Перенос конституент операция, при которой выбранные конституенты переносятся в другую КС в рамках одной
Перенос конституент операция, при которой выбранные конституенты переносятся из текущей КС (источника) в
другую КС (целевую) в рамках одной <IconOSS size='1rem' className='inline-icon' />{' '}
<LinkTopic text='операционной схемы синтеза' topic={HelpTopic.CC_OSS} />.
</p>
<li>
только для <IconPredecessor size='1rem' className='inline-icon' /> собственных конституент схемы-источника
только для <IconPredecessor size='1rem' className='inline-icon' /> собственных конституент источника
</li>
<li>
<IconMoveUp size='1rem' className='inline-icon' />
<IconMoveDown size='1rem' className='inline-icon' /> направление переноса - вверх или вниз по дереву синтеза
</li>
<h2>Перенос вверх</h2>
<li>выбранные конституенты становятся наследованными, а их копии добавляются в целевую КС</li>
<li>нельзя выбирать конституенты, зависящие от конституент других концептуальных схем</li>
<h2>Перенос вниз</h2>
<li>
при переносе вверх собственные конституенты становятся наследованными, а их копии добавляются в целевую КС
выбранные конституенты становятся собственными конституентами целевой КС, удаляются из исходной КС и ее
наследников
</li>
<li>
при переносе вниз собственные конституенты становятся собственными конституентами целевой КС и удаляются из
исходной КС
</li>
<li>при переносе вверх нельзя выбирать конституенты, зависящие от конституент КС, отличных от целевой</li>
</div>
);
}

View File

@ -0,0 +1,35 @@
import LinkTopic from '@/components/ui/LinkTopic';
import { useConceptOptions } from '@/context/ConceptOptionsContext';
import { HelpTopic } from '@/models/miscellaneous';
function HelpTypeGraph() {
const { colors } = useConceptOptions();
return (
<div>
<h1>Граф ступеней</h1>
<p>
Граф связей между ступенями, используемыми в данном выражении или{' '}
<LinkTopic text='КС' topic={HelpTopic.CC_OSS} />. Исторически отображался в форме мультиграфа (М-граф). В
Портале кратные ребра представлены перечислением индексов компонент произведения.
</p>
<li>ребра без надписей означают взятие булеана</li>
<li>цифры означают номера компонент декартова произведения</li>
<li>основаниями дерева являются ступени базисных, константных множеств</li>
<li>ступень терм-функции - произведение ступеней результата и аргументов</li>
<li>ступень предикат-функции - произведение ступеней аргументов</li>
<h2>Виды узлов</h2>
<li>
<span style={{ backgroundColor: colors.bgControls }}>ступень-основание</span>
</li>
<li>
<span style={{ backgroundColor: colors.bgTeal }}>ступень-булеан</span>
</li>
<li>
<span style={{ backgroundColor: colors.bgOrange }}>ступень декартова произведения</span>
</li>
</div>
);
}
export default HelpTypeGraph;

View File

@ -376,6 +376,7 @@ export function labelHelpTopic(topic: HelpTopic): string {
case HelpTopic.UI_RS_EDITOR: return 'Редактор конституенты';
case HelpTopic.UI_GRAPH_TERM: return 'Граф термов';
case HelpTopic.UI_FORMULA_TREE: return 'Дерево разбора';
case HelpTopic.UI_TYPE_GRAPH: return 'Граф ступеней';
case HelpTopic.UI_CST_STATUS: return 'Статус конституенты';
case HelpTopic.UI_CST_CLASS: return 'Класс конституенты';
case HelpTopic.UI_OSS_GRAPH: return 'Граф синтеза';
@ -429,6 +430,7 @@ export function describeHelpTopic(topic: HelpTopic): string {
case HelpTopic.UI_RS_EDITOR: return 'редактирование конституенты';
case HelpTopic.UI_GRAPH_TERM: return 'интерфейс графа термов';
case HelpTopic.UI_FORMULA_TREE: return 'просмотр дерева разбора <br/>родоструктурного выражения';
case HelpTopic.UI_TYPE_GRAPH: return 'просмотр графа ступеней';
case HelpTopic.UI_CST_STATUS: return 'нотация статуса конституенты';
case HelpTopic.UI_CST_CLASS: return 'нотация класса конституенты';
case HelpTopic.UI_OSS_GRAPH: return 'графическая форма <br/>операционной схемы синтеза';