Допустим, у нас в комнате красное и зеленое яблоки и деревянный и железный стол.
Пользователь пишет: взять яблоко и положить его на стол
Какой из вариантов исполняют современные парсеры?
1. Парсер по-очереди спрашивает, какое именно яблоко и какой именно стол.
2. Сначала парсер спрашивает, какое именно яблоко, пишет "Вы взяли такое-то яблоко", потом спрашивает, какой именно стол.
Неактивен
Если честно, то они всегда не понимают такой фразы и поэтому второй вариант лучше, потому что его можно разбить на две части. Т.е. взять яюлоко, какое? допустим зеленное, вы взяли зеленное. Далее со столом в том же духе. Итого четыре ввода, две команды два пояснения. А чтобы за три команды я еще не видел ни одного, к томуже в этом случае парсер должен знать чего именно зеленное или красное, стол или яблоко?
Неактивен
Inform:
>put apple on table
Which do you mean, Green apple or Red apple?
>green
Which do you mean, Wooden table or Iron table?
>wooden
You need to be holding Green apple before you can put it on top of something else.
То есть брать действительно приходится отдельно.
Неактивен
yandexx написал:
Inform:
>put apple on table
Which do you mean, Green apple or Red apple?
>green
Which do you mean, Wooden table or Iron table?
>wooden
You need to be holding Green apple before you can put it on top of something else.
То есть брать действительно приходится отдельно.
Но это - только для Информа. И то этот момент обходится - в ряде игр сделано так, что объект автоматом берется, если введенная команда подразумевает, что для использования его нужно держать в руках.
А вот как это выглядит для (R)TADS'а:
>взять яблоко и положить это на стол Которое "яблоко" Вы имеете в виду: красное яблоко или зеленое яблоко? >красное Взято. Которое "стол" Вы имеете в виду: деревянный стол или металлический стол?
Но:
>положить яблоко на стол Которое "стол" Вы имеете в виду: деревянный стол или металлический стол? >деревянный Которое "яблоко" Вы имеете в виду: красное яблоко или зеленое яблоко? >зеленое Готово.
Т. е. во втором случае сначала устраняется неопределенность по косвенному объекту (опять-таки в общем случае; при необходимости можно переопределять порядок уточнения для отдельных глаголов - но не буду засорять вам мозг частностями).
Отредактировано uux (14.09.2008 09:55)
Неактивен
Вот подумалось, а почему уточняющие вопросы применяются только к объектам?
Ведь вполне возможен и понятен подобный диалог:
> букашка что сделать с букашкой? > молотком её! ударить? забить? почесать? > почесать Ты ласково почесал молотком под пузиком у букашки.
Проблема "угадай глагол" снимается.
Неактивен
Получится что-то прото-менюшное, так? С перечислением всех прописанных автором действий для связки молоток-букашка?
Вообще, занимательно, но нужно посмотреть вживую.
Неактивен
Cheshire написал:
Получится что-то прото-менюшное, так? С перечислением всех прописанных автором действий для связки молоток-букашка?
Ну там же еще и предлоги могут быть различные, так что вариантов получится всё равно побольше чем в меню.
А если глаголов в подсказке получается больше 3х, выводить "мне это непонятно", но это уже детали реализации...
Неактивен
Меню тоже можно сделать огромным. Было бы желание.
Неактивен