Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 63848
Организация зап... 60409
Invision Power ... 59982
Приложение «Про... 59797
Оператор выбора... 58782
Модуль Forms 58142
Подключение Mic... 57776
Создание отчето... 57572
ТЕХНОЛОГИИ ДОСТ... 53871
Программируемая... 51990
Пример работы с... 50027
Имитационное мо... 49305
21 ошибка прогр... 44186
Реклама
Сейчас на сайте
Гостей: 21
На сайте нет зарегистрированных пользователей

Пользователей: 13,049
новичок: Madison
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Лабораторная работа по динамическим спискам на Turbo Pascal (перемещение...
Медиа плейер на Delphi + Пояснительная записка
Моделирование системы управления качеством производственного процесса на...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании

Базы данных и базы знаний в Турбо Прологе
Базы данных и базы знаний широко используются в совремменных
программных системах, использующих элементы искусственного интел-
лекта, и являются их информационной основой.
База данных (БД) - это совокупность взаимносвязанных данных,
использование которых осуществляется при помощи системы управле-
ния базами данных (СУБД). Информация, содержащаяся в БД, должна
удовлетворять следующим требованиям:
- минимальная избыточность, обеспечивающая сокращение объе-
мов БД и, как следствие, увеличение скорости общения с БД;
- независимость организации данных и способа их хранения
от использующих их программ;
- наличие общих программных средств сопровождения (СУБД);
- ориентация на долговременное хранение и использование.
В узком смысле БД - это совокупность файлов, для обращения
к которым используются средства СУБД. База данных может распо-
лагаться в некоторых файлах. Каждый файл БД состоит из записей,
каждая запись - из различных полей.
По характеру организации информации, различают реляционные
и сетевые базы данных. Сетевые СУБД имеют сетевую организацию:
любая запись старшего уровня может быть связана с данными, кото-
рые относятся к множеству других записей подчиненного уровня
(отношение типа "один - ко - многим"). Обращение к записям осу-
ществляется с помощью указателей.
Реляционные СУБД построены по табличному принципу, основой
которого являются реляционная модель данных и определенные на
ней отношения. Для манипулирования данными используется реля-
ционно полный язык, обеспечивающий все операции над множествами
(объединение, пересечение, разность, прямое произведение) и все
реляционные операции (поиск, перенос, соединение, разделение).
В связи с распространением персональных вычислительных средств
и популярностью СУБД, поддерживающие стандарты БД dBASE и Paradox,
реляционные СУБД в настоящее время получили наибольшее рас-
пространение.
В базе данных различают понятия "отношение"(relation) и
"связь"(association). Термин "отношение" применяется при опре-
делении операций над информацией, а термин "связь" используют
при описании объектов (entity), информационные модели которых
хранятся в БД.
База знаний (БЗ) представляет собой более высокий, по срав-
нению с БД, уровень представления информации. В общем случае БЗ -
это совокупность знаний, относящихся к отдельной предметной
области и представленных формально таким образом, чтобы на их
основе можно было строить рассуждения. Обычно БЗ содержит мно-
жество правил, разработанных специалистом-экспертом. Понятие
БЗ появилось в конце 70-х годов как расширение понятия БД на
информационно-справочные системы, содержащие не только факти-
ческие данные, но и описание общих правил и закономерностей.
Различают статические и динамические БЗ. Статические БЗ
содержат общие для всех задач какой-либо области применения
сведения, которые остаются неизменными при расширении любой
задачи из этой области. Динамические БЗ формируются при реше-
нии отдельной задачи и могут изменяться при переходе к решению
другой задачи.

Базы знаний и базы данных в Турбо-Прологе

Турбо-Пролог (ТП) позволяет работать с БД и БЗ. База данных
в ТП понимается как совокупность файлов. Факты, расположенные в
разделе clauses непосредственно в теле программы, образуют внут-
реннюю (в терминологии ТП - статическую) базу данных. Информация
в этой области не может изменяться в процессе выполнения програм-
мы. Факты, описанные предикатами из области database, образуют
внешнюю (по отношению к телу программы) базу данных, которая в
ТП называется динамической.
Турбо-Пролог обеспечивает работу с БД, находящимися в фай-
лах на внешних носителях. Для взаимодействия с такими данными ТП
имеет ряд стандартных предикатов для чтения и сохранения БД в
файле, для добавления и удаления фактов БД и т.д. Динамическое
формирование правил в ТП не предусмотрено. ТП работает с БД,
находящимися в оперативной памяти. Такие БД называются резидент-
ными.
Совокупность правил (разделы predicates и clauses) может
быть вынесена в отдельный фаул, которому присвоим расширение
RUL. Совместно с DBA-файлами, RUL-файлы будут образовывать базу
знаний Пролог-программы.
Используемая версия языка Пролог (Turbo Prolog version 2.0),
не поддерживает изменение правил в ходе выполнения программы и,
строго говоря, не обеспечивает работу с базами знаний. Однако,
ограничиваясь статическими правилами, можно говорить об органи-
зации базы знаний с использованием Турбо-Пролога.
Для работы в БД в Турбо-Прологе существуют следующие преди-
каты.
1. Загрузка файла БД в оперативную память:
consult (DosFileName),



где DosFileName - Dos-имя файла БД, имеющее тип string. Например,
для загрузки файла БД с именем GEO.DBA необходимо использовать
предикат consult("geo.dba"). После выполнения этого предиката БД
GEO.DBA становится резидентной.
2. Сохранение фактов БД в внешнем файле:
save (DosFileName),



где DosFileName - Dos - имя файла БД в формате string. Для сох-
ранения фактов в файле GEO.DBA следует использовать предикат
save("geo.dba")' после выполнения которого резидентная БД зано-
сится в указанный файл.
3. Занесение новых фактов в резидентную БД осуществляется
при помощи следующих предикатов:
assert(<факт>),
asserta(<факт>),
assertz(<факт>).



Предикаты assert и assertz заносят указанный файл в конец БД,
а предикат assertа - в начало.
Удаление файлов их резидентной БД осуществляется при помощи
предикатов
retract(<факт>),
retractall(<факт>).



Предикат retract удаляет первый из совпавших с указанным факт
резидентной БД. Для удаления последующих фактов необходимо
использовать откат(file). Предикат retractall удаляет все факты,
совпадающие с заданным. Примеры использования:
retract(parent(tom,bob)),
retractall(parent(tom,_)).



В первом случае удаляется единственный факт parent(tom,bob,
а во втором происходит удаление всех фактов для предиката
parent, первый аргумент которых имеет значение tom.
Опубликовал Kest April 02 2009 23:59:55 · 0 Комментариев · 21114 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
«Философия» прогр...
Песочные часы
Простой пример ка...
Handles
PHP/MySQL для нач...
В.Понамарев - COM...
ZipTV
Таймер и секундомер
Gold Submitter II...
Шкрыль А. - Разра...
PDF
Calendar
PHP: настольная к...
PDJXPPack
Scrrlcaptoin
SUIPack
PBFoldder
45 уроков по дельфи
Панель Календарь
Цветной Grid

Топ загрузок
Приложение Клие... 100338
Delphi 7 Enterp... 80513
Converter AMR<-... 20029
Borland C++Buil... 10870
GPSS World Stud... 9952
Borland Delphi ... 7898
Turbo Pascal fo... 6925
Visual Studio 2... 4931
Калькулятор [Ис... 4177
FreeSMS v1.3.1 3492
Случайные статьи
Задание на моделир...
Color
Технология IEEE 80...
Управляющий термин...
Блок INDEX
Установка голубого...
Программирование д...
Линейная комбинаци...
Xbox
Раздел описания ти...
Классы и объекты
Использование новы...
расположенному в ч...
Функции абстракции
PREEMPT (ПРЕРВАТЬ)
Процедуры put и se...
Загрузка объекта W...
с Windows 2000
Общение в чате
Программный продукт
Пул соединений
СМС бизнес от А до Я
Глава 21. Жизне...
Поток с использова...
Класс SimpleList
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?