Skip to content

docs: Added the report - #1

Open
danisaev wants to merge 14 commits into
gsvgit:mainfrom
danisaev:main
Open

docs: Added the report#1
danisaev wants to merge 14 commits into
gsvgit:mainfrom
danisaev:main

Conversation

@danisaev

@danisaev danisaev commented May 7, 2026

Copy link
Copy Markdown

No description provided.

@gsvgit gsvgit left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. В работе не должно быть "не определённых" терминов, сокращений и т.д. Если надо, давайте опредедения (пучть и не очень формальные), приводите ссылки на ресурсы, где можно узнать подробнее.
  2. Запланируйте структуру текста так, чтобы избежать повторений и непоследовательных переходов.
  3. Чётко разделите "что сделано", "зачем сделано", "как сделано".

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Постановка задачи}

Работа выполняется в проекте UCFS. \textbf{Целью работы является} создание простых примеров использования инструмента, включая реализацию кода и интеграцию инструкции по запуску в основную документацию.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ссылка на UCFS. А то не понятно, что за проект. Ну и пару слов о том, что это за проект. А то дальше Вы говорите про примеры использования. А для чего его используют?

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

Предлагаемое решение заключается в создании набора минимальных и понятных примеров, которые позволяют последовательно познакомиться с возможностями UCFS. В отличие от существовавших ранее сложных примеров, разработанные сценарии намеренно упрощены: графы невелики по размеру, а их структура интуитивно понятна. Ключевым примером выбрана грамматика $a^nb^n$ --- она не имеет принципиального значения для демонстрации возможностей инструмента, но была взята из учебного пособия\footnote{Ссылка на пособие: \url{https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes} (дата обращения: 11.03.2026).}, что обеспечивает методическую обоснованность выбора. Для описания грамматики использовался встроенный DSL проекта UCFS, а графы представлены в формате \texttt{.dot}.

Принятые решения обоснованы следующим образом: простота примеров снижает порог входа и подготавливает новых пользователей к работе со сложными графами, имеющими практическое применение. Интеграция инструкции по запуску непосредственно в основной файл README (вместе с визуализациями графов в формате SVG) устраняет необходимость поиска отдельной документации.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не надо в десятый раз повтроять про пониженеи порога входа. У Вас короткий отчёт. Структурируйте его так, чтобы избежать повторов.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

И тут оказывается, что то-то рисовали в SVG. Опишите перед этим архитектуру документации, которую Вы создали.

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Апробация}

Проверка разработанных примеров осуществлялась следующим образом. Каждый граф был вручную исследован на корректность структуры, после чего с помощью инструмента UCFS для него был получен SPPF (Shared Packed Parse Forest). Ручной разбор полученного SPPF дал результаты, идентичные результатам исходного поиска по графу, что подтверждает корректность работы примеров.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кто такой SPPF?

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Описание предлагаемого решения}

UCFS представляет собой инструмент для работы с задачами на пересечении контекстно-свободных языков и ориентированных графов с метками на рёбрах, основанный на алгоритме GLL. До выполнения данной работы в проекте уже существовали примеры использования, однако они были сложными и громоздкими, что затрудняло начальное освоение инструмента. Аналоги из других проектов часто страдают той же проблемой: отсутствие простых, наглядных сценариев повышает порог входа для новых пользователей.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кто такой GLL?

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Апробация}

Проверка разработанных примеров осуществлялась следующим образом. Каждый граф был вручную исследован на корректность структуры, после чего с помощью инструмента UCFS для него был получен SPPF (Shared Packed Parse Forest). Ручной разбор полученного SPPF дал результаты, идентичные результатам исходного поиска по графу, что подтверждает корректность работы примеров.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кто такой "ручной разбор SPPF"?

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

Запуск примеров выполняется единой командой через консольный сценарий. Несмотря на отсутствие формальных отзывов от сторонних пользователей, проблем с переносимостью и запуском на других устройствах ожидаться не должно благодаря стандартизированному формату графов (\texttt{.dot}) и отсутствию внешних зависимостей, специфичных для окружения разработки.

Оценка успешности работы проводилась по следующим критериям: все примеры успешно запускаются, результаты их работы совпадают с ожидаемыми, а обновлённый файл README стал более понятным для начинающих пользователей.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Как Вы оценивали понтяность?

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Заключение}

В ходе выполнения работы получены следующие результаты:

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ничего не сказано про реструктуризацию существовавших примеров.

@gsvgit

gsvgit commented May 15, 2026

Copy link
Copy Markdown
Owner

Сперва пичините CI

@gsvgit

gsvgit commented May 20, 2026

Copy link
Copy Markdown
Owner

И конфликты порешайте.

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Постановка задачи}

Работа выполняется в проекте UCFS\footnote{Ссылка на UCFS: \url{https://github.com/FormalLanguageConstrainedPathQuerying/UCFS}}. UCFS — это универсальный инструмент, предназначенный для решения задач, которые лежат на пересечении контекстно-свободных языков и ориентированных графов с метками на ребрах. В основе его работы лежит алгоритм GLL (Generalized LL parsing) — алгоритм синтаксического анализа, обобщающий LL-парсинг на случай неоднозначных грамматик и позволяющий эффективно работать с контекстно-свободными языками на графах. Этот инструмент применим для широкого круга задач. Среди ключевых примеров можно выделить синтаксический анализ, а также контекстно-свободную навигацию по графам (CFPQ/CFL–R). \textbf{Целью работы является} создание простых примеров использования инструмента, включая реализацию кода и интеграцию инструкции по запуску в основную документацию.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тире нейроночные. Неразрывные пробелы.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

парсинг --- жаргон.

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\textbf{Целью работы является} создание пошаговой инструкции по аналогии с популярными библиотеками, а также простых примеров использования инструмента UCFS, включая реализацию кода и интеграцию инструкции по запуску в основную документацию.

\textbf{Для достижения цели требуется решить следующие задачи:}

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Точка.

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

В других проектах, таких как NetworkX\footnote{Ссылка на документацию NetworkX: \url{https://networkx.org/documentation/stable/}}, стандартной практикой является наличие разделов \enquote{Tutorial}, в котором содержится инструкция по работе с инструментом, и \enquote{Getting Started} с минимальными воспроизводимыми примерами, которые демонстрируют базовый API. В данном проекте вышеперечисленные разделы отсутствуют.

\textbf{Вывод:} Таким образом, в текущем виде документация UCFS не подходит для быстрого старта, и возникает необходимость в создании упрощенных учебных сценариев с пошаговой инструкцией по запуску.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да не надо писать "Вывод:". пишите нормальный текст.

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Тестирование}

Проверка разработанных примеров осуществлялась посредством тестирования. Каждый граф был вручную исследован на корректность структуры, после чего с помощью инструмента UCFS для него был получен SPPF~(Shared Packed Parse Forest~--- общий упакованный лес разбора). Анализ полученного SPPF показал, что результаты совпадают с ожидаемыми результатами поиска по графу, что подтверждает корректность работы примеров.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"общий упакованный лес разбора" -- нет)

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Заключение}

В ходе выполнения работы получены следующие результаты:

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Точка.


В ходе выполнения работы получены следующие результаты:

\begin{itemize}

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А результаты полностью соответствуют задачам?

@danisaev

Copy link
Copy Markdown
Author

Касательно последнего комментария о соответствии результатов задачам, постарался переделать, но заведомо не вносил неотчуждаемый результат типо "обозрел, изучил и тп." Если результаты должны это содержать, готов в кратчайшие сроки исправить.

@vkutuev vkutuev left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вот ряд замечаний + замечание @gsvgit + куча странных неразрывных пробелов (изучите, где их принято ставить в тексте)

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Введение}

Работа выполняется в рамках проекта UCFS\footnote{Ссылка на UCFS: \url{https://github.com/FormalLanguageConstrainedPathQuerying/UCFS}}. UCFS~--- это универсальный инструмент, предназначенный для решения задач, которые лежат на пересечении контекстно-свободных языков и ориентированных графов с метками на ребрах. В основе его работы лежит алгоритм GLL~(Generalized LL parsing)~--- алгоритм синтаксического анализа, обобщающий LL-анализ на случай неоднозначных грамматик. Этот инструмент применим для широкого круга задач, включая синтаксический анализ и контекстно-свободную навигацию по графам (CFPQ/CFL-R).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

задач, которые лежат на пересечении контекстно-свободных языков и ориентированных графов с метками на ребрах

Очень странная формулировка

В основе его работы лежит алгоритм GLL~(Generalized LL parsing)~--- алгоритм синтаксического анализа, обобщающий LL-анализ на случай неоднозначных грамматик.

Это правда, но GLL — алгоритм синтаксического анализа, тут же ещё и его обобщение на графы никак не упомянуто

контекстно-свободную навигацию по графам (CFPQ/CFL-R)

Тоже что-то странное и не очень принятое в русскоязычной литературе. А "CFPQ/CFL-R" — аббревиатуры, которые не раскрыты

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

Работа выполняется в рамках проекта UCFS\footnote{Ссылка на UCFS: \url{https://github.com/FormalLanguageConstrainedPathQuerying/UCFS}}. UCFS~--- это универсальный инструмент, предназначенный для решения задач, которые лежат на пересечении контекстно-свободных языков и ориентированных графов с метками на ребрах. В основе его работы лежит алгоритм GLL~(Generalized LL parsing)~--- алгоритм синтаксического анализа, обобщающий LL-анализ на случай неоднозначных грамматик. Этот инструмент применим для широкого круга задач, включая синтаксический анализ и контекстно-свободную навигацию по графам (CFPQ/CFL-R).

На данный момент проект обладает широкой функциональностью, однако существующие примеры использования сложны, так как решают конкретную узкую задачу и не позволяют новым пользователям разобраться в использовании инструмента. Данная практика направлена на улучшение документации и создание пошаговой инструкции использования инструмента, которая завершается запуском простых примеров, что позволит быстрее освоить инструмент и начать применять его в учебных и исследовательских задачах.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

существующие примеры использования сложны, так как решают конкретную узкую задачу

Кажется, в этом и суть примеров (новые тоже решают какую-то конкретную задачу). Может быть что-то другое имелось в виду, тогда стоит переформулировать

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated
\textbf{Для достижения цели требуется решить следующие задачи.}
\begin{enumerate}
\item Изучить материалы, касающиеся контекстно-свободных грамматик и языков.
\item Выполнить обзор существующих примеров UCFS и подходов к написанию документации в популярных проектах.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

подходов к написанию документации в популярных проектах

Кажется, этого обзора не было (только NetworkX упоминается)

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated
\begin{enumerate}
\item Изучить материалы, касающиеся контекстно-свободных грамматик и языков.
\item Выполнить обзор существующих примеров UCFS и подходов к написанию документации в популярных проектах.
\item Сформулировать требования к документации для быстрого старта и спроектировать формат интеграции учебных примеров.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сформулированных требований я что-то тоже не вижу

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Описание предлагаемого решения}

Предлагаемое решение заключается в создании документации, подробно поясняющей каждый шаг нового пользователя для начала работы с UCFS, а именно базовую информацию о CFL~(Context-Free Languages), инструкцию по заданию графов и грамматик, инструкцию по чтению выходных данных, а также содержащую набор минимальных и понятных примеров, которые позволяют последовательно познакомиться с возможностями UCFS. В отличие от существовавших ранее сложных примеров, разработанные сценарии намеренно упрощены:~графы невелики по размеру, а их структура интуитивно понятна. Ключевым примером выбрана грамматика $a^nb^n$~--- она не имеет принципиального значения для демонстрации возможностей инструмента, но была взята из учебного пособия\footnote{Ссылка на пособие: \url{https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes} (дата обращения:~14.03.2026).}, что обеспечивает методическую обоснованность выбора. Для описания грамматики использовался встроенный DSL проекта UCFS, а графы представлены в формате~\texttt{.dot}.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

базовую информацию о CFL~(Context-Free Languages)

Может быть как-то русскоязычный термин в первую очередь использовать?

грамматика $a^nb^n$~--- она не имеет принципиального значения для демонстрации возможностей инструмента, но была взята из учебного пособия\footnote{Ссылка на пособие: \url{https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes}

В пособии эта грамматика мелькает 1 раз, причём пример отличается. Может быть стоит более конкретно описать мотивацию? Это же простейшая КС-грамматика

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

Предлагаемое решение заключается в создании документации, подробно поясняющей каждый шаг нового пользователя для начала работы с UCFS, а именно базовую информацию о CFL~(Context-Free Languages), инструкцию по заданию графов и грамматик, инструкцию по чтению выходных данных, а также содержащую набор минимальных и понятных примеров, которые позволяют последовательно познакомиться с возможностями UCFS. В отличие от существовавших ранее сложных примеров, разработанные сценарии намеренно упрощены:~графы невелики по размеру, а их структура интуитивно понятна. Ключевым примером выбрана грамматика $a^nb^n$~--- она не имеет принципиального значения для демонстрации возможностей инструмента, но была взята из учебного пособия\footnote{Ссылка на пособие: \url{https://github.com/FormalLanguageConstrainedPathQuerying/FormalLanguageConstrainedReachability-LectureNotes} (дата обращения:~14.03.2026).}, что обеспечивает методическую обоснованность выбора. Для описания грамматики использовался встроенный DSL проекта UCFS, а графы представлены в формате~\texttt{.dot}.

Принятые решения обоснованы следующим образом:~простота примеров снижает порог входа и подготавливает новых пользователей к работе со сложными графами, имеющими практическое применение. Интеграция инструкции по запуску непосредственно в основной файл документации (вместе с визуализациями графов в формате~SVG)~устраняет необходимость поиска отдельной информации.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В этой строке как-то много неразрывных пробелов. Точно ли они здесь уместны?

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

В других проектах, таких как NetworkX\footnote{Ссылка на документацию NetworkX: \url{https://networkx.org/documentation/stable/}}, стандартной практикой является наличие разделов \enquote{Tutorial}, в котором содержится инструкция по работе с инструментом, и \enquote{Getting Started} с минимальными воспроизводимыми примерами, которые демонстрируют базовый API. В данном проекте вышеперечисленные разделы отсутствуют.

Таким образом, в текущем виде документация UCFS не подходит для быстрого старта, и возникает необходимость в создании упрощенных учебных сценариев с пошаговой инструкцией по запуску.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Таким образом, в текущем виде документация UCFS не подходит для быстрого старта

Кажется, к этому выводу уже во введении пришли. Если что-то другое имелось в виду, надо переформулировать

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

Принятые решения обоснованы следующим образом:~простота примеров снижает порог входа и подготавливает новых пользователей к работе со сложными графами, имеющими практическое применение. Интеграция инструкции по запуску непосредственно в основной файл документации (вместе с визуализациями графов в формате~SVG)~устраняет необходимость поиска отдельной информации.

Реализация решения осуществлялась с использованием языка Kotlin~(код примеров), DSL для задания грамматики, формата~\texttt{.dot} для описания графов, консольной утилиты dot~(Graphviz)~для конвертации графов в SVG и Markdown для оформления документации.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dot~(Graphviz)~для

Снова сомнительные неразрывные пробелы

Markdown для оформления документации

Может mkdocs упомянуть, как технологию?

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

\section{Тестирование}

Проверка разработанных примеров осуществлялась посредством тестирования. Каждый граф был вручную исследован на корректность структуры, после чего с помощью инструмента UCFS для него был получен SPPF~(Shared Packed Parse Forest). Анализ полученного SPPF показал, что результаты совпадают с ожидаемыми результатами поиска по графу, что подтверждает корректность работы примеров.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Проверка разработанных примеров осуществлялась посредством тестирования.

Может хоть сказать, что "ручного тестирования", иначе предложение балансирует между очевидным и бредовым

результаты совпадают с ожидаемыми результатами

Это точно надо переформулировать

Comment thread Daniil_Isaev/Daniil_Isaev_report.tex Outdated

Проверка разработанных примеров осуществлялась посредством тестирования. Каждый граф был вручную исследован на корректность структуры, после чего с помощью инструмента UCFS для него был получен SPPF~(Shared Packed Parse Forest). Анализ полученного SPPF показал, что результаты совпадают с ожидаемыми результатами поиска по графу, что подтверждает корректность работы примеров.

Запуск примеров выполняется единой командой через консольный сценарий. Проверка переносимости показала, что проблем с запуском не возникает благодаря стандартизированному формату графов~(\texttt{.dot}) и отсутствию внешних зависимостей, специфичных для окружения разработки.

@vkutuev vkutuev Jul 15, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

через консольный сценарий

Это очень не по-русски

Проверка переносимости показала

Переносимости кого (всего UCFS?), куда? (Я ничего не понял)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants