![]() |
Модераторы: Се ля ви |
![]() ![]() ![]() |
|
default |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Предлагаю создать новый язык, вернее новую модификацию старого. Условно назовём его LANG. Фактически нужна новая модификация естественного языка в общем, а русского языка в частности, доступная для машинного понимания. Для логического программирования, что-то вроде пролога (очень отдалённо). Зачем? Для чёткого описания сущностей этого мира и связей между ними на естественном языке. Где это может быть полезно? Например, вы создаёте экспертную юридическую систему проще посадить юриста он за неделю портирует семейный кодекс на ruLANG, чем программиста, который будет 2 месяца создавать правила в прологе и разбираться в законодательстве. А может быть даже закон напишите, в котором нет разночтений или неясностей (валидатор их просто не пропустит), или энциклопедию которую автоматически можно переводить на другие языки и которая понятна машине. Смысл в том чтоб создать язык, чтото среднее между естественным и прологом, который бы был понятен и компьютеру и обычному человеку, не программисту. Даже не так, создать описание мира понятное как машине, так и обычному человеку далёкому от class, import, include.
Конструкции будут, например: «Вася получил почту», но никак не: «почта была получена Васей» или: «Васе притаранили почту» и т.д. и т.п. и недай бог не: « Вася (почту, «получил»)» В общем, синтаксис только предстоит придумать, главное, что б он был чётким логически и максимально естественным. Основные названия логических связей и объектов должны быть на английском, с соответствующими трансляциями на русский или например хинди. Часть определений можно взять из существующих реализаций XML для совместимости. Пока есть только идея, впрочем, продуманная, если будет интересно буду развивать. Что думаете по этому поводу? |
|||
|
||||
regis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: нет Всего: 7 |
Думаю, что прежде, чем создавать свои проекты, вам стоит познакомиться с уже существующими "естественно-логическими" языками. Вот, для затравки, несколько ссылок:
LOGLAN: http://www.loglan.org/ LOJBAN: http://www.lojban.org/ VORLIN: http://www.vorlin.org --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
default |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
regis
благодарю читаю |
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
На форуме какое-то сезонное обострение желания написать язык, берущий корни от естественного
![]() |
|||
|
||||
check |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 610 Регистрация: 3.4.2006 Репутация: нет Всего: 23 |
Сколько уже было этих попыток придумать "язык программирования понятный непрограммистам".
Тот же 1С по замыслу придумывался чтобы бухгалтер мог на нем в случае надобности накидать процедурку для своих целей. И что, пишут на нем бухгалтера? Вместо этого появилась новая профессия - 1C программист. Бросьте... Добавлено @ 18:08
![]() ![]() |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Э-э не совсем так. Следите за тенденциями. 1С программист всё же на 50% бухгалтер. Пройдёт время и все будут программистами. Даже врачи и секретарши, просто языки будут специальные и обучение профессии будет больше на информационные технологии ориентировано. так же как сейчас всех читать учат, будут всех немного программить учить. Уже сейчас все инженеры в обязательном порядке обучаются информатике. Добавлено @ 18:16 default, для начала неплохо было бы найти/написать библиотечку раскладки нормального русского предложения на подлежащее/сказуемое/второстепенные. С определением сущ/прил/глагола и перевода слов в начальную словоформу (последнее уже точно есть). Потом можно и поиграть ![]() |
|||
|
||||
default |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
[quote]На форуме какое-то сезонное обострение желания написать язык, берущий корни от естественного
[quote] немного неправильно я не предлагаю написать язык понятный не программистам, я предлагаю упростить естественный язык что б он логически был понятен компьютеру как упрощенный английский для аборигенов и это не сезонное обострение, а скорее вирус у меня эта мысль возникла когда про этот душевный язык Д читал ![]() У меня вот такой практический вопрос : как автоматизировать труд юриста? есть законодательства государства: конституция, законы, постановления, указы, изменения дополнения всё это превращается в огромную массу данных. Как всё это привести в вид понятный машине и доступный людям которые с этим работают юристам, чиновникам и др.? На каком языке написать? |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: нет Всего: 186 |
А зачем это нужно (если, конечно, не преследуются чисто академические цели)? |
|||
|
||||
FatalError |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 11.4.2006 Репутация: нет Всего: 1 |
Когда всё это превращается в огромную массу данных, возникает большое желание написать что-нибудь на чисто русском языке. Но нецензурное.
|
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Наверное чтобы потом у машины можно было спросить "а вот за такое что мне грозит" или "виновен или не виновен"... Чеолвек - удивительно ленивое существо. Не будут все программерами, пока у компа нельзя будет просто спросить обычным языком то, что тебе надо. А когда этот светлый момент наступит, программеров больше не будет. |
|||
|
||||
Artemios |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: нет Всего: 50 |
А чем Пролог не нравится? Определяем для выбранной предметной области операторную нотацию, например:
и тогда следующее предложение будет корректным прологовским фактом:
и можно задавать вопросы:
P.S. Пример копировал из И.Братко Программирование на языке Пролог для искусственного интеллекта, на различных реализациях Пролога возможны незначительные изменения. -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
||||||
|
|||||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Artemios, красиво. Наглядно. Лаконично.
|
|||
|
||||
regis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: нет Всего: 7 |
Так пример, который привел Artemious, 100% искусственный. Вы же не будете утверждать, что в этот пример как-то поможет Пролог-системе понять семантику глагола "работает", и уж тем более, объяснит ей смысл аттрибута "нашем" и как-то даст возможность отличать "наши" отделы от "не наших".
Я, в принципе, такие примеры могу хоть на C++ создать (особенно, если макрорасширения подключить) -- но это все-таки не значит, что моя программа будет понимать сколь-нибудь осмысленное подмножество натурального языка. Это сообщение отредактировал(а) regis - 4.12.2006, 11:57 --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: нет Всего: 48 |
-------------------- Account removed |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
А кто сказал, что интерпретер обязан "понимать" семантику ?? |
|||
|
||||
Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: нет Всего: 50 |
sergejzr совершенно прав: формальные языки оперируют только синтаксисом, а любой язык программирования принципиально не может быть ни чем иным, кроме как формальным языком. По этому поводу еще в первой половине прошлого века математиками было доказано: семантика не сводима к синтаксису. Как я понял первый пост default: требуется выделить из естественного языка поддающееся формализации подмножество. Синтаксическое. А для работы с этим подмножеством -- Пролог например вполне может подойти. Это сообщение отредактировал(а) Artemios - 4.12.2006, 13:56 -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Ого! Проектище! Очень интересно, как там разработки идут. В принципе это то, чем я хотел бы заниматься.. |
|||
|
||||
regis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: нет Всего: 7 |
Даже если ограничиться исключительно синтаксисом, подобная программа на Прологе сможет понимать очень небольшое подмножество естественного языка. Синтаксис языка, особенно русского, допускает слишком много разнообразия. И, кстати, полностью избежать анализа семантики невозможно. Попробуйте формально проанализировать фразу "Джек видел их семью своими глазами". Ее можно интерпретировать как минимум двумя путями, и без дополнительных знаний (например о том, человек Джек или нет) понять ее нельзя. Вот для устранения таких проблем и созданы языки типа Логлана. Это сообщение отредактировал(а) regis - 4.12.2006, 15:53 --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: нет Всего: 50 |
Никто не спорит ![]() Я наверно не совсем корректно высказался. Имел ввиду не невозможность некоторого сведения семантики к синтаксису (и ABBYY прекрасно собираются доказать такую возможность), а принципиальную невозможность полного сведения семантики к синтаксису. То есть формально мы можем определить, что между объектом A и объектом B существует отношение C. Само C может также выступать объектом для некоторого иного отношения. Чем больше в базе знаний забито объектов и отношений, тем более "умной" будет машина (даже в ABBYY это наполнение данными называют обучением семантике и прагматике, хотя на самом деле происходит формализация оных). Так или иначе, это всего лишь формализация, в конечном итоге редуцируемая все к тем же 0,1 и булевым операциям на них. Интерпретация же формального вывода из базы знаний -- все равно на плечах человека. Логлан, Ложбан -- устраняют проблему формализации синтаксиса естественного языка, так как сами уже синтаксически являются формальными языками. Что может облегчить частичную формализацию семантики, полная же невозможна и в этом случае. Это сообщение отредактировал(а) Artemios - 4.12.2006, 16:50 -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
default |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Хорошо, немного по другому
Поставим конкретную цель: Создать базу данных об этом мире, аналог Wikipedia приспособленную для понимания и семантического анализа компьютером. Хороший вариант как часть страниц уже существующих в Wikipedia. Она должна: 1.Описывать свойства и отношения между объектами реального мира. 2. Быть приспособленной для понимания и семантического анализа компьютером. 3.Быть доступной для понимания пополнения и редактирования человеком без специальной подготовки. |
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 2 Всего: 259 |
Насколько я понял пример, то база данный, в основе которой лежал бы Prolog в этом смысле подошла бы.
Здорово, прикинь себе запрос hunanql('select * where свойство=мягкий') ![]() Тут даже больше проблема стоит заполнения такой базы, чем ее создания ![]() |
|||
|
||||
Artemios |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: нет Всего: 50 |
Угу. Уже ближе, имхо. Хотя в этом контексте лучше употреблять термин "база знаний". Что-то вроде семантической сети...
Про понимание машиной ничего не скажу (не формализуемый термин). Приспособленность для анализа. Язык наподобие того же Ложбана, только редуцированного до некоторого псевдокода, оптимального для внутреннего представления данных.
Здесь подошло бы изоморфное отображение внутреннего языка из предыдущего пункта в выделенное формализованное подмножество естественного языка. Конечно, для человека запись на этом подмножестве будет выглядеть иногда не очень красиво, но все равно понятно. Проблема здесь будет в выделении свободной от неоднозначностей структуры естественного языка, пригодной для описанных целей. Другая проблема -- человек, забивающий данные в базу, остается человеком, а следовательно -- несвободным от неоднозначности. И если вводимые им данные синтаксически уже можно будет проверить на корректность, то полная семантическая проверка была бы возможна только при условии, что вся база данных уже существует, что невозможно. Исходя из вышеизложенного, БД лучше назвать не "база данных об этом мире", а "БД, реализующая некоторое представление об этом мире". А вообще, идея имхо становится интересной ![]() Это сообщение отредактировал(а) Artemios - 5.12.2006, 10:07 -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
||||
|
|||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Есть такие базы как в свободном, так и в коммерческом варианте. Выполнено в логических формулах.. Базы знаний (Cyc - EnCYClopedy): ![]() Cyc (коммерч.) ResearchCyc/(свободн.) OpenCyc Семантические лексиконы: WordNet Русский WordNet |
|||
|
||||
regis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: нет Всего: 7 |
Собственно, если вопрос о том, где взять базу знаний -- то он решается легко. Основа любой экспертной системы -- база знаний в некой формализованной форме. А такие системы есть по любой отрасли науки -- физика, химия, биология, медицина...
--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
![]() ![]() ![]() |
Правила раздела "Философия программирования": | |
|
Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО: • вопросы перспективного развития методов написания ПО; • изменяющиеся языки и методологии программирования; Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Философия программирования | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |