Базы и банки знаний

6004
знака
0
таблиц
0
изображений

Санкт-Петербургский государственный технический университет

Кафедра системного анализа и управления


РАСЧЕТНОЕ ЗАДАНИЕ


Дисциплина: базы и банки знаний.

Тема: язык Пролог.


Выполнил студент группы 3082/2 Торопов. К.Д.


Проверил


“__”___________2001г.


Санкт-Петербург

2001


Содержание.

1.Теоретическая часть……………………………………………………………3.

2.Постановка задачи...........................................................................................…4.

3.Текст программы..................................................................................................4.

4.Выводы.................................................................................................................13.

5.Литература............................................................................................................13.


Теоретическая часть.


Prolog является компиляторно-ориентированным языком программирования высокого уровня и предназначен для программирования задач из области искусственного интеллекта(ИИ) . Как язык программирования ИИ он особенно хорош для создания экспертных систем, динамических баз данных, программ с применением естественно-языковых конструкций; он также может быть использован для других задач общего характера. Prolog имеет окна, цветную графику и интерактивные средства ввода-вывода, что свидетельствует о его максимальном удобстве для пользователя прикладных программ.

Prolog – это декларативный язык, программы на котором содержат объявления логических взаимосвязей, необходимых для решения задачи. Обозначения, используемые в Prolog для выражения логических взаимосвязей, унаследованы из логики предикатов.

Prolog имеет внутренние подпрограммы для выполнения сопоставления и связанных с ним процессов. Они являются неотъемлемой частью языка и называются внутренними подпрограммами унификации. Эти подпрограммы выполняют сопоставление целей и подцелей с фактами и головами правил для того , чтобы доказать (или вычислить) эти цели или подцели. Эти же подпрограммы определяют, сгенерированы ли новые подцели правой части правила. Программист в соответствии с логическим синтаксисом Prolog объявляет, какие факты и правила дают тот или иной результат при различных подцелях, а внутренние подпрограммы унификации выполняют оставшуюся часть работы.

Факты и правила являются утверждениями, которые образуют данные программы на Prolog. Правила имеют левую часть и правую часть. Левая часть правила истинна, если истинна правая часть правила. Правила генерируют новые факты, когда все утверждения в теле оказываются вычисленными.

Prolog использует откаты для определения альтернативных путей вычисления цели или подцели. Если подцель оказалась неуспешной, а указатели отката были установлены, то для предыдущей подцели будет сделана попытка добиться успеха, начиная с точки отката.

Prolog позволяет выполнять целый ряд операций со списками. Их перечень включает: доступ к объектам списка, проверка на принадлежность к списку, разделение списка на два, слияние двух списков, сортировку элементов списка в порядке возрастания или убывания.

Prolog обеспечивает возможности для удобной и эффективной обработки файлов. Сюда можно включить встроенные предикаты для обработки и закрытия файлов, чтения из файла и записи в файл, изменения данных в файле, а также дозапись в уже существующий файл. Данные из файла могут обрабатываться либо как непрерывный поток символов, либо как структурированные объекты типа записей базы данных.

В Prolog имеются специальные средства для организации баз данных. Эти средства рассчитаны на работу с реляционными базами данных, так как Prolog особенно хорош для написания диалоговой системы именно для реляционной БД: внутренние унификационные процедуры языка осуществляют автоматическую выборку фактов с нужными значениями известных параметров и присваивают значения ещё не определённым. К тому же механизм отката позволяет находить все имеющиеся ответы на сделанный вопрос.


Постановка задачи.

Требуется написать программу учёта книг – название, автор(или список авторов), год выпуска, издательство. Программа должна позволять найти нужную книгу, добавить/удалить книгу, изменить содержимое нужной записи и сохранить всё в файл.


Текст программы.


DOMAINS

name,izd,aut=string

list=aut*

god=integer

file=datafile;

indexfile


GLOBAL DATABASE

kniga(name,list,izd,god)

PREDICATES

nondeterm repeat /*повтор*/

nondeterm menu /*основное меню*/

nondeterm menu_modify /*меню модификации*/

nondeterm process(integer) /*различные операции из перечня меню*/

nondeterm proc(integer) /*различные операции из перечня меню модификации*/

nondeterm do_dbase /*цель*/

nondeterm dbassert(dbasedom) /*добавление данных*/

nondeterm dbass(dbasedom,string,string) /*модуль ввода данных*/

nondeterm readlist(list) /*чтение списка*/

nondeterm writelist(list) /*вывод списка*/

nondeterm dbretract(dbasedom) /*удаление данных*/

nondeterm dbret(dbasedom,string,string)/*модуль удаления данных*/

nondeterm dbret1(dbasedom,real)/*вспомогательный модуль удаления данных*/

nondeterm dbread(dbasedom)/*чтение данных*/

nondeterm dbrd(dbasedom,string,string) /*модуль для выборки данных*/

nondeterm dbaaccess(dbasedom,real)/*вспомогательный модуль выборки и поиска данных*/

nondeterm append(list,list,list) /*присоединение списка*/

nondeterm delete_it(aut,list,list) /*удаление элемента списка*/


GOAL

do_dbase.


CLAUSES

/*Диалог с этой базой данных осуществляется по принципу меню.

Основываясь на запросе пользователя, СУБД активизирует

соответствующие процессы для удовлетворения этого запроса.*/


/*задание цели в виде правила*/

do_dbase :-

menu.

menu:-

repeat,


nl,

write("***********************************"),nl,

write(" 1.Add a book to database "),nl,

write(" 2.Delete a book from database"),nl,

write(" 3.View a book from database "),nl,

write(" 4.Modify a book in database "),nl,

write(" 5.Quit from this program "),nl,

write("***********************************"),nl,

nl,

write("Please enter your choice,1,2,3,4,5: "),

readint(Choice),nl,

Choice>0,Choice0,C


Информация о работе «Базы и банки знаний»
Раздел: Информатика, программирование
Количество знаков с пробелами: 6004
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
34648
1
2

... включающей в себя все подсистемы, необходимые для надежного, эффективного и продолжительного во времени функционирования. В структуре банка данных выделяют следующие компоненты: ·          Информационная база; ·          Лингвистические средства; ·          Программные средства; ·          Технические средства; ·          Организационно-административные подсистемы и нормативно-методическое ...

Скачать
19222
10
3

... организаций. Из выше описанной проблемы я делаю вывод, что необходимо создать базу данных, в которой будет храниться, обрабатываться вся необходимая информацию для пользователей БД. Цель данного курсового проекта заключается в разработке модели базы данных для процесса планирования плана работы в данной организации. Для того чтобы прийти к цели я проделала работу следующего содержания: Описала ...

Скачать
94312
1
0

... продукт (услугу) по следующей схеме: в чем заключается его ценность для клиента, каковы его преимущества и какие у него особенности. Управление процессом разработки классификаций банковских продуктов осуществляет служба маркетинга в банке. Целью этой работы является: во-первых, подготовка инструмента для личной продажи банковских продуктов и услуг, осуществляемой персональными менеджерами, во- ...

Скачать
138291
0
0

... ныне систем программирования выбран именно Турбо-Паскаль по следующим причинам: 1) По сравнению с другими языками программирования, которые обыч- но используются для создания систем искусственного интеллекта (LISP, PROLOG, SMALLTALK), язык Паскаль проще в изучении; программы на Паска- ле более читаемы. 2) От других обычных современных языков программирования (C++, BASIC,MODULA 2, ...

0 комментариев


Наверх