Разница между Virtuoso Native RDF Quad Store и Virtuoso SQL-based RDF Triple Store

В настоящее время я изучаю Virtuoso, и мне бы очень хотелось узнать, в чем разница между Native RDF Quad Store и RDF Triple Store на основе SQL, как показано на этой странице (прокрутите немного вниз, чтобы увидеть рисунок): http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtJenaProvider

Я знаю, что Native RDF Quad Store использует традиционную реляционную базу данных под капотом, но что она оптимизирована для более быстрых запросов с помощью SPARQL. Это меня смущает! Потому что мне интересно, что сейчас представляет собой хранилище RDF Triple на основе SQL ...

Заранее спасибо!


person Rens Groenveld    schedule 18.07.2013    source источник


Ответы (2)


Фактически Virtuoso - это целый набор приложений и уровней сервисов, построенных на основе их собственной базы данных SQL, отсюда и понятная путаница.

Native RDF Quad Store - это собственная реализация четырех хранилищ Virtuoso, которая, как вы заметили, по иронии судьбы, на самом деле основана на SQL. Это хранится и реализуется полностью в собственной реализации базы данных SQL Virtuoso. Таким образом, хотя он основан на SQL, он имеет фиксированный макет таблицы и использует пользовательские типы данных для хранения данных.

RDF Triple Store на основе SQL относится к функции коммерческих версий Virtuoso, которая позволяет вам определять правила сопоставления для обработки произвольных нормальных реляционных баз данных (как на основе Virtuoso, так и на других базах данных, например, MySql, PostgreSQL) как хранилище RDF.

Различия в производительности

Разница в производительности происходит из-за того, что хранилище Native Quad имеет известную структуру, настраиваемые типы данных RDF и множество программных оптимизаций, специфичных для него в стеке Virtuoso. Поэтому, когда Virtuoso использует SPARQL и компилирует его в эквивалентный запрос SQL, он чрезвычайно эффективно работает в своей базе данных. Использование настраиваемых типов данных RDF позволяет им передавать всю логику SPARQL на уровень механизма запросов, что также ускоряет оценку.

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

Кроме того, поскольку данные часто находятся только в стандартных типах SQL, они не могут передать определенную логику в базовый механизм запросов, потому что семантика типов SQL и SPARQL во многих случаях не совпадает. Следовательно, значения должны быть извлечены, преобразованы соответствующим образом, а затем результаты выражения вычислены над уровнем механизма запросов и затем возвращены по мере необходимости. Это снижает производительность, поскольку движку приходится переключаться между разными контекстами обработки и потенциально выполнять множество запросов SQL для ответа на один и тот же запрос SPARQL.

person RobV    schedule 18.07.2013
comment
Это действительно отличный ответ! Большое вам спасибо за приложенные усилия! Я вижу недостатки в работе с хранилищем на основе SQL, однако нашему клиенту требуется соответствующая реляционная база данных. С учетом сказанного, всегда ли будет тройное хранилище RDF на основе SQL внешней реляционной базой данных? А поскольку мы собираемся работать с именованными графами, знаете ли вы, может ли он хранить квадраты? Еще раз спасибо заранее :) - person Rens Groenveld; 18.07.2013

Virtuoso - это сервер данных Hyrbid (реляционные таблицы и графики свойств RDF) [1], реализованный с использованием ядра СУБД SQL. Отношения SQL RDBMS являются внешними только в том случае, если рассматриваемые источники данных являются внешними по отношению к Virtuoso, например, когда ODBC или JDBC используются для присоединения таблиц во внешних базах данных RDBMS к Virtuoso, как часть его функциональности Virtual Database [2].

[1] http://virtuoso.openlinksw.com/images/virtuoso3arch.gif - - Виртуозная схема технической архитектуры.

[2] http://docs.openlinksw.com/virtuoso/vdbengine.html - - Виртуальный ядро ​​СУБД

person Kingsley Uyi Idehen    schedule 13.03.2014