Table des matières

Skosmos

Pré-requis:

Cloner les sources

On clone, dans le répertoire de notre choix, par exemple /opt/skosmos les sources, on prend la dernière branche maintenance:

$ cd /opt
$ git clone -b v2.1-maintenance https://github.com/NatLibFi/Skosmos.git skosmos

Installer les dépendances

Pour installer les dépendances, on a besoin de composer:

cd /opt/skosmos
wget https://getcomposer.org/composer.phar

Puis on va chercher les dépendances:

cd /opt/skosmos
php composer.phar install --no-dev

En fait, on installe toutes les dépendances, même celles pour le dev

cd /opt/skosmos
php composer.phar install

Configuration Apache

Création d'un lien symbolique dans www

cd /var/www
ln -s /opt/skosmos/ skosmos
 

http://monsite.fr/vocabularies

Pour la création du virtualhost sous apache voir la page: Création de virtualHost]]

On édite le fichier /etc/apache2/sites-available/monsite.fr.conf pour ajouter un *alias*.

Le but étant que l'url http://monsite.fr/vocabularies me renvoie vers l'application skosmos

 <VirtualHost *:80>
	ServerName monsite.fr
	ServerAdmin admin@monsite.fr
	DocumentRoot /var/www/html
        <Directory /var/www/html>
         AllowOverride All
        </Directory>

    # skosmos
    # -------
     Alias /vocabularies /var/www/skosmos
   <Directory /var/www/skosmos>
     AllowOverride All
    Order allow,deny
    allow from all
   </Directory>
 </VirtualHost>

Configuration Skosmos

Il faut maintenant configurer skosmos pour qu'il interroge mon serveur jena-fuseki.

Il faut donc copier le fichier /opt/skosmos/config.ttl.dist dans /opt/skosmos/config.ttl

cd /opt/skosmos
sudo cp config.ttl.dist config.ttl

Puis il faut éditer le fichier /opt/skosmos/config.ttl.

Nos paramètres pour l'application

Les premiers paramètres sont les paramètres généraux de l'application, Voici les paramètres que nous modifions:

Nom Valeur Remarque
sparqlEndpoint http://localhost:3030/formater/sparql Pour le moment nous n'avons pas créé de dataset formater
serviceName ForM@Ter vocabularies Il s'agit du nom de l'application/service
baseHref http://monsite.fr/vocabularies/ l'url de l'application
languages On garde français et anglais (voir la syntaxe dans le fichier) les langues utilisés pour l'interface
customCss resource/css/formater.css L'adresse de notre propre fichier css

La première partie de notre fichier ressemble à

:config a skosmos:Configuration ;
    skosmos:sparqlEndpoint <http://localhost:3030/formater/sparql> ;
    # --- etc
    skosmos:serviceName "ForM@Ter Vocabularies" ;
    skosmos:baseHref "http://monsite.fr/vocabularies/" ;
    skosmos:languages (
        [ rdfs:label "fr" ; rdf:value "fr_FR.utf8" ]
        [ rdfs:label "en" ; rdf:value "en_GB.utf8" ]
    ) ;
    # .....etc
    skosmos:customCss "resource/css/formater.css" ;

Paramétrer les vocabulaires

Pour le moment, nous n'avons chargé dans jena-fuseki que le gcmd scientific keywords.

Il nous faut:

Ce qui nous donne, quelque chose ressemblant à:

:gcmd-science-keywords a skosmos:Vocabulary, void:Dataset ;
    dc:title "GCMD Earth Science keywords"@en ;
    skosmos:shortName "GCMD";
    dc:subject :cat_scientific ;
    void:uriSpace "https://gcmdservices.gsfc.nasa.gov/kms/concept/";
    skosmos:language "en";
    skosmos:defaultLanguage "en";
    skosmos:showTopConcepts true ;
    skosmos:groupClass isothes:ConceptGroup ;
    void:sparqlEndpoint <http://localhost:3030/gcmd/sparql> ;
    skosmos:sparqlGraph <https://gcmdservices.gsfc.nasa.gov/kms/concept/> .

Paramétrer les catégories

Il est possible de définir des catégories de vocabulaires. Elles seront affichées sur la page d'accueil.

Les vocabulaires pour être triés par catégorie doivent comporter dans leur déclaration, un champ dc:subject (voir le paragraphe précédent)

Ici nous définissons 2 catégories:

:categories a skos:ConceptScheme;
    skos:prefLabel "Skosmos Vocabulary Categories"@en
.

:cat_general a skos:Concept ;
    skos:topConceptOf :categories ;
    skos:inScheme :categories ;
    skos:prefLabel 
        "General concepts"@en,
        "Concepts généraux"@fr
.
:cat_scientific a skos:Concept ;
    skos:topConceptOf :categories ;
    skos:inScheme :categories ;
    skos:prefLabel "Scientific concepts"@en,
        "Concepts scientifiques"@fr
.