Увидел серию статей от математика из Стокгольмского университета и с энтузиазмом перевожу. Моя уверенность в том, что реляционки с 3-й формой нормализации - лучшее, что придумало человечество, резко убавилась... Я бы назвал это "субъективной теорией информации", автор называет "Transitional modeling", но широко это известно под названием "якорная модель данных"...

Transitional Modeling

Ларс Рённбек (Lars Rönnbäck), автор приведенных статей - консультант компании Up To Change и научный сотрудник Стокгольмского университета. Он получил степень по математике в Уппсальском университете, является специалистом по информационному моделированию и анализу клиентов, работал с крупнейшими шведскими компаниями в сфере страхования и розничной торговли, имеет десятилетний опыт работы в области бизнес-аналитики и пятилетний опыт работы в области якорного моделирования.

Это необычный заголовок статьи. Здесь приведена запись из базы данных: "Ларс Рённбек с помощью цвета описывает Transitional Modeling по состоянию на 28.01.2021"
Это необычный заголовок статьи. Здесь приведена запись из базы данных: "Ларс Рённбек с помощью цвета описывает Transitional Modeling по состоянию на 28.01.2021"
[{(Lars Rönnbäck, colorfully summarizes)}, "Transitional modeling", '2021-01-28']

Transitional Modeling (прим. переводчика: на русском это "Переходное моделирование", но этот термин уже закреплен за моделями перехода жидкости и газа в другие состояния, напр., при движении. Наиболее близко из существующих - Якорная модель) призвано отразить происходящие в реальной жизни события в простом, но эффективном формате, минимизируя при этом потерю информации в процессе записи таких событий. По своей сути оно сообщает об объектах и разнообразных, многогранных ситуациях, в которых эти объекты оказываются.

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

Идентификаторы и роли совместно могут использоваться для формирования appearances (проявлений, качеств): 42 любит и 89 возлюбленный[ая]. Фактически, проявление - это упорядоченная пара, состоящая из идентификатора объекта и роли, в которой этот объект появился (проявился) или будет появляться. Из примера можно заключить, что объект, представленный 42, в какой-то момент появился как тот, кто что-то любит, а 89 - как любимый объект. Однако, всё ещё не определено, кого любит 42 и кем любим 89. Для того чтобы соотнести эти объекты друг с другом, необходим набор проявлений, например 42 любит 89 любима.

Запись об отношениях 2 объектов - "любит" и "тот, кого любит"
Запись об отношениях 2 объектов - "любит" и "тот, кого любит"

Теперь мы узнаём, что 42 любит 89 и что 89 является возлюбленной 42. Когда объект кажется обладающим определенным свойством, а не отношением к другим объектам, в наборе проявлений будет одно проявление, указывающее на это: например, 42 имеет имя. В наборе проявлений есть одно или несколько появлений-основ, на которые мы можем наложить значения.

В то время как 42 и 89 навсегда и уникально привязаны к тем объектам, которые они представляют, опыт подсказывает нам, что "любовь" и "тот, кого любят" могут быть переходными состояниями. Для более точного описания необходимо дать квалификацию или количественную оценку отношениям, используя appearing value (степень проявления), например "активно чувствует", и время проявления, например 2009-09-21, указывающее, с какого момента действует это значение. Все вместе это образует posit (позицию, утверждение, далее - позиция):

42 любит, 89 - кого/что он любит, степень - "активно чувствует", на дату 21.09.2001
42 любит, 89 - кого/что он любит, степень - "активно чувствует", на дату 21.09.2001

Позиция связывает набор проявлений с проявляющимся значением в момент проявления. Теперь мы знаем, что 42 любит 89, 89 - возлюбленный 42, и он активно ощущает это чувство с 2009-09-21. Однако, это знание подразумевает, что каждый постулат является безусловно истинным. Но это - хрупкое знание, поскольку оно не отражает неопределенную и противоречивую природу информации. Все, что построено на хрупком знании, может рухнуть, когда реальность заявит о себе.

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

Предположим, что 89 считает весьма вероятным, что 42 любит 89 с 2009-09-21, и что эта его/её мысль была высказана 2018-02-13. Поскольку мы хотим, чтобы люди не противоречили сами себе, уверенность, которую они выражают в отношении какого-либо утверждения, должна быть выражена в числах, а точнее, в интервале [-1, 1]. Это даст нам возможность математически определить, существуют ли противоречия.

Итак, пусть понятию "очень вероятно" соответствует уверенность в интервале 0,7 - 0,8. Оценка чувств, отношений, разумеется, не точная дисциплина, поэтому и используется значение в виде интервала. Обычно любые значения также могут быть неточными, поэтому необходимо соглашение между вовлеченными сторонами в отношении надежности и значений. Если два человека говорят об активном ощущении, мы предположим, что они придерживаются одинаковой интерпретации, даже если само значение неявно выражает некоторую степень неточности. Аналогичные рассуждения применимы к моментам времени, которые по своей природе невозможно зафиксировать с бесконечной точностью.

Учитывая, что мы теперь знаем, как определял себя 89 по отношению к существующей или на момент выражения вновь созданной позиции, можно сформировать некоторое утверждение, например:

В итоге мы получили вот такую позицию (утверждение) с ключом 555: 42 любит, 89 - кого любят, чувствует это активно на момент 21.09.2009. А 89 ощущает это (утверждение 555) с уверенностью 0,7 - 0,8 на 13.02.2018
В итоге мы получили вот такую позицию (утверждение) с ключом 555: 42 любит, 89 - кого любят, чувствует это активно на момент 21.09.2009. А 89 ощущает это (утверждение 555) с уверенностью 0,7 - 0,8 на 13.02.2018

Утверждение само по себе является позицией, использующей две зарезервированные роли - ascertains (утверждающий, констатирующий) и posit (выражающий позицию, предполагающий). Чтобы 89 мог выразить мнение о позиции, эта позиция также должна быть связана с уникальным идентификатором, в данном случае 555. Утверждения - это мета-позиции, и они обеспечивают дополнительный контекст для позиции, - насколько определенным некий объект считает нечто, в определенный момент времени. Время появления утверждения также называется assertion time - временем утверждения.

Подумав еще немного, 89 полностью уверился в своем утверждении. Повторное рассмотрение можно зафиксировать с помощью нового утверждения с более поздним временем утверждения, здесь 20 августа 2018 г.

Теперь 89 немного скорректировал свой взгляд на позицию 555 - до полного согласия
Теперь 89 немного скорректировал свой взгляд на позицию 555 - до полного согласия

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

Как может измениться действующее утверждение, так может измениться и исходная позиция (felt no longer - уже не чувствует...):

Поскольку эта позиция отличается, она будет связана с новым уникальным идентификатором. Эта позиция указывает на изменение, но, учитывая, что мы до сих пор не видели никаких утверждений, мы не знаем, действительно ли это то, что чувствуют 42 и 89. Свое мнение о новом положении 556 они выражают в следующих утверждениях:

Хотя 89 уверен в позиции 556, 42 считает, что это не так. Это пример существования разногласия между двумя утверждающими в одно и то же время. Возможно, 89 человек разлюбил, а 42 — нет.

Хотя люди иногда ошибаются. Вскоре после этого 89 осознает свою ошибку, ему нужно как-то исправить эту ситуацию, и он высказывает следующее:

Первое утверждение имеет определенность 0, то есть полная неопределенность. С 2018-09-22 у 89 нет никакого мнения о позиции 556. Вместо этого 89 подтверждает свое мнение относительно 555. Позиция является переформулировкой, если для одного и того же проявления значение то же, что и в непосредственно предшествующей позиции, с учётом времени их проявления.

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

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

  • Поиск в любом месте по уникальному идентификатору 42, поиск по базе данных NVP

  • Поиск проявлений для роли возлюбленной (beloved), поиск по графовым БД

  • Поиск всех временных интервалов, когда 89 - объект, которого любят, поиск по графовым БД

  • Поиск, когда объект, которого любят, активно чувствует это, поиск по реляционным БД

  • Поиск информации в том виде, в котором она была на 2009-09-21, поиск по БД, содержащей временные отметки всех событий

  • Поиск информации с учетом того, что мы знали на 2018-02-13, поиск по БД, содержащей временные отметки всех событий

  • Поиск утверждений, в которых есть разногласия между 42 и 89

  • Поиск информации, достоверность которой составляет не менее 0,75, вероятностный поиск в БД

  • Поиск исправлений, сделанных в период с 2009-09-21 по 2018-02-13, аудит БД

  • Поиск того, сколько раз был достигнут консенсус по заданной позиции, новая функция поиска

  • Поиск высказанных противоположных мнений, новая функция поиска

  • Поиск лиц, выражающих противоположные утверждения, новая функция поиска.

Ниже приведены переводы ещё нескольких статей Ларса Рённбека, раскрывающих теоретические основы transitional modeling.

Иллюзия факта

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

Согласно словарю MacMillian, факт - это "часть правдивой информации" и "то, что является правдой или что действительно произошло, а вовсе не то, что является воображаемым или неправдой". Позвольте спросить вас, что вы считаете правдой? То, что "площадь квадрата со стороной x равна x в квадрате", - это факт, но только для квадратов на евклидовой плоскости. Математика, как выясняется, одна из немногих дисциплин, в которых мы действительно можем говорить об истине. Однако это не относится к науке в целом.

Является ли утверждение "На темной стороне Луны нет инопланетян" фактом? Если бы вас спросили, есть ли инопланетяне на темной стороне Луны, вы бы, скорее всего, ответили, что их там нет. Однако если бы вас заставили доказать это, вы могли бы подумать иначе. В качестве аргумента можно сказать, что существует крайне мизерная вероятность того, что там может быть что-то инопланетное. Мы могли бы оставить все как есть и дисквалифицировать это утверждение как факт, но пока не будем делать этого. Интереснее то, почему вы почти уверены, что это факт.

Еще во времена древних греков Аристарх Самосский предположил, что Земля вращается вокруг Солнца. Затем гелиоцентризм на некоторое время был забыт, но спустя почти 2000 лет его вернул отважный Галилео Галилей. Приходится полагаться на то, что эти парни изначально были правы, и что Луна не нарисована на небе и не сделана из сыра. Затем, вы должны полагаться на свидетельства миссии "Аполлон-8", в ходе которой астронавты действительно наблюдали темную сторону. Фотографии, которые были сделаны, подразумевают, что вы полагаетесь на научную основу снимков и что любые изображения не были подделаны. Вы должны полагаться на то, что у инопланетян нет маскировочных устройств или что инопланетяне в целом маловероятны и что любые заявленные наблюдения были сделаны заслуживающими доверия источниками.

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

По этой причине в transitional modeling понятие факта опускается и заменяется понятием позиции. Позиция вообще не имеет значения истины и является просто синтаксической конструкцией. Если предположить, что "На темной стороне Луны нет пришельцев" - это позиция, то это означает, что это утверждение, которое соответствует определенному синтаксису. Чтобы такое утверждение обрело смысл и какую-то истинностную ценность, кто-то, называемый asserter (ассертором, утверждающим) должен иметь о нем свое мнение. Вторая конструкция, assertion (утверждение), семантически связывает утверждение с утверждающим и выражает степень уверенности, с которой утверждающий считает утверждение истинным или ложным. Вместе они выражают такие позиции, как, например, "Питер, утверждающий, практически полностью уверен, что "На темной стороне Луны нет пришельцев"". Одновременно с этим может быть, что "Паулина, другой утверждающий, считает, что есть небольшая вероятность того, что "На темной стороне Луны действительно есть инопланетяне"".

С этой точки зрения информация не содержит фактов и состоит из двух частей: фрагментов информации (позиций) и мнений об этих фрагментах (утверждений), что лучше отражает ее истинную природу. То, что две такие простые конструкции могут привести к созданию богатой теории, из которой в качестве частных случаев могут быть выведены другие методы моделирования, такие как якорное моделирование, Data Vault и третья нормальная форма, может показаться несколько удивительным. Подробнее об этом читайте в нашей последней научной статье "Моделирование противоречивой, неопределенной и изменчивой информации". Ее можно прочитать и скачать на ResearchGate или на Anchor Modeling.

Отсутствие контекста

О чём мне хотелось бы узнать у источников данных, но, как правило, они этого никогда не сообщают? Лучше всего это показать на примере. Посмотрите на эти данные:

??????, ? ???, ????-??-??

Сами по себе они мало что нам говорят, поэтому нам нужен контекст, обычно в виде имен столбцов:

???????? ??????, ???????, ?????????

Прекрасно, обычно это все, что мы получаем. Теперь давайте немного встряхнемся, введя вторую строку данных. Теперь у нас есть:

??????, ?? ???, ????-??-??
??????, ? ???, ????-??-??

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

Даже если вам удастся решить эту проблему, мы можем еще больше все перетрясти. Переведите это в другой контекст:

??????? ??????, ????????? ????, ?????????

Теперь я чувствую потребность узнать немного больше. Эти измерения сделаны разными людьми? И насколько они достоверны? Какова погрешность? Если они проводились последовательно, какова их продолжительность? Если только одно из них верно, то какое?

Больше источников должны передавать данные так, как будто это вопрос жизни и смерти. В этом и заключается суть transitional modeling.

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


  1. Stillgray
    18.04.2024 01:03
    +3

    Смущает, но такое случается.

    В любой нормальной (в обоих смыслах) реляционной БД такое не случается. Ибо нормализация как раз и направлена на недопущение таких вот моментов.

    Думаю, что стоит привести высказывание К. Дж. Дейта:
    "База данных в действительности - это множество истинных высказываний"


    1. avshkol Автор
      18.04.2024 01:03

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

      В реляционной БД должно стоять ограничение на уникальность пары "номер - дата", но стоит ли оно? И что если стоит, но поступила такая информация - затирать ли предыдущую? Не записывать?


      1. Stillgray
        18.04.2024 01:03

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

        Собственно, якорное моделирование данных - это 6NF, судя по статье в википедии. Поэтому нет никакого противоречия между РСУБД и якорными БД. Данные якорной модели хранятся в нескольких таблицах в РСУБД по факту.


  1. belonesox
    18.04.2024 01:03

    Если кто впервые услышал про Anchor Modelling, может показаться, что это что-то свежее, экспериментальное и академическое, но Anchor Modelling давно (больше десяти лет) используется в проде, на хабре десятки статей, вот например от Авито 2014 год, 2017 + , много еще можно нарыть даже на хабре.


  1. ne-nark
    18.04.2024 01:03

    С этой точки зрения информация не содержит фактов

    Сомнительное утверждение. Если добавить к кортежу вероятностную оценку, то он не перестанет описывать факт, просто теперь этот факт определяется другим предикатом. Что здесь имелось ввиду?


    1. avshkol Автор
      18.04.2024 01:03

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


    1. avshkol Автор
      18.04.2024 01:03
      +1

      Это такой "подход аудитора": если на документе стоит запись "на складе остатки 500 шт", это не факт. Факт - это увиденные и пересчитанные аудитором лично 500 шт )))


      1. ScratchBoom
        18.04.2024 01:03

        А если он обсчитался?


  1. murkin-kot
    18.04.2024 01:03

    А в чём восхитительность очередной (из огромного множества) теории представления данных?


    1. avshkol Автор
      18.04.2024 01:03

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


  1. knagaev
    18.04.2024 01:03
    +1

    Не сочтите за радикализм, но товарищ с апломбом несёт полный бред, выдаваемый за потрясающую новизну. Подход, формализованный Байесом (в каком году?), здесь подаётся как открытие с глубокомысленной недосказанностью: "Подумайте во так, а может оно и не так, а вот если ещё поменяю контекст, так оно вообще не так, но может и так" Такое ощущение, что высосанная из пальца псевдонаука (главное вовремя придумать новые термины - позиция...), чтобы получить гранты на исследования.


  1. ScratchBoom
    18.04.2024 01:03

    Бред какой-то


  1. ScratchBoom
    18.04.2024 01:03
    +1

    В чём теория то состоит? Где тут математика? Не увидел ни в статье на Хабре ни у автора в оригиналах статей.

    Я рассчитывал какие-то математические выкладки увидеть, которые позволят эффективно делать запросы к БД.

    А тут из теории просто "давайте короч вот так хранить как список списков, не пойми чего, не пойми к чему"