0

匿名ノード ID を生成するための Jena のデフォルトの方法をオーバーライドする方法はありますか?

理想的には、ID を生成するファンクタを Jena に渡して、ID をグローバルに一意にする (単にマシンに一意にするだけでなく) ようにしたいと考えています。ファンクターは、AnonId が構築されるたびに使用する必要があります。

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

これは私の以前の質問に多少関連しています。

編集: AnonId には id パラメータを取るコンストラクタがあることがわかりました。このコンストラクターを至る所で呼び出すことを避け、代わりに ID の生成方法を Jena に (1 回) 伝えるだけにしたいと考えています。

編集2 :そのコンストラクターをあちこちで呼び出すことを気にしなくても、アクセスできないライブラリコードによって匿名ノードが作成される可能性があるため、それは不可能かもしれません。

4

1 に答える 1

1

AnonIdJena には、別のジェネレーターを接続するためのフックがありません。s の作成もAnonId1 か所に集中していないため、new AnonId(String)いずれかの使用を強制する簡単な方法はありません。目標を達成する最善の方法は、AnonIdソースにパッチを適用することです。これは簡単です。

FWIW、AnonIdコードには ID を生成する 2 つの異なる方法が既にあるため、このための抽象化を Jena コードベースに追加することは合理的な考えかもしれません。

于 2010-06-05T12:41:19.813 に答える