Cette page présente un certain nombre d'outils Java open source pour le web sémantique

  1. Apache Jena: Un framework Java gratuit et open source pour la création d'applications Web sémantiques et de données liées (Linked Data).
  2. Protégé Desktop: éditeur d'ontologies OWL (Web Ontology Language).

1. Plateforme Apache JENA

site web: http://apache.jena.org

Apache Jena est un framework Java open source de la fondation open-source Apache conçu pour la construction d’applications du Web sémantique et de données liées. Il fournit une collection d’outils et de bibliothèques Java pour aider les développeurs à manipuler des données RDF, RDFS, RDFa, OWL et SPARQL, conformément aux recommandations publiées par le W3C

La plateforme Apache Jena est fournie sous forme de téléchargements contenant les parties les plus couramment utilisées des systèmes :

  • apache-jena – contient les APIs, ARQ le moteur SPARQL, TDB la base de données RDF native et les outils de ligne de commande
  • apache-jena-fuseki – le serveur SPARQL de Jena qui permet d'exposer les triplets RDF stockés dans untriplestore TDB via un point de terminaison SPARQL (SPARQL end-point) accessible à travers HTTP..

Attention: Jena5 nécessite une version 17 ou plus récente de Java.

1.1 apache-jena : APIs et outils en ligne de commande

Pour l'installation des APIs et outils JENA vous procéderez de la manière suivante

1.1.1 Télécharger une distribution binaire de apache-jena

Sur la page de téléchargement de JENA téléchargez la dernière version de JENA (5.1.0 au 29/09/2024) et décompressez le fichier (.tar.gz ou .zip).

Téléchargement d'une distribution binaire d'Apache Jena
suite Téléchargement d'une distribution binaire d'Apache Jena
Téléchargement d'une distribution binaire d'Apache Jena

1.1.2 Configurer votre environnement

Pour pouvoir utiliser les programme Jena depuis ligne de commande, il vous faut modifier votre environnement système pour que les commandes Jena soient reconnues

  1. Ajoutez une variable d'environnement JENA_HOME dont la valeur est le nom du dossier où vous avez extrait JENA.
  2. Ajoutez le répertoire contenant les scripts des outils JENA à votre variable d'environnement PATH.
    • Windows: %JENA_HOME%\bat
    • Unix: %JENA_HOME%/bin

Pour effectuer cela sur un système UNIX, en supposant que vous avez extrait JENA dans le répertoire apache-jena-5.1.0 de votre home dir, vous pouvez ajouter les lignes suivantes à votre fichier .bashrc :

export JENA_HOME="$HOME/apache-jena-5.1.0"
PATH="$JENA_HOME/bin:$PATH"

1.1.3 Verification du bon fonctionnement des outils Jena

Verifiez que les outils de la ligne de commande sont reconnus et s'exécutent bien

  1. Ouvrez un nouveau terminal.

  2. Tappez la commande : riot --version. Vous devez obtenir une sortie similaire à:

    Apache Jena RIOT version 5.1.0

  3. Verifier que JENA peut effectuer une requête SPARQL sur un serveur distant

    La requête SPARQL ci-dessous permet de retrouver tous les écrivains (type dbo:Writer nés dans la même ville que Paul Auster présents dans DBpedia, et d'afficher pour ceux-ci leur label (en anglais) qui correspond à leur nom, leur date de naissance et éventuellement leur date de décès. Cette liste est obtenue dans l'ordre croissant des dates de naissance.

    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX dbr: <http://dbpedia.org/resource/>
    PREFIX dbo: <http://dbpedia.org/ontology/>
    
    SELECT DISTINCT ?label ?birthDate ?deathDate
    WHERE {
      dbr:Paul_Auster dbo:birthPlace ?bplace.
      ?bplace rdf:type dbo:City.
      ?x rdf:type dbo:Writer;
         rdfs:label ?label;
         dbo:birthDate ?birthD;
         dbo:birthPlace ?bplace.
      FILTER (?x != dbr:Paul_Auster && LANG(?label) = "en")
      BIND(STR(?birthD) AS ?birthDate)
      OPTIONAL {
        ?x dbo:deathDate ?deathD
        BIND(STR(?deathD) AS ?deathDate)
      }
    } ORDER by ?birthDate
    

    Sauvegardez cette requête dans un fichier testDBpedia.rq puis exécutez la commande suivante :

    rsparql --service=http://dbpedia.org/sparql --query=testDBpedia.rq

    Vous devez obtenir un résultat similaire à :

    -----------------------------------------------------------------   
    | label                           | birthDate    | deathDate    |   
    =================================================================   
    | "Stephen Johnson (minister)"@en | "1724-05-17" | "1786-11-08" |   
    | "Stephen Crane"@en              | "1871-11-01" | "1900-06-05" |   
    | "Harriet Adams"@en              | "1892-12-12" | "1982-03-27" |   
    | "Louis Ginsberg"@en             | "1895-10-01" | "1976-07-06" |   
    | "Roger Garis"@en                | "1901-09-10" | "1967-09-30" |   
    | "John W. Campbell"@en           | "1910-06-08" | "1971-07-11" |   
    | "Sam Moskowitz"@en              | "1920-06-30" | "1997-04-15" |   
    | "Allan Manings"@en              | "1924-03-28" | "2010-05-12" |   
    | "Allen Ginsberg"@en             | "1926-06-03" | "1997-04-05" |   
    | "W. E. B. Griffin"@en           | "1929-11-10" | "2019-02-12" |   
    | "Judith Viorst"@en              | "1931-02-02" |              |   
    | "Philip Roth"@en                | "1933-03-19" | "2018-05-22" |   
    | "Amiri Baraka"@en               | "1934-10-07" | "2014-01-09" |   
    | "C. K. Williams"@en             | "1936-11-04" | "2015-09-20" |   
    | "Donald Crews"@en               | "1938-08-30" |              |   
    | "Charles L. Grant"@en           | "1942-09-12" | "2006-09-15" |   
    | "Joanna Cole (author)"@en       | "1944-08-11" | "2020-07-12" |   
    | "Marc Leepson"@en               | "1945-06-20" |              |   
    | "Robert Weinberg (author)"@en   | "1946-08-29" | "2016-09-25" |   
    | "Jack Cashill"@en               | "1947-12-15" |              |   
    | "Nick Tosches"@en               | "1949-10-23" | "2019-10-20" |   
    | "Alan Pizzarelli"@en            | "1950-01-12" |              |   
    | "Michael Leahy (author)"@en     | "1953-01-28" |              |   
    | "Carol Colatrella"@en           | "1957-08-18" |              |   
    | "Tom Perrotta"@en               | "1961-08-13" |              |   
    | "Taalam Acey"@en                | "1970-09-16" |              |   
    | "Michael Seitzman"@en           | "1977-11-01" |              |   
    | "Thomas Chatterton Williams"@en | "1981-03-26" |              |   
    -----------------------------------------------------------------

    ATTENTION si votre sytème utilise un proxy HTTP, afin de pouvoir faire des requêtes sur des SPARQL Endpoints externes (par exemple dbpedia.org/sparql) vous devez aussi modifier la variable d'environnement JVM_ARGS permettant de controler les arguments par défaut de la machine virtuelle Java (JVM) pour indiquer les caractéristiques de votre proxy HTTP. Par exemple:

    export JVM_ARGS="-Xmx1024M -Dhttp.proxyHost=www-cache.univ-grenoble-alpes.fr -Dhttp.proxyPort=3128"

1.2 : apache-fuseki: serveur SPARQL

site web: http://jena.apache.org/documentation/fuseki2/index.html

Pour l'installation du serveur FUSEKI (version 5.1.0 au 29 septembre 2024) procédez comme suit

1.2.1 Télecharger FUSEKI

Sur la page de téléchargement de Jena téléchargez le serveur FUSEKI et décompressez le fichier correspondant (.tar.gz ou .zip).

1.2.2 Démarer le serveur Fuseki

démarrer le serveur fuseki sous linux
démarrer le serveur fuseki sous linux
  1. Dans un terminal, placez vous sur le répertoire apache-jena-fuseki-5.1.0 où vous avez décompressé jena-fuseki

  2. Exécutez le script fuseki-server

1.2.3 Verification du bon fonctionnement de Fuseki

Pour verifier le bon fonctionnement de Fuseki, tapez l'url http://localhost:3030 dans votre navigateur. Vous devez obtenir une page similaire à celle affichée dans la figure ci-dessous.

l'interface web d'administration du serveur fuseki

1.2.4 Arrêter le serveur Fuseki

Pour arrêter le serveur Fuseki il suffit de taper Ctrl+C dans la console du serveur.

arrêt du serveur Fuseki
arrêt du serveur Fuseki

2. L'éditeur d'ontologies Protégé

site web: http://protege.stanford.edu

2.1 Télecharger l'application Desktop Protégé

Sur le site web de Protégé (http://protege.stanford.edu) téléchargez l'application Protégé Desktop et décompressez le fichier correspondant (.tar.gz ou .zip).

2.2 Exécuter Desktop Protégé

Dans un terminal, placez vous sur le répertoire Protege-5.6.4 (version au 29/09/2024) où vous avez décompressé l'application Protégé Desktop et exécuter le script de lancement de l'application (run.sh sous linux ou run.bat sous windows).

2.3 Vérifier le bon fonctionnement de Protégé

Si votre machine est correctement configurée pour l'utilisation de Protégé vous devez obtenir la fenêtre suivante