Есть ли в dotNetRdf какой-либо класс для загрузки онтологии на удаленный сервер? - PullRequest
1 голос
/ 30 января 2020

Я разрабатываю. Net API и подключаю его к RDF Triple Store с помощью библиотеки dotNetRdf . Я успешно могу загрузить данные и запросить данные rdf с удаленного сервера. Есть ли какая-либо поддержка в dotNetRdf для загрузки файла ttl в удаленную службу ? Я пытаюсь обновить онтологию в реальном времени, не делая этого вручную.

1 Ответ

2 голосов
/ 31 января 2020

В зависимости от магазина, к которому вы подключаетесь, вы сможете обновить удаленный сервер, используя dotNetRDF Triple Store интеграции . В частности, вы должны иметь возможность использовать метод UpdateGraph для добавления троек в ваш файл TTL (или, если вы хотите полностью перезаписать данные на сервере, вы можете использовать метод SaveGraph с осторожностью! ).

Вы можете увидеть список поддерживаемых интеграций тройного магазина здесь . Обратите внимание, что он включает интеграцию, которая поддерживает Протокол хранилища графиков SPARQL , который может охватывать вас и для сервера, к которому вы подключаетесь, даже если он явно не указан.

Кстати, если вы решите чтобы использовать метод UpdateGraph, вам не нужно вручную создавать график, как показано в примере, вместо этого вы можете загрузить свой файл TTL в график и затем обновить удаленный сервер, используя код, подобный следующему:

// Create a remote store connector. 
// The precise details will depend on which store you are connecting too.
var remoteStore = new SparqlHttpProtocolConnector(
  "http://example.org/store", // URL of the store's endpoint
  MimeTypesHelper.GetDefinitions("application/n-triples").First() // override the default use of RDF/XML for the upload
);
// Create a Graph and fill it with data we want to save
Graph g = new Graph();
g.LoadFromFile("data.ttl");

// Write triples from IGraph instance g into the named graph 
// http://example.org/graph on the remote store
remoteStore.UpdateGraph("http://example.org/graph", g.Triples, null);
...