Механизм - пролог - Большая Энциклопедия Нефти и Газа, статья, страница 3
Русские называют доpогой то место, где собиpаются пpоехать. Законы Мерфи (еще...)

Механизм - пролог

Cтраница 3


Специальный предикат отсечения () используется в Прологе для управления бэктрекингом. Отсечение как цель удовлетворяется немедленно. Поскольку бэктрекинг на этих переменных не выполняется, механизм Пролога отбрасывает все альтернативные сопоставления.  [31]

В данном случае Пролог - программа взаимодействует с базой данных только во время выполнения первого правила. Во втором правиле производится попытка унификации с фактами, находящимися в основной памяти, которые были загружены первым правилом. Таким образом, второе правило просто выполняется под управлением механизма Пролога. PRO-SQL поддерживает управление транзакциями.  [32]

Каждый интерфейс базы данных получает результат выполнения запроса из БД не полностью, а по нескольку блоков ( страниц) данных, которые помещаются в основную память. Перед тем как механизм Пролога использует всю страницу данных, интерфейс базы данных будет активизирован повторно, в результате чего получается следующая страница ( страницы) данных. Такие средства предвыборки разработаны для уменьшения объема данных, загружаемых в память, а также для уменьшения времени ожидания механизма Пролога. Предвыборка может использоваться для повышения степени параллелизма, так как при этом могут быть активными одновременно несколько интерфейсов базы данных.  [33]

Система PRIMO рассматривает базовые конъюнкции как единичные запросы типа соединения. Таким образом, интерфейс базы данных использует избирательность оператора соединения для уменьшения числа кортежей, загружаемых в основную память. С другой стороны, факты помещаются в память в том же формате, что и исходные предикаты базы данных, и механизм Пролога повторяет выполнение соединения в основной памяти. Этим достигается максимальная прозрачность: механизм Пролога выполняет исходную программу пользователя, а не трансформированную программу с явными правилами для базовых конъюнкций.  [34]

Версия на языке KRC также использует выражения, но опускает скобки всюду, где это возможно, и заменяет условное выражение, включающее if, парой альтернативных определений, как в Прологе. Версия на Прологе дает имя переменной для результата и должна использовать дополнительные имена переменных для передачи промежуточных результатов. Версии на KRC и Прологе используют поиск по образцу для доступа к компонентам списков. При этом механизм Пролога более общий - он использует унификацию.  [35]

Архитектура системы EDUCE обеспечивает два типа связывания, называемых слабым и сильным, хотя смысл этих терминов отличается от определений гл. Первый передает запрос второму, а второй возвращает результирующие кортежи. Такой механизм является подходящим для нерекурсивных запросов на свободном языке. При сильном связывании в механизм Пролога включаются некоторые методы доступа к базе данных на диске. Для выполнения сложных рекурсивных запросов используются специальные методы. При этом обеспечивается прямая трансляция запросов ( целей) непосредственного языка. Оптимизатор системы EDUCE способен выбрать подходящую стратегию, иногда даже нарушая рассмотренное выше соответствие.  [36]

Система PRIMO рассматривает базовые конъюнкции как единичные запросы типа соединения. Таким образом, интерфейс базы данных использует избирательность оператора соединения для уменьшения числа кортежей, загружаемых в основную память. С другой стороны, факты помещаются в память в том же формате, что и исходные предикаты базы данных, и механизм Пролога повторяет выполнение соединения в основной памяти. Этим достигается максимальная прозрачность: механизм Пролога выполняет исходную программу пользователя, а не трансформированную программу с явными правилами для базовых конъюнкций.  [37]

Кортежи возвращаются по одному. Как правило, это реализуется с помощью разделяемых средой Пролога и интерфейсом базы данных переменных. При каждом взаимодействии с интерфейсом базы данных разделяемым переменным присваиваются новые значения. На практике соспоставлением этих переменных управляет не механизм Пролога, а интерфейс базы данных. Это означает, что интерфейс базы данных должен сохранять текущий контекст поиска и обеспечивать возможность присвоения разделяемым переменным очередных значений при бэктрекинге.  [38]

Ниже показано, что Пролог представляет собой мощный формализм для выражения запросов и алгоритмов. Рассматриваются две классические задачи - антитрестовская проблема и задача о комплектующих - которым присуща рекурсия. Следовательно, они не могут быть реализованы с помощью стандартных языков запросов. Определены архитектура и механизмы, необходимые для связывания механизма Пролога и системы управления базой данных. Для простоты выбрана реляционная модель данных, поскольку многие существующие интерфейсы между Прологом и базами данных в настоящее время используют реляционные базы данных. Реляционная модель данных и соответствующий ей язык являются наиболее удобными средствами для выражения свойств этих интерфейсов. Данные методы связывания легко распространить на нереляционные системы. Наконец, дан обзор некоторых существующих прототипов связанных систем, разработанных в основном в промышленных и академических центрах.  [39]

Множество кортежей возвращается целиком. При этом кортежи помещаются в резидентную в оперативной памяти базу данных Пролога, после чего работа механизма Пролога возобновляется с первого кортежа множества. При бэктрекинге механизм Пролога обнаружит следующий кортеж, удовлетворяющий заданной цели, уже в основной памяти. Следовательно, в этом случае сопоставление и бэктрекинг на предикатах базы данных находятся под управленем механизма Пролога.  [40]

В СРЯ-системах интерфейс Пролога решает задачу определения максимальных базовых конъюнкций, интерфейс базы данных формирует соответствующий запрос-соединение и управляет его выполнением. Когда результирующие кортежи извлечены из базы данных, интерфейс базы данных передает их либо по одному, либо все вместе ( как обсуждалось в разд. Следует отметить, что сборка базовых конъюнкций изменяет семантику программы Пролога, поскольку при этом модифицируется выполнение по отношению к первоначальной программе. Предложенные трансформации программы влияют на порядок и повторяемость кортежей в результирующем множестве, хотя само результирующее множество остается тем же. Таким образом, механизм Пролога, возвращающий множество ответов, должен маскировать указанные различия, тогда как в традиционном механизме Пролога этого делать не нужно.  [41]

В некоторых местах нашей программы-оболочки обнаруживается недостаток той декларативной ясности, которая так характерна для программ, написанных на Прологе. Причина состоит в том, что нам пришлось предусмотреть в этой программе довольно жесткое управление процессом функционирования оболочки. Ведь, согласно нашему замыслу, экспертная система должна была не только находить ответы на вопросы, но и делать это некоторым разумным с точки зрения пользователя способом. В связи с этим нам пришлось реализовать вполне определенное поведение системы в процессе решения задач, а не просто некоторое отношение ввода-вывода. В результате получилась программа более процедурного характера, чем обычно. Все это может послужить примером ситуации, когда, не имея возможности рассчитывать на собственные процедурные механизмы Пролога, мы вынуждены взять на себя детальное описание процедурного поведения системы.  [42]



Страницы:      1    2    3