Hayzunxn
Шеговит език, поддържан като софтуер: TSV лексикон, спецификация с версии и 12 lint проверки
- Роля
- Сам, ръководя агенти
- Статус
- Пуснат
- Код
- Публичен в GitHub
- Технологии
- PythonMarkdownTSVAutoHotkey
В числа
473
записа в лексикона
12
lint проверки, всички минават във v2.0.0
4
документа, създавани наново от лексикона и спецификацията: граматика във Word, речник в електронна таблица, презентация с общ преглед и PDF
Проблемът
Hayzûnxñ започна като шеговит език, който направих с приятел, преди да напиша какъвто и да е код, и по-късно порасна с помощта на AI. Нарочно звучи смешно: стилът е груб с цел, съвпаденията между омоними са преднамерени, а част от фонологията е непроизносима по замисъл. Език, построен върху нарочни „грешки“, се нуждае от начин да отличава планираната странност от истинската грешка, а разхвърляните документи не можеха да го дадат.
Подходът
По-късно накарах агенти да го преструктурират така, както би го направил лингвист, и да го третират като код. Речникът стана данни, граматиката стана номерирани модули на спецификацията, всяка промяна минава през валидатор, а всеки документ се генерира от двете.
Как работи
Лексиконът е базата данни
lexicon.tsv съдържа 473 записа, всеки със стабилен идентификатор като N0001 или V0001, а спецификацията сочи думите по идентификатор, а не по изписване, така че дума с променено изписване не чупи нищо. Всеки запис носи произхода си (първоначално ядро, проверено разширение или нова дума от v2) и стила си, така че нищо не се пренаписва тихомълком.
Проверки, които отличават шегата от грешката
validate.py пуска 12 lint проверки, между които правилото думите да завършват на ñ, недефинирани букви, невалидни препратки и омоними. Омоним пропада, освен ако не е отбелязан като преднамерен, така че Yukñ може нарочно да значи едновременно „юг“ и „как“, докато случайно съвпадение спира изграждането.
Решения, записани окончателно
Модул с обосновки изброява избори, които приличат на грешки, но не са. Представката за бъдеще време ñ- не може да се произнесе в началото на сричка, и това е замисълът. Ръководството за участие праща всеки, който ще отвори pull request, първо към този модул.
Две писмености и генерирани документи
Латиницата е основната писменост, а кирилицата е втората, с транслитератор между тях и скрипт за AutoHotkey за въвеждане на буквите. build.py създава наново граматиката като документ на Word, речника като електронна таблица, презентация с общ преглед и PDF на спецификацията. Хранилището съдържа и задача в стила на олимпиадите и начален документ, който учи езиков модел на този език.
Какво избрах и какво отпадна
Избрах
Markdown за текста и TSV за данните, а файловете за Office се генерират
Пред
Редактиране на граматиката и речника като файлове на Word и Excel
И двата текстови формата показват ясно разликите в git, а генериран файл не може да се разминава с източника си.
Избрах
Двоен лиценз: MIT за кода, CC BY-SA 4.0 за езика
Пред
Един лиценз за цялото хранилище
Кодът и съдържанието са две естествено разделими части, а споделянето при същите условия държи отворени производните речници и разклонените версии на езика.
Резултатът
Версия 2.0.0 беше пусната с всичките 12 lint проверки успешни, а хранилището стана публично, след като една стара папка беше изчистена от историята му в git. README определя грубия стил като основа на езика, затова тази страница цитира само приличните думи. Остава за v3: преведен корпус, митология, около 500 корена, които не са български, и една необичайна типологична черта. По-късно обмислях да го превърна в езотеричен език за програмиране, труден за писане от човек и лесен за модел, и се отказах от идеята.