Xofsopil, синтаксически однозначный европеоид

Автор basta, октября 31, 2017, 18:33

0 Пользователи и 1 гость просматривают эту тему.

basta

Название произвольное. Вместо словаря покамест английские слова с добавлением в конце гласной. 5 частей речи выделяются по валентностям от 0 до 4 и узнаются по окончанию основы на одну из гласных: 0 — O, 1 — I, 2 — U, 3 — E, 4 — A. Для простоты запоминания эти буквы похожи на цифру валентности. Непереходные глаголы выражаются здесь как прилагательные или существительные, то есть глагол может отсутствовать в предложении. Местоимения выражаются как существительные или прилагательные, а предлоги и деепричастия как причастия или подчинённые предложения. Наречие примыкает к существительному, прилагательному или глаголу; нанаречие к наречию; «причастие слова» к существительному, прилагательному, наречию, нанаречию или причастию; «причастие глагола» к глаголу. В группе причастия можно делать инверсию любого объекта с субъектом; в глагольной группе глагол может стоять в любом месте, но субъект строго перед объектом, и если объектов несколько, то они также не могут меняться местами. Между предложениями обязательны «союзы предложения». Внутри предложений используются «союзы слова». Время, число, лицо и модальность не грамматикализованы. Анализировать текст нетрудно, если помнить, что последняя гласная в слове и всё, что после неё, английскому языку не принадлежит. Глагол с одним объектом называется моноглаголом, с двумя - диглаголом, с тремя - триглаголом, то же касается и причастий. В грамматику встроена позиционная система счисления.

Обозначения РБНФ:
{ 0 или более повторов }
[ 0 или 1 повтор ]
, конкатенация
; завершает правило
| альтернатива
( группирует )
- исключает
(* комментарий *)

РБНФ.

текст = предложение, {пробел, союз_предложения, пробел, предложение};
предложение = группа_имени
  | ([причастная_группа_глагола], группа_моноглагола,
     [причастная_группа_глагола], группа_имени, группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени,
     [причастная_группа_глагола], группа_моноглагола,
     [причастная_группа_глагола], группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени, группа_имени,
     [причастная_группа_глагола], группа_моноглагола,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_диглагола,
     [причастная_группа_глагола], группа_имени, группа_имени, группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени,
     [причастная_группа_глагола], группа_диглагола,
     [причастная_группа_глагола], группа_имени, группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени, группа_имени,
     [причастная_группа_глагола], группа_диглагола,
     [причастная_группа_глагола], группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени, группа_имени, группа_имени,
     [причастная_группа_глагола], группа_диглагола,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_триглагола,
     [причастная_группа_глагола], группа_имени, группа_имени, группа_имени, группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени,
     [причастная_группа_глагола], группа_триглагола,
     [причастная_группа_глагола], группа_имени, группа_имени, группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени, группа_имени,
     [причастная_группа_глагола], группа_триглагола,
     [причастная_группа_глагола], группа_имени, группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени, группа_имени, группа_имени,
     [причастная_группа_глагола], группа_триглагола,
     [причастная_группа_глагола], группа_имени,
     [причастная_группа_глагола])
  | ([причастная_группа_глагола], группа_имени, группа_имени, группа_имени, группа_имени,
     [причастная_группа_глагола], группа_триглагола,
     [причастная_группа_глагола]);
группа_имени = группа_существительного
  | (начало_союза, группа_существительного, союз_слова, группа_существительного, {союз_слова, группа_существительного}, конец_союза)
  | цитата
  | подчиненное_предложение;
группа_существительного = {группа_определения}, {группа_обст}, существительное, [причастная_группа_имени];
группа_обст_обст = группа_нанаречия | (начало_союза, группа_нанаречия, союз_слова, группа_нанаречия, {союз_слова, группа_нанаречия}, конец_союза);
группа_нанаречия = нанаречие, [причастная_группа_имени];
группа_обст = группа_наречия | (начало_союза, группа_наречия, союз_слова, группа_наречия, {союз_слова, группа_наречия}, конец_союза);
группа_наречия = {группа_обст_обст}, наречие, [причастная_группа_имени];
группа_определения = группа_прилагательного
  | (начало_союза, группа_прилагательного, союз_слова, группа_прилагательного, {союз_слова, группа_прилагательного}, конец_союза);
группа_прилагательного = {группа_обст}, прилагательное, [причастная_группа_имени];
причастная_группа_имени = причастие_имени | (начало_союза, причастие_имени, союз_слова, причастие_имени, {союз_слова, причастие_имени}, конец_союза);
причастие_имени =
    (монопричастие_имени, группа_имени)
  | (дипричастие_имени, группа_имени, группа_имени)
  | (трипричастие_имени, группа_имени, группа_имени, группа_имени);
причастная_группа_глагола =
    (монопричастие_глагола, группа_имени)
  | (дипричастие_глагола, группа_имени, группа_имени)
  | (трипричастие_глагола, группа_имени, группа_имени, группа_имени);
группа_моноглагола = {группа_обст}, моноглагол;
группа_диглагола = {группа_обст}, диглагол;
группа_триглагола = {группа_обст}, триглагол;
цитата = "so", пробел, текст, пробел, "to";
подчиненное_предложение = "ho", пробел, предложение, пробел, "ko", пробел;
количественное_числительное = числительное, "qi";
номинальное_числительное = числительное, "ni";
порядковое_числительное = числительное, "ru";
числительное = (с_плавающей_точкой | дробь), пробел;
с_плавающей_точкой = целое, ["go", пробел, натуральное, [пробел, "ro", пробел, целое]; (* точка, экспонента *)
дробь = (целое, пробел, "vo", пробел, натуральное) | (целое, пробел, "lo", пробел, натуральное, пробел, "vo", пробел, натуральное); (* плюс, дробь *)
целое = ["mo", пробел], натуральное;
натуральное = цифра, {цифра};
цифра = основа0, "n", пробел;
существительное = основа1 | количественное_числительное | номинальное_числительное, пробел;
прилагательное = основа1 | количественное_числительное | номинальное_числительное, "l", пробел;
моноглагол = основа2 | порядковое_числительное, пробел;
диглагол = основа3, пробел;
триглагол = основа4, пробел;
наречие = основа1, "n", пробел;
нанаречие = основа1, "r", пробел;
монопричастие_глагола = основа2, окончание_причастия_глагола,
  [инверсия1];
дипричастие_глагола = основа3, окончание_причастия_глагола,
  [инверсия1 | инверсия2];
трипричастие_глагола = основа4, окончание_причастия_глагола,
  [инверсия1 | инверсия2 | инверсия3];
монопричастие_имени = основа2, окончание_причастия_имени,
  [инверсия1];
дипричастие_имени = основа3, окончание_причастия_имени,
  [инверсия1 | инверсия2];
трипричастие_имени = основа4, окончание_причастия_имени,
  [инверсия1 | инверсия2 | инверсия3];
окончание_причастия_глагола = "l";
окончание_причастия_имени = "n";
инверсия1 = "s";
инверсия2 = "t";
инверсия3 = "f";
союз_слова = основа2, "s", пробел;
союз_предложения = основа2, "r";
основа0 = буква, {буква}, "o";
основа1 = буква, {буква}, "i";
основа2 = буква, {буква}, "u";
основа3 = буква, {буква}, "e";
основа4 = буква, {буква}, "a";
буква = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m"
      | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
начало_союза = "fo";
конец_союза = "po";
пробел = {"." | "," | "!" | ":" | ";" | "?" | " "}.

Полный список возможных окончаний:

-a триглагол
-al трипричастие глагола
-alf трипричастие глагола с 3-ей инверсией
-als трипричастие глагола с 1-ей инверсией
-alt трипричастие глагола со 2-ей инверсией
-an трипричастие имени
-anf трипричастие имени с 3-ей инверсией
-ans трипричастие имени с 1-ей инверсией
-ant трипричастие имени со 2-ей инверсией
-e диглагол
-el дипричастие глагола
-els дипричастие глагола с 1-ей инверсией
-elt дипричастие глагола со 2-ей инверсией
-en дипричастие имени
-ens дипричастие имени с 1-ей инверсией
-ent дипричастие имени со 2-ей инверсией
-i существительное
-il прилагательное
-in наречие
-ir нанаречие
-o частица
-on цифра
-u моноглагол
-ul монопричастие глагола
-uls монопричастие глагола с инверсией
-un монопричастие имени
-uns монопричастие имени с инверсией
-ur союз предложения
-us союз слова

Пример.

На всей земле был один язык и одно наречие.
inul allil worldi fo languagei andus dialecti po didin beu onei

Двинувшись с востока, они нашли в земле Сеннаар равнину
andur goil fromun easti theyi havebeenin findu inun sennaaril landi plaini

и поселились там.
andur theyi settleu therei

И сказали друг другу: наделаем кирпичей и обожжем огнем.
andur theyi saye theyi so wei letsin makeu bricki andur wei letsin burnu iti to

И стали у них кирпичи вместо камней, а земляная смола вместо извести.
andur theyi becomein haveu fo bricki insteadun stonei andus earthil resini insteadun limei po

И сказали они: построим себе город и башню, высотою до небес,
andur theyi saye onei so wei willin buildu forun wei fo towni andus highil toun skyi toweri po

и сделаем себе имя, прежде нежели рассеемся по лицу всей земли.
andur wei willin makeu forul wei namei beforeur wei beu spreadi overun allil earthi to

И сошел Господь посмотреть город и башню, которые строили сыны человеческие.
andur godi beu goi forur godi looku fo towni andus toweri po builduns manyil humanil soni

И сказал Господь: вот, один народ, и один у всех язык; и вот что начали они делать,
andur godi saye onei so nationi herein beu onei andur languagei beu onei andur theyi herein startin dou thati

и не отстанут они от того, что задумали делать;
andur theyi wilin notin abandonu iti thatur theyi planu ho theyi makeu iti ko

сойдем же и смешаем там язык их,
andur wei letsin comeu herei andur wei letsin herein mixu theyil languagei

так чтобы один не понимал речи другого.
forur onei notin understandu anotheril speechi to

И рассеял их Господь оттуда по всей земле;
andur spreadu godi theyi fromul therei overul allil worldi

и они перестали строить город.
andur theyi stopu ho theyi buildu towni ko

Посему дано ему имя: Вавилон, ибо там смешал Господь язык всей земли,
thereforeur giveu onei babylonil namei iti becauseur therein didin mixu godi languagei ofun allil worldi

и оттуда рассеял их Господь по всей земле.
andur fromul therei didin spreadu godi theyi overul allil worldi

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

Спасибо, что дочитали. Искренне надеюсь на критику и отзывы.


kemerover

А можно без РБНФ как-нибудь объяснить алгоритм парсинга?

Вообще, не очень ясна логика этих нанаречий и "причастий слова/глагола". Можете её объяснить? Какую проблему это всё решает?

Псевдоскобки в виде fo с po и ho с ko, конечно, отпугивают. Я бы подумал над тем, как можно избавиться от их необходимости.

basta

Цитата: kemerover от ноября  1, 2017, 14:07
А можно без РБНФ как-нибудь объяснить алгоритм парсинга?
Можно написать алгоритм на языке программирования, на языке описания данных, на регулярных выражениях. Просто мне так удобно, да и стандартно.

Цитата: kemerover от ноября  1, 2017, 14:07
Вообще, не очень ясна логика этих нанаречий и "причастий слова/глагола". Можете её объяснить? Какую проблему это всё решает?
Нанаречие - это примыкающее к наречию слово, например очень в словосочетании очень быстро бежит. Наречий у глагола может быть много, поэтому без специального члена предложения будет пониматься как очень бежит и быстро бежит.

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

Цитата: kemerover от ноября  1, 2017, 14:07
Псевдоскобки в виде fo с po и ho с ko, конечно, отпугивают. Я бы подумал над тем, как можно избавиться от их необходимости.
Как делать цитату без скобок, я не представляю.

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

Подчинять предложение без скобок можно, если придумать как субстантивировать глагол. Думаю, для этого придётся все существительные, примыкающие к подчинённому глаголу, ставить в специальный падеж, который не позволит им смешиваться с существительными главного глагола. А если подчинение будет второе, то второй падеж и т.д. например Я обернулся(1) посмотреть(2) не обернулась ли она(3) чтоб посмотреть(4) не обернулся ли я(5).


kemerover

Цитата: basta от ноября  1, 2017, 17:56
Можно написать алгоритм на языке программирования, на языке описания данных, на регулярных выражениях. Просто мне так удобно, да и стандартно.
Человеческий мозг наиболее эффективно воспринимает не абстрактные описания, а примеры, из которых он уже сам может в достаточной мере экстраполировать всё остальное.

Цитата: basta от ноября  1, 2017, 17:56
Нанаречие - это примыкающее к наречию слово, например очень в словосочетании очень быстро бежит. Наречий у глагола может быть много, поэтому без специального члена предложения будет пониматься как очень бежит и быстро бежит.
Это-то понятно. А как быть с нано нананаречиями? И нананана...наречиями? Например "слишком уж очень быстро бежит".

Я бы решил эту проблему простой запятой.

Цитата: basta от ноября  1, 2017, 17:56
Причастие глагола - это предлог, примыкающий к глаголу. Причастие слова - это причастие, деепричастие или предлог, примыкающие к неглаголу. Я хотел иметь более свободный порядок слов, поэтому разделил их на разные члены предложения. Если отказаться от этого деления, то причастие должно будет всегда следовать за словом, к которому оно примыкает.
А можно наглядный пример предложения с причастием глагола и того же предложения без него?

Цитата: basta от ноября  1, 2017, 17:56
Как делать цитату без скобок, я не представляю.
Кавычками?

basta

Цитата: kemerover от ноября  1, 2017, 18:56
Цитата: basta от ноября  1, 2017, 17:56
Можно написать алгоритм на языке программирования, на языке описания данных, на регулярных выражениях. Просто мне так удобно, да и стандартно.
Человеческий мозг наиболее эффективно воспринимает не абстрактные описания, а примеры, из которых он уже сам может в достаточной мере экстраполировать всё остальное.
Согласен, мой стиль изложения хромает. У меня всё в голове, и бывает трудно понять, что другим ясно, а что не очень. Из комментариев этой темы соберу объяснение на примерах и выложу на вики. Но не имея формальной модели легче допустить ошибку, я с этим сталкиваюсь всё время.

Цитата: kemerover от ноября  1, 2017, 18:56
Цитата: basta от ноября  1, 2017, 17:56
Нанаречие - это примыкающее к наречию слово, например очень в словосочетании очень быстро бежит. Наречий у глагола может быть много, поэтому без специального члена предложения будет пониматься как очень бежит и быстро бежит.
Это-то понятно. А как быть с нано нананаречиями? И нананана...наречиями? Например "слишком уж очень быстро бежит".
Если в таких членах предложения есть необходимость, надо вводить. Допустим, окончание -im.

Цитата: kemerover от ноября  1, 2017, 18:56

Цитата: basta от ноября  1, 2017, 17:56
Причастие глагола - это предлог, примыкающий к глаголу. Причастие слова - это причастие, деепричастие или предлог, примыкающие к неглаголу. Я хотел иметь более свободный порядок слов, поэтому разделил их на разные члены предложения. Если отказаться от этого деления, то причастие должно будет всегда следовать за словом, к которому оно примыкает.
А можно наглядный пример предложения с причастием глагола и того же предложения без него?
для демонстрации степени свободы порядка слов:

я пью воду - ii drinku wateri / drinku ii wateri / ii wateri drinku
я пью воду в кафе - ii drinku wateri inul cafei /  inul cafei ii drinku wateri / ii inul cafei drinku wateri / ii drinku inul cafei wateri - плюс вариации с перестановкой субъекта и объекта относительно глагола.

inul cafei может находиться в начале или конце предложения, или справа от глагола, или слева от наречной группы глагола, если она есть, если нет, то просто слева от глагола.

для контраста:
я пью воду, находясь в бутылке - ii drinku wateri inul bottlei
я пью воду, находящуюся в бутылке - ii drinku wateri inun bottlei
я, находясь в бутылке, пью воду - ii inul bottlei drinku wateri
я, находящийся в бутылке, пью воду - ii inun bottlei drinku wateri

Цитата: kemerover от ноября  1, 2017, 18:56
Я бы решил эту проблему простой запятой.
...
Кавычками?
Знаками препинания проблема не решается. Как произносить знаки препинания? Интонация? Тогда её точно так же надо полностью описать. Нельзя просто оставить что-то без описания и понадеяться, что само собой будет однозначно. Интонация не очень богатый инструмент, поэтому я полностью отдаю её под эмфазу.

basta

Вот вариация на ту же тему: по-русски, по-английски. Надеюсь, более доступно расписал. Возможно, местами не хватает примеров. Если найдутся читатели, то пожалуйста дайте знать, что непонятно и как описание можно улучшить.

basta

Думаю, выдумывать целый словарь для проверки лишь одной идеи не обязательно. Вот ещё одна вариация на русской лексике.

* слова берутся в словарной форме
* к основе на гласную добавляется фонема в
* после всех этих процедур добавляется гласная по валентности: 1 ы, 2 у, 3 э, 4 о
* некоторые частотные слова искажаются: и -> й, не -> нь
* вспомагательные слова не в начальной форме: давай
* -я - прилагательное, -за - наречие, -ра - глагол, -на - причастие, -ла - деепричастие, -ма - герундий, -та союз имени, -га союз причастия
* -ыса - инверсия (субъекта и) 1-го объекта, -уса - инверсия 2-го объекта, -эса - 3-го
* отсутствие суффикса: -ы - имя, -у - союз предложения, -э - диглагол и -о триглагол

Библия. Книга Бытие 11:1-9

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

1. На всей земле был один язык и одно наречие.

Однаждывы. Ю содержатюра весия землявы одиныя языкы юта одиныя наречиевы.

2. Двинувшись с востока, они нашли в земле Сеннаар равнину и поселились там.

Ю покинутюла востокы онивы найтивура равнинавы вуна землявыя Сеннаары. Ю онивы заселитюра тамы.

3. И сказали друг другу: наделаем кирпичей и обожжем огнем. И стали у них кирпичи вместо камней, а земляная смола вместо извести.

Ю онивы сказате онивы са "Мывы даваиза наделатюра кирпичы. Ю мывы даваиза обжечюра онивы" та. Ю онивы статиза иметюра кирпичы заменятюна камени юта смолавы заменятюна извести.

4. И сказали они: построим себе город и башню, высотою до небес, и сделаем себе имя, прежде нежели рассеемся по лицу всей земли.

Ю онивы сказате онивы са "Мывы даваиза построитюра городы юта башнявы высотавуныса небесавы. Ю мывы даваиза сделатюра товы имявуна мывы. Предшествоватю мывыя потомыза рассеяниевы заполнятюра весия землявы" та.

5. И сошел Господь посмотреть город и башню, которые строили сыны человеческие.

Ю сходыя Господи посмотретюра городы юта башнявы строитюныса онывы сынуна человекы.

6. И сказал Господь: вот, один народ, и один у всех язык; и вот что начали они делать, и не отстанут они от того, что задумали делать;

Ю Господи сказате явы са "Вотыза одиныя народы. Ю веси иметюра одиныя языкы. Ю онивы начатюра вотыза товы. Ю онивы низа перестатиза делатюра товы.

7. сойдем же и смешаем там язык их, так чтобы один не понимал речи другого.

Ю даваиза сходы. Ю даваиза мывы смешатюра вула тамы языкы иметюныса онивы. Целю одины низа пониматюра товы сказатемэса одины другои" та.

8. И рассеял их Господь оттуда по всей земле; и они перестали строить город.

Ю Господи рассеятюра онивы покинутюла тамы заполнятюра весия землявы. Ю онивы перестатиза строитюра городы.

9. Посему дано ему имя: Вавилон, ибо там смешал Господь язык всей земли, и оттуда рассеял их Господь по всей земле.

Значитю товы имявурыса Вавилоны. Ибову вула тамы смешатюра Господи языкы иметюныса весия землявы. Ю рассеятюра Господи онивы покинутюна тамы юга заполнятюна весия землявы.
:eat:

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр