Я не совсем уверен, понимаю ли я ваш вопрос. Если я могу перефразировать, я думаю, вы спрашиваете:
Можно ли запрашивать и обрабатывать данные RDF с помощью API Jena Model
вместо использования
SPARQL? Имеет ли значение, если внутренним магазином является Virtuoso?
Предполагая, что это правильная перефразировка вопроса, тогда первая часть однозначно да: вы можете манипулировать данными RDF через API Model
и OntModel
. На самом деле, я бы сказал, что именно так поступает большинство пользователей Jena, особенно для небольших запросов или обновлений. Лично я считаю, что переход непосредственно к API более лаконичен до определенной степени сложности; после этого мой код становится более четким и лаконичным, если я выражаю запрос в SPARQL. Очевидно, что обстоятельства повлияют: если вы работаете со смесью локальных хранилищ и удаленных конечных точек SPARQL (для которых отправка строки запроса - единственный вариант), вы можете обнаружить, что постоянное использование SPARQL всегда делает ваш код более понятным.
Что касается Virtuoso, у меня нет прямого опыта, чтобы предложить. Насколько я знаю, провайдер Virtuoso Jena полностью реализует функции API Model
, используя хранилище Virtuoso в качестве уровня хранения. Независимо от того, дает ли вам прямое API или использование SPARQL-запросов преимущество в производительности, вы должны измерять его с помощью своих данных и типичных шаблонов запросов.