Comments 19
Классы сущностей тут github.com/oat-sa/generis/tree/master/core/kernel/classes
Реализация хранилища тут github.com/oat-sa/generis/tree/master/core/kernel/persistence/smoothsql
Предупреждаю заранее всех, решит возмутиться увиденному, код древнее мамонтов, но так как он ядро всего, туда не спешат лезть руками.
А какая стратегия укладки триплетов в таблицы у вас, если словами? Просто EAV, одна таблица с тремя столбцами?
Быть может, в зависимости от типов запросов, помогли бы составные индексы наподобие [таких](http://docs.openlinksw.com/virtuoso/rdfperfrdfscheme/). А SPARQL-то у вас нет, да?
[Вот](https://www.springer.com/gp/book/9783642193569) не совсем ещё старая книжка, рассказывающая, как все устроено под капотом у purpose-built RDF-хранилищ (надеюсь, найдете, где скачать). Было ещё что-то хорошее и объемное, напишу, если вспомню.
Спасибо за ссылки, всегда приятно покопаться в чужой
Blazegraph куплен AWS и лег в основу Amazon Neptune; теперь непонятно, будет ли еще хоть один релиз.Blazegraph 2.1.5 все-таки вышел, но теперь, скорее всего, точно всё.
I. GraphQL для доступа к RDF
Этот тренд усиливается с каждым месяцем. Как минимум, два спеца и целая DBMS выразили поддержку только с конца года...
- Ready for GraphQL Sidebar: GraphQL vs. SPARQL?
- What Can the Semantic Web Do for GraphQL?
- A New Hope: The Rise of the Knowledge Graph
Кажется утверждается MultiAPI для MultiDBMS. GraphQL так хорош?
Это очень похоже на ситуацию с аналитикой семилетней давности. Отрасль радостно приняла колончатые базы как практичную вещь, при этом понимая, что кубы все равно лучше. Любим одних, женимся на других?
Спасибо за ссылки! Автор первой статьи писал мне как-то в LinkedIn: generally speaking, most people don't actually want to use SPARQL, and I think that's more important than any of the technology. Собственно, и всё.
Я рассматриваю поддержку RDF-хранилищами GraphQL как очередную попытку понравиться и стать понятными конвенциональным разработчикам. Предыдущей был JSON-LD. В дополнение к тому, что говорил в статье, могу добавить, что GraphQL сильно похож на MQL, язык запросов к Freebase, который особой популярности в LD-сообществе не приобрел.
Если интересует тема LD, есть Telegram-группа «Linked Data Russia»: https://t.me/linkeddatarussia, я больше там по этой теме пишу.
Спасибо за ссылку на группу. Давно искал более-менее живое общение на тему SW.
Не все так плохо. Как обстоят дела, я писал в двух заключительных разделах другой статьи. Конечно, хочется увеличения рынка раз в несколько. Большие ожидания связываются с гартнеровскими «knowledge graphs». Но в той же статье отмечается, что все это вряд ли про российский рынок.
Некая ревизия модели сейчас в повестке есть — это RDF*, см. о ней раздел V.1.2 этой (под которой комментарий). Впрочем, можно сказать, что тут тоже «спасительная соломинка» — LPG.
Кстати, если совсем интересно, JSON-LD тоже вносит изменения в модель. Предикаты в нем могут быть пустыми узлами (другой вопрос, что за этим не стоит формальной семантики). Никто такого специально не хотел, так получилось. В принципе, это может быть использовано как один из способов поддержки LPG (см. раздел V.1 этой статьи), только ни одно RDF-хранилище такого не сохранит.
Можно, наверное, выделить две серии корневых изменений:
Так вот, думаю, накатывает новая (Бог любит троицу?). Об этом могут свидетельствовать подвижки внутри гигантов: построение экосистемы данных (Сбербанк). И мне еще кажется недооцененной идея прикреплять к триплам id (как это вроде есть в Stardog). RDF* — хорошо, но не достаточно.1) Named graph + LinkedData (2014-2015)
2) RDF* + Knowledge graphs (2018-2019)
А почему в разделе VI не упомянута реификация через rdf:Statement, rdf:subject, predicate and object? Это совсем не "Reification Done Right"? Из-за объёма?
Это стандартная техника моделирования, речь же в разделе о поддержке LPG шла скорее о поддержке на уровне примитивов моделирования, что, конечно, уменьшает и объем.
Но главная проблема неприминимости реификации в чистм виде — что, что реифицируемые суждения не утверждаются. Ну т.е Фреге перед rdf:Statement
знак штопора не поставил бы. В то время как в LPG ребро между узлами графа обычно все-таки что-то утверждает. Хотя, конечно, если строго, то семантики в двух узлах LPG-графа и ребре между ними столько же, сколько в бельевой веревке на двух гвоздях :-).
См. еще https://www.w3.org/TR/swbp-n-aryRelations/#RDFReification.
Кстати, вот в 2015 проводили очень практичное исследование по реификации https://www.researchgate.net/publication/329482695_Reifying_RDF_What_Works_Well_With_Wikidata. Интересно, его кто-то повторял на современных хранилищах?
У GraphDB есть сравнение времени загрузки и занимаемого места на диске. GraphDB придерживается SA-интерпретации RDR.
К слову, у упоминаемой вами статьи было продолжение. Рисунок 7 показательный. Почему выбрали всё-таки Blazegraph, см. тут.
Что сейчас происходит с RDF-хранилищами?