Архитектура для Graphiti, позволяющая более эффективно работать с источниками. Graphiti обеспечива

Архитектура для Graphiti, позволяющая более эффективно работать с источниками.

Graphiti обеспечивает возможность задавать кастомные сущности и связи между ними. Что позволяет адаптировать каждый граф под конкретную бизнес-модель.

Наткнулся на интересную архитектуру графа, который предоставляет:

1. Объяснимые ответы. Если получаем факт, то с указанием источника.

2. Контроль версий фактов и отслеживание их изменений.

3. Приоритет на самые свежие и при этом авторитетные сведения.

То есть, фактически, позволяет более качественно реализовать базовые идеи Graphiti.

Какие создаём сущности:

1. Episode. Стандартная сущность Graphiti. Туда летит всё, что происходит в системе.

2. Event. Конкретное событие внутри эпизода. В полях указываем его время, а также участников.

3. Fact. Ключ факта. В котором задаём идентификатор смысла. То есть отвечаем на вопрос «о чём факт?».

4. FactVersion. Версия факта. Поля: штамп времени (когда стал известен факт), значение для ключа, уверенность в достоверности факта (от 0 до 1), а также ttl факта (как скоро устареет).

5. Source/Evidence. Источники, поддерживающие версию. У источника есть поле weight, обозначающее степень авторитетности.

Связи между сущностями:

1. (Episode)-[:CONTAINS]->(Event)

2. (Event)-[:REFERENCES]->(Fact)

3. (Fact)-[:HAS_VERSION]->(FactVersion)

4. (Fact)-[:LATEST]->(FactVersion)

5. (FactVersion)-[:SUPPORTED_BY]->(Source)

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

Используем уже описанные выше параметры и их сочетания:

1. confidence – насколько сама модель, при записи факта, была уверена в его достоверности.

2. Добавляем функцию «затухания» факта со временем. В ней используем timestamp версии факта.

3. weight источника. Выбираем более авторитетный. Или только источники с авторитетностью выше определённого порога.

4. Время жизни факта. Если на момент «сейчас» факт, даже latest, уже устарел, то его не учитываем.

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

Комментарии

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

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