Подтвердить что ты не робот

Большая визуализация данных с использованием концепции "поиск, отображение контекста и расширение по требованию"

Я пытаюсь визуализировать действительно огромную сеть (3M-узлы и края 13M), хранящиеся в базе данных. Для интерактивности в режиме реального времени я планирую показать только часть графика на основе пользовательских запросов и расширить его по требованию. Например, когда пользователь нажимает на node, я расширяю его окрестности. (Это называется "Поиск, отображение контекста, разворот по требованию" на в этой статье).

Я просмотрел несколько инструментов визуализации, включая Gephi, D3 и т.д. Они принимают текстовый файл в качестве входных данных, но я не знаю, как они могут подключаться к базе данных и обновлять график на основе взаимодействия пользователей.

Связанная бумага реализовала такую ​​систему, но они не описывали инструменты, которые они использовали.

Как я могу визуализировать такие данные с указанными выше критериями?

4b9b3361

Ответ 1

Существует несколько решений, но в основном каждый использует один и тот же подход:

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

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

Datasource

Я бы начал с выбора типа источника: из типа данных, вероятно, я бы выбрал Neo4J, Titan или OrientDB (если вы представляете что-то более экзотическое с какой-то гибкостью). Все они предлагают API JSON REST, первый с фирменной системой и языком (Cypher), а два других - с использованием системы Blueprint/Rexster. Neo4J поддерживает стек Blueprint, если вам нравится Gremlin над Cypher.

Для других решений, таких, как другие NoSQL или SQL db, вероятно, вам нужно закодировать слой выше с относительным REST API, но он также будет работать - я бы не рекомендовал это для данных, которые у вас есть.

Теперь остается только третий пункт, и здесь у вас есть несколько вариантов.

Общие инструменты Viz

  • Sigma.js это бесплатный инструмент с открытым исходным кодом для визуализации графиков. Linkurious использует версию fork, насколько я знаю в своем продукте.

  • Keylines это инструмент визуализации коммерческого графика, с расширенными стилями, аналитикой и макетами, и они обеспечивают копирование/вставку демо, если вы используете Neo4J или Titan. Это не бесплатно, но поддерживает даже более старые браузеры - IE7 и далее...

  • VivaGraph это еще один бесплатный инструмент с открытым исходным кодом для инструмента визуализации графа, но он имеет меньшее сообщество по сравнению с SigmaJS.

  • D3.js это фактотум для визуализации данных, вы можете сделать в основном все виды визуализации, основанные на этом, но кривая обучения довольно крутая.

  • Gephi - еще одно бесплатное решение для настольных компьютеров с открытым исходным кодом, вы должны использовать внешний плагин с этим, возможно, но это поддерживает большинство форматов - graphML, CSV, Neo4J и т.д.

Спецификация поставщика

  • Конкретный - это коммерческий уникальный инструмент для поиска/исследования данных Neo4J.

  • консоль neo4J web-admin - даже если она базовая, они значительно улучшились с более новой версией 2.x.x, основанный на D3.js.

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

Другие узлы

Приведенные выше JS-инструменты визуализируют до 1500/2000 узлов одновременно, из-за ограничений JS.
Если вы хотите визуализировать больший материал - при расширении - я бы рекомендовал настольные решения, такие как Gephi.

Отказ

Я являюсь частью команды Keylines.