TGViewer
Raxys Studios Raxys Studios @raxysstudios · 669 subscribers
Post #61 242
После ещё некоторого успешного тестирования и оптимизаций, уверенно считаю, что работать с разговорником стало легче, а принципы его работы - более просты. Продолжаем разбор новых функций.

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

Теперь же функции требований для отключения блока объединены с условиями состояний. Каждый тег в условии состояния может быть в одном из 3х состояний: игнорирован, запрошен, либо предоставлен. Запрошенный тег, если отсутствует в контексте, скрывает данное состояние. Предоставляемый тег, при показе состояния, посылается в глобальный контекст. При изменении соответствующих свойств контекста каждый блок составляет рейтинг из своих состояний на основе их предоставляемых тегов, и показывает первое из них, либо никакое, если ни одно состояние не нашло все запрашиваемые теги. Абстрактно это может звучать несколько сложно, но на примере должно стать понятно.

Простая фраза с двумя блоками: "ду вянда (я иду)" . Первый блок - я - может быть в одном из двух состояний: "ду (ед.)" и "нисса (мн.)". Первое состояние предоставляет в контекст информацию о том, что лицо в единственном числе, а второе - что во множественном. Далее, второй блок - иду - может быть в одном из трёх состояний: "вянда (муж.)", "рянда (жен.)", "дянда (мн.)". Первое состояние, прежде всего, требует, чтобы человек в контексте был в единственном числе, и предоставляет информацию о том, что он - мужчина. Второе состояние выдвигает то же требование, и предоставляет то, что человек - женщина. А третье состояние не предоставляет ничего, лишь требуя, чтобы лицо было во множественном числе, так как эта информация уже предоставлена во втором состоянии первого блока. Изменение отображаемого состояния в любом блоке с предоставляемыми тегами посылает цепную реакцию через контекст во все другие блоки во всех языках. Вот как-то так.
More from @raxysstudios
  1. Dec 16, 2023Raxys вступает в игру в 2024
  2. Jul 8, 2023Ассаламу алейкум, добрый вечер. Нет, Raxys не возвращается. Но я хочу кое-чем поделиться.…
  3. Sep 11, 2022Наверное, сейчас лучший момент для объявления: Raxys Studios завершает свою работу. Напосл…
  4. Sep 11, 2022photo post
  5. Sep 11, 2022Поздравляем всех причастных, наконец. Подобная проектная коллаборация народов Кавказа от К…
  6. Aug 19, 2022В преддверии релиза напечатали вот такие стикеры для организаторов переводов и озвучек. По…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →