Pull to refresh

Comments 17

Следующая тема, которую я хочу затронуть, — это объяснение, почему мы определили связь в конструкции как 4-Д объект. Напомню, что в проекционном моделировании связь – это общая часть элементов конструкта.

Вам к этому "определению" задали вопросы, а вы их проигнорировали. Ну ладно, продолжим.


связь – это 4-Д объект

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


Вот есть корабль, он приписан к порту. "Корабль приписан к порту" — это типичный пример связи между двумя объектами (и если кому-то хочется, оба этих объекта можно смоделировать как четырехмерные). Какому (общему) четырехмерному объекту соответствует эта связь?


Или вот банку принадлежит офис (офис является собственностью банка).
Или вот человек арендует сейфовую ячейку в офисе банка.


Ну или возьмем пример поближе к тематике хабра. Есть два сервера, А и Б, расположенные в двух разных вычислительных центрах, Г и Д, связанные между собой частной сетью В поверх сети общего назначения. С точки зрения модели, В — это, несомненно, связь. Что за четырехмерный объект ей соответствует?


Таким образом, ваше понятие "связи" не позволяет смоделировать многие существующие в, как вы любите выражаться, реальных задачах отношения объектов. А знаете, почему? Вот ответ:


В нашем представлении нет способа передать взаимодействие напрямую без посредника. Поэтому любая связь – это 4-Д объект, передающий это взаимодействие. Но, повторюсь, не потому что так устроена природа, а потому что мы так мыслим.

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

Авторская «4Д-связь» это что-то типа «объекта, расширяемого любыми новыми сведениями, полученными в будущем», если я правильно понял «стиль» мышления автора (понял фобии, результатом которых являются его рационализации, понял его страх перед неизвестностью). Он как бы заранее пытается рационализировать то, что будет известно лишь в будущем. Идея сама по себе не самая плохая, но требует переформулирования изначальной задачи — спроектировать формат хранения любых экспертных данных вне зависимости от прикладной области. Ну и постепенно провести «4Д-объекты» через все проблемы, всплывающие в подобной задаче, и прийти к чему-то типа «фреймов знаний» Минского, эдакой динамической структуры, имеющей возможность выражать совершенно любой тип связей между объектами. Грубо говоря, автор не проектирование школьникам объясняет, а формулирует структуру мозга школьника, потенциально способного понять проект любой «мощности» моделируемых связей. Автор разрабатывает экспертную систему с возможностью логического вывода сведений из неё (на однозначном языке типа Prolog).

(Комментарий написан на правах графомании и праздных фантазий.)

Так все равно же не работает. Чтобы выражать "любой тип связей", надо выражать "любой тип объектов", а "любой тип объектов" несводим к четырехмерным объектам.

Ну, как я понял, «4Д-объект» это что-то типа «бесконечномерного объекта», когда одно измерение является «метаизмерением» (в него можно «набрасывать» любые измерения, узнаваемые в будущем), а остальные три фиксируются как способ перемещения по «метапространству», заданному этими «метаизмерениями». Но это всё очень интуитивная попытка интерпретации текстов, возможно, очень далёкая от мыслей автора.

Да вроде нет: "Объектом нашего моделирования будет 4-х мерный объект в пространстве-времени".

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

Так и есть — автор разрабатывает не язык моделирования для конкретной предметной области, а непредметный язык, который, путем ввода DSL-терминов поверх непредметных, предоставит возможность моделировать любую предметную область.
(Если попытаться найти аналогию, это похоже на языки программирования вроде Ruby, которые благодаря динамической модели и особому синтаксису, позволяют разрабатывать фреймворки с DSL-языками, а уж потом конечные приложения)


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


Перефразируя еще раз — автор решает мини-максную задачу при разработке языка моделирования и определении его терминов.


Еще это похоже на EAV-модель, которая позволяет определить в реляционной БД любой набор сущностей, не заводя в структуре БД новых таблиц.

Интересно, что в Руби особенного, делающего его столь привлекательным для основы DSL? Чем он принципиально отличается от какого-нибудь Питона или ЖС в этом аспекте? Возражений комментарию особых у меня нет, лишь небольшое подозрение в «если вы овладели молотком, то всё вокруг кажется гвоздями» (мой молоток в этом смысле получился похожим на Пролог, судя по всему, а ваш, вероятно, Руби).
Интересно, что в Руби особенного, делающего его столь привлекательным для основы DSL? Чем он принципиально отличается от какого-нибудь Питона или ЖС в этом аспекте?

Помимо динамической модели — особый синтаксис ("представление модели"), который включает много всего.
Это и отсутствие скобок при вызове функций, и do blocks, и возможность определения литералов вида :name (эдакое замещение строк-констант и енумов из других языков), и прочее, что по отдельности может казаться мелочью.


В итоге руби позволяет написать фреймворк (и примеров много — начиная от Rails, продолжая Trailblazer, и заканчивая многочисленными гемами), исходный код с использованием которого выглядит как DSL, если не знать, что идет работа с функциями используемого фреймворка, и то, как это ложится на объектную и синтаксическую модель руби — т.е. можно даже не опознать, что это именно руби.


Руби был приведен для примера. Естественно, подобных языков много. Например, Crystal.
В статических языках подобное тоже есть — Nemerle, Cx#.

DSL — это один из способов определения архитектуры приложения (определение ограничений семантики использования сущностей, отражающих прикладную область), и, если отбросить критерии синтаксиса DSL (критерии «красивости» синтезируемого языка для «посторонних»), любой язык программирования общего назначения так или иначе предназначен для построения языка решения прикладной задачи. Ярчайшим примером тут, наверное, будет не Руби (хотя и в его некоторой популярности сомнений нет), не экзотика типа Nemerle или Cx#, а самый попсовый JS с его jQuery (который породил язык селекторов и семантику обработки деревьев, в итоге вошедших в стандарт платформы). Да любой объектный язык предполагает предварительное определение классов прикладной области, с ограничениями их взаимодействия друг с другом.

(Не возражения ради, а графомании и поддержания беседы для.)
Так и есть — автор разрабатывает не язык моделирования для конкретной предметной области, а непредметный язык, который, путем ввода DSL-терминов поверх непредметных, предоставит возможность моделировать любую предметную область.

Любая пока что-то не выходит, я примеры неоднократно приводил.

Автор просто определил свои объекты как 4-Д объекты и связи как их пересечения, но выводов из своего определения не сделал. Говоря «4-Д объект» автор подразумевает что-то свое, не имеющее отношения к пространству-времени.

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

Ой ли? Я уже приводил эту цитату: «Объектом нашего моделирования будет 4-х мерный объект в пространстве-времени».

Говорю же, автор дает формальные определения чтобы были, но выводов из них не делает. То есть понятия — сами по себе, а их определения — сами по себе.

В моем понимании, никакой формальной системы (которую нам обещают) так не построить.

Пространство-время у автора скорее семантические, ежели физические. Пространство — это совокупность понятий, размещённых согласно ассоциативной близости (хоть в общем случае критерием этой близости может выступить и физическое пространство), а время — это порядок добавления понятий в это пространство (хоть в общем случае этот порядок и может совпадать с порядком возникновения описываемых понятиями физических явлений). Но, повторюсь, это лишь некая интуиция относительно хода мыслей автора (интуиция относительно «физико-математической синестезии» автора), которая при конкретизации, конечно, легко обрастает противоречиями.
Sign up to leave a comment.

Articles