Bonjour,
Voilà plusieurs jours que j'étudie les documentations de TDB ainsi que les exemples fournis avec la librairie, mais sans parvenir à quoi que ce soit.
Pour les besoin de mon projet je dois créer un stockage sous forme organisée et exploitable par la suite de données.
J'ai donc commencé par créer une petite ontologie sous Protégé définissant des classes et des propriétés que j'ai enregistrée au format owl. Je pensais faire un stockage sous cette forme de fichier pour ajouter les instances des classes (qui sont très nombreuses) mais mon tuteur m'a tout de suite dit que ce serait trop lourd et qu'il fallait un stockage dans une base de donnée ou en mémoire pour assurer la persistance et pouvoir faire des requêtes dessus. J'ai donc regardé le wiki de Jena et il m'a semblé que TDB correspondait le mieux à ce que je dois faire.
D'après les exemples de TDB, pour créer mon modèle persistant, il faut :
Soit indiquer un répertoire et créer une instance de Dataset avec TDBFactory.createDataset("le chemin du repertoire")
(ce qui remplit le dossier d'un tas de fichiers dont je ne comprend pas à quoi ils servent) et me permet ensuite d'instancier un modèle vide via
Model model = dataset.getDefautModel() ou dataset.getNamedModel("...")
(j'obtiens la même chose avec les deux c'est à dire rien, un modèle vide)
Soit utiliser un fichier d'assemblage (et pareil malgré la lecture des how to et autres documentations je ne comprend vraiment pas comment ça marche : faut-il réécrire à la main tout le modèle que j'ai déjà créé au format rdf???)
puis créé le Dataset en utilisant
TDBFactory.assembleDataset("fichier.ttl");
Mais là, j'obtiens un dataset vide même en réutilisant les fichiers fournis avec les exemples, d'où il résulte un null pointer exception dès que je veux instancier un modèle à partir du dataset.
Mon but serais de lire le modèle de base que j'ai créé pour avoir en mémoire mes classes et mes propriétés puis de m'en servir pour ajouter via des requêtes sparql (apparemment c'est le seul langage de requête utilisable avec TDB) toutes mes instances pour les stocker de façon persistante puis pouvoir faire des requêtes dessus pour les réutiliser à d'autres fins.
Voilà, n'hésitez pas à me poser des questions si mon problème n'est pas assez clair, ou à me faire des suggestions si vous pensez que TDB n'est pas la solution la plus adaptée pour stocker une grosse masse d'informations (plusieurs giga) sous forme de méta-données réutilisables. Par contre je dois utiliser l'api Jena qui est vraiment très pratique.
Merci beaucoup pour ceux qui auront des réponses, car il faut que j'avance assez rapidement car ça devient urgent depuis trois jours que je suis bloquée.
Partager