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