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

View File

@ -90,6 +90,7 @@ export enum HelpTopic {
UI_RS_EDITOR = 'ui-rsform-editor', UI_RS_EDITOR = 'ui-rsform-editor',
UI_GRAPH_TERM = 'ui-graph-term', UI_GRAPH_TERM = 'ui-graph-term',
UI_FORMULA_TREE = 'ui-formula-tree', UI_FORMULA_TREE = 'ui-formula-tree',
UI_TYPE_GRAPH = 'ui-type-graph',
UI_CST_STATUS = 'ui-rsform-cst-status', UI_CST_STATUS = 'ui-rsform-cst-status',
UI_CST_CLASS = 'ui-rsform-cst-class', UI_CST_CLASS = 'ui-rsform-cst-class',
UI_OSS_GRAPH = 'ui-oss-graph', 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_RS_EDITOR, HelpTopic.INTERFACE],
[HelpTopic.UI_GRAPH_TERM, HelpTopic.INTERFACE], [HelpTopic.UI_GRAPH_TERM, HelpTopic.INTERFACE],
[HelpTopic.UI_FORMULA_TREE, HelpTopic.INTERFACE], [HelpTopic.UI_FORMULA_TREE, HelpTopic.INTERFACE],
[HelpTopic.UI_TYPE_GRAPH, HelpTopic.INTERFACE],
[HelpTopic.UI_CST_STATUS, HelpTopic.INTERFACE], [HelpTopic.UI_CST_STATUS, HelpTopic.INTERFACE],
[HelpTopic.UI_CST_CLASS, HelpTopic.INTERFACE], [HelpTopic.UI_CST_CLASS, HelpTopic.INTERFACE],
[HelpTopic.UI_OSS_GRAPH, 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 HelpRSList from './items/ui/HelpRSList';
import HelpRSMenu from './items/ui/HelpRSMenu'; import HelpRSMenu from './items/ui/HelpRSMenu';
import HelpSubstitutions from './items/ui/HelpSubstitutions'; import HelpSubstitutions from './items/ui/HelpSubstitutions';
import HelpTypeGraph from './items/ui/HelpTypeGraph';
// PDF Viewer setup // PDF Viewer setup
const OFFSET_X_SMALL = 32; 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_RS_EDITOR) return <HelpRSEditor />;
if (topic === HelpTopic.UI_GRAPH_TERM) return <HelpRSGraphTerm />; if (topic === HelpTopic.UI_GRAPH_TERM) return <HelpRSGraphTerm />;
if (topic === HelpTopic.UI_FORMULA_TREE) return <HelpFormulaTree />; 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_STATUS) return <HelpCstStatus />;
if (topic === HelpTopic.UI_CST_CLASS) return <HelpCstClass />; if (topic === HelpTopic.UI_CST_CLASS) return <HelpCstClass />;
if (topic === HelpTopic.UI_OSS_GRAPH) return <HelpOssGraph />; if (topic === HelpTopic.UI_OSS_GRAPH) return <HelpOssGraph />;

View File

@ -20,6 +20,10 @@ function HelpConceptPropagation() {
созданию / удаление / обновлению наследованных конституент. Если удаляемые конституенты находятся в таблице созданию / удаление / обновлению наследованных конституент. Если удаляемые конституенты находятся в таблице
отождествлений одной из операций, то такие отождествления <u>будут автоматические отменены</u>. отождествлений одной из операций, то такие отождествления <u>будут автоматические отменены</u>.
</p> </p>
<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 LinkTopic from '@/components/ui/LinkTopic';
import { HelpTopic } from '@/models/miscellaneous'; import { HelpTopic } from '@/models/miscellaneous';
@ -7,24 +7,27 @@ function HelpRelocateCst() {
<div className='text-justify'> <div className='text-justify'>
<h1>Перенос конституент</h1> <h1>Перенос конституент</h1>
<p> <p>
Перенос конституент операция, при которой выбранные конституенты переносятся в другую КС в рамках одной Перенос конституент операция, при которой выбранные конституенты переносятся из текущей КС (источника) в
другую КС (целевую) в рамках одной <IconOSS size='1rem' className='inline-icon' />{' '}
<LinkTopic text='операционной схемы синтеза' topic={HelpTopic.CC_OSS} />. <LinkTopic text='операционной схемы синтеза' topic={HelpTopic.CC_OSS} />.
</p> </p>
<li> <li>
только для <IconPredecessor size='1rem' className='inline-icon' /> собственных конституент схемы-источника только для <IconPredecessor size='1rem' className='inline-icon' /> собственных конституент источника
</li> </li>
<li> <li>
<IconMoveUp size='1rem' className='inline-icon' /> <IconMoveUp size='1rem' className='inline-icon' />
<IconMoveDown size='1rem' className='inline-icon' /> направление переноса - вверх или вниз по дереву синтеза <IconMoveDown size='1rem' className='inline-icon' /> направление переноса - вверх или вниз по дереву синтеза
</li> </li>
<h2>Перенос вверх</h2>
<li>выбранные конституенты становятся наследованными, а их копии добавляются в целевую КС</li>
<li>нельзя выбирать конституенты, зависящие от конституент других концептуальных схем</li>
<h2>Перенос вниз</h2>
<li> <li>
при переносе вверх собственные конституенты становятся наследованными, а их копии добавляются в целевую КС выбранные конституенты становятся собственными конституентами целевой КС, удаляются из исходной КС и ее
наследников
</li> </li>
<li>
при переносе вниз собственные конституенты становятся собственными конституентами целевой КС и удаляются из
исходной КС
</li>
<li>при переносе вверх нельзя выбирать конституенты, зависящие от конституент КС, отличных от целевой</li>
</div> </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_RS_EDITOR: return 'Редактор конституенты';
case HelpTopic.UI_GRAPH_TERM: return 'Граф термов'; case HelpTopic.UI_GRAPH_TERM: return 'Граф термов';
case HelpTopic.UI_FORMULA_TREE: return 'Дерево разбора'; case HelpTopic.UI_FORMULA_TREE: return 'Дерево разбора';
case HelpTopic.UI_TYPE_GRAPH: return 'Граф ступеней';
case HelpTopic.UI_CST_STATUS: return 'Статус конституенты'; case HelpTopic.UI_CST_STATUS: return 'Статус конституенты';
case HelpTopic.UI_CST_CLASS: return 'Класс конституенты'; case HelpTopic.UI_CST_CLASS: return 'Класс конституенты';
case HelpTopic.UI_OSS_GRAPH: 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_RS_EDITOR: return 'редактирование конституенты';
case HelpTopic.UI_GRAPH_TERM: return 'интерфейс графа термов'; case HelpTopic.UI_GRAPH_TERM: return 'интерфейс графа термов';
case HelpTopic.UI_FORMULA_TREE: return 'просмотр дерева разбора <br/>родоструктурного выражения'; case HelpTopic.UI_FORMULA_TREE: return 'просмотр дерева разбора <br/>родоструктурного выражения';
case HelpTopic.UI_TYPE_GRAPH: return 'просмотр графа ступеней';
case HelpTopic.UI_CST_STATUS: return 'нотация статуса конституенты'; case HelpTopic.UI_CST_STATUS: return 'нотация статуса конституенты';
case HelpTopic.UI_CST_CLASS: return 'нотация класса конституенты'; case HelpTopic.UI_CST_CLASS: return 'нотация класса конституенты';
case HelpTopic.UI_OSS_GRAPH: return 'графическая форма <br/>операционной схемы синтеза'; case HelpTopic.UI_OSS_GRAPH: return 'графическая форма <br/>операционной схемы синтеза';