Как стать автором
Обновить

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

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

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

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

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

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

При выводе новых понятий вопрос остался тот-же: как понять, имеет ли смысл созданное понятие, или нет? Наверное, как в первом, так и во втором случае лучше всего спросить у пользователя.
Перечитал ваш ответ ниже, просмотрел статью, понял ответ на свой исходный вопрос. Собственно, я привык к классике (базы знаний, экспертные системы, онтологии) и не понял. что и как делается, как не теряется консистентность системы понятий, и не сводятся ли в итоге понятия к тегам.
А зачем надо было создавать собственную систему моделирования предметных областей? Почему нельзя было воспользоваться каким-то стандартом концептуального моделирования? Если хотелось (что правильно) работать с семантикой — можно было взять RDF/OWL.
Хороший вопрос. Для концептуального моделирования используются такие языки как OWL, CL, CycL и др., различающиеся формальным аппаратом описания сущностей, концептов, связей и правил. Все перечисленные языки обладают одним существенным недостатком – высокой вычислительной сложностью вывода на знаниях, которые они описывают.

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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