将 org.openrdf.model.impl.GraphImpl 转换为 info.aduna.iteration.Iteration
converting org.openrdf.model.impl.GraphImpl to info.aduna.iteration.Iteration
我有一个 class org.openrdf.model.impl.GraphImpl 的图形对象,我可以摆脱它 org.openrdf.model.util.PatternIterator 或者可以在它上面调用 .iterator() 。
我正在尝试使用 org.openrdf.repository.RepositoryConnection:
中的添加方法
add(info.aduna.iteration.Iteration, org.openrdf.model.Resource)
到目前为止,我没有成功将图形的迭代器或 PatternIterator 转换为 info.aduna.iteration.Iteration,尽管它看起来应该是一件直截了当的事情。
非常感谢任何帮助。
首先,自从芝麻发布 2.7.0 以来,org.openrdf.model.Graph
(和默认的 GraphImpl
实现)已被弃用,取而代之的是 org.openrdf.model.Model
接口(附带 LinkedHashModel
和 TreeModel
实现)。如果您使用的是 Sesame 2.7.0 或更高版本,您可能需要考虑改用 Model
,因为它功能更丰富且通常更易于使用(有关详细信息,请参阅 relevant section in the userdocs)。
但是,由于 Model
和 Graph
都扩展了 java.util.Collection
,因此都是 java.lang.Iterable
实例,您只需使用 RepositoryConnection.add(Iterable<? extends Statement> statements, Resource... contexts)
代替。
换句话说,与其尝试以某种方式转换为 Iteration
,您可以简单地这样做:
Model model = new LinkedHashModel();
Graph graph = new GraphImpl();
...
RepositoryConnection conn = repo.getConnection();
conn.add(model); // a Model is an Iterable, so this works
conn.add(graph); // a Graph is an Iterable, so this works
我有一个 class org.openrdf.model.impl.GraphImpl 的图形对象,我可以摆脱它 org.openrdf.model.util.PatternIterator 或者可以在它上面调用 .iterator() 。 我正在尝试使用 org.openrdf.repository.RepositoryConnection:
中的添加方法add(info.aduna.iteration.Iteration, org.openrdf.model.Resource)
到目前为止,我没有成功将图形的迭代器或 PatternIterator 转换为 info.aduna.iteration.Iteration,尽管它看起来应该是一件直截了当的事情。 非常感谢任何帮助。
首先,自从芝麻发布 2.7.0 以来,org.openrdf.model.Graph
(和默认的 GraphImpl
实现)已被弃用,取而代之的是 org.openrdf.model.Model
接口(附带 LinkedHashModel
和 TreeModel
实现)。如果您使用的是 Sesame 2.7.0 或更高版本,您可能需要考虑改用 Model
,因为它功能更丰富且通常更易于使用(有关详细信息,请参阅 relevant section in the userdocs)。
但是,由于 Model
和 Graph
都扩展了 java.util.Collection
,因此都是 java.lang.Iterable
实例,您只需使用 RepositoryConnection.add(Iterable<? extends Statement> statements, Resource... contexts)
代替。
换句话说,与其尝试以某种方式转换为 Iteration
,您可以简单地这样做:
Model model = new LinkedHashModel();
Graph graph = new GraphImpl();
...
RepositoryConnection conn = repo.getConnection();
conn.add(model); // a Model is an Iterable, so this works
conn.add(graph); // a Graph is an Iterable, so this works