https://github.com/sparna-git/garance
Graphe des Archives nationales pour la Recherche, l'Accès et la Navigation des Connaissances Enrichies
https://github.com/sparna-git/garance
11ty archives framing json-ld rdf ric-o
Last synced: about 1 month ago
JSON representation
Graphe des Archives nationales pour la Recherche, l'Accès et la Navigation des Connaissances Enrichies
- Host: GitHub
- URL: https://github.com/sparna-git/garance
- Owner: sparna-git
- Created: 2024-12-02T15:34:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-27T15:42:09.000Z (about 1 month ago)
- Last Synced: 2026-04-27T17:27:43.328Z (about 1 month ago)
- Topics: 11ty, archives, framing, json-ld, rdf, ric-o
- Language: HTML
- Homepage: https://sparna-git.github.io/garance/pages/fr
- Size: 549 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GARANCE
*G*raphe des *A*rchives nationales pour la *R*echerche, l'*A*ccès et la *N*avigation des *C*onnaissances *E*nrichies
Mise en ligne sous forme de site statique des données des référentiels des Archives Nationales publiées dans le dépôt https://github.com/ArchivesNationalesFR/Referentiels.
Utilise [11ty]([url](https://www.11ty.dev/)) comme outil de génération de site, et du [JSON-LD framing]([url](https://www.w3.org/TR/json-ld11-framing/)) pour structurer les notices des entités. Le framing est appliqué avec la librairie Javascript [jsonld.js]([url](https://github.com/digitalbazaar/jsonld.js)).
## Structure des répertoires
```
garance
├── .eleventy.js
├── package.json
├── _json
│ ├── ... Fichiers JSON après lecture mais avant framing
├── src
│ ├── _data
│ | ├── framings
│ | | ├── ... Fichiers de specs du framing
│ | ├── i18n
│ | | ├── en
│ | | | ├── ... Fichiers de traductions (CSV and JS)
│ | | ├── fr
│ | | | ├── ... Fichiers de traductions (CSV and JS)
│ | ├── ... Fichiers JSON après framing
│ ├── entities
│ ├── _layouts
│ ├── pages
│ | ├── en
│ | | ├── ... Fichiers de contenu *.md (dont page d'accueil index.md)
│ | ├── fr
│ | | ├── ... Fichiers de contenu *.md (dont page d'accueil index.md)
├── static
│ ├── ... CSS, javascript, images, etc.
├── scripts
│ ├── ... commandes exécutées pour traiter les données : frame et read
├── utils
│ ├── ... Javascripts utilisés dans la génération du site (mais pas dans le site lui-même)
```
### `package.json`
Fichier de config principal de tout le projet. Contient notamment les dépendances aux librairies Javascript, et la définition des commances `npm run read`, `npm run frame`, `npm run start` et `npm run read` utiles pour la génération du site.
### `.eleventy.js`
Fichier de config principal d'11ty. Il charge les filtres Javascripts utiles à la génération du site et donne les chemins nécessaires à 11ty
### `_json`
Répertoire dans le lequel se retrouve le gros fichier JSON-LD `garance.json`qui est la concaténation de la lecture de tous les référentiels, et sur lequel est appliqué le framing. Ce répertoire est créé par la commande `npm run read`.
### `scripts`
Répertoire contenant les commandes "frame" et "read" utilisées pour préparer les données avant la génération du site.
En plus, une répertoire avec script python.
### `src`
Répertoire contenant toutes les sources à partir desquelles le site est généré
#### `src/_data`
Répertoire contenant tous les fichiers de données sources qui alimentent le site. En particulier, ce répertoire est alimenté par le résultat du framing (commande `npm run frame`)
#### `src/_data/framings`
Fichiers de spécifications du framing JSON-LD, utilisés par la commande `npm run frame` et appliqué sur le fichier d'entrée `_json/garance.json`
#### `src/_data/i18n`
Répertoire contenant les traductions des libellés du site en anglais et en français.
#### `src/entities`
Répertoire contenant les markdowns qui déclenchent la génération des pages sous l'URL `/entities`. Ce sont des fichiers vides qui font appel à un layout sous `src/_layouts` qui fait effectivement le travail.
#### `src/_layouts`
Répertoire contenant les layouts qui se chargent de la génération du HTML à partir des données. Contient toute la mise en forme HTML du site à partir des données. En particulier le fichier jsonld.njk est un template générique d'affichage de n'importe quelle structure JSON-LD.
#### `src/pages`
Répertoire contenant les pages statiques du site (non produites à partir de fichiers de données JSON). Ces pages doivent exister en 2 variantes, anglaise et française.
### `static`
Répertoire contenant tous les fichiers statiques du site final (images, Javascripts, CSS, etc...), qui est recopié tel quel dans la sortie.
### `utils`
Répertoire contenant tous les scripts utiles pour la génération du site (mais pas dans le site lui-même). Ce sont des filtres Nunjuck pour l'affichage des données des données
## Commandes de génération du site
### 1. Installer les dépendances
`npm install`
### 2. Faire un clone du repository Référentiels
`git clone https://github.com/ArchivesNationalesFR/Referentiels.git`
### 3. Lancer le read
`npm run read ` : appelle le script utils/read.js pour lire le contenu des RDF.
Exemple : `npm run read ../Referentiels`
Cette commande créé le fichier `_json/garance.json`
### 3. Lancer le framing
`npm run frame`
Cette commande applique les specs de framing du dossier `src/_data/framings` sur le fichier `_json/garance.json`, pour produire des fichiers dans `src/_data`, par exemple `src/_data/agents.json`.
### 4. Lancer la génération du site
#### 4.1 Génération initiale du site
`npm run build` pour la génération du site final.
Le résultat finale est dans le répertoire `dist`
### 4.2 Lancer le serveur sans regénérer le site
`npm run start-ignore-initial` pour lancer le serveur sans regénération complète initiale du site. Le site sera toutefois regénéré de façon incrémentale si un fichier source est modifié.
### 5. Construire l'index Pagefind
`npx pagefind` pour construire l'index pagefind.
### 5. Développement sur une machine locale
1. `npm run start` pour lancer le serveur local avec génération initiale du site
2. Arrêter le serveur (CTRL+C) une fois le site généré
3. `npx pagefind` pour générer l'index pagefind
4. `npm run start-ignore-initial` pour relancer le serveur sans régénération initiale, mais qui prendra en compte l'index pagefind
## /!\ Instable / Non testé - Utilisation de Python pour le framing JSON-LD et les CVS RiC-O
## Prérequis
* [Python 3.12](https://www.python.org/ftp/python/3.13.3/python-3.13.3-amd64.exe)
1. Installation pip
```sh
sudo apt install python3-pip
```
## Aller au répertoire scripts\python
2. Création d'environnement Virtuel
```sh
python -m venv envgarance
```
3. Activer l'environnement
```sh
Windows : envgarance/Scripts/activate.bat
Linux : source envgarance/
```
4. Installation de paquets
```sh
pip install -r requirements.txt
```
Dans le répértoire script/python, on a 2 fichiers `label.py` et `convertToJson.py`:
### Script `label.py`
Créer fichiers de traductions RiC-0 dans Français et Anglais. Les résultats se stocke dans les fichiers `rico.csv` et `definition.csv`.
### Lancer le script Python
```sh
python label.py --input
```
>Exemple
>``` python label.py --input ../../rico```
### Script `convertToJson.py`
Convertir des fichiers RDF en un fichier JSON-LD.
*Utilisation du Script:*
```sh
python convertToJson.py --generate READ --input --context --output <>
[--context] :
```
>Exemple
>``` python convertToJson.py --generate READ --input .../Referentiels --context ../context.json --output garance.json ```