Update Help topics

This commit is contained in:
IRBorisov 2024-05-17 15:48:54 +03:00
parent aecb0f70ed
commit b8dd8376ea
18 changed files with 440 additions and 155 deletions

View File

@ -2,9 +2,12 @@
import { useCallback, useMemo, useState } from 'react';
import BadgeHelp from '@/components/info/BadgeHelp';
import GraphUI, { GraphEdge, GraphNode } from '@/components/ui/GraphUI';
import Modal, { ModalProps } from '@/components/ui/Modal';
import Overlay from '@/components/ui/Overlay';
import { useConceptOptions } from '@/context/OptionsContext';
import { HelpTopic } from '@/models/miscellaneous';
import { SyntaxTree } from '@/models/rslang';
import { graphDarkT, graphLightT } from '@/styling/color';
import { colorBgSyntaxTree } from '@/styling/color';
@ -51,6 +54,9 @@ function DlgShowAST({ hideWindow, syntaxTree, expression }: DlgShowASTProps) {
return (
<Modal readonly hideWindow={hideWindow} className='px-6'>
<Overlay position='left-[-1rem] top-[0.25rem]'>
<BadgeHelp topic={HelpTopic.UI_FORMULA_TREE} className='max-w-[32rem]' />
</Overlay>
<div className='my-2 text-lg text-center'>
{!hoverNode ? expression : null}
{hoverNode ? (

View File

@ -13,17 +13,17 @@ import HelpExteor from './items/HelpExteor';
import HelpFormulaTree from './items/HelpFormulaTree';
import HelpInterface from './items/HelpInterface';
import HelpLibrary from './items/HelpLibrary';
import HelpMain from './items/HelpMain';
import HelpPortal from './items/HelpPortal';
import HelpPrivacy from './items/HelpPrivacy';
import HelpRSFormCard from './items/HelpRSFormCard';
import HelpRSFormItems from './items/HelpRSFormItems';
import HelpRSFormMenu from './items/HelpRSFormMenu';
import HelpRSFormMeta from './items/HelpRSFormMeta';
import HelpRSLang from './items/HelpRSLang';
import HelpRSLangCorrect from './items/HelpRSLangCorrect';
import HelpRSLangInterpret from './items/HelpRSLangInterpret';
import HelpRSLangOperations from './items/HelpRSLangOperations';
import HelpRSLangTemplates from './items/HelpRSLangTemplates';
import HelpRSLangTypes from './items/HelpRSLangTypes';
import HelpRSTemplates from './items/HelpRSTemplates';
import HelpTermGraph from './items/HelpTermGraph';
import HelpTerminologyControl from './items/HelpTerminologyControl';
import HelpVersions from './items/HelpVersions';
@ -33,12 +33,12 @@ interface TopicPageProps {
}
function TopicPage({ topic }: TopicPageProps) {
if (topic === HelpTopic.MAIN) return <HelpMain />;
if (topic === HelpTopic.MAIN) return <HelpPortal />;
if (topic === HelpTopic.INTERFACE) return <HelpInterface />;
if (topic === HelpTopic.UI_LIBRARY) return <HelpLibrary />;
if (topic === HelpTopic.UI_RS_MENU) return <HelpRSFormMenu />;
if (topic === HelpTopic.UI_RS_CARD) return <HelpRSFormMeta />;
if (topic === HelpTopic.UI_RS_CARD) return <HelpRSFormCard />;
if (topic === HelpTopic.UI_RS_LIST) return <HelpRSFormItems />;
if (topic === HelpTopic.UI_RS_EDITOR) return <HelpCstEditor />;
if (topic === HelpTopic.UI_GRAPH_TERM) return <HelpTermGraph />;
@ -57,7 +57,7 @@ function TopicPage({ topic }: TopicPageProps) {
if (topic === HelpTopic.RSL_CORRECT) return <HelpRSLangCorrect />;
if (topic === HelpTopic.RSL_INTERPRET) return <HelpRSLangInterpret />;
if (topic === HelpTopic.RSL_OPERATIONS) return <HelpRSLangOperations />;
if (topic === HelpTopic.RSL_TEMPLATES) return <HelpRSTemplates />;
if (topic === HelpTopic.RSL_TEMPLATES) return <HelpRSLangTemplates />;
if (topic === HelpTopic.TERM_CONTROL) return <HelpTerminologyControl />;
if (topic === HelpTopic.VERSIONS) return <HelpVersions />;

View File

@ -1,10 +1,15 @@
function HelpConceptRelations() {
// prettier-ignore
return (
<div>
<h1>Связи между конституентами</h1>
<p>TBD</p>
</div>);
<div>
<h1>Связи между конституентами</h1>
<p>TBD</p>
<li>Вывод: формальный и содержательный</li>
<li>Структурные отношения</li>
<li>Порожденные понятия</li>
<li>Родо-видовое отношение</li>
<li>Порождение многообразий</li>
</div>
);
}
export default HelpConceptRelations;

View File

@ -1,15 +1,29 @@
import LinkTopic from '@/components/ui/LinkTopic';
import { HelpTopic } from '@/models/miscellaneous';
function HelpConceptSystem() {
// prettier-ignore
return (
<div>
<h1>Концептуальная схема Система определений</h1>
<p>Теория и модель предметной области</p>
<li>Базовые и неопределяемые</li>
<li>Неопределяемые и производные</li>
<li>Утверждения и определения</li>
<li>Ядро</li>
<li>Разворачивание термов</li>
</div>);
<div>
<h1>Концептуальная схема Система определений</h1>
<p>
Данный раздел вводит <b>систему определений</b> как предмет концептуализации предметных областей. Под системой
определений понимается совокупность отдельных понятий и утверждений, а также связей между ними, задаваемых
определениями понятий.
</p>
<li>Теория и модель предметной области</li>
<li>Базовые и неопределяемые</li>
<li>Неопределяемые и производные</li>
<li>Утверждения и определения</li>
<li>Ядро</li>
<li>Разворачивание термов</li>
<p>
Более подробно различные отношения между понятиями и способы построения систем определений раскрываются в
разделе <LinkTopic text='Связи понятий' topic={HelpTopic.CC_RELATIONS} />
</p>
</div>
);
}
export default HelpConceptSystem;

View File

@ -32,33 +32,33 @@ function HelpCstAttributes() {
<h2>Неопределяемые понятия</h2>
<p>
<b>X1, C1</b> Базисные множества и Константные множества не обладают сложной структурой и определяются
<code>X1, C1</code> Базисные множества и Константные множества не обладают сложной структурой и определяются
Конвенцией. Элементы Константных множеств участвуют в арифметических операциях и порядковых предикатах наряду с
мощностями множеств
</p>
<p>
<b>S1 : (X1)</b> Родовые структуры задаются совокупностью Области определения, Конвенции и набора Аксиом, а
также Термином. Согласно Конвенции элементы родовой структуры заполняются из Области определения так, чтобы
Аксиомы были выполнены. Родовая структура может быть как множеством, так и элементом или кортежем
<code>S1 : (X1)</code> Родовые структуры задаются совокупностью Области определения, Конвенции и набора
Аксиом, а также Термином. Согласно Конвенции элементы родовой структуры заполняются из Области определения так,
чтобы Аксиомы были выполнены. Родовая структура может быть как множеством, так и элементом или кортежем
</p>
<p>
<b>A1 :== (α,β)S1 (β,α)S1</b> Аксиомы задаются логическим Формальным определением и по необходимости
<code>A1 :== (α,β)S1 (β,α)S1</code> Аксиомы задаются логическим Формальным определением и по необходимости
Конвенцией
</p>
<h2>Производные понятия</h2>
<p>
<b>D1 :== Pr1(S1)</b> Термы задаются типизированным Формальным определением
<code>D1 :== Pr1(S1)</code> Термы задаются типизированным Формальным определением
</p>
<p>
<b>T1 :== Pr1(S1)=Pr2(S1)</b> Теоремы определяются логическим Формальным определением
<code>T1 :== Pr1(S1)=Pr2(S1)</code> Теоремы определяются логическим Формальным определением
</p>
<p>
<b>F1 :== [σ(X1×X1)] Pr1(σ)\Pr2(σ)</b>
<code>F1 :== [σ(X1×X1)] Pr1(σ)\Pr2(σ)</code>
<br />
Терм-функции определяются параметризованным типизированным Формальным определением
</p>
<p>
<b>P1 :== [σ(X1×X1)] card(Pr1(σ)) = card(σ)</b>
<code>P1 :== [σ(X1×X1)] card(Pr1(σ)) = card(σ)</code>
<br />
Предикат-функции определяются параметризованным логическим Формальным определением
</p>

View File

@ -2,28 +2,34 @@ import TextURL from '@/components/ui/TextURL';
import { external_urls } from '@/utils/constants';
function HelpExteor() {
// prettier-ignore
return (
<div>
<h1>Экстеор</h1>
<p>Экстеор 4.9 редактор текстов систем понятий эксплицированных в родах структур</p>
<p>Портал превосходит Экстеор в части редактирования экспликаций, но вычисление интерпретации доступно только в Экстеоре. Также следует использовать Экстеор для выгрузки экспликаций в Word для последующей печати</p>
<p>Экстеор доступен на операционной системы Windows 10+</p>
<p>Скачать установщик: <TextURL href={external_urls.exteor64} text='64bit'/> | <TextURL href={external_urls.exteor32} text='32bit'/></p>
<div>
<h1>Экстеор</h1>
<p>Экстеор 4.9 редактор текстов систем понятий эксплицированных в родах структур</p>
<p>
Портал превосходит Экстеор в части редактирования экспликаций, но вычисление интерпретации доступно только в
Экстеоре. Также следует использовать Экстеор для выгрузки экспликаций в Word для последующей печати
</p>
<p>Экстеор доступен на операционной системы Windows 10+</p>
<p>
Скачать установщик: <TextURL href={external_urls.exteor64} text='64bit' /> |{' '}
<TextURL href={external_urls.exteor32} text='32bit' />
</p>
<h2>Основные функции</h2>
<li>Работа с РС-формой системы понятий</li>
<li>Автоматическое определение типизации выражений</li>
<li>Проверка корректности РС-формы</li>
<li>Контекстный поиск с учетом словоформ терминов</li>
<li>Терминологический контроль вхождений терминов</li>
<li>Автоматическое выполнение операций синтеза РС-форм</li>
<li>Синтез с помощью операционной схемы синтеза (ОСС)</li>
<li>Автоматическое сквозное внесение изменений в ОСС</li>
<li>Вычисление объектной интерпретации</li>
<li>Выгрузка концептуальных схем в Word</li>
<li>Импорт/экспорт интерпретаций через Excel</li>
</div>);
<h2>Основные функции</h2>
<li>Работа с РС-формой системы понятий</li>
<li>Автоматическое определение типизации выражений</li>
<li>Проверка корректности РС-формы</li>
<li>Контекстный поиск с учетом словоформ терминов</li>
<li>Терминологический контроль вхождений терминов</li>
<li>Автоматическое выполнение операций синтеза РС-форм</li>
<li>Синтез с помощью операционной схемы синтеза (ОСС)</li>
<li>Автоматическое сквозное внесение изменений в ОСС</li>
<li>Вычисление объектной интерпретации</li>
<li>Выгрузка концептуальных схем в Word</li>
<li>Импорт/экспорт интерпретаций через Excel</li>
</div>
);
}
export default HelpExteor;

View File

@ -1,10 +1,39 @@
import { useConceptOptions } from '@/context/OptionsContext';
function HelpFormulaTree() {
// prettier-ignore
const { colors } = useConceptOptions();
return (
<div>
<h1>Дерево разбора родоструктурного выражения</h1>
<p>TBD.</p>
</div>);
<div>
<h1>Дерево разбора выражения</h1>
<p>
Дерево разбора получено путем семантических преобразований дерева синтаксического разбора. Оно отражает
структуру грамматически корректного выражения языка родов структур.
</p>
<li>Порядок узлов в рамках одного уровня может отличаться от их порядка в выражении</li>
<li>При наведении курсора на узел в тексте выделяется соответствующий ему фрагмент</li>
<li>Текст в узле дерева соответствует элементу языка</li>
<h2>Виды узлов</h2>
<li>
<span style={{ backgroundColor: colors.bgGreen }}>объявление идентификатора</span>
</li>
<li>
<span style={{ backgroundColor: colors.bgTeal }}>глобальный идентификатор</span>
</li>
<li>
<span style={{ backgroundColor: colors.bgOrange }}>логическое выражение</span>
</li>
<li>
<span style={{ backgroundColor: colors.bgBlue }}>типизированное выражение</span>
</li>
<li>
<span style={{ backgroundColor: colors.bgRed }}>присвоение и итерация</span>
</li>
<li>
<span style={{ backgroundColor: '#7ca0ab' }}>составные выражения</span>
</li>
</div>
);
}
export default HelpFormulaTree;

View File

@ -1,22 +1,60 @@
import {
IconDarkTheme,
IconHelp,
IconHelpOff,
IconLightTheme,
IconLogin,
IconLogout,
IconPin,
IconUser2
} from '@/components/Icons';
import { HelpTopic } from '@/models/miscellaneous';
import Subtopics from '../Subtopics';
function HelpInterface() {
// prettier-ignore
return (
<div>
<h1>Пользовательский интерфейс</h1>
<div>
<h1>Пользовательский интерфейс</h1>
<p>Общие принципы построения интерфейса</p>
<p>
Интерфейс построен на основе динамических компонент с использованием рендеринга графики в браузере.
Поддерживаются светлая и темная темы оформления.
</p>
<p>
<IconHelp className='inline-icon' />
Помимо данного раздела справка предоставляется контекстно через специальную иконку{' '}
<IconHelp className='inline-icon' />
</p>
<h2>Навигация и настройки</h2>
<li>Навигационную панель можно скрыть с помощью кнопки в правом верхнем углу</li>
<li>В меню пользователя доступен ряд настроек и управление активным профилем</li>
<br/>
<h2>Навигация и настройки</h2>
<li>Ctrl + клик на объект навигации откроет новую вкладку</li>
<li>
<IconPin size='1.25rem' className='inline-icon' /> навигационную панель можно скрыть с помощью кнопки в правом
верхнем углу
</li>
<li>
<IconLogin size='1.25rem' className='inline-icon' /> вход в систему / регистрация нового пользователя
</li>
<li>
<IconUser2 size='1.25rem' className='inline-icon' /> меню пользователя содержит ряд настроек и переход к профилю
пользователя
</li>
<li>
<IconLightTheme className='inline-icon' />
<IconDarkTheme className='inline-icon' /> переключатели темы
</li>
<li>
<IconHelp className='inline-icon' />
<IconHelpOff className='inline-icon' /> отключение иконок контекстной справки
</li>
<li>
<IconLogout className='inline-icon' /> выход из системы
</li>
<Subtopics headTopic={HelpTopic.INTERFACE} />
</div>);
<Subtopics headTopic={HelpTopic.INTERFACE} />
</div>
);
}
export default HelpInterface;

View File

@ -7,8 +7,9 @@ function HelpLibrary() {
<h1>Библиотека схем</h1>
<p>В библиотеке собраны концептуальные схемы, эксплицированные в родоструктурном аппарате</p>
<p>используемые при концептуального проектирования систем организационного управления</p>
<p>Фильтрация с помощью инструментов в верхней части страницы</p>
<p>Сортировка по клику на заголовок таблицы</p>
<li>Фильтрация с помощью инструментов в верхней части страницы</li>
<li>Сортировка по клику на заголовок таблицы</li>
<li>Ctrl + клик по строке откроет схему в новой вкладке</li>
<h2>Отображение статусов</h2>
<p>- <IconPublic className='inline-icon'/> <b>общедоступная</b> отображает схему всем пользователям</p>

View File

@ -1,52 +0,0 @@
import { urls } from '@/app/urls';
import TextURL from '@/components/ui/TextURL';
import { HelpTopic } from '@/models/miscellaneous';
import { external_urls, prefixes } from '@/utils/constants';
import LinkTopic from '../../../components/ui/LinkTopic';
import TopicItem from '../TopicItem';
function HelpMain() {
// prettier-ignore
return (
<div>
<h1>Портал</h1>
<p>Портал позволяет анализировать предметные области, формально записывать системы определений и синтезировать их с помощью математического аппарата <LinkTopic text='Родов структур' topic={HelpTopic.RSLANG}/></p>
<p>Такие системы называются <b>Концептуальными схемами</b> и состоят из отдельных <LinkTopic text='Конституент' topic={HelpTopic.CC_CONSTITUENTA}/>, обладающих уникальными обозначениями и формальными определениями</p>
<br/>
<h2>Разделы Портала</h2>
<li><TextURL text='Библиотека' href={urls.library} /> библиотека концептуальных схем</li>
<li><TextURL text='Справка' href={urls.manuals} /> справочные материалы</li>
<li><TextURL text='Профиль' href={urls.profile} /> данные пользователя и смена пароля</li>
<br/>
<h2>Разделы Справки</h2>
{[
HelpTopic.INTERFACE,
HelpTopic.CONCEPTUAL,
HelpTopic.RSLANG,
HelpTopic.TERM_CONTROL,
HelpTopic.VERSIONS,
HelpTopic.EXTEOR,
HelpTopic.API,
HelpTopic.PRIVACY
].map(topic =>
<TopicItem key={`${prefixes.topic_item}${topic}`} topic={topic} />
)}
<br/>
<h2>Лицензирование и раскрытие информации</h2>
<li>Пользователи Портала сохраняют авторские права на создаваемый ими контент</li>
<li>Политика обработки данных доступна по <LinkTopic text='ссылке' topic={HelpTopic.PRIVACY}/></li>
<li>Портал является проектом с открытым исходным кодом, доступным на <TextURL text='Github' href={external_urls.git_repo}/></li>
<li>Данный сайт использует доменное имя и серверные мощности <TextURL text='Центра Концепт' href={external_urls.concept}/></li>
<br/>
<h2>Поддержка</h2>
<p>Портал разрабатывается <TextURL text='Центром Концепт' href={external_urls.concept}/></p>
<p>Ваши пожелания по доработке, найденные ошибки и иные предложения можно направлять по email: <TextURL href={external_urls.mail_portal} text='portal@acconcept.ru'/></p>
</div>);
}
export default HelpMain;

View File

@ -0,0 +1,82 @@
import { urls } from '@/app/urls';
import { IconLibrary2, IconManuals, IconUser2 } from '@/components/Icons';
import TextURL from '@/components/ui/TextURL';
import { HelpTopic } from '@/models/miscellaneous';
import { external_urls, prefixes } from '@/utils/constants';
import LinkTopic from '../../../components/ui/LinkTopic';
import TopicItem from '../TopicItem';
function HelpPortal() {
return (
<div>
<h1>Портал</h1>
<p>
Портал позволяет анализировать предметные области, формально записывать системы определений и синтезировать их с
помощью математического аппарата <LinkTopic text='Родов структур' topic={HelpTopic.RSLANG} />
</p>
<p>
Такие системы называются <b>Концептуальными схемами</b> и состоят из отдельных{' '}
<LinkTopic text='Конституент' topic={HelpTopic.CC_CONSTITUENTA} />, обладающих уникальными обозначениями и
формальными определениями
</p>
<br />
<h2>Разделы Портала</h2>
<li>
<IconLibrary2 size='1.25rem' className='inline-icon' /> <TextURL text='Библиотека' href={urls.library} />
библиотека концептуальных схем
</li>
<li>
<IconManuals size='1.25rem' className='inline-icon' /> <TextURL text='Справка' href={urls.manuals} />
справочные материалы
</li>
<li>
<IconUser2 size='1.25rem' className='inline-icon' /> <TextURL text='Профиль' href={urls.profile} /> данные
пользователя и смена пароля
</li>
<br />
<h2>Разделы Справки</h2>
{[
HelpTopic.INTERFACE,
HelpTopic.CONCEPTUAL,
HelpTopic.RSLANG,
HelpTopic.TERM_CONTROL,
HelpTopic.VERSIONS,
HelpTopic.EXTEOR,
HelpTopic.API,
HelpTopic.PRIVACY
].map(topic => (
<TopicItem key={`${prefixes.topic_item}${topic}`} topic={topic} />
))}
<br />
<h2>Лицензирование и раскрытие информации</h2>
<li>Пользователи Портала сохраняют авторские права на создаваемый ими контент</li>
<li>
Политика обработки данных доступна по <LinkTopic text='ссылке' topic={HelpTopic.PRIVACY} />
</li>
<li>
Портал является проектом с открытым исходным кодом, доступным на{' '}
<TextURL text='Github' href={external_urls.git_repo} />
</li>
<li>
Данный сайт использует доменное имя и серверные мощности{' '}
<TextURL text='Центра Концепт' href={external_urls.concept} />
</li>
<br />
<h2>Поддержка</h2>
<p>
Портал разрабатывается <TextURL text='Центром Концепт' href={external_urls.concept} />
</p>
<p>
Ваши пожелания по доработке, найденные ошибки и иные предложения можно направлять по email:{' '}
<TextURL href={external_urls.mail_portal} text='portal@acconcept.ru' />
</p>
</div>
);
}
export default HelpPortal;

View File

@ -2,6 +2,7 @@ import { HelpTopic } from '@/models/miscellaneous';
import {
IconClone,
IconDestroy,
IconDownload,
IconFollow,
IconImmutable,
@ -11,7 +12,7 @@ import {
} from '../../../components/Icons';
import LinkTopic from '../../../components/ui/LinkTopic';
function HelpRSFormMeta() {
function HelpRSFormCard() {
// prettier-ignore
return (
<div className='dense'>
@ -27,8 +28,9 @@ function HelpRSFormMeta() {
<li><IconImmutable className='inline-icon'/> Неизменные схемы редактируют только администраторы</li>
<li><IconClone className='inline-icon'/> Клонировать создать копию схемы</li>
<li><IconFollow className='inline-icon'/> Отслеживание схема в персональном списке</li>
<li><IconDownload className='inline-icon'/> Загрузить/Выгрузить схему взаимодействие с Экстеор</li>
<li><IconDownload className='inline-icon'/> Загрузить/Выгрузить взаимодействие с Экстеор</li>
<li><IconDestroy className='inline-icon icon-red'/> Удалить полностью удаляет схему из базы Портала</li>
</div>);
}
export default HelpRSFormMeta;
export default HelpRSFormCard;

View File

@ -1,10 +1,97 @@
import {
IconAdmin,
IconAlert,
IconArchive,
IconClone,
IconDestroy,
IconDownload,
IconEdit2,
IconMenu,
IconOwner,
IconReader,
IconShare,
IconUpload
} from '@/components/Icons';
import Divider from '@/components/ui/Divider';
import LinkTopic from '@/components/ui/LinkTopic';
import { HelpTopic } from '@/models/miscellaneous';
function HelpRSFormMenu() {
// prettier-ignore
return (
<div>
<h1>Меню редактирования концептуальной схемы</h1>
<p>TBD</p>
</div>);
<div>
<h1>Редактирование схемы</h1>
<p>
При переходе к отображению отдельной концептуальной схемы сверху появляется меню, содержащее кнопки с
выпадающими меню и ряд вкладок. Вид и количество кнопок зависит от выбранного режима работы.
</p>
<h2>Вкладки</h2>
<li>
<LinkTopic text='Карточка' topic={HelpTopic.UI_RS_CARD} /> редактирование атрибутов схемы и версии
</li>
<li>
<LinkTopic text='Содержание' topic={HelpTopic.UI_RS_LIST} /> работа со списком конституент в табличной форме
</li>
<li>
<LinkTopic text='Редактор' topic={HelpTopic.UI_RS_EDITOR} /> редактирование отдельной{' '}
<LinkTopic text='Конституенты' topic={HelpTopic.CC_CONSTITUENTA} />
</li>
<li>
<LinkTopic text='Граф термов' topic={HelpTopic.UI_GRAPH_TERM} /> графическое представление связей конституент
</li>
<div className='flex my-3'>
<div>
<h2>Меню схемы</h2>
<li>
<IconMenu size='1.25rem' className='inline-icon' /> Меню схемы выпадающее меню с общими функциями
</li>
<li>
<IconShare className='inline-icon' /> Поделиться скопировать ссылку на схему
</li>
<li>
<IconClone className='inline-icon' /> Клонировать создать копию схемы
</li>
<li>
<IconDownload className='inline-icon' /> Выгрузить сохранить в файле формата Экстеор
</li>
<li>
<IconUpload className='inline-icon icon-red' /> Загрузить заменить схему на содержимое файла Экстеор
</li>
<li>
<IconDestroy className='inline-icon icon-red' /> Удалить полностью удаляет схему из базы Портала
</li>
</div>
<Divider vertical margins='mx-3' />
<div className='w-[18rem]'>
<h2>Режимы работы</h2>
<li>
<IconAlert size='1.25rem' className='inline-icon icon-red' /> работа в анонимном режиме. Переход на страницу
логина
</li>
<li>
<IconArchive size='1.25rem' className='inline-icon' /> просмотр архивной версии. Переход к актуальной версии
</li>
<li>
<IconReader size='1.25rem' className='inline-icon' /> режим "только чтение"
</li>
<li>
<IconOwner size='1.25rem' className='inline-icon' /> режим "редактор"
</li>
<li>
<IconAdmin size='1.25rem' className='inline-icon' /> режим "администратор"
</li>
</div>
</div>
<p>
<IconEdit2 size='1.25rem' className='inline-icon' /> операции над концептуальной схемой описаны в{' '}
<LinkTopic text='разделе Экспликация' topic={HelpTopic.RSL_OPERATIONS} />.
</p>
</div>
);
}
export default HelpRSFormMenu;

View File

@ -23,13 +23,17 @@ function HelpRSLangInterpret() {
<b>Интерпретируемыми</b> будем считать выражения, которые можно вычислить за полиномиальное время относительно
мощностей интерпретаций глобальных идентификаторов, используемых в этом выражении. По аналогии с{' '}
<LinkTopic text='биективной переносимостью' topic={HelpTopic.RSL_CORRECT} /> условия интерпретируемости могут
быть выведены из утверждения {'выражения "Z, (α)" не интерпретируемы'}.
быть выведены из утверждения "выражения <code>Z, (α)</code> не интерпретируемы".
</p>
<p>
Также вводится категория выражений, задающих множества, которым можно принадлежность за полиномиальное время, но
нельзя вычислить полный список элемент. Например, {'"Z, D{ξ∈ℬ(X1×X1) | Pr1(ξ)=Pr2(ξ)}"'}. Конституенты, чьи
выражения удовлетворяет этому свойству, называются <b>Неразмерными</b>. Их можно использовать в интерпретируемых
выражениях только в конструкциях, не требующих перебора их элементах.
нельзя вычислить полный список элемент.
<br />
Например, <code>{'D{ξ∈ℬ(X1×X1) | Pr1(ξ)=Pr2(ξ)}'}</code>.
</p>
<p>
Конституенты, чьи выражения удовлетворяет этому свойству, называются <b>Неразмерными</b>. Их можно использовать
в интерпретируемых выражениях только в конструкциях, не требующих перебора их элементах.
</p>
<p>
Конституенты, чьи выражения не позволяют проверить принадлежность за полиномиальное время, называются{' '}

View File

@ -1,6 +1,15 @@
import { HelpTopic } from '@/models/miscellaneous';
import { IconInlineSynthesis, IconTemplates } from '../../../components/Icons';
import {
IconGenerateNames,
IconGenerateStructure,
IconInlineSynthesis,
IconKeepAliasOn,
IconKeepTermOn,
IconReplace,
IconSortList,
IconTemplates
} from '../../../components/Icons';
import LinkTopic from '../../../components/ui/LinkTopic';
function HelpRSLangOperations() {
@ -9,6 +18,57 @@ function HelpRSLangOperations() {
<h1>Операции над концептуальными схемами</h1>
<p>В данном разделе поясняются различные операции над концептуальными схемами.</p>
<h2>
<IconSortList size='1.25rem' className='inline-icon' /> Упорядочение
</h2>
<p>
Упорядочение списка конституент по следующим правилам
<li>базисные и константные множества объявляются первыми</li>
<li>
конституенты <LinkTopic text='Ядра' topic={HelpTopic.CC_SYSTEM} /> располагаются до остальных
</li>
<li>
<b>топологический порядок</b>: связи вывода от ранее объявленных к производным
</li>
<li>
<LinkTopic text='порожденные' topic={HelpTopic.CC_RELATIONS} /> конституенты следуют сразу за исходной
</li>
<li>максимальное сохранение исходного порядка при выполнении предыдущих правил</li>
</p>
<h2>
<IconGenerateNames size='1.25rem' className='inline-icon' /> Порядковые имена
</h2>
<p>
Генерация имен конституент таким образом, чтобы порядок на индексах соответствовал порядка объявления
конституент в списке. Например, <code>{'Rename({X4, X2, D1, D3}) = {X1, X2, D1, D2}'}</code>
</p>
<h2>
<IconGenerateStructure size='1.25rem' className='inline-icon' /> Порождение структуры
</h2>
<p>
Порождение полной совокупности термов, раскрывающих структуру выбранной конституенты. Операция применима к
терм-функциям, термам и родовым структурам с <LinkTopic text='типизацией' topic={HelpTopic.RSL_TYPES} />{' '}
множество и кортеж.
<br />
<code>{'Generate(S1∈(X1×(X1))) = {Pr1(S1), Pr2(S1), red(Pr2(S1))}'}</code>
</p>
<h2>
<IconReplace size='1.25rem' className='inline-icon' /> Отождествление
</h2>
<p>
Формирование таблицы отождествлений и ее применение к текущей схеме. В результате будет удален ряд конституент и
их вхождения заменены на другие. Возможна настройка какой термин использовать для оставшихся конституент
<li>
<IconKeepAliasOn size='1.25rem' className='inline-icon' /> выбор сохраняемой конституенты
</li>
<li>
<IconKeepTermOn size='1.25rem' className='inline-icon' /> выбор сохраняемого термина
</li>
</p>
<h2>
<IconTemplates size='1.25rem' className='inline-icon' /> Генерация из шаблона
</h2>
@ -16,7 +76,6 @@ function HelpRSLangOperations() {
Данная операция позволяет вставить конституенту из{' '}
<LinkTopic text='шаблона выражения' topic={HelpTopic.RSL_TEMPLATES} />.
</p>
<br />
<h2>
<IconInlineSynthesis size='1.25rem' className='inline-icon' /> Встраивание

View File

@ -1,4 +1,4 @@
function HelpRSTemplates() {
function HelpRSLangTemplates() {
return (
<div>
<h1>Шаблоны</h1>
@ -10,19 +10,19 @@ function HelpRSTemplates() {
Источником шаблонов является <b>Банк выражений</b>, содержащий параметризованные понятия и утверждения,
сгруппированные по разделам
</p>
<p>Сначала выбирается шаблон выражения (вкладка Шаблон)</p>
<p>
<li>Сначала выбирается шаблон выражения (вкладка Шаблон)</li>
<li>
Далее для аргументов можно зафиксировать значения, выбрав из конституент текущей схемы или указав выражения
(вкладка Аргументы)
</p>
<p>Значения аргументов будут подставлены в выражение, включая корректировку перечня аргументов</p>
<p>Если значения указаны для всех аргументов, то тип создаваемой конституенты будет автоматически обновлён</p>
<p>На вкладке Конституента можно скорректировать все атрибуты, создаваемой конституенты</p>
<p>
</li>
<li>Значения аргументов будут подставлены в выражение, включая корректировку перечня аргументов</li>
<li>Если значения указаны для всех аргументов, то тип создаваемой конституенты будет автоматически обновлён</li>
<li>На вкладке Конституента можно скорректировать все атрибуты, создаваемой конституенты</li>
<li>
Кнопка <b>Создать</b> инициирует добавление выбранной конституенты в схему
</p>
</li>
</div>
);
}
export default HelpRSTemplates;
export default HelpRSLangTemplates;

View File

@ -3,20 +3,20 @@ function HelpRSLangTypes() {
<div>
<h1>Типизация</h1>
<p>
Родоструктурное выражение <b>ξ</b> обладает типизацией (структурой), если выполнено ξH,
Родоструктурное выражение <code>ξ</code> обладает типизацией (структурой), если выполнено ξH,
<br />
где <b>H</b> корректное выражение <b>ступени</b>, задаваемой следующими правилами:
где <code>H</code> корректное выражение <b>ступени</b>, задаваемой следующими правилами:
<li>
Xi, Ci ступень, называемая <b>элемент</b>;
<code>Xi, Ci</code> ступень, называемая <b>элемент</b>;
</li>
<li>
Z ступень, называемая <b>целое число</b>;
</li>
<li>
(H1×...×Hn) ступень, называемая <b>кортеж арности n</b>;
<code>(H1×...×Hn)</code> ступень, называемая <b>кортеж арности n</b>;
</li>
<li>
(H) ступень, называемая <b>множеством</b>.
<code>(H)</code> ступень, называемая <b>множеством</b>.
</li>
</p>
<p>Пустое множество имеет типизацию (R0) множество с произвольной структурой элемента</p>
@ -29,14 +29,14 @@ function HelpRSLangTypes() {
</p>
<p>
Параметризованные выражения (терм-функции, предикат-функции) относятся к типизации <br />
Hr 🠔 [H1, H2, ... Hi],
<code>Hr 🠔 [H1, H2,...Hi]</code>,
<br />
где Hr типизация результата, H1, ... Hi типизации аргументов
где <code>Hr</code> типизация результата, <code>H1,...Hi</code> типизации аргументов
</p>
<p></p>
<p>
Шаблонные параметризованные выражения могут содержать обозначения R1, ... Ri, соответствующие произвольным
ступеням, определяемым исходя из типизации аргументов по месту использования выражения.
Шаблонные параметризованные выражения могут содержать обозначения <code>R1,...Ri</code>, соответствующие
произвольным ступеням, определяемым исходя из типизации аргументов по месту использования выражения.
</p>
</div>
);

View File

@ -124,6 +124,10 @@ div:not(.dense) > p {
@apply font-semibold;
}
code {
font-family: var(--font-math);
}
li {
list-style-position: inside;
}