Я просмотрел документацию Redland, и есть некоторые проблемы, которые я не мог быть уверен в решении.
Если взглянуть на сторону c ++, предположим, что вы генерируете множество rdf-троек с течением времени для нескольких разных графов, и зная, что не интересует основной интерес для всех графов в памяти:
Можно ли использовать Redland для выполнения одиночных / массовых вставок (запись в постоянное хранилище) без сохранения графика в памяти, и как бы вы настроили такие вставки?
Если мы забудем о запросах, какой будет хороший постоянный способ хранения: файлы или базы данных?
Как вы думаете?
Можно ли использовать Redland для выполнения одиночных / массовых вставок (запись в постоянное хранилище) без сохранения графика в памяти, и как бы вы настроили такие вставки?
Да. Создать librdf_storage
объект, где вы хотите, чтобы ваши данные хранятся и передать его librdf_new_model()
, Затем используйте любую из функций API, таких как librdf_parser_parse_into_model()
хранить данные в этой модели, и они сохраняются в хранилище.
График хранится в памяти, только если модуль памяти librdf написан таким образом.
Если мы забудем о запросах, какой будет хороший постоянный способ хранения: файлы или базы данных?
file
хранение не совсем для серьезного бизнеса. Он хранит график в памяти и сохраняет на диске путем сериализации в / из RDF / XML.
Используйте хранилище на основе базы данных, например mysql
или BDB hashes
,
Других решений пока нет …