生成Jena Bnode ID

时间:2009-04-07 23:48:00

标签: java ontology jena

有没有办法覆盖Jena的默认方法来生成匿名节点ID?

理想情况下,我想将Jena传递给生成ID的仿函数,以便我可以使它们全局唯一(而不仅仅是机器的唯一)。无论何时构造AnonId,都应该使用仿函数。

public interface IdGenerator {
   public String createId() {
      // create a globally unique ID
      ...
      return uid;
   }
}

这与my previous question有些相关。

编辑:我意识到AnonId有一个带有id参数的构造函数。我希望避免在整个地方调用这个构造函数,而只是告诉Jena(曾经)如何生成ID。

编辑2 :即使我不介意在整个地方调用该构造函数,也可能无法实现,因为匿名节点可能由我无法访问的库代码创建

1 个答案:

答案 0 :(得分:1)

Jena没有任何用于插入不同AnonId生成器的钩子。 AnonId s的创建也不集中在一个地方,因此也没有一种简单的方法来强制使用new AnonId(String)。实现目标的最佳方法是修补AnonId来源,这很简单。

FWIW,AnonId代码已经有两种不同的生成ID的方法,因此为Jena代码库添加抽象可能是一个合理的想法。