Я думаю, что ваша путаница возникает из-за использования имени файла в качестве имени графика:
INSERT DATA { GRAPH file:///path-to-file/file.n3
При этом данные не вставляются в файл с именем file.n3
, они вставляются в граф с именем file:///path-to-file/file.n3
. Этот график будет там, где его создаст хранилище графов, которое, как вы его настроили, будет объектом в памяти. Чтобы обновления сохранялись, вам нужно либо использовать хранилище графов, которое управляет постоянными графами, например, используя TDB, или вам нужно записать график на диск после обновления. Я предполагаю, что вам нужно последнее.
В настоящее время при написании RDF используются методы API на Model
, который является фасадом для нижележащего объекта Jena Graph
, но с дополнительными вспомогательными функциями, включая ввод-вывод. Итак, вам нужно получить ссылку на свой график из хранилища графиков, обернуть его как модель, а затем записать. Предупреждение - непроверенный код:
Node graphName = Node.createURI( "file:///path-to-file/file.n3" );
Graph g = graphstore.getGraph( graphName );
Model m = ModelFactory.createModelForGraph( g );
g.write( new FileWriter("/path-to-file/file.n3"), "Turtle" );
person
Ian Dickinson
schedule
05.12.2012