使用 dotnetrdf 更新 Virtuoso 图

问题描述 投票:0回答:2

在与

dotnetrdf
Virtuoso 努力保存我的图表之后,我尝试用我的更改更新图表。我再次按照UpdateGraph()
部分中的
文档
,并创建了以下代码:

// and store the graph
if (_virtuoso.UpdateSupported)
    _virtuoso.UpdateGraph(insertGraph.BaseUri, insertGraph.Triples, null);
else
    log.Add("Updating not supported. Changes not stored");

insertGraph
是包含我添加内容的图表。我检查了
BaseUri
是否具有正确的值,并且
insertGraph.Triples
包含我的新三元组。
_virtuoso
VirtuosoManager
的一个实例,通过它我可以
LoadGraph
SaveGraph

代码不会引发任何异常,但仍然没有在 Virtuoso 存储中插入三元组。知道吗,可能是什么问题或者我如何获得有关该问题的更多信息?

提前致谢,
弗兰克

c# virtuoso dotnetrdf
2个回答
0
投票

您如何得出没有插入三元组的结论?您是否将 Virtuoso Server 置于前台调试模式,该模式将显示代码执行期间可能出现的任何问题。

您可以使用以下命令来测试数据是否已加载:

选择 COUNT (*) WHERE {GRAPH ?g {?s a ?o}}

您可以使用以下内容来确定 Virtuoso 的 RDF Quad Storage 领域中托管数据的命名图:

选择不同的 ?g WHERE {GRAPH ?g {?s a ?o}}


0
投票

诀窍是调用 Virtuoso Manager 上的 Dispose 方法。只有这样才会强制存储更新。

VirtuosoManager virtuosoManager = new VirtuosoManager(Configuration.VirtuosoServerName, Configuration.VirtuosoServerPort, VirtuosoManager.DefaultDB, User, Password);
virtuosoManager.UpdateGraph(graphUri, TriplesToAdd, TriplesToRemove);

// NECESSARY!! Otherwise, the changes won't be commited!      
virtuosoManager.Dispose();
© www.soinside.com 2019 - 2024. All rights reserved.