Введение в DSL. Часть 0. Анализ существующих ИТ как средства решения проблемы представления знаний о предметных областях

Введение в DSL. Часть 0. Анализ существующих ИТ как средства решения проблемы представления знаний о предметных областях

В комментариях к предыдущему топику много говорилось о том, что статья вышла сухая, академическая и плохо разжеванная. Да и вообще – зачем нужен DSL и какие проблемы он может решить? В связи с этим, я подготовил небольшой вводный обзор возможностей представления знаний о предметных областях в целом, чтобы рассмотреть, какое место в нем занимают DSL и чем все же удобно их использование.

На сегодняшний день существуют различные способы представления зна­ний о предметных областях. Среди них можно выделить: – текстовое представление; – графическое представление; – табличное представление; – формульное представление. Классификация способов представления знаний о предметных областях пред­ставлена на рисунке 1.1. Текстовое представление – наиболее часто встречающийся вид представле­ния знаний о предметной области. Способы текстового представле­ния знания о предметных областях выделены на рисунке 1.2.

Рисунок 1.1 – Способы представления знаний о предметных областях

Рисунок 1.2 – Способы текстового представления знаний о предметной области

Графическое представление – самое информативное для человека, оно позво­ляет увидеть структурные элементы предметной области, взаимосвязи между ними и процессы, происходящие в предметной области. Способы графиче­ского представления знания о предметных областях отображены на рисунке 1.3.

Рисунок 1.3 – Графические способы представления знаний о предметной области

Табличное представление удобно для последующей обработки на ЭВМ, т.к. наиболее формализовано из всех приведеных. Чаще всего используются прямо­угольные таблицы, состоящие из строк и столбцов (граф). В верхней строке таблицы обычно располагаются заголовки граф. Таблица 1.1 является примером прямоугольной таблицы, содержащей сведения о погоде в течение нескольких дней.

Таблица 1.1 – Пример таблицы типа «Объект-свойство» Дата Осадки Температура (градусы С) Давление (мм рт. ст.) Влажность (проценты) 15.03.97 Снег -3,5 746 67 16.03.97 Без осадков 0 750 62 17.03.97 Туман 1,0 740 100 18.03.97 Дождь 3,4 745 96 19.03.97 Без осадков 5,2 760 87

Данная таблица является примером таблицы типа «объект-свой­ство». Каждая строка такой таблицы относится к конкретному объекту. В приведен­ном примере это определенный день, заданный датой. Первая графа обычно идентифицирует этот объект, последующие графы отражают свойства (характеристики) объекта. Другой тип таблиц называется «объект-объект». Такие таблицы отражают взаимосвязь между различными объектами. Примером является таблица успеваемо­сти учеников по разным предметам – таблица 1.2

Таблица 1.2 – Таблица успеваемости учеников по разным предметам Ученик Русский Алгебра Химия Физика История Музыка Аликин Петр 4 5 5 4 4 5 Ботов Иван 3 3 3 3 3 4 Волков Илья 5 5 5 5 5 5 Галкина Нина 4 4 5 2 4 4 Эта таблица отражает связь между двумя типами объектов: учениками и изу­чаемыми дисциплинами. Оценка является характеристикой такой связи. В такой таблице строки и графы могут поменяться местами: в строках — пред­меты, в столбцах — ученики. Формульное представление чаще всего используется при создании математи­ческой модели предметной области и стоит отдельно от приведенных ранее способов представления знаний о предметных областях. Рассмотрим подробнее текстовое и графическое представления как наибо­лее естественные и удобные для восприятия. Текстовое представление разделяют на структурированное описание и не­структурированное описание. Неструктурированное описание представлено про­стым текстом. Структурированное, в свою очередь, подразделяется на исполняе­мое (тем или иным образом исполняющееся на ЭВМ) и неисполняе­мое. К неисполняемым относятся техническое задание (структурированный и даже гостированный документ, содержащий общую информацию о предметной области) и набор бизнес-требований (структурированный документ, содержа­щий расширенную информацию о предметной области).

Исполняемые текстовые способы представления заний о предметных облас­тях являются уже больше технологиями, чем способами, с точки зрения программиста. Однако, если взглянуть на представленные в этой классифика­ции DSL, XML и онтологии предметной области со стороны эксперта предмет­ной области, эти способы гораздо ближе к естественному языку описания процес­сов, проходящих в предметной области, чем многие другие. К тому же, за счет своей структуризации, эти способы представления знаний о предметных областях удобны для исполнения в программный код. Графический способ представления также можно разделить на структуриро­ванный и неструктурированный. К неструктурированному представле­нию относятся рисунки, графики и фотографии, которые хорошо описывают предметную облатсь визуально, однако недостаточно формализо­ваны для дальнейшей работы с ними. Структурированное, в свою очередь, можно разделить на представление в виде диаграмм и в виде объектных моде­лей. Диаграммы представлены UML, SADT, Data Flow и ассоциативными кар­тами (Mind Map). Этот способ описания предметной области постоянно динами­чески развивается, появляются новые спецификации и возможности для их построения. Он достаточно формализован и в настоящее время является осно­вой проектирования программных систем. К объектным моделям можно отнести графы и графические языки описа­ния предметной области. Последние наиболее близки к естественному описа­нию предметной области и позволяют выражать представление о предметной области в терминологии, присущей конкретной предметной области. Как видим из классификации, среди структурированных моделей представления знаний, которыми может оперировать пользователь, являющийся экспертом предметной области, но ничуть не являющийся программистом, присутствуют:

1. Техническое задание 2. Набор бизнес-функций 3. DSL

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

📎📎📎📎📎📎📎📎📎📎