CLIPS_pl (Практическое задние (3))
Описание файла
Файл "CLIPS_pl" внутри архива находится в папке "Практическое задние (3)". PDF-файл из архива "Практическое задние (3)", который расположен в категории "". Всё это находится в предмете "(мпзио) модели представления знаний и онтологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Московский государственный университет имени М. В. ЛомоносоваФакультет вычислительной математики и кибернетикиКафедра алгоритмических языковОтчёт о выполнении задания практикума«Разработка экспертной системы набазе языка CLIPS»Студенты 524 группыА. К. АсирянЕ. В.
ГалкинаГ. Н. ШрамовМосква, 20171Предметная область и экспертные правилаВ качестве предметной области были выбраны языки программирования. Входе работы была разработана рекомендательная система, предлагающая одиниз языков программирования. Изначально в базе знаний представлен 41 язык.В качестве свойств, определяющих язык, были выбраны следующие: основныепарадигмы, типизация (статическая или динамическая), наличие ленивых вычислений, поддержка сопрограмм, тип исполнения (компилируемый или интерпретируемый), наличие макросов, наличие абстракции списков (list comprehension),способ работы с памятью (ручное управление или встроенный сборщик мусора),поддержка исключений, наличие обобщённых типов (generics).Для некоторых языков требуется дополнительная информация, чтобы отличить их друг от друга.
Например, для языков, использующихся для вебразработки, следует уточнить, предназначен ли он для написания приложений,выполняющихся на стороне сервера или клиента.Рекомендательная система предназначена для начинающих или полупрофессиональных программистов, имеющих представление об основных парадигмах исвойствах языков программирования. С помощью системы пользователь может,например, выбрать новый язык для изучения, отвечающий его требованиям.2Представление фактов в базе знанийЯзыки программирования представляются в виде правил, у которых в качестве условия применения записаны значения свойств языка. Например:(defrule Lisp(paradigm fp) (list_comp y) (lazy n)(coroutine n) (exception y) (type d)(macro y) (generics n) (exec_type i)(gc y)=>(printout t "Lisp - семейство языков программирования,программы и данные в которых представляютсясистемами линейных списков символов." crlf)(assert (end)))При добавлении в систему нового языка необходимо прописать значения всехимеющихся свойств.
При добавлении нового свойства, необходимо указать его значение для каждого имеющегося языка и добавить соответствующий вопрос.Вопрос, который экспертная система может задать пользователю определёнкак шаблон:2(deftemplate question(slot category (type SYMBOL) (default ?NONE))(slot text (type STRING) (default ?NONE))(multislot values (type SYMBOL) (default ?NONE)))После получения ответа на вопрос, в базе знаний сохраняется соответствующий факт, характеризующий одно из свойств языка.
Например, (paradigm fp)или (lazy n).3Вывод в экспертной системеЭкспертная система задаёт пользователю вопросы о свойствах языка и сохраняет ответы в виде фактов БЗ. Поскольку описания имеющихся языков представляют собой правила, то система рекомендует язык, когда выполняется леваячасть соответствующего правила (т. е. имеется информация обо всех свойствах.В системе также присутствуют ассоциативные правила, позволяющие уменьшить количество задаваемых вопросов.
Вопрос задаётся пользователю, толькоесли у системы ещё нет информации о нужном свойстве.Если ни один из языков не подходит под требования пользователя, выдаётсясоответствующее сообщение.Система работает в цикле и не требует перезапуска, если пользователь хочетполучить несколько рекомендаций подряд.4Структура и запуск системыИсходный код находится в следующих файлах:• run.clp — скрипт для запуска системы;• main.clp — реализация интерфейса и ассоциативные правила;• rules.clp — описание языков программирования;• questions.clp — описание вопросов.У всех файлов есть дубликаты в кодировке UTF8, в их названии имеется соответствующий суффикс.Систему можно запустить, дав команду clips -f run.clp, или вручную изкомандной строки CLIPS, загрузив сначала файл main.clp и вызвав функциюmain.3.