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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

Конкретные понятия представимы таблицами, столбцы которых соответствуют понятиям-значениям. На рис. 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. Операции изменения сущностей

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

Комментарии (17)


  1. dmagin
    22.05.2018 11:37

    У меня глаз цепляется за термин «аспект». Вроде бы именно в информационных системах уже есть устоявшийся термин — «контекст». Значение переменной (в вашем случае — смысл понятия) зависит от контекста (употребления). Это кажется общим местом.

    Если же понятие «аспект» отличается от более привычного «контекста», то обычно в таких случаях уточняют, в чем именно отличие. Контекст, например, может расщепляться (быть многомерным). Возможно, что аспект — это всегда одномерный контекст.


    1. VVale Автор
      22.05.2018 12:57
      +2

      Нам показалось удобным интерперпретировать контекст как некоторое «окружение», которое позволяет перейти от общего смысла понятия к частному. Для именования такого окружения было выбрано слово «аспект».
      Иными словами, «контекст» – это содержание «окружения», а аспект — его имя: используются в контексте, а рассматриваются в аспекте.


  1. VVale Автор
    22.05.2018 13:12
    +2

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


  1. Gryphon88
    22.05.2018 15:28

    Извините, вся работа с понятиями (не считая predefined) выполняетс пользователем вручную?


    1. VVale Автор
      22.05.2018 16:16
      +1

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


      1. Gryphon88
        22.05.2018 19:22

        я имел в виду: автоматического вывода сущностей нет?


        1. VVale Автор
          23.05.2018 09:43
          +1

          Неожиданно… Автоматического вывода нет.

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

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

          Вывод новых понятий возможен тремя способами:
          — путем создания новых сущностей понятия Понятие и создания сущностей у созданного понятия (см. выше вывод новых сущностей);
          — автоматическая генерация обобщений путем поиска общих атрибутов у существующих понятий;
          — с помощью теории формального анализа понятий через ограничение числа атрибутов у существующих понятий с выделением уникальных строк в получающихся при этом таблицах (запрос SELECT DISTINCT с усеченным набором полей).

          При выводе новых понятий вопрос остался тот-же: как понять, имеет ли смысл созданное понятие, или нет? Наверное, как в первом, так и во втором случае лучше всего спросить у пользователя.


          1. Gryphon88
            23.05.2018 15:04

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


  1. vvagr
    22.05.2018 21:48

    А зачем надо было создавать собственную систему моделирования предметных областей? Почему нельзя было воспользоваться каким-то стандартом концептуального моделирования? Если хотелось (что правильно) работать с семантикой — можно было взять RDF/OWL.


    1. VVale Автор
      23.05.2018 08:53

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

      Высокая вычислительная сложность языка дискрипционной логики (RDF/OWL) связана с большим числом связей между концептами, вводимыми с помощью множества ролей (одноместных предикатов) для ограничения объемов концептов, а также с аксиомами вложенности и эквивалентности концептов и ролей.

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

      Язык понятийной модели, как и язык дескрипционной логики (RDF/OWL), является разрешимым, так как эквивалентен одноместному исчислению предикатов. Однако, в отличие от дискрипционной логики, язык понятийной модели не содержит средств описания отношений и ролей, так как все необходимые для вывода правила непосредственно содержатся в понятийной структуре.

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


  1. PavelSandovin
    23.05.2018 08:24

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


    Если это не секрет фирмы, какие это отображения? Хотелось бы увидеть аксиоматику вашей модели.


    1. VVale Автор
      23.05.2018 11:40
      +1

      Аксиоматику сделать секретом фирмы… Это круто! Куда мы идем? То ли еще будет!

      Нет, отображения и аксиоматика пока не секрет.

      К слову, под отображением понимается правило, по которому элементу одного множества ставится в соответствие элемент (или элементы) другого (или того же) множества.
      В то время как отношение – это подмножество декартова произведения множеств.

      Отображений два: обобщение и ассоциация. Аксиоматику исчисления понятий опишу словами, без формул.

      Понятие N задается именем и набором атрибутов (других понятий), на которых оно определено. Записывается так N(N1, N2, ..., Nn), где N — имя понятия, Ni — атрибуты понятия, i=1, 2,… n, набор которых называется схемой. Набор — это множество с повторением элементов.

      Аксиома 1. Существует пустое понятие E(), не имеющее атрибутов.
      Аксиома 2. Существует конечное число простых понятия-признаков P1(P1), P2(P2), ..., Pn(Pn), атрибуты которых — сами эти понятия.

      Правило вывода 1. Для любых понятий N1, N2, ..., Nm может быть получено новое понятие-обобщение Ng, определенное на размеченном пересечении схем понятий N1, N2, ..., Nm.
      Правило вывода 2. Для любых понятий N1, N2, ..., Nm может быть получено новое понятие-ассоциация Na, определенная на размеченном объединения схем понятий N1, N2, ..., Nm.

      Здесь операции над схемами (наборами атрибутов) выполняются с повторением элементов. Поэтому они названы размеченными.

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

      Тезис, связывающий исчисление понятий с предметными областями, для описания которых оно предназначено, таков: для любой предметной области существует понятийная структура.

      Самое важное в тезисе то, что для описания любой предметной области достаточно конечного числа понятий-признаков. А тезис потому, что не доказуемо и не опровергаемо.


  1. imbasoft
    23.05.2018 09:53

    Тема интересная, но подача материла сложная, а для читателя который сталкивается с темой впервые то и вовсе трудноусвояемая.

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

    Вопрос по существу: «Кто формирует понятийный слой?»
    Большинство людей с трудом формулируют свои мысли устно, не говоря уже о письменной речи. Тут же «модельер», то есть тот, кто формирует модель :) должен залезть в голову каждому конечному пользователю и выявить все нюансы. Если это делать разово — то это получится как обычная БД, если понятийный слой менять регулярно, то возникает вопрос квалификации и решения конфликтов восприятия…


    1. VVale Автор
      23.05.2018 13:36

      Согласен с imbasoft, что подача материала далека от совершенства, примеры приведены не во всех местах, где это можно было сделать. При написании статьи, как всегда, пришлось сокращать объем. Но имеем то, что имеем.

      Согласен также со скептицизмом imbasoft: кто и как формирует «понятийный слой» — вопрос из ряда «зри в корень».

      Почему понятийные модели не захватили мир (вместо «понятийные» подставляй «концептуальные», «семантический», «логические», «нейронные» и т.д.)? Потому что методологию понятийного (концептуального, семантического, логического, нейронного и т.д.) анализа надо изучать, осмысливать, осваивать, практиковать, улучшать и т.д.

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

      Про все это мы знаем, так как проверено на практике. Но надо как-то жить дальше.

      Пожалуй, первое, что нам удалось сделать — это ввести аспекты для «решения конфликтов восприятия» и «вопросов квалификации». Если кто-то отлично справляется со своим делом и при этом ему надо обязательно считать, что земля плоская, пусть будет так, но не для всех, а только в его аспекте. Тут, правда, возникает закономерный вопрос, который оправдывает предлагаемый подход: как узнать, что у других или у нас самих нет такой «плоской» земли?

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

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


      1. imbasoft
        23.05.2018 16:32

        При написании статьи, как всегда, пришлось сокращать объем. Но имеем то, что имеем.

        Объем лучше не жать, лучше бить статьи по частям, на мой взгляд… то есть в моем аспекте :)

        Если кто-то отлично справляется со своим делом и при этом ему надо обязательно считать, что земля плоская, пусть будет так, но не для всех, а только в его аспекте.

        С одной стороны, вроде бы звучит здорово, но если сделать шаг дальше… Модель данных, обуславливает модели обработки данных: алгоритмы, потоки данных и т.д.
        И тут возникает проблема (или вопрос):

        Возьмем двух людей:
        1-й — знает что форма Земли напоминает шар.
        2-й — сторонник плоской Земли.

        У первого есть алгоритм — построить путь кругосветного путешествия. Для второго подобный алгоритм не имеет смысла.

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


        1. VVale Автор
          24.05.2018 14:58
          +1

          Да, редкие алгоритмы работают более чем в одном аспекте. Как правило, в каждом аспекте свои и алгоритмы. То есть имеем n слабосвязанных информационных систем. Так и поддерживаем все n проявлений объективной реальности в сознании пользователей информационной системы.


          1. DaMaNic
            24.05.2018 16:14

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