doc/LD2/GraphDB/review.md
2026-04-08 21:39:20 +03:00

8.5 KiB
Raw Blame History

GraphDB review

графовые БД? https://t.me/rusontology/14721

1

nevod1212:

это очень общий вопрос, нужно больше параметров/деталей

LPG или RDF? натив или не-натив (хрнить данные именно как граф или эмулировать граф поверх реляционной базы или nonsql)

  • какой язык вопросов вам больше подходит
  • будет ли у вас шардинг или нет (объем данных по сути)

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

в “чисто графовых” базах можно примерно распределеить так:

  • Neo4j - вертикальная, на cypher, входной порог низкий, сложность обхода О(1). Neo4j community edition
  • dgraph - горизонталная масштабируемость (нативный шардинг),
  • graphQL, средний входной порог, сложность обхода зависит от архитектуры сети (рафт), плюс его опенсурс плохо поддерживается, если нет свой команды кто понимает как его дорабатывтаь на длинный срок рисковано
  • NebulaGraph - горизонтальная масштабируемость ,
  • nGQL (sql-подобный), входной порог высокий, сложность обхода высокая , вообще заточен под “большие данные” (500мб+) и базовая версия опенсурс проприетарная не дешевая

так что очень зависит от задачи и не всегда чисто “графовые” базы удобны, очень часто какой нибудь postgreSQL с расширением AGE будет намного надежнее и совеместимее с разными задачами)

Virtuoso

Virtuoso это мощный гибрид - особенно для любителей RDF (к коим я не принаделжу, вернее он нам не нужен был) с дико сложным порогом входа - просто стенка на которую надо потратить очень много времени так как его настройка (а оно может летать лучше всех на гиганстких данных) это задача не из простых так как “из коробки” он раотает очень плохо, там реально нужно знать как работает память, кэширование, индексация. Ужасный интерфейс (если вы не застряли в 90х) и ужасная документация

то ест если бы я строял глобальный граф всего интернета - я бы взял виртуозо и потратил бы дофига времени но результат был бы качественный по скорости и “всеядности” (особенно если не оень ограничены в ресурсах) - но это overkill для боьшинства даже больших проектов

плюс это “старый продукт” где “старый” это = надежный который пережил все новые модные течения и всякие nosql и хмл базы и тд плюс он написан и продолжает писаться на С то есть очень “низкоуровневый” что очень виляет на скорости и тд

ну и как бы что на нем построено поддерживает его статус - от dbpedia до правительственных систем и крупных паблишеров типа bbc или европейский дата портал

хочется добввить что все эти иснтрументы надо воспринимать как инструменты под задачи, это же не универсальные таблетки, само “проектирование” онтологии влияет больше чем тулзы на которых потом ее “записывать” и обрабатывать

на каком бы ни писались “движке” или какой бы тулз не применили такие мега проекты как Cyc или LOD cloud или Semantic Web (которой оригинальный Web 3.0) всякие upper onoolgies как “кольцо всевластия” типа BFO, SUMO и прочие DOLCE такие же мертворожденные

забавно что гвоздь в семантические мега- модели забили как раз ллм-ки, зачем годами строить “идеальные онтологии” и заставлять размечать данные триплетами если можно “обучить статистически” для понимания контекста, и это будет работать лучше чем любая логическая машниа на базе того же Virtuoso

то ест попыткка научить компьютер понимать мир через правила провалилась, и веб пошел сатистикой веротности

и вместо “умного интеренета” получили такой же бардак как в гловах людей - модельки очень убедительно научились имитировать понимание

забавно 20 лет строили и пытались формализовать разум а придумали “угадывалку следующего слова” 🙂 т9 на стеоридах

Prolog

SWI-Prolog выпускает новые major версии чуть ли не каждый год. Я даже уже перестал следить за тем, что они там такое необыкновенное добавили. В Mercury новые комиты приходят чуть ли не каждый день.
Prolog крайне компактный и выразительный язык.
Математически он является суперсетом OWL.
Ну и потом, зачем себя ограничивать графами?

Он один раз мелькнул в одном гос-учереждении Японии. Год-два с ним экспериментировали и забросили. Prolog - это не язык общего назначения, хотя он и turing-complete. Но он очень лаконичен и удобен в использовании в узких проблемных областях, например там, где есть частично-структурированные данные. Есть еще категория функциональных языков, которые значительно более популярны, чем логические языки. Но работу со знанием Haskell, например, вы тоже вряд ли найдёте.

2

заодно

про формальные методы https://confest-2026.github.io/fmics/

Есть несколько хороших чатов по формальным языкам:

  1. @CompilerDev - только про реализацию. Будут сильно ругаться на общие вопросы. Здесь есть практически все лучшие русско-говорящие специалисты в этой области со всего мира.
  2. @LanguageDev - не смотря на страшное название, этот чат - для офтопиков CompilerDev. Здесь, по какой-то причине, живут практически все отечественные математики.
  3. @pld_beginners - вопросы от новичков