Теоретические предпосылки
Стадия концептуального анализа или структурирования знаний традиционно является (наряду со стадией извлечения) "узким местом" в жизненном цикле разработки интеллектуальных систем [Adeli, 1994J. Методология структурирования близка к современной теории больших систем [Гиг, 1981] или сложных систем [Courtois, 1985], где традиционно акцент делается на процессе проектирования [Bertalanffy, 1950; Boulding, 1956]. Большой вклад в эту теорию внесли классики объектно-ориентированного анализа [Буч, 1992]. Разработку интеллектуальных систем с уверенностью можно отнести к данному классу задач, поскольку они обладают основными признаками сложности (иерархия понятий, внутриэлементные и межэлементные связи и пр.). Аналогичные концепции, но связанные не с общесистемными исследованиями, а рассматривающие информационные процессы в системах, таких как связь и управление, положили начало кибернетике как самостоятельной науке [Винер, 1958; Эшби, 1959]. Позднее, в 1960-х гг. были получены новые результаты по развитию математической теории систем высокого уровня общности [Месарович, Такахара, 1978]. Существенный вклад в теорию систем и основы структурирования внесли отечественные исследователи [Моисеев, 1981; Глушков, 1964; Ивахненко, 1971; Поспелов, 1986] и др. Системный анализ тесно переплетается с теорией систем и включает совокупность методов, ориентированных на исследование и моделирование сложных систем — технических, экономических, экологических и т. п. Проектирование сложных систем и методы структурирования информации традиционно использовали иерархический подход [Месарович, Такахара, 1978] как методологический прием расчленения формально описанной системы на уровни (или блоки, или модули). На высших уровнях иерархии используются наименее детализованные представления, отражающие только самые общие черты и особенности проектируемой системы. На следующих уровнях степень подробности возрастает, при этом система рассматривается не в целом, а отдельными блоками. На каждом уровне вводятся свои представления о системе и элементах. Элемент k- гоуровня является системой для (k — 1) уровня. Продвижение от уровня к уровню имеет строгую направленность, определяемую стратегией проектирования — дедуктивную нисходящую "сверху вниз" (top-down) или индуктивную восходящую "снизу вверх" (bottom-up). Предлагаемый ниже объектно-структурный подход позволяет объединить две, обычно противопоставляемые, стратегии проектирования. Синтез этих стратегий, а также включение возможности итеративных возвратов на предыдущие уровни обобщений позволили создать дуальную концепцию, предоставляющую аналитику широкие возможности на стадии структурирования знаний как для формирования концептуальной структуры предметной области Sk, так и для функциональной структуры Sf. Рис. 2.21 иллюстрирует дуальную концепцию при проектировании Sf для ЭС помощи оператору энергетического блока
Рис. 2.21. Дуальная стратегия проектирования Нисходящая концепция (top-down) декларирует движение от п => п + 1, где n — п-й уровень иерархии понятий ПО (предметной области) с последующей детализацией понятий, принадлежащих соответствующим уровням. STR td: Pin, …, Pin+1 => Pkin+1
где: Ø п — номер уровня порождающего концепта; Ø i — номер порождающего концепта; Ø ki — число порождающих концептов, сумма всех ki по i составляет общее число концептов на уровне п + 1. Восходящая концепция (bottom-up) предписывает движение п => п — 1 с последовательным обобщением понятий. STR bu: Pin, …, Pkin+1 => Pin-1 где: Ø п — номер уровня порождающих концептов; Ø i — номер порождаемого концепта; Ø ki — число порождающих концептов, сумма всех ki по i составляет общее число концептов на уровне п. Основанием для прекращения агрегирования и дезагрегирования является полное использование словаря терминов, которым пользуется эксперт, при этом число уровней является значимым фактором успешности структурирования. В целом существующие подходы к проектированию сложных систем можно разделить на два больших класса: Ø структурный (системный) подход или анализ, основанный на идее алгоритмической декомпозиции, где каждый модуль системы выполняет один из важнейших этапов общего процесса; Ø объектный подход, связанный с декомпозицией и выделением не процессов, а объектов, при этом каждый объект рассматривается как экземпляр определенного класса. В структурном анализе [Yourdon, 1989] разработано большое число выразительных средств для проектирования, в том числе графических [Буч, 1991]: Ø диаграммы потоков данных (DFD, data-flow diagrams), структурированные словари (тезаурусы), языки спецификации систем, таблицы решений; Ø стрелочные диаграммы "объект-связь" (ERD, entity-relationship diagrams), диаграммы переходов (состояний); Ø деревья целей; Ø блок-схемы алгоритмов (в нотации Насси— Шнейдермана, Фестля и др.); Ø средства управления проектом (PERT-диаграммы, диаграммы Ганта и др.). Множественность средств и их некоторая избыточность объясняется тем, что каждая предметная область, используя структурный подход как универсальное средство моделирования, вводила свою терминологию, наиболее подходящую для отражения специфики конкретной проблемы. Поскольку инженерия знаний имеет дело с широким классом ПО (это "мягкие" ПО), встает задача разработки достаточно универсального языка структурирования. Объектный (объектно-ориентированный) подход (ООП) был разработан в 1979 году [Jones, 1979], а затем развит в работах [Peters, 1981; Shaw, 1984; Буч, 1993]. ООП, возникший как технология программирования больших программных продуктов, базируется на основных элементарных понятиях [Буч, 1993]: Ø объекты и классы как объекты, связанные общностью структуры и свойств; Ø классификации как средства упорядочения знаний; Ø иерархии с наследованием свойств; Ø инкапсуляции как средства ограничения доступа; Ø методы и полиморфизм для определения функций и отношений. ООП имеет систему условных обозначений и предлагает набор моделей для проектирования сложных систем. Широкое распространение объектно-ориентированных языков программирования C++, CLOS, Smalltalk и др. успешно демонстрируют жизнеспособность и перспективность этого подхода. В последнее время этот подход успешно применяется и в CASE-средствах не только для проектирования программ, но и для моделирования бизнес-процессов. Особенную популярность приобретает язык UML (Unified Modelling Language) [Буч, Рамбо, Джекобсон, 2000], и программный инструментарий на нем основанный, например Rational Rosex [Боггс, 2001].
|