- •Оглавление
- •1. Классификации технологий разработки информационных систем
- •1.1. Классификация технологий разработки информационных систем в соответствии с научно-техническими направлениями их создания
- •1.2. Классификация технологий разработки информационных систем, созданная в рамках направления менеджмента – реинжиниринга бизнес-процессов
- •2. Жизненный цикл разработки информационных систем и его модели
- •2.1. Каскадная модель
- •2.2. Спиральная модель
- •3. Методологии разработки информационных систем
- •3.1. Структурная методология разработки информационных систем idef
- •Правила определения сущностей
- •Правила определения атрибутов
- •Первичные и альтернативные ключи
- •Правила определения отношений
- •Отношения категоризации
- •Правила определения отношений категоризации
- •Основные правила формирования информационной модели
- •"Функциональный аспект" рассмотрения системы
- •3.2. Объектно-ориентированные методологии разработки информационных систем
- •3.2.1. Методики объектно-ориентированного анализа
- •3.2.2. Объектно-ориентированный процесс разработки rup
- •3.3. Методология создания информационных систем Datarun, ориентированая на данные
- •4. Case-средства разработки информационных систем
- •4.1. Классификация case-средств
- •Диаграммные средства
- •4.2. Подход к интеллектуализации case-средств
- •4.2.1. Гибридная модель проблемной области case-системы
- •4.2.2. Синтаксис многоуровневой логики
- •4.2.3. Дедуктивный вывод в многоуровневой логике
- •4.2.3.1. Алгоритм сколемизации
- •4.2.3.2. Алгоритм унификации
- •4.2.3.3. Особенности использования линейной входной резолюции в многоуровневой логике
- •4.2.3.4. Иерархическая абстракция и продукционная модель
- •4.2.4. Программное инструментальное средство для моделирования сложноструктурированной проблемной области как компонента информационной базы проекта в case-системах
- •4.2.4.1. Архитектура программного инструментального средства «Инфолог»
- •4.2.4.2. Концептуальный язык описания сложноструктурированной проблемной области
- •4.2.4.3 Реализация программного инструментального средства «Инфолог»
- •5. Технология разработки интеллектуальных систем «логсемис»
- •5.1. Методология разработки интеллектуальных систем «логсемис»
- •Алгоритм генерирования метаправил
- •5.2. Программное инструментальное средство поддержки методологии «логсемис»
- •6. Задания на лабораторные работы
- •7. Контрольные вопросы
- •Библиографический список рекомендуемой литературы «Информационная инженерия»
4.2.3.2. Алгоритм унификации
Рассмотрим особенности алгоритма унификации в MLL:
1. Термы в MLL унифицируются при выполнении условий унификации, которые являются одинаковыми для предков и доменов: XY и XY 0.
2. Пусть х является термом уровня i, и в тоже время, он является предком терма следующего нижележащего уровня. Терм х унифицируется и автоматически унифицируются- предок терма следующего нижележащего уровня.
Приведем разработанный алгоритм унификации для модифицированного синтаксиса MLL.
Шаг 1. Установить k=0, Wk =W, Sk =, где W – унифицируемые выражения, Sk – наиболее общий унификатор и – пустая подстановка.
Шаг 2. Если Wk является одноэлементным множеством, то W унифицируемо, S=Sk и стоп. В противном случае переход к шагу З.
Шаг 3. Каждая из литер в Wk рассматривается, как цепочка символов и выделяются первые подвыражения литер, не являющихся одинаковыми у всех элементов Wk, т.е. образуется так называемое множество рассогласований типа { (vk/Vk)//V, (tk/Tk)//T }.
Если vk – переменная, а tk – терм, или vk – функция, а tk переменная или функция, то перейти к шагу 4.
В противном случае стоп: W не унифицируемо.
Шаг 4. Проверка условий унификации предков.
Если V T или V T = Z () (условия унификации выполняются), то перейти к шагу 5.
В противном случае стоп: W не унифицируемо.
Если предками являются термы и они совпадают, то перейти к шагу 5.
В противном случае стоп: W не унифицируемо.
Шаг 5. Проверка условий унификации доменов:
а) если vk – переменная, определенная на домене Vk, а tk константа, определенная на домене T, и T V, то перейти к шагу 6. В противном случае стоп: W не унифицируемо.
б) если vk – переменная, определенная на домене Vk, а tk переменная, определенная на домене Tk, и TkVk=Zk (), то перейти к шагу 6. В противном случае стоп: W не унифицируемо.
в) если vk - переменная, определенная на домене Vk, а tk – функция, определенная на домене Tk, и Tk Vk=Zk () , то перейти к шагу 6. В противном случае стоп: W не унифицируемо.
г) если vk - функция, определенная на домене Vk, а tk функция, определенная на домене Tk, и Tk Vk или Vk Tk ,то перейти к шагу 6. В противном случае стоп: W не унифицируемо.
Шаг 6. Если vk - переменная, а tk - константа или функция, то Sk+1 = Sk {tk / vk } и Wk+1 = Wk{ tk / vk }, где - композиция подстановок, а запись Wk{ tk / vk } обозначает замену vk на tk в Wk (см. замечание).
Если vk - переменная, а tk - переменная, то Sk+1 = Sk {zk/tk, zk/vk } и Wk+1 = Wk{zk / tk, zk / vk }, где zk -переменная, отличная от vk и tk .
Если vk и tk - функции, то в унифицируемое выражение подставляется функция, область значений которой является подмножеством области значений другой функции.
Замечание. Запись {tk /vk } означает замену (vk/Vk)//V на (tk/Tk)//T во всех вхождениях vk как терм и замену vk на tk во всех вхождениях vk как-предка. Аналогично, когда vk и tk определены на термах.
Шаг 7. k=k+1, перейти к шагу 2.
В случае, когда объекты состоят из одной компоненты, сортность термов не указывается в префиксе и шаг проверки унификации доменов термов в формулах пропускается, поскольку области определения термов однозначно задаются их -предками.
Рассмотрим пример использования разработанного алгоритма унификации. Пример приведен для случая, когда объекты в качестве компонент имеют несколько объектов. Иерархические структуры приведены на рис. 22, 23.
Пример 3. W={ P( (a1/A1)//X, (x0/X0)//a1, (y1/Y1)//Y, (f((x0/X0)//a1)/W0)//y1),
P((v1/V1)//V,(g((w1/W1)//W)/X0)//v1,(w1/W1)//W, (w0/W0)//w1) }
1. W0=W; S0=
2. { (a1/A1)//X, (v1/V1)//V} – множество рассогласований
3. Полагаем, что X V и A1 V1,
4. S1=S0 {a1/v1}
W1= { P( (a1/A1)//X, (x0/X0)//a1, (y1/Y1)//Y, (f((x0/X0)//a1)/W0)//y1),
P( (a1/A1)//X, (g((w1/W1)//W)/X0)//a1, (w1/W1)//W, (w0/W0)//w1) }
5. {(x0/X0)//a1, (g((w1/W1)//W)/X0)//a1} – множество рассогласований.
S2=S1 { g((w1/W1)//W)/x0 }
W2= { P( (a1/A1)//X, (g((w1/W1)//W)/X0)//a1, (y1/Y1)//Y,(f((g((w1/W1)//W)/X0)//a1)/W0)//y1 ),
P( (a1/A1)//X, (g((w1/W1)//W)/X0)//a1, (w1/W1)//W, (w0/W0)//w1) }
7. { (y1/Y1)//Y, (w1/W1)//W} – множество рассогласований
8. Полагаем, что WY=Z () и W1Y1=Z1 ().
9. S3=S2{z/y1, z/w1}
W3= { P( (a1/A1)//X, (g((z/Z1)//Z)/X0)//a1, (z/Z1)//Z,
(f((g((z/Z1)//Z)/X0)//a1)/W0)//z ),
P( (a1/A1)//X, (g((z/Z1)//Z)/X0)//a1, (z/Z1)//Z,
(w0/W0)//z) }
10. { (f((g((z/Z1)//Z)/X0)//a1)/W0)//z, (w0/W0)//z } – множество рассогласований
11. S4=S3 { f((g((z/Z1)//Z)/X0)//a1)/w0}
W4= { P( (a1/A1)//X, (g((z/Z1)//Z)/X0)//a1, (z/Z1)//Z,
(f((g((z/Z1)//Z)/X0)//a1)/W0)//z ),
P( (a1/A1)//X, (g((z/Z1)//Z)/X0)//a1, (z/Z1)//Z,
(f((g((z/Z1)//Z)/X0)//a1)/W0)//z ) } =
{ P( (a1/A1)//X, (g((z/Z1)//Z)/X0)//a1, (z/Z1)//Z, (f((g((z/Z1)//Z)/X0)//a1)/W0)//z ) }
12. W4 - одноэлементное множество; S=Sk
Стоп.
В качестве процедуры вывода используется линейная входная резолюция, которая является полной для хорновских дизъюнктов и обладает большей эффективностью по сравнению с разработанными модификациями принципа резолюции.
Рис. 22. Иерархические структуры для примера 3
Рис. 23. Иерархические структуры для примера 3