Comments 56
Статья, в которой сделана попытка сформулировать препятствия, которые мешают нам построить удовлетворительную нотацию для моделирования операций, процессов и функций: https://habrahabr.ru/post/319032/
Аналитики не умеют моделировать 4-х мерное пространство-время, применяя мета-метамодель, основанную на теории множеств.

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


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


Есть аналогия с решением математических задач: сводить всю геометрию к алгебре методом Декарта. Такое сведение всегда возможно и всегда корректно, но оно часто убивает возможность применение геометрической интуиции. В результате решать становится сложнее или, как минимум, дольше.

Я имею ввиду то, что аналитики не обладают инструментами и интуицией для такого рода моделирования. Часто можно услышать вопрос: «как будем делать версионность?» Создание версионности и есть моделирование 4-хмерного пространства. Неплохо, если бы они понимали какого, но с этим как раз проблема. Формально мы делаем параметр версионным, но понять, что за этой версионностью стоит, аналитики не могут. Например, какая 4-хмерная сущность стоит за версионностью Расчетного счета предприятия?
Честно говоря, я не совсем понял, зачем вообще создавать универсальную метамодель?
При чтении вашего текста у меня в голове сразу всплыл заезженный вопрос-штамп: «Что вокруг чего вращается — Земля вокруг Солнца или Солнце вокруг Земли»… И типа первый вариант правильный, а второй нет и может исходить лишь дремучего невежды. На самом же деле обе этих модели корректны имеют право на существование. Всё зависит от системы координат и её центра. Если я например запускаю космический корабль для вывода спутника на орбиту, то я возьму за центр координат скорее Землю (точку на ней), чем Солнце. И в этой модели Солнце будет вращаться вокруг Земли. Тоже самое и при моделировании солнечных часов. В другом случае мне будет выгодно использовать модель с Солнцем в качестве точки отсчета и я выберу эту модель, т.к. она упростит вычисления.

Но ведь очевидно, что конкретная модель выбирается под задачу: одна модель позволяет решить задачу проще, другая — сложнее. Поэтому я не вижу причин искать универсальную модель. Зачем? Для каждой задачи подбираем свою оптимальную модель и всё. Например, в вашем примере сделки купли-продажи очевидно лучше остановиться на двух моделях — одна для продавца и другая для покупателя. Каждая из этих моделей будет значительно проще, чем универсальная модель. И если простая модель продавца решает задачи продавца, а простая модель покупателя решает задачи покупателя, то зачем нужна сложная универсальная модель?
Все верно, модель не должна превышать своей сложностью поставленные задачи. Мы решаем две задачи: создание инструмента для в качестве шаблона для сравнения с другими инструментами. Это позволит каждый инструмент описать с точки зрения области их применимости. Вторая — это создание адаптера между ИС, Этот адаптер не знает заранее уровень сложности той или иной модели и потому должен на стадии его создания покрывать все возможные уровни сложности. Он будет тяжел, но не бесконечно тяжел. Например, каждое значение каждого атрибута в этой модели будет выделено в отдельную сущность.
UFO landed and left these words here
Мы — это те, кому интересна эта тема. Зачем мы решаем эти задачи? Потому что решение их позволяет выполнять очень сложные проекты много быстрее и качественнее. Проекты, которые иначе выполнить невозможно. Про проекты даже не спрашивайте — не расскажу.
UFO landed and left these words here
Я думаю, что проблема понимания в том, что мы имеем привычку видеть одно и не замечать другое. Чтобы научиться видеть новое, надо иметь огромную мотивацию и накопленный эмпирический опыт. Я делюсь своим опытом заранее уверенный в том, что большинству читателей совершенно не понятно, о чем идет речь. Все зависит от того, сталкивался ли читатель с подобными задачами, или нет. Если не сталкивался и потребности в их решении нет, то и рассказ кажется чудаковатым.

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

Пример: есть множество ИС, надо построить адаптер, который их свяжет. Но заранее нам неизвестна структура хранения данных, да и сами данные нам неизвестны. Как сделать такой адаптер?
UFO landed and left these words here
И универсальные метамодели — это то, чего рано или поздно начинают хотеть многие инженеры-программисты, задолбавшиеся держать в голове и связывать между собой различные частные метамодели в сложных архитектурах


Или наоборот, начинают проклинать разработчиков (включая «прошлого себя»), создавших одну метамодель для большой системы, в каждой из подсистем которой вся её мощь по-хорошему не должна использоваться, но метамодель заставляет. Например, в метамодели основным понятием является процесс и приходится их создавать со всеми их атрибутами, только чтобы посмотреть какое-то значение.
Это проблема реализации в реляционной БД, а не проблема модели.
Потому что в нереляционных моделях создавать процесс для одного значения не надо. Но это требует развитой машины логического вывода.
А вот это без доказательств не принимается. Легко можно представить модель, где для чтения данных нужно создать и запустить Читателя, а потом спросить у него прочитанное. И такие модели иногда бывают даже полезны, с точки зрения фильтрации данных, или получения актуальной версии, или сборки мусора параллельно с чтением.

Абстрацию Query не обязательно использовать только в реляционных СУБД.
Да, в реляционных моделях реализовать множественность путей запросов для получения ответа на один вопрос — возможно. Только программисты очень боятся этого, потому что два пути запроса могут дать два разных ответа, что говорит о неконсистентности данных. В реальности же все данные неконсистентны. Как с этим справятся программисты, не знаю. Но я знаю, как справляемся с этим мы — не паримся на эту тему, заранее зная, что нет консистентных данных.
Странно это слышать, с учётом того, сколько раз вы упоминали время.

У нас есть только факты, которые можно снабдить временем получения факта.

Если я захочу отчёт по продажам за 2016 год, он будет постоянным, независимо от способа выборки. Потому что период закрыт, и новых фактов, либо изменений, не будет.
Факты могут зависеть от источника информации. Разные источники могут сообщить разные факты. Это нормально для обычного мира, но очень болезненно для мира программистов
Для модели факты из разных источников — это разные факты.

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

Не вижу проблемы.
Слишком категорично «не будет». Разве что в бухучёте можно просто взять и закрыть период, и то только если его баланс сходится. Но исключать, что могут становиться известными факты задним числом нельзя, равно как и что время факта может меняться задним числом. Даже такие как получение денег. Например, суд сочтёт, что обязательства клиент выполнил 31 декабря в 23:59:59, потому что у него на чеке это время, не смотря на то, что на вашем сервере было уже 1 января 00:00:00.
Тогда я не понимаю проблему, о которой писал maxstroy. Как вы его поняли?

Почему он подчеркнул это для реляционных моделей, хотя вещи, о которых вы говорите, никак не связаны с моделью.
Статья, в которой сделана попытка сформулировать препятствия, которые мешают нам построить удовлетворительную нотацию для моделирования операций, процессов и функций: https://habrahabr.ru/post/319032/
Тут не в реляционности дело, а именно в метамодели — любое действие в рамках модели происходит исключительно в рамках какого-то (бизнес-)процесса (и, кстати, документо- ориентированные СУБД для хранения данных процессов часто подходя лучше, чем реляционные).
Я не дал метод решения. В этой статье я описал проблемы, но не способы их решения. Способы решения будут описаны отдельно, если время на то будет. Надеюсь, будет.
<поток бессвязных мыслей>
Как мне думается человек синтезирует знание из существующих знаний, поэтому не может произойти такого, что человек придумает что-то абсолютно уникальное. Такое случается, но все тогда говорят что это чушь и ерунда.
Например, если бы ученым древности поставили задачу организовать одновременное очное обучение двадцати миллионов человек, то никакая видетрансляция им бы в голову просто не могла бы прийти. А если бы и пришла, пылилась бы такая мысль в черновиках.
Все что не вписывается в рамки нашей мировоззренческой базы мы склонны отметать.

Есть понятия точные названия которых есть только в каком-то одном языке мира. А что нужно чтобы научить машину оперировать явлениями не цепляясь за их названия?
Т.е машина не сможет свободно творить потому, что человек определяет критерии оценки того что она творит. Наш проф. по математике вообще говорил, что информация существует потому, что есть люди (т.е. те кто ее как таковую воспринимают)
</поток бессвязных мыслей>
Наш проф. по математике вообще говорил, что информация существует потому, что есть люди (т.е. те кто ее как таковую воспринимают)


Он наверно имеет ввиду обязательное присутствие наблюдателя. Это интересная тема, но уже метафизическая — относящая к давнему вопросу: что первично — материя или сознание. Даже если представить, что всё произошло само по себе из идеального хаоса, т.е. абсолютно случайно, то в такой вроде бы чисто материалистической модели хоть и неявно, но всё же присутствует наблюдатель. Вот в котле мироздания всё случайным образом перемешивается, перемешивается и… в какой то момент вдруг в хаосе на мгновение появляется некая структура (нехаос), но… кто то (обладающий сознанием) ведь в этот момент должен сказать: «СТОП! Вот ОНА!». А без наблюдателя, выходит, что любая структура так и останется хаосом? В общем, как ни крути, получается, что первично — сознание.

Да и программисты также часто используют в основе алгоритма датчик случайных чисел, например в генетическом алгоритме ИИ. Входные данные в цикле чуть изменяются (мутируют) случайным образом, а результат пропускается через целевую функцию, которая оценивает входные данные: хорошие данные оставляются для следующей итерации, а плохие отбрасываются. И так потихоньку идет движение к цели. Но ведь очевидно, что нельзя сказать, что такой алгоритм выдает результат случайным образом, так как направление движения через отбор случайных входных данных задается целевой функцией, которая создана сознательным существом — программистом и создана, разумеется не от балды, а с определенными целями. Поэтому и в теории эволюции, какой бы материалистической она ни казалась, подразумевается неявный НАБЛЮДАТЕЛЬ…
получается фронт между теорией разумного замысла и теорией эволюции просто плод «узкого» мышления и тех и других, никакого фронта нет, это все тот же самый «слон» которого одни трогают за хобот а другие за хвост. Есть над чем подумать. Спасибо.
Вот перечитываю я пятый абзац, про актора, перечитываю…
И вот понять не могу, на примере с тем же яблоком. Отчуждением свойства падения от яблока вы создаёте некий «закон мира», который, тем не менее, зависит от свойств объектов. Следовательно, в свойстве падения яблока существует единственный недочёт: не указан объект с наибольшим гравитационным воздействием в данной точке. В таком случае, всё, что необходимо исправить в этой модели — добавить метаданные о полях в текущей точке координат и необходимые для описания свойств этих полей (того же градиента) данные.
Тем не менее, проблему произвольного выбора актора это решает, только если для каждого объекта расписать характеристики полей и действующих сил. В таком случае, можно будет определить и почему движется автомобиль, и почему движется колёсная пара без абстрактных свойств движимости, но путём значительного переусложнения модели (хоть это и метаданные). Как следствие — никто просто не будет с ними работать, пока ввод этих данных не будет автоматическим.
А это уже сводится к тому, что модели без проблемы выбора актора возможны только в случае дальнейшего развития инструментов моделирования (в первую очередь вычислительных и алгоритмических). Или я не прав и вас есть своё видение данной проблемы?
Все, что требуется, — это отделить метод от объекта. Мы не знаем, почему происходит то или иное событие. Оно происходит и все. Можно строить разные версии причин произошедшего, если надо, конечно, но нас это волнует во вторую очередь. Хочется знать факты без трактовок причин их возникновения. Тело упало на землю — хорошо, но не упало, а переместилось в пространстве. Метод перемещения не относится к телу, а есть особенность нашего мира, в котором тела перемещаются. Поэтому перемещение — это происшествие, причина его нам неизвестна. Другой пример: токарь точит деталь. Откуда нам известно, что это именно токарь, а не сверхразум при помощи токаря точит деталь? Нам не ведомо, почему точится деталь, но мы знаем, кто участвует в этой операции. Вместо того. чтобы говорить о акторах стоит говорить об участниках.
UFO landed and left these words here
Объект, субъект и предикат остаются всё теми же

Нет, в модели факт падения моделируется не предикатом — падает. Есть объект 4-хмерный, называется «падение» и есть его части — «тело», «земля», «пространство» и все, что найдет аналитик.

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

Чем в таком случае отличаются два 4-мерных объекта — "тело в пространстве движется к земле" и "тело в пространстве неподвижно по отношению к земле"? Части в них одни и те же, но одно мы называем словом "падает", а другое словом "висит".

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

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


У вас ошибка в том, что вы путаете конкретную сцену "яблоко падает" и отдельное действие "падает". Яблоко действительно является частью сцены. Но словом "падает" называется не вся сцена, а действие в ней, то есть динамика этой сцены. То общее, что есть у падающего камня и у падающего яблока. То есть, объект специально убирается из рассмотрения, иначе для каждого падающего объекта нужен был бы свой термин. А потом, при описании конкретной сцены происходит обратный процесс, указывается действие и объект ("яблоко падает"). Именно поэтому говорят, что яблоко производит какое-то действие.


Отличие между "падает" и "висит" заключается именно в динамике сцены.


Любое действие подразумевает объект, с которым что-то происходит, но они не связаны как "часть — целое". Поэтому по выражению "что-то падает" мы можем представить себе сцену в динамике, не уточняя, что именно там падает. Это особая связь, которую можно назвать "действие — участник действия", или "участник производит действие".

Спасибо за комментарий! Но нет, это совсем не то, что я имею ввиду. Есть книга, которую я хотел бы, чтобы каждый прочитал, но ее нет в переводе: http://www.brunel.ac.uk/~cssrcsp/BusObj.pdf. Падает — это 4-х мерный объект, который включает в себя объект, землю и еще много чего, что захочется видеть аналитику.
Статья, в которой сделана попытка сформулировать препятствия, которые мешают нам построить удовлетворительную нотацию для моделирования операций, процессов и функций: https://habrahabr.ru/post/319032/
Тело упало на землю — хорошо, но не упало, а переместилось в пространстве.

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

Из чего сделан такой вывод? Мне вот кажется, что причина в фазе луны и силе ветра.


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

Действие не означает мифическое существо. Когда мы говорим, что река течет, мы имеем в виду, что она течет без нашего участия, под действием каких-то других сил, в данном случае силы гравитации. Река есть? Есть. Она течет? Течет. Причем здесь мифические существа?


Например, все мы считаем, что яблоко падает на Землю.
Не потому что яблоко способно падать на Землю, и не потому что Земля способна падать на яблоко, а потому что так устроен мир.

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


Поэтому язык заставляет нас в любом действии искать актора, совершающего эти действия

Это не язык заставляет, а понятия языка появляются на основе наблюдений. Мы видим актора, совершающего действие, и придумываем для них названия.


В четырехмерном пространстве-времени действие – это часть пространственно-временного континуума, актор – часть действия

Почему это? Мне вот кажется, что и действие и актор — части 4-мерного пространственно-временного отрезка.
Вы хотите сказать, что действие "падает" не имеет никакой семантики без объекта? Как раз имеет, именно поэтому мы можем по тексту "яблоко падает" представить (смоделировать) эту пространственно-временную сцену. Это не отношение "часть-целое", а что-то наподобие входного параметра у функции, причем в процессе выполнения действия состояние этого параметра может изменяться. И я так понимаю, одна и та же часть не может принадлежать двум разным целым, а яблоко может совершать множество действий одновременно.


Для создания рабочих моделей нам нужен встроенный в метамодель механизм переклассификации объектов

Почему вы решили, что механизма нет? Что мешает переназвать дерево кленом?


Например, мы знаем, что половина кроликов – белые, а половина – серые. Пока в наших метамоделях не содержится способов моделирования этих знаний.

Почему это? Ваш текст сам по себе является моделью этих знаний. Я могу прочитать его и получить знания о кроликах. Кроме того, это просто статистические данные на текущий момент. Смоделировать их на компьютере или на бумаге проблем вроде нет. Пример: {object: {object: {class: Rabbit}, quantor: all}, quantor: half, color: white}.


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

Что в существующих моделях мешает описать данные с точки зрения продавца, если они уже описаны с точки зрения покупателя?


но представить Солнечную систему в виде объекта – уже нет
но никогда мы не слышим о композиции объектов

Почему это? Ни разу не видели картинок с подписью "Солнечная система"? Картинка — это тоже модель. Не говоря уже про упомянутое вами ООП, в котором композиция объектов — это основной способ моделирования.

Прикольно, сам занимался темой мета-метамета моделировани и даже постил об этом статью на хабре (https://habrahabr.ru/post/150021/). Жаль это тема не очень развивается.
Статья, в которой сделана попытка сформулировать препятствия, которые мешают нам построить удовлетворительную нотацию для моделирования операций, процессов и функций: https://habrahabr.ru/post/319032/
А может главное препятствие на пути создания универсальной метамодели — это её практическая ненужность? Скорее всего она окажется излишне сложной для практического использования, в лучшем случае конкретные люди будут пользоваться какими-то её подмножествами для решения конкретных задач, сознавая или подсознательно чувствуя, её избыточность в данном случае, и рано или поздно создавая усечённые версии несовместимые с универсальной.
Метамодель позволит описать ограничения любого языка, или нотации. Этим она и полезна. Ведь совсем недавно нельзя было и помыслить о доказательстве операционной системы, хоть теоретические работы на эту темы и велись. И вот уже сегодня создаются операционные системы, работа которых доказана, то есть, в них ошибок — ноль!
Метамодель позволит описать ограничения любого языка, или нотации
Сдаётся мне, тут должен быть подвох, аналогичный теореме о неполноте, запрещающий на формальном языке записывать вообще любую семантику.

И вот уже сегодня создаются операционные системы, работа которых доказана, то есть, в них ошибок — ноль!
Это заблуждение, подробнее — в этом моём комментарии.
Вполне возможно, что есть а теоремы о неполноте. давайте же его сформулируем и докажем! Только теорема о неполноте касается только тех высказываний, которые относятся к самому высказыванию. И потому это не наш кейс
Язык описания метамоделей ещё не опубликован, рано доказывать его свойства.
Понятно, что его нет, но нет смысла говорить о доказательстве теоремы о неполноте, не имея языка описания.
Однобокость нашего мышления проявляется в том, что мы хорошо умеем делать анализ и очень плохо — синтез.


Рекомендую познакомится с метапрограммами психики — это фильтры, которые незаметно фильтруют информацию и один вид информации они пропускают, другой — нет. Картина того, как работают наши мозги будет полнее.
Тема конечно интересная. Только сначала надо было бы дать определение, что такое ПРЕДМЕТНАЯ ОБЛАСТЬ.
Например, кофеварки — это предметная область и кухонная техника — это предметная область и варка продуктов — это предметная область. Практически, каждый человек определяет для себя сам это понятие. Начиная обобщать надо дать общее определение понятий. Иначе далее идёт смешение терминов: модель и мета-модель, классификаторы и др.
По факту, нужен универсальный семантический классификатор на основе некоторой модели мира (нужно определение), оперирующий не словами, а семантическими формулами, которые уже и раскрываются языковыми средствами.
На сегодня есть две теории предлагающие такой подход, это:
1. Универсальный Семантический Код (Universal Semantic Code) — автор Мартынов Виктор Владимирович
2. Теория автоматического порождения архитектуры знаний — автор Гордей Александр Николаевич

Мне представляется, что четырех измерений маловато будет. Представим, что не яблоко падает, а человек сидит и думает. Происходящие при этом события явно не исчерпываются физическими процессами в мозгу. Скажете, человека пока исключим из рассмотрения? Хорошо, пусть будет кошка. Кошка сидит и злится. Водит хвостом, шипит — это все физические процессы. А шквал ее эмоций в какое измерение запишем? Ваша модель, вероятно, должна быть N-мерной, где N — сколь угодно большое число.
Да, конечно, модель N-мерна. Но для начала стоит научиться моделировать 4 измерения, чтобы потом переходить к более сложным кейсам. Например, сценарий — N-мерная сущность.
Для автора: мысли интересные. Скажу немного абстрактно-духовно, но я дошёл до того что любой вопрос (проблему) нужно рассматривать как минимум с двух сторон, с позиции целого, состоящего из разных частей (общий вид) и с позиции частей, в совокупности представляющих из себя целое (подетально). Мы в дуальности, тут всё можно описать только относительно чего-то, как смотреть в зеркало.
Статья, в которой сделана попытка сформулировать препятствия, которые мешают нам построить удовлетворительную нотацию для моделирования операций, процессов и функций: https://habrahabr.ru/post/319032/
Предлагаю нотацию для моделирования:
https://habrahabr.ru/post/259291/ — Туннельное моделирование с группами и периодами сложности, фазами цикла Деминга
и
https://habrahabr.ru/post/267749/ — Преобразование подхода Захмана — добавление видов ресурсов к туннельному моделированию

Отдельные элементы описываются нотацией неплохо, но соединения элементов пока не прорисовывются
Only those users with full accounts are able to leave comments. Log in, please.