Sesame, Jena, comparaison des fonctionnalités

| Thomas Francart | Sapience |

Dans le monde des développeurs d'applications basées sur le Web sémantique, il y a deux grandes écoles en ce qui concerne les triplestores : les adeptes de Jena, et ceux de Sesame. Commentez

- Titre : Sesame, Jena, comparaison des fonctionnalités

- Auteurs : Thomas Francart, Sapience

- Parution : 29 juin 2012

- Mise à jour : 9 janvier 2016

- Public visé :

- Licence : Copyright ® 2012-2016 Thomas Francart. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Comparaison

- II. Remerciements

I - Comparaison

Personnellement j'ai un faible pour Sesame. Sesame propose des fonctionnalités proches de Jena, moins complètes, mais sans doute un peu plus faciles à 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 d'administration vous facilitera par contre énormément le travail s'il s'agit de configurer rapidement un triplestore et d'y charger des données RDF.

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 exécuter 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, domaines, 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

Oui

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)

II - Remerciements

Article original de Thomas Francart que nous remercions pour son autorisation de reproduire son article sur Developpez.com. Merci à Julien Plu pour la mise en page et à Claude Leloup et jacques_jean pour leur relecture orthographique.