将org.openrdf.model.impl.GraphImpl转换为info.aduna.iteration.Iteration

时间:2015-06-30 21:16:04

标签: rdf sesame

我有一个类org.openrdf.model.impl.GraphImpl的图形对象,我可以从中获取org.openrdf.model.util.PatternIterator或者可以在其上调用.iterator()。 我试图从org.openrdf.repository.RepositoryConnection中使用这个add方法:

add(info.aduna.iteration.Iteration, org.openrdf.model.Resource)

到目前为止,我没有成功将图形的迭代器或PatternIterator转换为info.aduna.iteration.Iteration,虽然看起来它应该是一个直截了当的事情。 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

首先,由于Sesame发布2.7.0,org.openrdf.model.Graph(以及默认的GraphImpl实现)已弃用,所以支持org.openrdf.model.Model接口(附带{{1 }和LinkedHashModel实现)。如果您使用的是Sesame 2.7.0或更高版本,则可能需要考虑切换到使用TreeModel,因为它功能更丰富且通常更易于使用(有关详细信息,请参阅relevant section in the userdocs)。 / p>

但是,由于ModelModel都扩展Graph,因此都是java.util.Collection个实例,因此只需使用{{1}即可轻松将它们添加到商店相反。

换句话说,您可以简单地执行此操作,而不是尝试以某种方式转换为java.lang.Iterable

RepositoryConnection.add(Iterable<? extends Statement> statements, Resource... contexts)