Скачиваний:
19
Добавлен:
01.05.2014
Размер:
299.01 Кб
Скачать

Расширения

В составе SKW имеется система управления реляционной базой дан­ных, размещающейся на диске. Пролог-программы можно хранить на диске в виде внешних баз знаний. Если внешняя база знаний подключена к выполняющемуся Пролог-процессу, то ко всем фразам этой базы можно обращаться точно так же, как и к загруженным обычным образом фразам Пролога. Система SKW также может сопрягаться с некоторыми существующими коммерческими реляционными базами данных.

Некоторые операции, выполняемые над фразами внешней базы знаний, нельзя выполнить для фраз, загруженных в память. К примеру, встроенный предикат "aggregate" выполняет операции подсчета суммы, среднего зна­чения, максимума и минимума для одного аргумента предиката (имеется в виду, что этот аргумент - список. - Примеч. пер.), являю­щегося частью внешней базы знаний. Для аргументов предиката внешней базы знаний можно также выполнить сопоставление с эталоном регулярных (т.е. повторно встречающихся) выражений. Пусть, например, предикат "служащий/3" является частью внешней базы знаний, подключенной к текущему Пролог-процессу, а первый аргумент предиката "служащий/3" -это атом, содержащий фамилию служащего. Тогда нижеследующий запрос вернет значения аргументов всех фраз "служащий/3", в которых первый аргумент заканчивается символами "Смит":

| ?- служащий (Фамилия ?: 'Смит $ ',_,_).

фамилия == 'Вильям Г. Смит' ;

Фамилия = 'Сюзан Смит'

(Символ $ обозначает конец строки с регулярным выражением) .

В SKW имеется средство транзакций, которое позволяет программисту превратить некоторые операции в атомарные. Смысл введения атомарной операции состоит в том, что либо она вся заканчивается удачно, либо никакие ее действия не заканчиваются удачно. Средство транзакции будет особенно полезным для программ, которые должны модифицировать внешние базы знаний. Операции транзакций реализуются встроенными предикатами "tbegin" (начало транзакции), "tcommit" (запуск транзак­ции), "tabort" (прекращение транзакции), "detract" (отложенное удале­ние фраз) и "dessert" (отложенное добавление фраз). После обращения к предикату "tbegin" никакие вызовы предикатов "dessert" или "detract" не будут оказывать никакого перманентного влияния (имеется в виду то, что фразы внешней базы знаний останутся без изменений. — Примеч. пер.) на внешнюю базу знаний вплоть до обращения к предикату "tcommit". Вызов предиката "tcommit" приведет к выполнению всех отложенных вызовов предикатов "dessert" и "detract". Транзакции могут быть вложенными.

В SKW включено DCG-расширение, описанное в приведенном выше разделе по Си Прологу.

Разное

Команда "plint" — это команда операционной системы, позволяющая проверить стиль Пролог-программы и обнаружить некорректности: одно­кратно используемые переменные, предикаты, определенные более чем в одном файле, и т.д. Команда операционной системы "pixref" позволяет получить информацию о процессах, которые вызывают другие процеду­ры из исходного Пролог-файла.

Пролог-2 Поставщик

Пролог-2 (Prolog-2) поставляется фирмой Эксперт Системз Интернэшнл. Он работает под управлением операционной системы MS-DOS на ЭВМ типа IBM PC или совместимых с ними.

Соседние файлы в папке Гл.6,7,Прилож.,Допол