2

我正在尝试使用C# 中的dotnetrdf将特定图表从dbpedia.org复制到本地 virtuoso 。例如dbpedia.org/resource/Category:Cyclists_at_the_2012_Summer_Olympics

下面的代码从 Virtuoso 获取图表并将其所有三元组断言到我的新图表。然后我向 Virtuoso 添加新图表,但它不起作用。

示例代码

 IGraph g = new Graph()
 IGraph nG = new Graph()
 nG.BaseUri = new Uri(linkToDbpedia);

 UriLoader.Load(g, new Uri(linkToDbpedia))


 foreach(Triple t in g.Triples) {

   nG.Assert(t);

 }

 VirtuosoManager manager = new VirtuosoManager("localhost", 1111, VirtuosoManager.DefaultDB, "dba", "dba");
 PersistentTripleStore store = new PersistentTripleStore(manager);

 store.Add(nG);
 store.Flush();

我的主要任务是将 SPARQL 查询发送到我自己的 Virtuoso db,因为它需要的时间更少。

4

2 回答 2

0

在第二个中,我尝试使用sparql 查询复制图形,但它没有用,因为在某些情况下,我的t.Object它的Uri在其他情况下它的IntegerDoubleDate

这种方式没有充分研究过,所以可以忽略。

于 2015-04-28T11:24:56.487 回答
0

这是正确答案:3

VirtuosoManager manager = new VirtuosoManager("localhost", 1111, VirtuosoManager.DefaultDB, "dba", "dba");

IGraph g = new Graph();
UriLoader.Load(g, new Uri(linkToDBpedia));

g.BaseUri = new Uri(linkToDBpedia);

manager.saveGraph(g);
于 2015-04-29T06:51:12.247 回答