Skosmos
Pré-requis:
- php 7.2 + modules classiques (mbstring… etc)
- apache2
- git
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:
- href: gcmd-science-keywords (l'url sera alors pour y accéder http://monsite.fr/vocabularies/gcmd-science-keywords)
- title: “GCMD Science Keywords”
- shortname: GCMD
- subject: cat_scientific (catégorie définie ensuite)
- sparqlendPoint: http://localhost:3030/gcmd/sparql (provient du nom du
datasetentré dansjena-fuseki)
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:
- Concepts généraux
- Concepts scientifiques
: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
.