我尝试修改本体模型的现有资源的uri。我想到了创建一个新模型,新资源(包括新的所需uri)并复制旧资源的内容。
通过迭代和添加语句,不能正常工作。还有另一种解决方法吗?
我正在使用java和RDF / XML模型中的jena。
答案 0 :(得分:4)
正如您所发现的,资源是不可变的。你可以使用ResourceUtils.renameResource(resource, newName)
.带来相同的效果。这会通过你的模型删除提及旧资源的语句,并添加新的等价物,这与你将要重命名一样接近。
示例:
Resource renamed =
ResourceUtils.renameResource(originalResource, "http://example.com/new");
答案 1 :(得分:1)
使用ResourceUtils.renameResource(oldResource, newURI)。它会为你完成所有三元组的迭代。
答案 2 :(得分:0)
如果您在大型数据库上执行此操作,最好将数据库转储到Turtle或N-Triples,运行文本更改脚本,然后重新加载数据库。