Question

Est-il possible de remplacer la méthode par défaut de Jena pour générer des ID de nœud anonymes?

Idéalement, je voudrais passer un Jena foncteur qui générerait des ID afin que je puisse les rendre uniques au monde (plutôt que tout simplement unique à la machine). Le foncteur doit être utilisé chaque fois qu'un AnonId est construit.

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

Ceci est un peu lié à href="https://stackoverflow.com/questions/727449/synchronizing-jena-ontmodels-with-bnodes"> .

Modifier : Je me rends compte que AnonId a un constructeur qui prend un paramètre id. J'espère éviter d'invoquer ce constructeur dans tous les sens, et au lieu simplement dire Jena (une fois) comment générer ID.

Edit 2 : Même si je ne me dérange pas d'invoquer ce constructeur dans tous les sens, il ne peut pas être possible parce que les nœuds anonymes peuvent être créés par le code bibliothèque que je n'ai pas accès à .

Était-ce utile?

La solution

Jena ne possède pas de crochets pour brancher un générateur de AnonId différent. Création de AnonIds n'est pas centralisée dans un endroit non plus, donc il n'y a pas un moyen facile d'appliquer soit l'utilisation de new AnonId(String). La meilleure façon d'atteindre votre objectif serait de patcher la source de AnonId, ce qui serait assez simple.

FWIW, le code AnonId a déjà deux façons différentes de générer les ID, afin d'ajouter une abstraction pour cela à la base de code Jena pourrait être une idée raisonnable.

scroll top