Эффективное хранение и запросы троек RDF

Для моего проекта у меня есть реляционная БД. Часто моя схема реляционной БД меняется. Недавно я сохранил все данные таблиц реляционной базы данных в одной большой таблице RDF. Таблица хранит данные как тройку. Он состоит из трех столбцов: «Тема», «Предикат», «Объект». Ниже приведен пример таблицы RDF:

Subject->Predicate->Object 

1->name->Center

1->description->sample description

1->data->measure

2->data->parameter

2->relation->1

Я сохранил таблицу в Oracle и в настоящее время использую SQL для запроса БД. Однако моя таблица растет очень быстро, в ней много записей, а обработка SQL-запросов требует времени. Я считаю, что в ближайшем будущем таблица будет расти еще больше, и обработка запросов будет неэффективной. Итак, меня беспокоит эффективность.

Не могли бы вы проинформировать меня, как я могу эффективно хранить тройки RDF, чтобы на запросы к БД ушло меньше времени, даже если таблица очень большая.

Я не очень разбираюсь в базе данных RDF и языке запросов. Можно ли сделать таблицу Oracle RDF эффективной? Я видел, что люди говорят об инструменте Apache Jena и языке SPARQL. Решит ли это мою проблему? Если я использую Jena, тогда мне нужно хранить мою тройку RDF в формате XML, или мой текущий формат подходит? Как я могу использовать инструмент Jena? Также будет ли полезно использовать графовую базу данных вместо Oracle DB? Если да, то какой выбрать?


person Beautiful Mind    schedule 09.03.2013    source источник


Ответы (1)


http://jena.apache.org/

В Jena применимы два уровня хранения: SDB, использующий базы данных SQL, и TDB, собственное хранилище. TDB быстрее. SDB использует собственную схему для хранения RDF.

Вы также можете выиграть RDf-хранилище Oracle (с интерфейсом jena).

Вы не храните XML для RDf ни в одном из этих подходов - он анализируется и используется эффективное хранилище.

person AndyS    schedule 09.03.2013