Что такое реальность? Другая точка зрения
Продолжая тему любительской разработки русских операционных систем, хочу рассказать, к какой странной задаче меня привела разработка собственной системы.
Началось всё с попытки хранить персонажей, места и события вымышленного мира. А пришло к вопросу: можно ли описать не только сам мир, но и разные способы понимать происходящее в нём?
Для начала — эксперимент на этой статье
Вы читаете этот текст. Что вы в нём видите?
Возможно, пытаетесь понять идею. Тогда будете спрашивать: «Что автор называет реальностью? Как это может работать?»
Возможно, оцениваете статью как публикацию. Тогда раньше самой идеи заметите заголовок, длину абзацев и качество иллюстраций.
А возможно, первая же ошибка в пунктуации испортит вам впечатление. И это не означает, что ошибка не существует или что на неё нельзя указывать. Просто в этот момент главным предметом оценки стало качество текста, а не предложенная мысль.
Статья одна. Люди могут прочитать одни и те же слова. Но вынести из встречи с ними совершенно разное.
Вот это я и называю разными точками зрения.
Не местом, откуда смотрят. Не устройством глаз. А способом выбирать важное, понимать увиденное и оценивать его.
А при чём здесь реальность?
Я предлагаю такую рабочую формулировку:
Реальность — это неопределённость в границах, заданных правилами.
Звучит сложно. Возьмём простую ситуацию: в архиве пропала карта.
Что произошло на самом деле? Мы пока не знаем. Её украли, переложили, взяли для работы или никогда не клали туда, где её теперь ищут.
Это неопределённость. Но она не бесконечна: у нас есть время, место, участники, двери, записи о выдаче и другие условия. Они задают границы того, какие версии вообще возможны.
Теперь добавим точки зрения.
Хранитель архива видит нарушение порядка: предмета нет на положенном месте. Следователь видит вопрос о том, кто и когда получил к нему доступ. Автор приключенческой истории видит начало загадки. Человек, которому карта нужна прямо сейчас, видит сорванные планы.
Важно: это не четыре разные карты и не четыре разные физические вселенные. Это разные способы выделить значимое в одной ситуации. Из-за этого люди зададут разные вопросы, проверят разные версии и совершат разные действия.
Можно ли записать точку зрения как правило?
Представим, что мы создаём маленький мир для истории или игры. В нём есть персонажи, архив и пропавшая карта. Обычно программа умеет хранить факты: «карта принадлежит Эшу», «архив закрыт», «событие произошло вечером».
Но для меня интереснее следующий шаг. Описать не только факты, но и правила, по которым ситуация приобретает значение.
Например:
Для хранителя существенно, лежит ли предмет на своём месте.
Для следователя существенно, кто имел доступ.
Для Эша существенно, можно ли продолжить путь без карты.
Для читателя существенно, какие сведения ему уже сообщили, а какие пока скрыли.
Такая точка зрения — не готовое мнение вроде «хранитель обязательно обвинит Эша». Это способ разбирать ситуацию: на что обратить внимание, какие вопросы задать, по каким признакам сделать вывод.
И способ этот не намертво приклеен к человеку. Тот же хранитель может сначала оценивать пропажу как нарушение учёта, а потом — как угрозу другу. Точка зрения может измениться, когда меняется его задача.
Зачем здесь метамоделирование
В обычной программе разработчик заранее придумывает все виды записей и все способы их обработки. Вам достаются готовые поля: «имя», «дата», «место».
В моём проекте основа намеренно простая: объекты и их свойства. Персонаж — объект. Карта — объект. Событие — объект. Описание того, как показывать данные, — тоже объект.
Идея метамоделирования — дать возможность описывать сами правила описания внутри системы. Сегодня для мира важны вещи и их владельцы. Завтра — обещания, подозрения, оценки или способы понимать происходящее. Не хочется каждый раз начинать с переписывания всей программы.
Конечная цель — интерфейс, в котором можно задать правила ситуации и спросить:
Что здесь возможно, что исключено, что неизвестно — и как меняется набор значимых возможностей при выбранной точке зрения?
«Точка» здесь — не обязательно место на карте. Это может быть конкретное состояние истории: какие факты известны, какие условия действуют и какой способ понимать ситуацию мы сейчас применяем.
Что уже есть, а что пока задумано
Сейчас система уже позволяет хранить мир как связанные объекты и свойства. Можно создавать разные представления одних и тех же данных: например, список персонажей или хронологию событий. ИИ может помогать превращать мои обрывочные рассказы в набор таких записей.
Но расчёт пределов ситуации и работа с концептуальными точками зрения пока остаются целью проекта. Я не хочу выдавать таблицу персонажей за готовый двигатель реальности.
Чтобы к этому прийти, системе понадобится различать как минимум три ответа: «возможно», «исключено правилами» и «пока недостаточно данных». А также помнить, что оценка ситуации с какой-то точки зрения не равна факту о самой ситуации.
Это важно и при работе с ИИ. Если я написал «хранитель счёл исчезновение карты кражей», ИИ не должен записывать «карту украли». Он должен сохранить разницу между событием, оценкой хранителя и тем, что на самом деле ещё неизвестно.
Так что такое реальность?
Я не претендую на окончательный ответ философам и физикам. Мне интересна практическая версия вопроса: как построить модель, в которой не нужно заранее знать всю историю, но можно понимать границы возможного?
И как добавить к ней ещё один слой: способы, которыми участники этой истории выделяют смысл в происходящем.
Для одного читателя эта статья — попытка объяснить проект. Для другого — повод поспорить с определением реальности. Для третьего — слишком длинный текст с неудачной картинкой.
Статья от этого не переписывается сама собой. Но то, что станет событием при встрече с ней, зависит в том числе от точки зрения читателя.
С этого, кажется, и начинается интересная часть конструктора.








