Author Topic: в поисках однозначной грамматики  (Read 3258 times)

0 Members and 1 Guest are viewing this topic.

Offline basta

  • Blogger
  • *
  • Posts: 2889
  • Gender: Male
Программа для проверки однозначности была бы кстати.
Если верить википедии, то
Quote
The decision problem of whether an arbitrary grammar is ambiguous is undecidable because it can be shown that it is equivalent to the Post correspondence problem.[2] At least, there are tools implementing some semi-decision procedure for detecting ambiguity of context-free grammars.[3]
Т.е. алгоритма нет, и программы тоже не будет.

Забегая вперёд, я сплю и вижу языки с более сложными грамматиками, возможно даже европеоидными, тексты на которых можно скомпилировать в xumiqedi'йские и тем самым доказать однозначность их грамматик, не составляя огромные РБНФ для каждого из таких языков.
Это тоже ошибка. Транслирующий алгоритм может быть неоднозначным в том смысле, что со временем могут проявиться непредвиденные и непредвидимые ошибки в алгоритме, меняющие смысл высказывания. Так что транслируемость - не доказательство. Как максимум это в меру практичный инструмент. Кто знает? Может быть, worse is better...

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

* Ясное словоделение. Всевозможные -клитики должны или получить статус слова, или приклеиться к другому слову.

* Ясное предложениеделение. Объект первого предложения не должен смешиваться с субъектом второго. Я предлагаю специальную форму союза, но можно использовать и паузу достаточной длины.

* Различимая форма слова. По слову должно быть понятно, какое место в абстрактном синтаксическом дереве оно может и не может занимать. Проще всего сделать уникальные окончания или начинания слова, хотя это не единственный способ. Также для не ищущих лёгких путей, можно классифицировать все корни по частям речи. Тогда в грамматике придётся перечислить весь словарь: "К классу I относятся следующие слова: ...". По-моему, это не удобно.

* Запрет на рекурсию. Если все члены предложения будут иметь уникальную форму, то этого будет достаточно, очевидно. Но это не всегда удобно[1], поэтому предлагаю альтернативу в виде следующего правила.

* Запрет на нелинейную рекурсию, т.е. от вершины может генерироваться ничем не ограниченная цепочка слов тогда и только тогда, когда она не ветвится. Число всех возможностей для ветвления должно быть конечным, другими словами они должны быть полностью перечислены в грамматике. Под ветвлением понимается, например, использование союзов или нескольких предложных групп к одному слову.

Какие свойства необходимы, а без каких можно обойтись, это предмет дискуссии. Но если задействовать все, то грамматика будет однозначной. Строго говоря, математически я это не доказал. Я был бы благодарен профессиональным математикам за помощь здесь.

Когда дело доходит до реализации, всплывают неприятные следствия. Например, несколько видов наречий[1] и союзов[2], или запрет на использование союзов в членах предложения где-нибудь в глубине рекурсии[3], например

Я ел кашу(1), собранную в поле(2) за деревней(3), построенной в 19-м веке(4).

Пример, конечно, умозрительный, но использование союза на уровнях 3-4 гарантирует многозначность как минимум в устной речи.

[1]
Это-то понятно. А как быть с нано нананаречиями? И нананана...наречиями? Например "слишком уж очень быстро бежит".
[2] http://conlang.wikia.com/wiki/Dzalaci/Russian
Quote
Союзы имеют глагольную основу (-u). В зависимости от роли выбирается окончание: союз предложения не имеет окончания, союз объекта - "ta", союз наречия - "ca", союз причастия - "nga". Различение обеспечивает синтаксическую однозначность.
[3] http://conlang.wikia.com/wiki/Dzalaci/Russian
Quote
К объекту можно подставить несколько независимых причастий, используя союз причастия. Осторожно! К именам не в роли объектов нельзя употребить несколько причастий.
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Offline wandrien

  • Posts: 7895
Я ел кашу(1), собранную в поле(2) за деревней(3), построенной в 19-м веке(4).
:what:
TOPIC {
  Я ел кашу (=A);
}
COMMENT {
  {A} собрана в поле (=B);
  {B} есть за деревней (=C);
  {C} построен в 19-м веке;
}.


Offline basta

  • Blogger
  • *
  • Posts: 2889
  • Gender: Male
Я ел кашу(1), собранную в поле(2) за деревней(3), построенной в 19-м веке(4).
:what:
TOPIC {
  Я ел кашу (=A);
}
COMMENT {
  {A} собрана в поле (=B);
  {B} есть за деревней (=C);
  {C} построен в 19-м веке;
}.


Что Вас смущает?
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Offline wandrien

  • Posts: 7895
Что Вас смущает?
Не то что б смущает.
Любое грамматически верное утверждение [1] можно разложить на последовательность простых неосложненных утверждений. Это подходит как достаточно однозначная грамматика?

[1] ну насчёт любого это еще надо доказать.

Offline basta

  • Blogger
  • *
  • Posts: 2889
  • Gender: Male
Что Вас смущает?
Не то что б смущает.
Любое грамматически верное утверждение [1] можно разложить на последовательность простых неосложненных утверждений. Это подходит как достаточно однозначная грамматика?

[1] ну насчёт любого это еще надо доказать.
Да, это верно, и доказывать [1] я не потребую. Ведь я уже сделал такой конланг с сотнями коротких примеров и одним текстиком. Но он мне показался крайне неудобным в использовании. Поэтому я ищу грамматики посложнее. Поиск продолжается.
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Offline Bhudh

  • Posts: 57094
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
Я ел кашу(1), собранную в поле(2) за деревней(3), построенной в 19-м веке(4).
:what:
TOPIC {
  Я ел кашу (=A);
}
COMMENT {
  {A} собрана в поле (=B);
  {B} есть за деревней (=C);
  {C} построен в 19-м веке;
}.
Лисп наш друг.
Я ел (кашу, собранную в (поле за (деревней, построенной в (19-м веке) ) ) ).
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline basta

  • Blogger
  • *
  • Posts: 2889
  • Gender: Male
Я ел кашу(1), собранную в поле(2) за деревней(3), построенной в 19-м веке(4).
:what:
TOPIC {
  Я ел кашу (=A);
}
COMMENT {
  {A} собрана в поле (=B);
  {B} есть за деревней (=C);
  {C} построен в 19-м веке;
}.
Лисп наш друг.
Я ел (кашу, собранную в (поле за (деревней, построенной в (19-м веке) ) ) ).
Писать так может быть удобно, но говорить и думать - вряд ли.
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Offline Bhudh

  • Posts: 57094
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
Лисперы не умеют думать :'(.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline wandrien

  • Posts: 7895
Лисперы не умеют думать :'(.
Всегда это подозревал.

Offline yurifromspb

  • Posts: 1735
Лисп наш друг.
И он пришёл с миром.

(ел я (КАКОЙ каша (ГДЕ собранный (КАКОЙ деревня (КОГДА построенный 19_век")))))

(ЕСТЬ (ЧЕЙ значение (DEFREF форма 1)) (ЧЕЙ (КАКОЙ аргумент первый) (REF 1)))
Дяденька, я ведь не настоящий лингвист, а этимологический словарь я в интернете нашёл.

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

На самом деле, в устной речи, конечно, поможет скорее форт, чем лисп. Подразумевается, что появляющиеся в речи объекты укладываются в стек или ещё какую-нибудь строго определенную структуру, такую, что к ним можно недвусмысленно обращаться, и, что для каждого слова строго задан способ, которым оно меняет эту структуру.
Тогда проблема разбора упраздняется сама собой.

2 2 + 4 =
True

:)
Дяденька, я ведь не настоящий лингвист, а этимологический словарь я в интернете нашёл.

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Offline Mass

  • Posts: 4236
  • Unnina leqû.
Quote from: yurifromspb
Подразумевается, что появляющиеся в речи объекты укладываются в стек

И не жалко ж Вам людей)) Вытаскивай потом объект оттуда, ё.

Я вот очень люблю согласование по роду - три объекта в сложной фразе можно разбрасывать по всей длине оной, подобрав м., ср., и ж.р. Оно является удобным инструментом даже между двумя фразами, хотя да, к читателям я отношусь при этом весьма халатно.

З.ы. распишите абзац текста выше данной строки по вашему методу :)

Then something happened which unleashed the power of our imagination. We learned to talk. © Pink Floyd.
"They are primarily there to stand as a beacon and symbol of hope..." © WH40K
"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Offline yurifromspb

  • Posts: 1735
З.ы. распишите абзац текста выше данной строки по вашему методу :)
Это можно попробовать сделать, но для этого нужно фактически придумать конланг: расписать нужные грамматические категории, типы объектов на стеке, правила преобразования для хотя бы самых нужных слов.
И не жалко ж Вам людей)) Вытаскивай потом объект оттуда, ё.
Ну форте на пишут как-то. И не всякий такой Йода магистр есть.
Spoiler: не надо читать ⇓⇓⇓
Дяденька, я ведь не настоящий лингвист, а этимологический словарь я в интернете нашёл.

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Offline Mass

  • Posts: 4236
  • Unnina leqû.
Второй момент, важный для коммуникации - обработка ошибок (затирание сигналов шумом, потери).

Выбросьте из моей фразы три слова наугад - в большинстве случаев при 'парсинге' вопросы будут связаны не с синтаксисом. В большинстве, не во всех, конечно. Нужно будет 'додумывать' объекты, но не саму функцию (вот она, избыточность грамматики; вот её назначение :) ).

А в случае с Вашей фразой?
Then something happened which unleashed the power of our imagination. We learned to talk. © Pink Floyd.
"They are primarily there to stand as a beacon and symbol of hope..." © WH40K
"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Offline basta

  • Blogger
  • *
  • Posts: 2889
  • Gender: Male
В качестве критики стековой системы приведу несколько постов с этого форума.

а вообще, обратная польская нотация (также известна как левоветвящийся синтаксис, или тюркский / японский порядок слов, или хоть горшком назовите...) -- это чудесно. надоели европеоидные конланги со SVO-м.
А мне приятнее узнать сначала что, а потом уже над чем, чем хранить аргументы не знай чего неизвестное время. ::)
А мне приятнее узнать сначала что, а потом уже над чем, чем хранить аргументы не знай чего неизвестное время. ::)
то же из ложбанской беседки:
Quote
Минимизируйте по возможности количество sumti (аргуметов) перед brivla (предикативным словом) - чем меньше всякого разного понапихано перед "базой", тем проще читать ( меньше загрузка "оперативной памяти", т.к. не нужно, добравшись до brivla, возвращаться назад).
Quote
В русском языке тоже можно выразиться в "тюркском" стиле - "я поездом длинным-предлинным вчера из дома на учёбу долго-долго ехал" и с прочтением, наверняка, особых проблем не будет (будет лишь лёгкое ощущение нарастающей заинтригованности), так как язык в нас отработан до полного автоматизма. Однако, подозреваю, что с ложбаном на сегодняшний день никто из нас столь резво управиться не сможет (заметьте так же, что во фразе про поезд есть куча подсказок - грамматических и смысловых, позволяющих интуитивно делать предположение о возможном глаголе; в ложбане такого практически нет, ибо, кроме предиката, ничто не указывает на роль того или иного слова в предложении).

да, это весомое возражение, которое заставляет меня теперь сомневаться. я влюбился в левоветвящийся синтаксис потому, что он совпадал с порядком вычисления: положи в стек 1-ое, положи 2-е, а потом сделай действие с последними двумя - но в языке скорее происходит не вычисление, а связывание, в котором важна только правильная линия свзяывания, а не направление, и порой кажется, что начинать с глагола даже удобнее.
 :(
что он совпадал с порядком вычисления: положи в стек 1-ое, положи 2-е, а потом сделай действие с последними двумя
Заметь, это только в простых случаях проходит. Только захоти ты сделать функцию типа if, сразу придётся отказаться от обратной записи и перейти если не к дереву, то к прямой — не нужно вычислять лишнее. И даже нельзя, если есть побочные эффекты. :)

Вообще, как там заметили, часто может быть много подсказок и семантических, и других о том, что впереди, так что твоё желание не зря. (Или это просто idée fixe. :-\ )
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Лисп наш друг.
И он пришёл с миром.

(ел я (КАКОЙ каша (ГДЕ собранный (КАКОЙ деревня (КОГДА построенный 19_век")))))

(ЕСТЬ (ЧЕЙ значение (DEFREF форма 1)) (ЧЕЙ (КАКОЙ аргумент первый) (REF 1)))
Придётся озвучивать скобки и постоянно держать в голове, сколько их открыто. Ну а в конце фразы будет нудный процесс повторения одной и той же морфемы. Как в анекдоте: шпиону удалось украсть из Пентагона последние 50 МБ исходного кода на лиспе для запуска баллистических ракет. К счастью, там были только закрывающие скобки.
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Offline yurifromspb

  • Posts: 1735
На самом деле в форте не левоветвление главное, а то, что грамматика задаётся не в виде абстрактного описания, а как автомат разбора (причём автомат создаётся по ходу дела, хотя это и не обязательно), т.е. грамматика однозначна по определению. Т.е., если кто хочет однозначную грамматику, тот может формулировать её как алгоритм. Алгоритм, естественно, можно выбирать исходя из ограничений на память.
Что касается стека, стек - просто самая простая неограниченная память. Но можно сделать и не стек.

Второй момент, важный для коммуникации - обработка ошибок (затирание сигналов шумом, потери).
Это отдельный вопрос. Формальный язык, конечно, ошибок не терпит. Надо думать, как сделать помехоустойчивость, сохранив, в каком-то разумном смысле, однозначность.

Дяденька, я ведь не настоящий лингвист, а этимологический словарь я в интернете нашёл.

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Offline Bhudh

  • Posts: 57094
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
Ну а в конце фразы будет нудный процесс повторения одной и той же морфемы.
Я ел (кашу, собранную в (поле за (деревней, построенной в (19-м веке 4). (Называние числа скобок [или просто "всех"].)
Я ел (1 кашу, собранную в (поле за (деревней, построенной в (19-м веке 1). (Закрытие первой из открытых автоматически закрывает все внутренние.)

И ещё некоторое число способов можно придумать, была бы фантазия.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline basta

  • Blogger
  • *
  • Posts: 2889
  • Gender: Male
На самом деле в форте не левоветвление главное, а то, что грамматика задаётся не в виде абстрактного описания, а как автомат разбора (причём автомат создаётся по ходу дела, хотя это и не обязательно), т.е. грамматика однозначна по определению. Т.е., если кто хочет однозначную грамматику, тот может формулировать её как алгоритм. Алгоритм, естественно, можно выбирать исходя из ограничений на память.
Что касается стека, стек - просто самая простая неограниченная память. Но можно сделать и не стек.

Второй момент, важный для коммуникации - обработка ошибок (затирание сигналов шумом, потери).
Это отдельный вопрос. Формальный язык, конечно, ошибок не терпит. Надо думать, как сделать помехоустойчивость, сохранив, в каком-то разумном смысле, однозначность.


Я ставлю перед собой задачу иначе: как сделать в какой-то разумной мере помехоустойчивость, сохранив (безоговорочно) однозначность. :)

Очевидным ответом является грамматикализация некоторых понятий и согласование по ним. Как в Эсперанто, но можно пойти чуть дальше и задеть глаголы. С другой стороны, в английском сущ-е не согласовываются с прил-ми.
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Всё-то Вы все пытаетесь взорвать мозг пользователю.  ;D Потом возникают такие темы: Логический язык, не опасный для жизни
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Offline Mass

  • Posts: 4236
  • Unnina leqû.
Третий вопрос)))

Что с переносом объектов из фразы во фразу в процессе повествования? Как будет устроен?

Это весьма важно - иначе текст придёт к виду "Ленин жил. Ленин жив. Ленин будет жить." Ладно, тут хоть коротко всё, а с примером про кашу будет печально очень.

Offtop
кстати,

while (Ленин>0)
{
Ленин = жив--
Ленин = жив
Ленин = жив++
}

Вот только не знаю, Ленин int или float? :)
Then something happened which unleashed the power of our imagination. We learned to talk. © Pink Floyd.
"They are primarily there to stand as a beacon and symbol of hope..." © WH40K
"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Offline yurifromspb

  • Posts: 1735
Что с переносом объектов из фразы во фразу в процессе повествования? Как будет устроен?
Если есть имя, то всё просто, если нет, делаем слово "звать".

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

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Offline Mass

  • Posts: 4236
  • Unnina leqû.
 :3tfu:

Если я пойму, что Вы хотели сказать, это буду уже не я))))
Then something happened which unleashed the power of our imagination. We learned to talk. © Pink Floyd.
"They are primarily there to stand as a beacon and symbol of hope..." © WH40K
"Как часто мы промахиваемся ещё при выборе цели!" © Виктор Власов.

Offline yurifromspb

  • Posts: 1735
На самом деле, не надо понимать :) Это я так шучу.

Вот есть некое представление структуры текста "a". Пусть это представление можно закодировать как объект на каком-нибудь языке программирования. Все возможные представления формируют тип "A". Мы читаем текст и меняем представление. Чтение слова "b" эта функция f(A,B) -> A.
Читаем по словам, меняем текущее представление: 0, a1, a2.... an. Получаем итоговую структуру теста.

Я хотел сказать, что задача сводится к тому, чтобы придумать такие тип A и функцию f, чтобы язык удовлетворял нашим пожеланиям. А однозначность будет by design.
Дяденька, я ведь не настоящий лингвист, а этимологический словарь я в интернете нашёл.

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Offline Bhudh

  • Posts: 57094
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
Вот только не знаю, Ленин int или float?
Πάντα ρεῖ
Ленин ∈ πάντα
Ленин — float
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.
Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: