我正在尝试使用C#中的 dotnetrdf 将特定图表从 dbpedia.org 复制到 local 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数据库,因为它花费的时间更少。
答案 0 :(得分:0)
在第二部分,我尝试使用 sparql查询复制图形,但它没用,因为在某些情况下我的 t.Object 其 Uri 在其他情况下,其整数, Double 和日期。
这种方式尚未完全研究,所以你可以忽略它。
答案 1 :(得分: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);