Как стать автором
Обновить

HyperGraphDB — база данных на основе графов

Время на прочтение3 мин
Количество просмотров8.6K


Наверное, не многие знают о существовании такого типа баз данных, как базы данных на основе графов (graph db). Ранее в NOSQL среде была распространена всего одна система такого плана — Neo4j. Сегодня же к нам прибыло еще 2 — Infogrid и HyperGraphDB. О последнем и пойдет речь.

Как описывают сами создатели свою систему:

«HyperGraphDB — это расширяемая, портативная, распределенная, встраиваемая система общего назначения со свободным (open-source) механизмом хранения данных. Эта система разработана специально для проектов использующих возможности искусственного интеллекта и семантического вэба и может использоваться как встраиваемая, объектно-ориентированная база данных для проектов любого масштаба.»

Согласитесь, звучит сильно. Но, нужны подробности. Отправимся за ними в прибежище всех NOSQL проектов — http://nosql-database.org и официальный сайт проекта — http://www.kobrix.com. Вот, что мы оттуда узнаём:
  • Для работы необходима Java5+
  • Есть реализации и для Windows, *nix и mac платформ
  • API только для Java (и языки на платформе Java)
  • Написан на Java
  • Способ запросов — Java или P2P
  • P2P репликация и P2P фреймворк для распределенных вычислений и данных, а так же репликации данных
  • Согласованность (concurrency) основана на механизме STM — Software Transactional Memory (механизм аналогичный транзакциям в базе данных — подробнее на en:Wikipedia)
  • Лицензия LGPL
В это базе данных как уже стало ясно из названия используются гиперграфы. Гиперграф это расширение обычной концепции графа, позволяющей ребру графа иметь более 2-х вершин. HyperGraphDB расширяет эту концепцию еще больше, позволяя ребру указывать на другое ребро, и позволяет любому ребру или вершине иметь произвольное значение в виде полезной нагрузки. Основные требования которые учитывались в разработке системы пришли из проекта OpenCog, в котором была попытка реализовать систему AGI (подход основанный на когнитивной психологии и графах концепций-перцепций-атомов, с activation spreading, иногда многоуровневой архитектуры, активное использование гетерогенных механизмов — GA/эволюц.приграммирование, байесовы сети, статистические механизмы, все сорта вывода — логического, пушистого, вероятностного и т.п.) где была необходимость в реализации самомодифицирующихся вероятностных гиперграфов.

Основная единица хранения в HyperGraphDB называется atom. Каждый atom имеет произвольное значение и может указывать любое количество других atom. Типы данных управляются единой расширяемой системой встроенной в структуру гиперграфов.

Схема хранения данных платформонезависисмая и позволяет работать с данными с помощью любого языка программирования на любой платформе. На низком уровне данные хранение данных базируется на BerkeleyDB. Ограничения размеров, практически не существует. HyperGraphDB не вносит ограничений на размер графа, но размер каждой отдельной сущности ограничен системой хранения — 2 Gb для BerkeleyDB. Однако архитектура позволяет обойти ограничения BerkeleyDB для некоторых atom, если вам это понадобится.

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

Как мы видим, ребята из kobrix.com сделали достаточно интересную систему, которая успешно вошла в ряд NOSQL систем. Ну а для тех кто заинтересовался, приведу ряд ссылок:

Страница проектаhttp://www.kobrix.com/hgdb.jsp
Исходные коды на Google Codehttp://code.google.com/p/hypergraphdb/
Примеры работы с HyperGraphDB http://www.kobrix.com/wikishow?project=hypergraphdb&page=FirstSteps

Теги:
Хабы:
Всего голосов 46: ↑40 и ↓6+34
Комментарии43

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн