Ассоциативные связи: Ассоциативная связь | это… Что такое Ассоциативная связь?

Ассоциативные связи / Хабр

Что такое идеальный «квант информации» или «минимальная единица смысла» и зачем задаваться этим вопросом? С этим связано много боли, часто даже неосознаваемой. Мы предлагаем решение, но сначала нужно разобраться для чего это нужно. Рекомендуем ознакомиться с первой статьёй в серии.

Ретроспектива

Relational tables, document oriented databases, jsonb stores… В них мы часто представляем минимальной единицей смысла модель в таблице/коллекции. Модель состоит из разной структуры колонок/полей, и отражает некий реальный объект или абстрактную концепцию автора.

Такой подход создает проблемы:

  • Множество пространств адресации. (Если вы не видите ее, вскоре будет статья исключительно на эту тему, и вы увидите почему это проблема реальна).

  • Множество точек контроля структуры данных, изменение которых стоит дорого.

  • Совместимость только на том уровне который заложен автором.

  • Неспособность полноценно описать что-то новое без создания еще одной таблицы/коллекции.

  • Невозможность разделить предметы от отношений между ними.

Все эти проблемы решаются в ассоциативной модели данных Deep.Case.

Если вам интересна оптимизация или поиск по диапазонам в графе — здесь будет ссылка.

Давайте разбираться

Deep.Case оперирует концепцией Link (связь) как минимальной единицей смысла / квантом информации.

Links таблица

Links (сеть связей) очень похожа на граф, однако в графе есть однозначное деление на nodes (узлы) и edges (рёбра) ссылающиеся только на них. Links не разделяет эти пространства адресов. Это позволяет связям ссылаться на связи и нести любой смысл который в них может заложить автор моделей данных.

Link структура

Структура связи состоит из обязательных уникального id связи и type_id связи используемой как тип данной связи. Необязательные поля from_id и to_id могут быть заполнены только вместе.

Типы для создания связей легко создаются пользователем самостоятельно в рамках модели проекта, или поставляются вместе с импортируемыми моделями-пакетами.

Заполненные поля from_id и to_id ссылаются на другие связи. Такими связями можно описывать любые отношения.

{
  links(where: { id: { _eq: 8 } }) {
    id
    type_id
    from_id
    to_id
  }
}
{
  "data": {
    "links": [
      {
        "id": 8,
        "type_id": 1,
        "from_id": 7,
        "to_id": 6
      }
    ]
  }
}
Link как узел (node)

В связях можно не заполнять from_id и to_id. Такие связи играют роль node, узла, точки, предмета отношений.

{
  links(where: { id: { _eq: 28 } }) {
    id
    type_id
    from_id
    to_id
  }
}
{
  "data": {
    "links": [
      {
        "id": 28,
        "type_id": 6,
        "from_id": 0,
        "to_id": 0
      }
    ]
  }
}
Link как связь

Если from_id и to_id заполнены, связь играет роль отношения между узлами или связями. Она может ответить на вопрос как они связаны используя type_id. Некоторое окружение узла связями может ответить на множество вопросов о его смысле, отношениях, предназначении, значении и состоянии.

{
  links(where: { id: { _in: [6,7,8] } }) {
    id
    type_id
    from_id
    to_id
  }
}
{
  "data": {
    "links": [
      {
        "id": 6,
        "type_id": 1,
        "from_id": 0,
        "to_id": 0
      },
      {
        "id": 7,
        "type_id": 1,
        "from_id": 0,
        "to_id": 0
      },
      {
        "id": 8,
        "type_id": 1,
        "from_id": 7,
        "to_id": 6
      }
    ]
  }
}
Единый GraphQL API

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

Очевидно, что там доступна структура самой связи, а также из связи можно перейти к другим связям как по ее ссылкам (from_id и to_id), так и по обратным ссылкам от других связей (исходящих и входящих). Например, можно перейти на все связи которые ссылаются на данную связь по from_id (исходят из неё) с помощью relationship out, или по to_id (входят в неё) с помощью relationship in.

{
  links(where: { id: { _eq: 8 } }) {
    id
    type {
      id
    }
    from {
      id
      type_id
      from_id
      to_id
      out {
        id
        type_id
        from_id
        to_id
      }
    }
    to {
      id
      type_id
      from_id
      to_id
      in {
        id
        type_id
        from_id
        to_id
      }
    }
  }
}
{
  "data": {
    "links": [
      {
        "id": 8,
        "type": {
          "id": 1
        },
        "from": {
          "id": 7,
          "type_id": 1,
          "from_id": 0,
          "to_id": 0,
          "out": [
            {
              "id": 8,
              "type_id": 1,
              "from_id": 7,
              "to_id": 6
            }
          ]
        },
        "to": {
          "id": 6,
          "type_id": 1,
          "from_id": 0,
          "to_id": 0,
          "in": [
            {
              "id": 8,
              "type_id": 1,
              "from_id": 7,
              "to_id": 6
            },
            {
              "id": 13,
              "type_id": 1,
              "from_id": 6,
              "to_id": 6
            },
            {
              "id": 24,
              "type_id": 22,
              "from_id": 23,
              "to_id": 6
            }
          ]
        }
      }
    ]
  }
}
SQL-like queries

Мы можем не только получать данные по описанным выше структурам. Мы можем применять sql-like where предикат для выполнения разнообразных сложных фильтраций на каждом уровне.

{
  links(where: {id: { _eq: 6 } }) {
    id
    type { id }
    from { id }
    to { id }
    out(where: { from_id: { _eq: 6} }) {
      id
      type_id
      from_id
      to_id
    }
    in(where: { type_id: { _eq: 1} }, limit: 1) {
      id
      type_id
      from_id
      to_id
    }
  }
}
{
  "data": {
    "links": [
      {
        "id": 6,
        "type": {
          "id": 1
        },
        "from": null,
        "to": null,
        "out": [
          {
            "id": 13,
            "type_id": 1,
            "from_id": 6,
            "to_id": 6
          }
        ],
        "in": [
          {
            "id": 8,
            "type_id": 1,
            "from_id": 7,
            "to_id": 6
          }
        ]
      }
    ]
  }
}
Subscriptions

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

subscription {
  links(where: { from_id: { _eq: 7 }, to_id: { _eq: 6 } }) {
    id
    type_id
  }
}
Поддержите ассоциативные технологии

Мы создаем среду разработки (коробочную CE/EE версию и SaaS версию), позволяющую использовать ассоциативный подход для решения ваших бизнес задач, нуждающихся в хранении данных, с возможностью адаптации под любые изменения бизнеса. Мы создадим распределённую сеть серверных кластеров в едином ассоциативном пространстве, в том числе чтобы не думать о региональном законодательстве, создавая проект. Мы создаём культуру публикации повторно используемых моделей данных с их поведением.

Присоединяйтесь к нашему сообществу в Discord. Подпишитесь на ранний доступ в нашем Waitlist или поддержите нас на Patreon. http://deep.foundation/

На нашем сайте можно найти ссылки на черновики будущих статей находящихся в разработке, ссылки на исходники кода, планы по project и product менеджменту и invest презентации.

Ассоциация. Ассоциативные связи и цепочки

 

Фильм «Шоколад»

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

Домашняя птица? – Курица! Поэт? – Пушкин!

Откройте словарь в случайном месте и ткните пальцем в случайное слово. Прочтите его. Теперь назовите несколько других слов, которые приходят вам на ум, когда вы произносите первое слово. Например: «белый» -> «снег», «белый» -> «день», «белый» -> «свет»; «черная» -> «сажа», «черная» -> «ворона»; «танк» -> «броня», «танк» -> «пушка». И так далее. Такая пара слов называется ассоциацией. Если взять второе слово в паре и придумать ассоциацию уже к нему, то возникнет цепочка из трех слов и двух ассоциаций.

Таким образом можно строить сколь угодно длинные цепочки.

Почему и как ассоциации образуются сами

Ассоциации появляются чаще всего по смежности в пространстве и во времени: говоря о домашней птице, чаще всего упоминают курицу – мы это запомнили. Рядом с ложками на столе часто лежат вилки – отсюда частая ассоциативная связь «ложка-вилка». А «ложка» и «термоядерный коллайдер» – ни пространственно, ни временно в нашем опыте не связаны, и такая ассоциация нетипична. Частным случаем являются ассоциации по сходству (голубое—синее) и по контрасту (черное—белое).

Когда ассоциация чего-то с чем-то у нас возникает, а когда – нет? Чаще всего влияет фактор впечатления и новизны. Чем ярче и сильнее нечто произвело на нас впечатление, тем скорее у нас это не просто запомнится, но запомнится в связи со всем тем, что это окружало: где, с кем, когда, как… Аналогично, быстрее и ярче ассоциации возникают в связи с чем-то новым, что привлекло внимание в силу эффекта новизны.

Кроме эффекта новизны, на образование ассоциаций влияет эффект повторения. Если эта девушка обычно улыбается, ее будут чаще называть Солнышком. Улыбайтесь чаще!

Многое определяется и направленностью внимания самого человека. У девочек – девчачьи ассоциации, у мальчиков – мальчиковые, у взрослых людей – взрослые, у сексуально заряженных молодых людей ассоциации преимущественно сексуальные. «О чем ты думаешь, глядя на кирпич? – О девушках. – А почему? Как связаны кирпич и девушки? – А я о них всегда думаю. ..»

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

Использование ассоциаций в практической психологии

Метод свободных (у Юнга – направленных) ассоциаций активно использовался и используется в психоанализе.

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

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

Управляемые ассоциации

Творческие люди сами могут создавать свои творческие ассоциации, находя интересные и запоминающиеся ассоциации. Управляемые ассоциации – ассоциации, которые мы сами создаем и сами можем корректировать или стирать. Создавая управляемые ассоциации, мы с вами можем управлять своим вниманием и памятью.

Если вы хотите вспомнить, что вам нужно сегодня при выходе из дома, ярко представьте, как вы видите прихожую и сразу вспоминаете: «Зонтик!»

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

ассоциативных ссылок. Что такое идеальный «квант… | Иван Глазунов | CodeX

Photo by Uriel SC on Unsplash

Что такое идеальный «квант информации» или «минимальная единица смысла» и зачем задавать такой вопрос? С этим связано много боли, часто даже не осознаваемой. Мы предлагаем решение, но сначала нужно разобраться, для чего оно нужно. Рекомендуем прочитать первую статью цикла.

Реляционные таблицы, документно-ориентированные базы данных, хранилища jsonb… Мы часто используем модель в таблице/наборе как минимальную единицу значения. Модель состоит из столбцов/полей с различной структурой и отражает некий реальный объект или абстрактное понятие, определенное автором.

Такой подход создает проблемы:

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

Все эти проблемы решаются в ассоциативной модели данных Deep. Case.

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

Deep.Case работает с концепцией Link как с минимальной единицей значения/квантом информации.

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

Структура ссылки состоит из обязательных уникальных id и type_id , используемых в качестве типа этой ссылки. Необязательные поля from_id и to_id можно указывать только вместе.

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

Указанные поля from_id и to_id ссылаются на другие ссылки. Такими ссылками можно описать любые отношения.

 { 
ссылки (где: { id: { _eq: 74 } }) {
id
type_id
from_id
to_id
}
}{
"data": {
"links": [
" id"
: 74,
"type_id": 70,
"from_id": 72,
"to_id": 73,
}
]
}
}

Вы можете оставить поля from_id и to_4 пустыми в ссылках Такие связи играют роль узла, точки, объекта отношений.

 { 
ссылки (где: { id: { _eq: 28 } }) {
id
type_id
from_id
to_id
}
}{
"данные": {
"ссылки": [
{
"id": 28,
"type_id": 6,
"from_id": 0,
"to_id" : 0
}
]
}
}

Если указаны from_id и to_id , ссылка играет роль отношения между узлами или ссылками. Он может ответить на вопрос, как они связаны, используя type_id . Окружение узла со ссылками может ответить на многие вопросы о его значении, отношениях, назначении, значении и состоянии.

 { 
ссылки(где: { id: { _in: [6,7,8] } }) {
id
type_id
from_id
to_id
}
}{
"data": {
"links": [
{
"id": 6,
"type_id": 1,
"from_id": 0,
"to_id": 0
},
{
"id": 7,
"type_id": 1,
" from_id": 0,
"to_id": 0
},
{
"id": 8,
"type_id": 1,
"from_id": 7,
"to_id": 6
}
]
}
}

Этот API позволяет делать множество вещей, таких как обход всех дочерних/родительских элементов в определенных поддеревьях с использованием индекса. Но об этом будут отдельные статьи.

Очевидно, там доступна структура самой ссылки, а также по ссылке можно перейти на другие ссылки как по ее ссылкам ( from_id и to_id ), так и по обратным ссылкам с других ссылок (исходящей и входящие). Например, можно перейти ко всем ссылкам, которые ссылаются на эту ссылку по from_id (эти ссылки идут от нее) с помощью отношения out , или по to_id (эти ссылки идут на него) с помощью отношения в .

 {
Ссылки (где: {id: {_eq: 8}}) {
ID
Тип {
ID
}
от {
ID
TYP_ID
FROM_ID
TO_ID
OUT {
ID
от
до
до {
ID
до
до {
ID
до
до {
ID
.
}
}
до {
ID
TYPE_ID
FROM_ID
TO_ID
IN {
ID
TYPE_ID
FROM_ID
TO_ID
}
}
}
} {
}
}
}
} {
}
. "id": 8,
"type": {
"id": 1
},
"from": {
"id": 7,
"type_id": 1,
"from_id": 0,
"to_id": 0,
"out": [
{
"id": 8,
"type_id": 1,
"from_id": 7,
"to_id": 6
}
]
},
"to": {
"id": 6,
"type_id": 1,
"from_id": 0,
"to_id" ": 0,
"in": [
{
"id": 8,
"type_id": 1,
"from_id": 7,
"to_id": 6
},
{
"id": 13 ,
"type_id": 1,
"from_id": 6,
"to_id": 6
},
{
"id": 24,
"type_id": 22,
"from_id": 23,
"to_id": 6
}
]
}
}
]
}
}

Мы можем получать не только данные по структурам, описанным выше. Мы можем использовать sql-подобный предикат where для выполнения различных сложных фильтров на каждом уровне.

 { 
ссылки(где: {id: {_eq: 6}}) {
id
type {id}
from {id}
to {id}
out(where: {from_id: {_eq: 6}} ) {
id
type_id
from_id
to_id
}
in(где: { type_id: { _eq: 1} }, limit: 1) {
id
type_id
from_id
to_id
}
}
}{
"данные": {
"ссылки": [
{
"id": 6,
"type": {
"id": 1
},
"from": null,
"to": null,
"out": [
{
"id": 13,
"type_id": 1,
"from_id": 6,
"to_id": 6
}
],
"in": [
{
"id": 8,
"type_id": 1,
"from_id" ": 7,
"to_id": 6
}
]
}
]
}
}

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

 подписка { 
ссылки(где: { from_id: { _eq: 7 }, to_id: { _eq: 6 } }) {
id
type_id
}
}

Создаем среду разработки (коробочная CE/EE версия и SaaS версия), которая позволяет использовать хранилище данных для решения ваших бизнес-задач с возможностью адаптации к любым изменениям бизнеса с помощью ассоциативного подхода. Создадим распределенную сеть серверных кластеров в едином ассоциативном пространстве, в том числе, чтобы не думать о региональном законодательстве при создании проекта. Мы создаем культуру публикации повторно используемых моделей данных с их поведением.

Присоединяйтесь к нашему сообществу в Discord. Подпишитесь на ранний доступ в нашем списке ожидания или поддержите нас на Patreon.

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

определение ассоциативной связи | Английский словарь для учащихся

     
Ассоциативные мысли — это вещи, о которых вы думаете, потому что вы видите, слышите или думаете о чем-то, что напоминает вам об этих вещах или ассоциируется у вас с этими вещами.

adj   usu ADJ n  
Ассоциативная вина укоренилась в его душе...     

Перевод английского Cobuild Collins Dictionary  

Смотрите также:

ассоциировать, ассоциировать, ассоциировать, ассимилировать

Collaborative Dictionary     English Cobuild

н.

розыгрыш в Твиттере, состоящий из размещения ссылки на изображение утки на колесах

н.

розыгрыш в Твиттере, состоящий из публикации ссылки на видео, где поет Рик Эстли.

н.

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

[Тех.] наиболее распространенными призывами к действию являются кнопки или баннеры.

Вы хотите отклонить эту запись: дайте нам свои комментарии (неправильный перевод/определение, повторяющиеся записи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *