On a vu précédemment comment utiliser l'API Sesame depuis un…
RDF : Sesame, Jena, comparaison des fonctionnalités
Dans le monde des développeurs d’applications basées sur le web sémantique, il y a 2 grandes écoles en ce qui concerne les triplestores : les adeptes de Jena, et ceux de Sesame.
Personnellement j’ai un faible pour Sesame. Sesame propose des fonctionnalités proches de Jena, moins complètes, mais sans doute un peu plus facile à intégrer ; la philosophie de son API est différente, et, s’il s’agit de faire simplement de la manipulation de données RDF (sans inférence compliquée, sans gestion d’ontologie OWL), le choix entre les deux est essentiellement une question de goût ! Son interface web d’administration vous facilitera par contre énormément le travail s’il s’agit de configurer rapidement un triplestore et de charger des données RDF dedans.
On donne ci-dessous un tableau comparatif des fonctionnalités entre Jena et Sesame, au 1er mai 2012 ; il faut noter que, là où Jena propose d’emblée un certain nombre de modules avec beaucoup de fonctionnalités, pour Sesame ces fonctionnalités peuvent être présentes dans l’ « écosystème » autour de Sesame : OWLIM ou Ali Baba.
Fonctionnalité |
Sesame 2.6.5 |
Jena (core 2.7.0-incubating, IRI 0.9.0-incubating, ARQ 2.9.0-incubating, TDB 2.9.0-incubating) |
Existe depuis | 2004 | 2000 |
Licence | BSD-style (http://www.opensource.org/licenses/BSD-3-Clause) | Apache (http://www.apache.org/licenses/LICENSE-2.0) |
Mis à jour régulièrement | Oui | Oui |
Entrées/Sorties | ||
Entrées/Sorties aux formats RDF/XML, N3, Turtle, N-Triples | Oui | Oui |
Entrées/Sorties en TriG, TriX | Oui | Non |
Sortie en RDF/XML-ABBREV | Non | Oui |
SPARQL | ||
Query en SPARQL 1.0 | Oui | Oui |
Query en SPARQL 1.1 | Oui | Oui |
SPARQL Update | Oui | Oui |
Autres langages de requêtes supportés ? | SeRQL | Non |
Création de requêtes SPARQL programmatiquement | Oui (package org.openrdf.query.parser.sparql.ast) | Oui (module ARQ) |
Serveur SPARQL | Oui (de base à travers le serveur Sesame) | Oui (module Fuseki) |
Utilitaire en ligne de commande pour executer une requête SPARQL | Oui, via la commande « console » | Oui |
Indexation plein texte des données du graphe RDF par Lucene | Non, mais possible en utilisant Ali-Baba ou l’extension « LuceneSail » : http://dev.nepomuk.semanticdesktop.org/wiki/LuceneSail | Oui, module LARQ |
Gestion du RDF | ||
Gestion du RDF en mémoire | Oui | Oui |
Stockage RDF dans une base relationnelle | Oui | Oui (module SDB) |
Stockage RDF dans des fichiers binaires | Oui (Native RDF repository) | Oui (module TDB) |
Support des graphes nommés | Oui | Oui |
Support des transactions (commit, rollback) | Oui | Oui |
Paramétrage de graphes RDF via un fichier de configuration | Non | Oui (module Assembler) |
Inférence | ||
Inférence RDFS native | Oui | Oui |
Inférence OWL-Lite native | Non, mais possible en utilisant OWLIM | Oui |
Inférence OWL-DL | Non, mais possible en utilisant OWLIM | Non, mais possible en connectant le moteur Pellet |
Inférence à base de règles | Non, mais possible en utilisant OWLIM | Oui |
OWL | ||
API de manipulation OWL et RDFS : manipulation des classes, propriétés, domain, ranges, restrictions, etc. | Non | Oui, natif |
Administration | ||
Interface utilisateur d’administration : créer un stockage RDF, ajouter des données, naviguer, etc. | Oui (sesame-workbench) | Non |
Divers | ||
Mécanisme de listeners pour monitorer les événements sur le RDF | Non | Oui |
Génération de fichiers de constantes Java à partir d’une ontologie | Non, mais possible en utilisant Ali-Baba | Oui (module schemagen) |
Utilitaire de vérification de données RDF | Non | Oui (module eyeball) |
Et vous, quelle fonctionnalité de manipulation de RDF utilisez-vous le plus ?
Previous Post: Tutoriel : comment installer un serveur RDF Sesame ?