@ Майкл, я рад, что вы вступили, поскольку вы определенно знаете больше, чем я об этом :).На данный момент я нахожусь в учебном путешествии.По вашей просьбе вот один из документов, которые вдохновили меня на понимание:
arxiv.org / abs / 1801.02911 (SPARQL-запрос графов свойств с использованием обходов Gremlin)
Iпроцитируйте их
"Мы представляем всестороннюю эмпирическую оценку Gremlinator и демонстрируем его обоснованность и применимость, выполняя запросы SPARQL над ведущими хранилищами графиков Neo4J, Sparksee и Apache TinkerGraph и сравниваем производительность с RDF.хранит Virtuoso, 4Store и JenaTDB. Наша оценка демонстрирует существенный выигрыш в производительности, полученный аналогами Gremlin запросов SPARQL, особенно для запросов в форме звезды и сложных. "
Они объясняют, однако, что все зависит как-тоо типе запросов.
Или в качестве другого ответа укажите, что при переполнении стека Сравнение реляционных баз данных и графовых баз данных также поможет понять проблему между множеством и путем.Насколько я понимаю, TripleStore работает и с Set.Это, как говорится, я определенно не знаю всех методов оптимизации, реализованных в TripleStore в последнее время, и я видел несколько статей, объясняющих методы для существенного сокращения операции объединения набора.
На раздаче больше мужественных чувств.Например, выполнение операции объединения в распределенном режиме звучит для меня очень, но очень дорого.У меня нет документов, и мое исследование не является исчерпывающим.Но из того, что у меня есть красный, и мне придется копаться в моем Evernote :), чтобы поддержать его, это фундаментальная проблема с дистрибуцией.Автоматическое интеллектуальное разбиение здесь, кажется, не помогает облегчить проблему.
@ Майкл, это очень, но очень сложный вопрос.Я определенно нахожусь в пути, и именно поэтому я помогаю себе с помощью stackoverflow, чтобы направлять свои исследования.Вы, вероятно, имеете представление о том, почему.Так что не стесняйтесь указатели действительно.
При этом я не говорю, что есть проблема с RDF и что Property-Graph лучше.Я говорю, что так или иначе, когда дело доходит до обхода графа, есть способы реализовать бэкэнд, который делает это быстрым.Модель данных здесь не проблема, проблема заключается в структуре данных, используемой для поддержки обхода.Второе, что я хочу сказать, это то, что, по-видимому, выбор языка запросов влияет на то, как выполняется «обход» и, следовательно, на структуру данных, которая используется для поддержки модели данных.
Это мое понимание до сих пор, и да, я понимаю, что есть много других факторов в игре, и не стесняйтесь перечислять некоторые из них, чтобы направлять мое путешествие.
Короче говоря, мой вопрос сводится к тому, возможно ли, чтобы хранилища RDF были поддержаны так называемым Native Graph Storage, а затем реализовывать Sparql в терминах шагов обхода, а не объединять наборы в соответствии с его алгеброй?Разве это не делает вещи немного быстрее.Похоже, что это в некотором роде подход, принятый https://github.com/graknlabs/grakn, который в первую очередь поддерживается janusGraph для хранилища, подобного графу.Хотя это не RDF, Graql - это та же идея, что и RDFS ++ + Sparql.Они утверждают, что просто делают это лучше, на что у меня есть оговорка, но это не основной вопрос этой темы.Суть в том, что они поддерживают представление знаний путем поиска информации (обход пути) и сопутствующего подхода к хранению, который отстаивал Property-Graph.Позвольте мне прояснить это, я не говорю, что собственное хранилище графа является свойством графа свойств.Я просто думаю, что подход к хранилищу оптимизирован для хранения структуры графа, когда поиск информации включает в себя (путь) обход: https://docs.janusgraph.org/latest/data-model.html.