Google Sheet to RDF #11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Cette action GitHub récupère les données de l'ontologie du profil d'application et des vocabulaires contrôlés depuis Google sheet pour les sauvegarder dans GitHub au format RDF. | |
name: Google Sheet to RDF | |
on: workflow_dispatch | |
jobs: | |
google-sheet-to-rdf: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: "Installation des dépendances" | |
run : | | |
curl -L 'https://github.com/sparna-git/xls2rdf/releases/download/2.2.0/xls2rdf-app-2.2.0-onejar.jar' -o /tmp/xls2rdf.jar | |
# Saxon est utilisé pour générer automatiquement la liste des vocabulaires contrôlés en utilisant un XSL | |
curl -L "https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/9.9.1-7/Saxon-HE-9.9.1-7.jar" -o /tmp/saxon.jar | |
- name: "Récupération des données de l'ontologie" | |
run: | | |
# Récupération du tableau contenant les l'ontologie complète (avec les réifications). | |
# Cette version est fournie à l'utilisateur final | |
curl -L --request GET 'https://docs.google.com/spreadsheets/d/1irgSxGF1GUWHGARch7k9jGzRN3QvfzaKr11us5m7D6M/export?format=xlsx' \ | |
-o /tmp/ontologie-complete.xlsx | |
# Récupération du tableau contenant les données de l'ontologie simplifiée (sans réification). | |
# Cette version simplifiée est utilisée pour la génération de la documentation. Les réifications ne doivent pas apparaître dans la documentation. | |
curl -L --request GET 'https://docs.google.com/spreadsheets/d/1CZIf3bxuuH3aghFn7B7P89DrLqp_jzv4moI_BpI9PzY/export?format=xlsx' \ | |
-o /tmp/ontologie-simplifiee.xlsx | |
# Récupération du tableau contenant les vocabulaires contrôlés | |
curl -L 'https://docs.google.com/spreadsheets/d/1LVZ2U1RZvJ2uM_91MLsMg3q_mji0vD56bQPzMSXBdIQ/export?format=xlsx' \ | |
-o /tmp/vocabulaires.xlsx | |
- name: "Génération des données RDF de l'ontologie" | |
run : | | |
# Version destinées à produire la documentation | |
java -jar /tmp/xls2rdf.jar convert -i /tmp/ontologie-simplifiee.xlsx -o ./ontologie/rdafr-doc.ttl -np -l fr -f text/turtle | |
# Version déstinées à produire les fichiers distribués sur le site rdafr | |
java -jar /tmp/xls2rdf.jar convert -i /tmp/ontologie-complete.xlsx -o ./ontologie/rdafr.nt -np -l fr -f text/plain | |
java -jar /tmp/xls2rdf.jar convert -i /tmp/ontologie-complete.xlsx -o ./ontologie/rdafr.ttl -np -l fr -f text/turtle | |
java -jar /tmp/xls2rdf.jar convert -i /tmp/ontologie-complete.xlsx -o ./ontologie/rdafr.rdf -np -l fr -f application/rdf+xml | |
- name: "Génération des données RDF des vocabulaires contrôlés" | |
run : | | |
# On génère un zip avec un fichier ttl par vocabulaire. | |
# Ces fichiers sont destinés à être distribués : ils sont commités dans le dépôt. | |
java -jar /tmp/xls2rdf.jar convert -i /tmp/vocabulaires.xlsx -l fr -o /tmp/vocabulaires.zip -f text/turtle | |
# On supprime les anciens vocabulaires pour être sûr que les tableaux soient l'unique source de données. | |
rm vocabulaire/*.ttl | |
unzip /tmp/vocabulaires.zip -d /tmp/ | |
# On renomme les fichiers en enlevant l'URL dans le nom de chaque fichier | |
for i in /tmp/*.ttl; do | |
filename=$(basename -- $i) | |
cleaned_filename=${filename#https%3A%2F%2Frdafr.fr%2Fvocabulary%2F} | |
mv $i vocabulaire/$cleaned_filename; | |
done | |
# On génère un fichier intermédiaire qui contient l'ensemble des vocabulaires. Ce fichier n'est pas commité. | |
# Ce fichier permet de générer la liste des vocabulaires contrôlés au format markdown pour le site web. | |
java -jar /tmp/xls2rdf.jar convert -i /tmp/vocabulaires.xlsx -p -l fr -o /tmp/vocabulaires.rdf -f application/rdf+xml | |
- name: "Génération de la liste des vocabulaires contrôlés au format markdown" | |
run : | | |
java -jar /tmp/saxon.jar /tmp/vocabulaires.rdf ./siteweb/.xslt/liste-vocabulaires.xsl > ./siteweb/vocabulary/index-content.md | |
# - name: "Nettoyage de /tmp" | |
# run : | | |
# rm -r /tmp/ | |
# On ne commit les données que si l'ensemble du processus est ok. | |
- uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: "Feat : Mise à jour de RDAFR" |