Развитие парсерной ИЛ-платформы ТОМ
ASBer ( из ЛС ):
inform 7 позволяет писать код игры на естественном английском языке.
В ТОМе можно сделать примерно тоже самое, платформа это позволяет.
Но главный затык в том что система ничего не знает об окончаниях слов, которые автор будет использовать - в английском такой проблемы нет по причине отсутствия окончаний ))
Получается, что если кто-то набьет словарик со словами, то автор сможет написать игру с их использованием.
Вобщем, пока нечего обсуждать.
как это нечего? русская парсерная платформа, в принципе, позволяет писать квесты на естественном языке- это, как минимум, хороший повод напомнить лишний раз о ТОМе и вдохновить доброжелателей
Неактивен
ASBer написал:
Например, конструкцию
unique стол
{ cls = поверхность
}очень легко можно заменить фразой: "стол это поверхность."
но вот утверждение "на столе стоит ваза." парсер может преобразовать в код только если автор ранее определил лексему стол.title со всеми ее словоформами.
Вобщем не всё так просто с русским языком...
Хотя, как промежуточное решение, наверное можно чередовать блоки текста на естественном и искусственном языках в одном файле.
просто нужен хороший редактор. например, автор написал часть квеста, передал на выполнение. интерпретатор, вызванный из редактора встретил фразу "на столе стоит ваза", а слова столе в словарях нет. если бы такая прога была запущена НЕ из редактора- игра просто вылетела бы с ошибкой. в данном же случае- останавливается выполнение игры, а редактор выдаёт сообщение: "незнакомое слово столе". автор выбирает в верхних меню пункт добавить->слово->сущ, и в открывшемся окне вводит все формы этого слова в соотв ячейки. всё- слово в словарь добавлено, можно попытаться запустить игру снова!
Неактивен
ASBer написал:
noname, идея очень хорошая вот только взялся бы кто такой редактор сделать сам я не потяну - времени на это катастрофически нет.
Для интеграции в редактор движок уже сейчас вполне готов (если не заморачиваться с пошаговой отладкой и просмотром значений переменных).
а знаешь, можно и без редактора:
- просто подготовить файлы словарей в разных форматах // глаголы, существительные и т п - просто все формы слов без привязки к действиям/объектам/чему-бы-то-ни-был, будут иметь разные 'шаблоны'.
- написать прогу для добаления одного слова во всех формах в соотв файл // слово и его формы вводит человек.
вот и всё.
запускаем игру, отлаживаем- слово неизвестно. выходим, запускаем прогу- добавляем слово. запускаем игру опять, отлаживаем.
вот так.
надо будет потом ещё сделать прогу для объединения словарей. я мог бы принимать словари от авторов, проверять, и объединять с базовым. таким образом, постепенно базовый словарь, который будет прилагаться к каждой версии ТОМ, будет расширяться.
русскоязычная платформа, использующая простой естественный язык- это же клёво! // и это всё не сложно, но.. сам щазз не возмусь- пока занят.
Неактивен
ASBer написал:
Инфо к размышлению:
Текстовый файл со всеми формами всех слов русского языка имеет объём в 34934789 байт (словарь A.A. Зализняка)
И это при том что в нем не хватает имен собственных, нет форм с отклонениями от нормы и еще много чего необходимого...
Использовать готовые словари без ручной переборки каждого слова навряд ли получится
Вобщем я в эту сторону пока лишь поглядываю, но пойдя по этому пути есть большая вероятнось заплутать и не вернуться.
я имел ввиду словари хотя бы из 2-3 как можно более разных слов, чтоб определиться с форматом- шаблонами словаря. а потом можно расширять сколько угодно с помощью соотв програмки и с помощью объединения словарей
Неактивен
ASBer написал:
ИМХО минимальный словарь должен содержать хотя бы 2-3 тысячи частоупотребляемых слов, иначе пользы от него никакой.
например, для спелеолога, понадобится куда как меньше тысячи слов. а для того, чтобы начать набивать словарь для спелеолога, понадобится и того меньше ( хотя бы просто продуманный формат ).
дальше- больше. с каждой игрой словарь будет по чуть-чуть расширяться. да и просто: допустим, выдалось подходящее время и подходящее настроение- набил ещё 5-10 слов в словарь.
путь любой длины можно пройти, делая по одному шагу.
и, да- конечно же куда лучше содрать откуда-нить готовый словарь. и обработать. НО возможно ли это? если нет, то остаётся вопрос создания словаря(см выше)
как вариант- содрать словарь слов в одной форме, а затем автоматом сгенерить остальные формы. ошибки будут, но их исправление теоретически может оказаться более лёгким делом, чем другие варианты..
Неактивен
я вот что подумал: если бы игры на ТОМ(к примеру, Speleologist II) использовали бы словарь, то листинги самой игры(описания локаций, предметов и действий) стали бы гораздо более простыми и читабельными. они(эти листинги), на самом деле и так довольно просты, но прописывание падежей затрудняет восприятие. если же вынести словари отдельно(я бы предложил для глаголов, существительных и прилагательных завести разные словари), то потенциальным авторам будет проще оценить простоту языка.
и получится такая штука, что потенциальным авторам будет проще разобраться, как писать текст игры. да и поместить нужные слова в словарь- тоже не проблема: всего-то надо задать окончания для разных падежей- буквально одна строчка для каждого слова.
короч- когда и если дело дойдёт до словарей, то, на мой взгляд, это станет важным этапом в развитии ТОМа. хотя и сейчас, прописывание окончаний, на мой взгляд- не большая цена за возможность использовать изначально русскоязычный парсер.
Отредактировано noname (11.12.2012 20:17)
Неактивен
я сейчас поковыриваю РТАДС, и внезапно понял одну вещь: прописывать падежи в РТАДСе ничуть не лучше, чем прописывать окончания в ТОМе, даже иногда геморнее(когда несколько разных слов имеют одинаковые окончания). но в ТОМе запись выглядит страшнее. лучше смотрелось бы просто перечисление окончаний через запятую. а то, к какому именно падежу относится окончание пусть бы определялось порядком- и р д в т п. запись уже стала бы гораздо приятнее. хотя, словари, конечно лучше- вбил все окончания для слова в одной игре, и можешь использовать это во всех последующих играх.
Отредактировано noname (14.12.2012 21:48)
Неактивен