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

В чем разница между триплесторами и базами данных графов?

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

Оба основаны на аналогичных концепциях связывания одного "элемента" с другим через отношения. Triplestores поддерживают RDF и запрашиваются SPARQL, но такие надстройки могут быть (и реализованы) также реализованы на основе баз данных общего назначения.

В чем принципиальное отличие, которое заставит вас предпочесть семантический db/triplestore для базы данных общего назначения, например neo4j?

4b9b3361

Ответ 1

Триплеты - это базы данных графов. RDF - график. Конечно, тройные магазины, как правило, не хранят информацию внутри, как график; которые не оптимальны для ответа на запросы, но они все еще представляют собой графические базы данных.

Вы предпочли бы их чем-то вроде neo4j, если вы заинтересованы в экосистеме, основанной на стандартах W3C. Делает взаимодействие с другими системами на базе RDF тривиальными, и он забирает все и перемещается в другой трехлокальный магазин, совершенно безболезненный.

Ответ 2

Для начала, все структуры данных могут проецироваться более или менее болезненно на любой базовый механизм хранения (или даже на вашу файловую систему и текстовые файлы). Причиной выбора определенной модели данных и хранилища является IMHO:

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

Как упоминалось ранее, как RDBMSs, так и TripleStores, как правило, полезны во время выполнения в "неглубоком" перемещении обходов JOIN или SparQL и много работают в кэшах или подготовленных представлениях и т.д. Графические базы данных (уникально Neo4j) фактически накладывают структуру графика вплоть до уровня хранилища и выполняйте операции с указателем (с несколькими оптимизациями) на уровне node -record. Таким образом, при перемещении графика вам не нужно касаться больше, чем ваш текущий подграф, вплоть до уровня хранилища, таким образом, он может перемещать части данных, не касаясь всего графика, что приводит к постоянной производительности для ряда интересных сценариев.

Ответ 3

Мои 2 цента.

Neo4j попадает под категорию Property Graph. Они поддерживают направленные отношения, и каждое отношение имеет только два узла; начало node и конец node. Узлы и отношения могут хранить произвольные данные в виде пар ключ-значение. Однако они не могут поддерживать трехсторонние отношения. т.е. у вас не может быть одного ребра, соединяющего более двух узлов, iee своего рода гипердеги. Однако вы можете эмулировать 3-арные отношения в графах свойств, создавая узлы объединения. Вы можете увидеть, как реализовать это в neo4j здесь.

Triplestores имеют стандартизованный язык запросов в виде SPARQL, но пока не существует стандарта для запросов к другим базам данных графа. RDF является стандартом для импорта/экспорта из трипрессоров.