модель предметної області повинна бути гранично ясною і лаконічною. Традиційно мовою інженерії знань були діаграми, таблиці і інші графічні елементи, сприяючі наочності уявлень. Саме тому пропонований в даній роботі підхід до мови пов'язаний з можливою Візуалізацією процесу проектування.
ОСП дозволяє наочно і компактно відобразити об'єкти і відносини предметної області на основі використання шести постулатів.
Об'єктно-структурний підхід включає в себе інтегроване використання сформульованих вище постулатів від першої до останньої стадій розробки БЗ інтелектуальних і навчальних систем. На основі ОСП пропонується алгоритм об'єктно-структурного аналізу (ОСА) предметної області, що дозволяє оптимізувати і упорядкувати достатньо розмиті процедури структуризації знань.
Стратифікація знань. Основи ОСА були запропоновані автором ще в роботах [Гаврилова, 1989; Гаврилова, Красовская, 1990] і успішно застосовувалися при розробці ЕС МІКРО-ЛЮШЕР [Гаврилова, Тишкин, Золотарев, 1989] і АВЕКС [Гаврилова, Минкова, Карапетян,1992].
ОСА включає в себе дезагрегацію ПО, як правило, на вісім страт або шарів (табл. 3.1 і 3.2).
Таблиця 3.1. Стратифікація знань предметної області
Ss_1 | ЧОМУ-знання | Стратегічний аналіз: призначення і функції системи
Ss_2 | ХТО-знання | Організаційний аналіз: колектив розробників системи
Ss_3 | ЩО-знання | Концептуальний аналіз: основні концепти, понятійна структура
Ss_4 | ЯК-знання | Функціональний аналіз: гіпотези і моделі прийняття рішення
Ss_5 | ДЕ-знання | Просторовий аналіз: середовище, предмети, комунікації
Ss_6 | КОЛИ-знання | Тимчасовий аналіз: тимчасові параметри і обмеження
Ss_7 | ЧОМУ-знання | Каузальний чи причинно-наслідковий аналіз: формування
підсистеми пояснень
Ss_8 | СКІЛЬКИ-энання | Економічний аналіз: ресурси, затрати, прибуток
Об'єктно-структурний аналіз включає розробку і використання матриці ОСА (див. табл. 3.2), яка дозволяє всю зібрану інформацію дезагрегувати послідовно по рівнях-стратах (вертикальний аналіз), а потім по рівнях - від рівня проблеми до рівня підзадачі (горизонтальний аналіз). Або навпаки - спочатку по рівнях, а потім по стратах.
Таблиця 3.2, Матриця об'єктно-структурного аналізу
Рівні-Страти | Рівень області u1 | Рівень проблеми u2 | Рівень задачі u3 | Рівень підзадачі u4 | ... | Рівень під задачі un
Стратегічний аналіз s1 | Е11 | Е12 | Е13 | E14 | Е1n
Організаційний аналіз s2 | Е21
Концептуальний аналіз s3 | Е31
Функціональний аналіз s4 | Е41
Просторовий аналіз s5 | Е51
Тимчасовий аналіз s6 | Е61
Каузальний аналіз s7 | Е71
Економічний аналіз s8 | Е81
… | Eij
Sm | Еm1 | Еmn
При необхідності число страт може бути збільшене. У свою чергу знання кожної страти піддаються подальшому ОСА і декомпозуются на складові
де m - номер рівня, n - номер страти, а еmn належить множині K всіх концептів (понять) предметної області.
Матриця (1) є матрицею над К. Нехай М (К) - сукупність всіх m*n матриць над К. Тоді можна визначити клітинну матрицю Е, в якій
m = m1 + ... + mк
n = n1 + ... + nl
де m і n- цілі додатні числа. Е є Мm,n (К), і її можна представити у вигляді:
де Емн є Мmм (К), м = 1,...,k; н = 1,...,l.
Матриця Е є несиметричною, оскільки частина клітинних елементів Емн можуть піддаватися декомпозиції, а частина представляє деякі базисні атомарні концепти з K, що не підлягають деталізації.
Пропонований підхід припускає реалізацію концепції послідовного генезису ОСП через ОСА до об'єктно-структурної розробки (ОСР).
Алгоритм ОСА. Алгоритм ОСА (об'єктно-структурного аналізу) призначений для детальної практичної структуризації знань ПО. У основі ОСА закладений алгоритм заповнення ОСА-матриці Emn. Алгоритм містить послідовність аналітичних процедур, що дозволяють спростити і оптимізувати процес структуризації. Алгоритм розділяється на дві складові:
А_I. Глобальний (вертикальний) аналіз, що включає розбиття ПО на методологічні страти (що-знання, як-знання і т. д.) на рівні всієї ПО. В результаті заповнюється перший стовпець матриці (2).
А_II. Аналіз страт (горизонтальний), що включає побудову багаторівневих структур по окремих стратах. Число рівнів n визначається особливостями стратифікованих знань ПО і може істотно відрізнятися для різних страт. З погляду методології n<3 свідчить про слабке опрацьовування ПО.
Перший рівень відповідає рівню всієї ПО (рівень області). Другий - рівню проблеми, виділеної для вирішення. Третій - рівню конкретної вирішуваної задачі. Подальші рівні відповідають підзадачам, якщо має сенс їх виділяти.
При цьому можливо як послідовне застосування висхідної (bottom-up) і низхідної концепцій (top-down), так і їх одночасне застосування.
Глобальний аналіз. Технологія глобального аналізу зводиться до розбиття простору основного завдання структуризації ПО на підзадачі, відповідні особливостям ПО. Для розробки інтелектуальних систем існує мінімальний набір s-страт, що забезпечує формування БЗ. Мінімальний набір включає три страти:
s3 - формування концептуальної структури Sk;
s4 - формування функціональної структури Sf;
s7 - формування підсистеми пояснень SO.
Формування решти страт дозволяє істотно оптимізувати процес розробки і уникнути багатьох традиційних помилок проектування. Страти s4 і s5 є додатковими і формуються у випадках, коли знання предметної області істотно залежать від тимчасових і просторових параметрів (системи реального часу, планування дій роботів і т. п.).
Алгоритм А_1 глобального аналізу може бути стисло сформульований таким чином:
А_1_1. Зібрати всі матеріали по ідентифікації завдання і за наслідками витягування знань.
А_1_2. Вибрати набір страт N, що підлягають формуванню (Nmin=3).
А_1_3. Відібрати всю інформацію по першій вибраній страте (i-1, де i - номер з вибраного набору страт N).
А_1_4. Повторити крок А_1_3 для i+1 для всіх вибраних страт до i <= N.
А_1_5. Якщо частина інформації залишиться невикористаною, збільшити число страт і повторити для нових страт крок А_1_3; інакше перейти до послідовної реалізації алгоритмів горизонтального аналізу страт А_2.
Аналіз страт. Послідовність кроків горизонтального аналізу залежить від номера страти, але фактично зводиться до реалізації дуальної концепції структуризації для вирішення конкретної підзадачі.
Нижче пропонується алгоритм ОСА для однієї