Я прочитал вопрос о SO: Графические базы данных против баз данных документов против тройных хранилищ < / а>.
Я понимаю, что использование OWL / RDFS для семантических данных дает много преимуществ, потому что они компактны и представляют собой просто набор граней. Я собирался попробовать тройное хранилище (например, Jena), но опасался определенных графовых алгоритмов, которые я не мог выполнить на нем (например, кратчайшие пути и взвешенные ребра).
С тех пор, как я начал создавать что-то вроде базы знаний Google, я встречал гибридные или многомодельные хранилища данных (RDF store + Graph DB), такие как Blazegraph, Amazon Neptune, Google Cayley (не настоящий продукт Google), Виртуоз, Гракн и им подобные.
Это заставило меня задуматься, почему я не могу просто экспортировать все данные RDF в простую и простую базу данных Graph? Нравится Neo4j или OrientDB? В конце концов, данные RDF по-прежнему представляют собой граф. Почему создатели Сети знаний настаивают на использовании гибридного магазина? Почему бы просто не использовать простую, старую базу данных графов? Если вы думаете, что ответ - это оптимизация, почему бы не использовать только базу данных гиперграфов? Какие операции с гибридной базой данных недоступны для базы данных графов? Позвольте мне дословно процитировать блог:
Возникающая парадигма организации и управления сложными, сильно взаимосвязанными данными в виде так называемых графов знаний представляет собой своеобразное сочетание проблем, связанных со знаниями и представлением данных. Приложения на основе графов знаний должны эффективно работать с семантически богатыми, но хорошо структурированными и ограниченными данными графов. Хотя методы реляционного моделирования и графовые базы данных являются полезными инструментами для решения некоторых конкретных проблем, они не могут предложить исчерпывающую техническую и концептуальную инфраструктуру для всей задачи.
Фактически, Sail фактически предоставляет слой RDF поверх базы данных графов ( как OrientDB). Разве это не снижает привлекательность гибридных баз данных? Я не понимаю, как построить реализацию RDF поверх базы данных графов, когда данные RDF сами являются графом?