В.Н. Пильщиков - Язык Плэнер, страница 41
Описание файла
DJVU-файл из архива "В.Н. Пильщиков - Язык Плэнер", который расположен в категории "". Всё это находится в предмете "искусственный интеллект" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 41 - страница
Оиа требует вычеркнуть утверждение о том, что точка У свободна, если в базу данных было ааписано утверждение о том, что некоторый предмет помещен в эту точку. Еще один пример: [ПЕР1ХЕ 1.ОЧЕ (А)ЧТЕС (Х У) (ЬОЧЕЯ «Х»У) [АББЕВТ (НСМАН .Х)] [АЯБЕВТ (НОМАН .ЧЦ Ц Эта теорема осуществляет сопутствующие изменения базы данных: если ааписывается, что Х любит У, то как следствие записывается, что Х и У являются людьми. Аналогично применяются и вычеркивающие теоремы.
13 и. ы. угла«шико« В заклзочение рассмотрим использование теорем разного типа иа примере системы, отвечающей на вопросы о родственных отношениях. Предположим, что пользователь ведет диалог с атой системой, сообщая ей факты вида (х — МУЖ у), (х — ЖЕНА у), (х — ОТЕЦ у); (х — МАТЬ у), (х — СЫН у), (х — ДОЧЬ у) и задавая вопросы вида (В КАКОМ РОДСТВЕ х И з ?), ю (КТО р у ?).
(Здесь х, у и з — имена людей, причем х и з записываются в именительном падеже, а у — в родительном; р — любое из названий родства. "МУЖ, ЖЕНА, ОТЕЦ, МАТЬ, СЫН, ДОЧЬ, ВРАТ, СЕСТРА, ДЕД, ДЯДЯ, ШУРИН, НЕВЕСТКА и т. д.) Система должна понимать сообщаемые ей факты и отвечать на вопросы . пользователя. Возможный пример диалога с системой (перед предложениями пользователя поставлены авездочки): » (МАРИНА — ДОЧЬ ОЛЕГА) ПОНЯТНО е (ГАЛЯ вЂ” МАТЬ МАРИЧЪ|) ПОНЯТНО е (В КАКОМ РОДСТВЕ ОЛЕГ И ГАЛЯ ?) (ОЛЕà — МУЖ ГАЛИ) е (ОЛЕà — ОТЕЦ ТАРАСА) ПОНЯТНО е (ГАЛЯ вЂ” МАТЬ ТАРАСА) Я ЗНАЮ е (КТО СЫН ГАЛИ ?) НЕ ЗНАЮ е (ЛЕНА — ЖЕНА ТАРАСА) ПОНЯТНО (КТО СЫН ГАЛИ ?) ТАРАС е (В КАКОМ РОДСТВЕ ЛЕНА И ГАЛЯ?) (ЛЕНА — НЕВЕСТКА ГАЛИ) е КОНЕЦ Прокомментируем етот диалог, объясняя принципы работы системы.
Если системе сообщается новая информация, то она записывает ее в свою базу данных и отвечает «понятно». При атом ййе в базу данных ааносится не сам сообщенный факт, а два утверждения: о поле первого из лиц, указанных в факте, и о родственном отношении между обоими лицами, нейтральном по отношению и полу. Например, при поступлении факта «Марина — дочь Олега» в базу данных записываются утверждения «Марина — жешцина» и «Олег — родитель Марины», а при поступлении факта «Галя— мать Марины» еапнсыва»отея утверждения «Геля — женщина» п «Галя — родитель Мариныю Одновременно с записью таких фактов система выводит все возможные следствия из них, К примеру, система знает (так уж опа устроена), что родители одного и того же ребенка являются супругами и что супруги — это лица разного пола. Поэтому после поступления второго факта система записывает в свого базу данных, что Олег и Галя — супруги и что Олег — мужчина.
Это и поаволяет системе ответить на вопрос о родственном отношении между Олегом и Галей. Далее системе сообщается, что Олег — отец Тараса. Система записывает, что Олег — ~родитель Тараса (пол Олега она уже знает), и выводи« отсюда, что в супруга Олега (Галя) также является родя»слом Тараса. Поэтому па следующий оообщенн»хй сй факт «Галя — мать Тараса> система отвечает, что ока ужо знает об этом. (Система, получив л»сбой факт, прежде всего пытается определить, не выводится ли он пз уже известных двпных; если выводится, то система ничего ие ааписывает в свою' базу данных и отвечает «я знаю».) Следующее предложение пользователя — это вопрос <Кто сын Гали?».
В данный момент система анает, что у Гали двое детей, Марина и Тарас, и что Марина — ее дочь. Пол же Тараса пока ей неизвестен, поатому она и отвечает «не апаш». И лишь затем, когда ей сообщник факт «Лена — жена Тараоа», из которого она узнала, что Тарас — мужчина, система смогла ответить на вопрос о сыне Гали. После этого был задан вопрос о том, кем Лена приходится Гале. Пытаясь найти ответ, система перебирает все иавестные ей отношения родства и устанавливает, что Лена — жена сына Гали, т. е. невестка, о чем и сообщает польаователю. При поступлении слова КОНЕЦ система прекращает свою работу.
Прежде чем перейти к описанию пашей вопросно-ответиой системы, сформулируем те предположения, на основе которых она построена. Во-первых, считается, что все лица, о которых сообщает пользователь, имеют разпые имена. Во-вторых, подразумевается, что родители одного и того же ребенка обязательно являются супругами. (Очевидные предположения типа «супруги— это лица разного пола» мы не укааываем.) В-третьнх, предполагается, что пользователь указывает только допустимые факты и вопросы (он, например, не должен сообщать факты типа «Тарас— 13» »йб брат Марины») и не сообщает противоречивых фактов (типа «Валя — дочь Нины» н «Маша — жена Вали»).
Кроме того, чтобы соблюсти правила русского языка и в то же время не касаться сложной проблемы изменения имев по падежам, в систему заранее встраивается список имен (с указанием нх шаенктельного и родительного падежей), которые и может указывать пользователь. Данный список является значением константы ИМЕНА; ее определение может быть, например, таким: [СВЕТ ИМЕНА ((ОЛЕГ ОЛЕГА) (ГАЛЯ ГАЛИ) (ТАРАС ТАРАСА) (МАРИНА МАРИНЫ) (ЛЕНА ЛЕНЫ)Ц ) ! В программе будет необходимо получать именительный падеж какого-либо имени по его родительному надежу и наоборот.
Обз этих преобразования реализует одна функция: [ПЕР(ИЕ ПАДЕЖ (ЬАМВ)>А (И1) [РВОС (И2) [1В (< > [АСТ (.И1 «И2) («И2 И1Ц ( >) :ИМЕНА) .И2] Ц Данная функция используется, например, прн обработке фактов, поступивших от пользователя. Если, скажем, системе сообщено (ОЛЕà — МУЖ ГАЛИ), то она заменяет (с помощью функции ПАДЕЖ) слово ГАЛИ на слово ГАЛЯ, а затем преобразует этот факт к префиксному виду: (МУЖ ОЛЕГ ГАЛЯ).
Списки такого вида служат образцами для вызова заииоывающих теорем, которые добавляют утверждения в базу данных и выводят следствия из йих. Отметим, что сами факты типа (МУЖ ОЛЕГ ГАЛЯ) не записываются в базу данных. Для системы базовыми являются понятия «мужчина», «женщина», «супруг» и «родитель», к которым она и сводит все остальные понятия родства. Например, вместо факта (МУЖ ОЛЕГ ГАЛЯ) система записывает утверждения (МУЖЧИНА ОЛЕГ) и (СУПРУГ ОЛЕГ ГАЛЯ), а вместо (ДОЧЬ МАРИНА ОЛЕГ) — утверждения (ЖЕНЩИНА МАРИНА) и (РОДИТЕЛЬ ОЛЕГ МАРИНА).
Такие преобразования и записи выполняют следующие записывающие теоремы: [)>ЕР1ХЕ МУЖ (АИТЕС (Х г') (МУЖ «Х +Т) [РАЯВЕВТ. (МУЖЧИНА .Х) ] [РАЯЯЕВТ (СУПРУГ .Х Х) (ТВУЦ Ц [)>ЕР1ИЕ ЖЕНА (АИТЕС (Х»') (ЖЕНА «Х «"г') [РАЗВЕЕТ (ЖЕНЩИНА .Х)] [РАВБЕВТ (СУПРУГ .Х .У) (ТВУЦ Ц [ОЕР1КЕ ОТЕЦ (АМТЕС (Х У) (ОТЕЦ аХ «"»') [РАЯЯЕВТ (МУЖЧИНА .Х) (ТВУЦ [РАЯБЕВТ (РОДИТЕЛЬ .Х У) (ТКх)]Ц [ОЕР1ЕЕ МАТЬ (АНТЕС (Х У) (МАТЬ «Х «Т) [РАЯБЕВТ (ЖЕНЩИНА .Х) (ТВг')] [РАЯЯЕВТ (РОДИТЕЛЬ .Х У) (ТВг'ЦЦ [ОЕР11)Е СЫН (А1)ТЕС (Х г') (СЫН «Х «Т) [РАББЕВТ (МУЖЧИНА .Х) (ТВУЦ [РАЯЯЕВТ (РОДИТЕЛЬ Х .Х) (ТВУЦЦ [ОЕР1НЕ ДОЧЬ (АИТЕС (Х У) (ДОЧЬ «Х «У) [РАЯЯЕКТ (ЖЕНЩИНА .Х) (ТКУ)] [РАБЯЕКТ (РОДИТЕЛЬ У Х) (ТВУЦЦ Итак, эти теоремы сводят сообщенные системе факты к более простым утверждениям.
Однако опи не занимаются выводом следствий иа них. Для атого они вызывают (согласно рекомендации ТВг' в их функциях РАБЯЕВТ) другие записывающие теоремы, которые уже и выводят вое возможные следствия (в терминах бааовых понятий) иэ накопленных фактов и записывают нх в базу данных. Например, если в баау данных было ааписзно, что л — супруг у-а, то записывается также, что у — супруг *-а и что у— женщина (если иавестно, что э — мужчина) или у — мужчина (если э — женщина). 'Такой вывод реализует следующая теорема: [ПЕР1НЕ СУПРУГ1 (АНГЕС (Х «') (СУПРУГ «Х «У) [РАЯБЕВТ (СУПРУГ .У .ХЦ [1Р ([ЯЕАВСН (МУЖЧИНА .ХЦ [РАЯЯЕКТ (ЖЕНЩИНА Т)]) ([ЯЕАКСН (ЖЕНЩИНА .ХЦ [РАБЯЕВТ (МУЖЧИНА ХЦЦЦ Отметим, что если утверждение (ЖЕНЩИНА Х) уже есть в базе данных, то эта теорема не будет ааписывать его вновь.
Из факта еэ — супруг у-аэ можно вывести и другое следствие: каждый ребенок *-а является и ребенком у-а, и наоборот. Этот вывод осуществляет такая теорема: [ПЕР1ХЕ СУПРУГ2 (А1(ТЕС (Х У) (СУПРУГ «Х «У) [Р1ХП АЬЬ (Х) .Е [БЕАКСН (РОДИТЕЛЬ .Х «ЕЦ [РАБЯЕКТ (РОДИТЕЛЬ .У .ЕЦ] [Г1НВ АЬЬ (2) .Х [БЕАВСН (РОДИТЕЛЬ .У «ЕЦ [РАББЕВТ (РОДИТЕЛЬ,Х .2)ЦЦ Из факта «э — родитель у-а» можно сделать следующие выводы: если у х есть супруг з, то г такнзе является родителем у-а, а если известен и другой родитель у-а, то можно ааписать, что-оба родителя являются супругами. Таяне следствия выводит теорема [ПЕР1ХЕ РОДИТЕЛЬ (АНТЕС (Х >' Е) (РОДИТЕЛЬ «Х е «') [1Р ([БЕАКСН (СУПРУГ .Х «Е)] [РАЯЯЕКТ (РОДИТЕЛЬ .7 . >')]) ([ЯЕАКСН (РОДИТЕЛЬ [ЕТ [ИОН .Х] «Е] .УЦ [РАБЯЕКТ (СУПРУГ .Х .2) (ТКУЦЦ)] И, наконец, необходимы еще две теоремы, которые выводят следствия иа фактов «х — мужчина» и «з — н«енщинаы [ПЕР)НЕ МУЖ«1ИНА (АНТЕС (Х У) (МУЖЧИНА „Х) [1Р ([БЕАКСН (СУПРУГ .Х»УЦ [РАЯБЕКТ (ЖЕНЩИНА УЦ Ц Ц [ПЕР(НЕ ЖЕНЩИНА (АНГЕС (Х У) (ЖЕНЩИНА «Х) [1Р ([ЯЕАКСН (СУПРУГ .Х «УЦ [РАБЯЕКТ (МУЖЧИНА .УЦ ) ] ) ] Первая пз этих теорем вызывается, когда в баау данных записывается, что х — мужчина.
Если в базе данных также есть утверждеиие о том, что э имеет супругу у, то зта теорема ааписывает, что у — женщина. Аналогично действует и вторая тоорема. На этом мы аакончили описание той части программы, которая обеспечивает заполнение базы данных на основе фактов, сообщаемых пользователем. Теперь расомогркм другую часть, которая используется при поноке ответов на вопросы пользователя. В нее входят целевые теоремы, которые сводят отношение родства, указанное в вопросе, к базовым отношениям и проверяют, выполняются ли они.