Хабрахабр

Информационные системы с понятийными моделями. Часть первая

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

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

Но об этом далее. В итоге удается улучшить вычислительные, технологические и эксплуатационные характеристики информационных систем с понятийными моделями предметной области.

Как правило, информационные системы строятся по трехслойной архитектуре, которая включает в себя слой клиента, слой логики и слой базы данных. Основной особенностью таких систем является физическое разделение программ, отвечающих за хранение данных (слой базы данных), от программ, обрабатывающих данные (слой логики) и отображающих данные (слой клиента).

Понятийная модель служит для высокоуровнего описания предметной области, близкого пониманию пользователей и разработчиков информационных систем. В нашей компании “ИНСИСТЕМС” используется информационная система LANCAD, в которой четыре слоя: слой клиента, слой представления, слой логики и слой базы данных, где новый слой – слой представления – реализует понятийную модель предметной области.

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

О понятии понятия

Обычно понятие определяется как форма (вид) мысли, которая является результатом объединения сущностей объективной или субъективной реальности по определенной совокупности общих и, в совокупности, отличительных для них признаков.

Для непосредственно работы с мыслями пока не придуманы адекватные и эффективные технические средства, поэтому разберемся в том, как «мысли» пользователей обрабатываются в современных информационных системах.

Полагается, что понятия образуются (определяются) при абстрагировании.

При этом формируются четыре вида понятий: единичные, простые, конкретные и абстрактные. Абстрактное мышление – один из основных процессов умственной деятельности человека, когда мы под воздействием некоторой проблематики мысленно вычленяем и рассматриваем уже как самостоятельные объекты отдельные свойства, стороны или состояния сущностей обозреваемой предметной области.

Иными словами, образование единичного понятия – это замена сущности знаком, тождественным сущности в некотором смысле. Единичные понятия. При образовании единичных понятий абстракция проявляется в способности мысленного выделения в предметной области уникальных сущностей и присвоения им имен. Тут вспоминаем известный всем треугольник Фреге, который в графическом виде показывает связь знака, значения (сущности) и смысла.

Примерами единичных понятий могут служить такие понятия как «Зеленый», «Кислый», «Громкий», «Твердый», «Яркий», «Тяжелый», «Длинный», «Один», «Много» и т.п.

Как правило, единичные понятия формируются для фиксации того или иного состояния органов чувств или элементарных абстрактных представлений.

В информационных системах единичные понятия кодируются в виде единичных значений простых типов данных. Единичные понятия также называются понятиями-значениям, призванными обозначить некоторую элементарную сущность. Например, «-1», «3,5», «Ц», «16:31», «2018-04-10», «АБВ».

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

Простым понятиям присваивается уникальное имя, мыслимое как единичное понятие, и задается область допустимых проявлений (значений, принадлежащих сущностей), мыслимая как множество единичных понятий. Простые понятия образуются путем объединения сущностей, подобных в некотором смысле.

Примером простого понятия может служить такое понятие, как «Цвет», которое объединяет сущности единичных понятий «Красный», «Зеленый» и т.д., или «Целое число», состоящее из представимых целых чисел.

Например, «Целое со знаком», «Символ», «Число с плавающей запятой», «Время», «Дата», «Строка», и т.п. В информационных системах простые понятия соответствуют простым типам данных или типам данных, производным от них путем ограничения множества значений.

Выделяемые при этом признаки мыслятся как простые понятия, а имена конкретных понятий – как единичные понятия. Конкретные понятия. Конкретные понятия образуются на основе объединения сущностей с одинаковыми наборами признаков, позволяющими отличать сущности, принадлежащие конкретному понятию, от сущностей, не принадлежащих понятию.

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

Если некоторая сущность предметной области имеет значения признаков, принадлежащих какой-либо строке такой таблицы, то эта сущность распознается как «Мяч». Например, конкретное понятие «Мяч» может содержать такие понятия-признаки как «Цвет», «Диаметр», «Материал», а строки таблицы будут определять сущности понятия «Мяч»: («Красный», «10», «Резина»), («Зеленый», «15», «Ткань»), и т.д.

На языках программирования конкретные понятия выражаются массивом структур с полями из простых типов данных, а в базах данных – таблицей, столбцы которой те же простые типы дынных.

1). Абстрактные понятия. При образовании абстрактных понятий используются более сложные формы абстрагирования, основанные на установлении между понятиями отношений независимости, дифференциации и интеграции признаков, где в качестве признаков уже могут выступать любые понятия, в том числе и абстрактные (рис.

Рис. 1. Отношения признаков понятий: а) независимость; б) дифференциация; в) интеграция

Обобщение выражает схожесть понятий, проявляющуюся при дифференциации признаков, а ассоциация раскрывает состав понятия, проявляющийся при интеграции признаков. Для образования абстрактных понятий применяются две абстракции: обобщение и ассоциация.

Считается, что за образование обобщений отвечает левое полушарие мозга, а за образование ассоциаций – правое.

Иными словами, понятие-ассоциация включает в себя несколько других понятий в качестве своих составных частей. Ассоциация. При ассоциации порождение нового понятия происходит путем объединения признаков ассоциируемых понятий.

Например, понятие «Заявка» может состоять из таких понятий как «Пользователь» (автор заявки), «Дата» (дата создания заявки), «Предмет» (описание сути заявки) и т.п.

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

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

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

Видно, что ассоциация является абстракцией, лежащей в основе образования конкретных понятий путем ассоциации понятий-признаков.

Обобщение. При обобщении происходит порождение нового понятия путем объединения сущностей нескольких подобных понятий, когда новое понятие сохраняет все или часть общих признаков исходных понятий и игнорирует другие их признаки.

При этом фиксируются те признаки, которые являются общими для всех обобщаемых понятий, например, «Съедобность», «Наличие семян», а также другие признаки (возможно не все), выделенные у фруктов в соответствии с постановкой решаемой задачи. Примером понятия-обобщения может служить понятие «Фрукты», которое является результатом объединения сущностей таких понятий как «Яблоко», «Груша», «Персик», «Абрикос» и т.п.

При типизации предполагается, что все типизируемые понятия имеют одинаковые признаки. Частным случаем обобщения является абстракция типизации. Поэтому они и называются типами. Примерами понятий-типов являются все простые типы данных в языках программирования.

Следует заметить, что обобщение является абстракцией, лежащей в основе образования простых понятий путем типизации понятий-значений.

Понятие «Понятие». Следует заметить, что любое понятие само является понятием с набором признаков, общих для всех понятий.

2): «_Entity» (уникальный числовой идентификатор сущности), «_Title» (имя сущности), «_Icon» (пиктограмма сущности), «_Model» (дополнительные признаки сущности для слоя представления), «_Flags» (дополнительные признаки сущности для слоя логики и данных). В информационной системе LANCAD любое понятие в том числе и понятие «Понятие» содержит следующие признаки (рис.

Для каждой сущности «Понятие» помимо общих задаются специфические признаки: «Abstract» (абстракция понятия-сущности, одно из следующих значений: понятие-значение, понятие-признак, понятие-ассоциация, понятие-обобщение) и «Aspect» (аспект понятия-сущности, будет рассмотрен далее).

Рис. 2. Признаки понятия «Понятие»

Вариации смысла

Если выбрать любое слово из толкового словаря и предложить двум людям разъяснить и расширить его определение, то почти всегда собеседники придут к непримиримым противоречиям. Такая же проблема имеет место и в информационных системах. Одно и то же понятие для различных групп пользователей имеет различный смысл и, как следствие этого, должно иметь различное описание.

При этом разрешается определение понятий с одним и тем же именем, но в разных аспектах. По этой причине в информационной системе LANCAD предусматривается многоаспектное описание понятий, когда каждому понятию приписывается признак «Aspect».

3 показан фрагмент таблицы понятия-признака «Аспект». На рис.

Рис. 3. Сущности понятия-признака «Аспект»

А аспекте «Pro» понятие «Проект» характеризует проект в строительном смысле: задаются объект строительства, вид строительства, стадии проектирования, список разделов и марок комплектов чертежей, и т.п. Например, понятие «Проект» в общем (пустом) аспекте характеризует проект в организационном смысле: задаются дата начала, дата окончания, бюджет, привлекаемые ресурсы, и т.п. Например, в общем аспекте проект всегда имеет конкретную дату завершения, а в строительном аспекте проект актуален, пока существует объект строительства. Очевидно, что между двумя проектами, определенными в разных аспектах, есть что-то общее, но также имеются и существенные различия, порой несовместимые.

Структура реальности

В отличие от известных формализмов, используемых для описания взаимосвязи понятий (концептуальные схемы, концептуальные графы, онтологии, дискрипционная логика, семантические сети, диаграммы классов и т.п.), где на понятиях задается множество отношений различной природы и смысла, в информационной системе LANCAD использован другой формализм – понятийная структура, которая определена как множество понятий с двумя видами отображений, единственное назначение которых – показать способы образования понятий, способы их абстрагирования.

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

4: список понятий и их сущности показаны на левой панели формы в виде дерева, а имена понятий, способ абстрагирования и аспекты показаны слева в виде списка. Пример отображения понятийной структуры показан на рис.

Рис. 4. Понятийная структура

(рис. Например, понятие «Принципал» является обобщением понятий «Пользователь» и «Группа», а понятие «Пользователь» – ассоциацией понятий «Пароль», «Имя», «Отчество», «Фамилия», «Телефон» и т.д. 5).

Рис. 5. Атрибуты понятия «Пользователь»

В свою очередь такие понятия, как «Имя», «Отчество», «Фамилия», «Телефон», «Почта», определены как строковые понятия-значения соответствующей длины с ограничением области значений в виде регулярных выражений.

Так как признаками абстрактных понятий могут быть в том числе и другие абстрактные понятия, то для таких понятий вместо слова «признак» используется слово «атрибут».

Прав ли Айзек Азимов?

Четырехслойная информационная система должна работать с моделью предметной области и адекватно описывать состояние и поведение последней.

6). В своем романе «Конец Вечности» Айзек Азимов высказал мысль о том, что Реальность такова, что Вычислитель, используемый для моделирования предполагаемых Изменений Реальности, соизмерим по сложности с самой Реальностью (рис. Или мы просто «не умеем их готовить»? Действительно ли реальные модели столь сложны? Попробуем ответить на эти вопросы.

Рис. 6. Вычислитель для моделирования реальности. Источник

Однако, как задаются простые понятия или какие наборы значений понятий-атрибутов определяют ту или иную сущность конкретных и абстрактных понятий, остается не выясненным. В рассмотренной ранее понятийной структуре предметной области задаются имена понятий, способы их абстрагирования и список понятий-атрибутов, на которых понятия определены.

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

В информационной системе LANCAD используется 38 понятий-значений (рис. В слое базы данных единичные понятия (понятия-значения) представим встроенными типами данных. 7).

Рис. 7. Понятия-значения

Пример представления понятия-признака «Аспект» приведен ранее на рис. В свою очередь, простые понятия (понятия-признаки) реализуются в виде таблиц, содержащих перечисление сущностей-значений, принадлежащих таким понятиям. 4. 3, а его отображение в понятийной структуре на рис.

На рис. Конкретные понятия представимы таблицами, столбцы которых соответствуют понятиям-значениям. 8 показан фрагмент таблицы для представления конкретного понятия «Цвет», где специфический атрибут понятия представлен столбцом «Color».

Рис. 8. Конкретное понятие «Цвет»

Понятие-ассоциация представляется в виде таблицы, связывающей сущности ассоциируемых понятий в сущность понятия-ассоциации, где в отличие от конкретных понятий столбцы могут соответствовать абстрактным понятиям и содержать уникальные идентификаторы их сущностей (значения из поля _Entity).

9. Пример таблицы понятия-ассоциации «Понятие» показан на рис.

Рис. 9. Понятие-ассоциация «Понятие»

Представление абстрактного понятия-обобщения осуществляется с помощью запроса к базе данных, собирающего записи из таблиц обобщаемых понятий с заданным списком общих полей.

10, где сущности с начальными цифрами уникального идентификатора, равными 68, являются сущностями понятия «Группа», а сущности с цифрами 67 – сущностями понятия «Пользователь». Пример виртуальной таблицы понятия-обобщения «Принципал» приведен на рис. Общими атрибутами для таких сущностей оказались понятия «Имя» и «Пароль».

Рис. 10. Понятие-обобщение «Принципал»

Физическая таблица непосредственно хранится в памяти, а виртуальная таблица формируется динамически в результате выполнения некоторого запроса к базе данных. Таким образом, в слое базы данных понятийная модель предметной области представляется перечислением сущностей понятий в физических и виртуальных таблицах.

Если мы «утаим» некоторые понятия или их сущности, то для информационной системы они существовать не будут. Отсюда непосредственно следует вывод о том, что сложность модели предметной области соизмерима со сложностью самой предметной области. И выявить их каким-либо образом не представляется возможным.

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

Tempora mutantur et nos mutamur in illis

В заголовке – известный латинский афоризм, гласящий о том, что «времена меняются, и мы меняемся вместе с ними». Какую бы понятийную модель мы не создали, в момент своего создания она уже устарела. Как обеспечить актуализацию модели вслед за изменениями в предметной области?

Так как каждое понятие является сущностью понятия «Понятие», то в рамках этих операций возможно создание, изменение и удаление понятий как таковых. Очевидно, актуализация любой понятийной модели сводима к трем операциям над понятиями, а именно: созданию сущности понятия, изменению сущности понятия и удалению сущности понятия.

Для этого в слое базы данных используется SQL-запрос типа INSERT. Создание сущности. Операция создания сущности какого-либо понятия осуществляется путем вставки в таблицу понятия новой строки с полями, равными значениям атрибутов создаваемой сущности.

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

Так как на удаляемую сущность понятий могут быть ссылки из друг таблиц, то не каждая операция удаления оказывается возможной без удаления связанных с ней сущностей. Удаление сущности. Операция удаления сущности понятия осуществляется путем выполнения SQL-запроса удаления строки из таблицы понятия типа DELETE. foreign keys) для всех абстрактных полей этой таблицы (рис. Для обеспечения такой взаимосвязи при создании таблиц понятий определяются внешние ключи (англ. В результате чего получается сильно связанная база данных, а механизм внешних ключей обеспечивает целостность понятийной модели. 11).

Для обеспечения целостности понятийной модели удаление понятий осуществляется соответствующей хранимой процедурой. Операция удаления понятия-сущности возникает в случае существенного изменения модели предметной области и состоит в изменении описания всех понятий, в определения которых входит удаляемое понятие.

Рис. 11. Внешние ключи таблиц понятий

Определенные для таблицы внешние ключи обеспечивают целостность понятийной модели при выполнении операций изменения. Изменение сущности. Операция изменения сущности эквивалентна SQL-запросу типа UPDATE, изменяющего поля одной или нескольких строк таблицы соответствующего понятия.

Операции изменения понятия выполняются соответствующей хранимой процедурой, которая модифицирует таблицу понятия и задает внешние ключи для вставляемых абстрактных столбцов. Изменение понятий-сущностей возникает при необходимости наполнить понятие новым предметным содержанием.

12). Интерфейс пользователя. Операции добавления и удаления сущностей понятия отображаются в контекстное меню приложения (рис.

Рис. 12. Операции создания и удаления сущностей

13). Операция изменения сущности выполняется путем непосредственного изменения значения простого понятия или путем выбора из ниспадающего списка одного из допустимых значений абстрактного понятий (рис. В этом случае сущности абстрактных понятий отображаются в интерфейсе пользователя в виде наименования и соответствующей пиктограммы (атрибуты _Title и _Icon).

Рис. 13. Операции изменения сущностей

А во второй части я расскажу, как у нас в компании “ИНСИСТЕМС” реализована полнофункциональная информационная система, основанная на понятийном моделировании предметных областей. Итак, в первой части статьи мы рассмотрели определение понятийных высокоуровневых моделей. Продолжение последует.

А пока предлагаю ознакомиться с нашими вакансиями

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»