Wikistone est un projet permettant de centraliser les informations sur les monuments historiques, de les rendre accessibles et de les mettre à jour facilement.
Wikistone est un projet qui utilise une base de connaissances (Knowledge Graph) pour stocker les informations sur les monuments historiques. Cette base de connaissances est accessible via une API REST. Cette API est utilisée par une application web permettant de visualiser les informations sur les monuments historiques et par une seconde application permettant d'administrer notre base de connaissance.
La base en question est wikibase, une base de connaissances développée par la Wikimedia Foundation. Cette base de connaissances est utilisée par Wikipédia et Wikidata. (voir wikibase et wikidata)
La documentation du projet est disponible dans le dossier documentation
. Ce dossier comprend la documentation suivante :
- Dossier d’initialisation
- Description du modèle de données
- Définition et description des sources d’information
- Document de définition de l’application
- Document de conception
- Suivi projet
- Planning
L'application web permet de visualiser les informations sur les monuments historiques. L'application présente une page d'accueil permettant de rechercher un monument historique par différents critères (nom, commune, type, etc...). Une fois le monument historique trouvé, l'utilisateur peut consulter les informations sur ce monument historique.
L'interface présente également une carte intéractive permettant de visualiser les monuments historiques sur une carte. L'utilisateur peut alors cliquer sur un monument historique pour consulter les informations sur ce monument historique. Il peut également ce déplacer sur la carte pour visualiser les monuments historiques et estimer la distances entre sa position (ou la position de son choix) et les monuments historiques.
L'application d'administration permet de gérer les informations sur les monuments historiques. Elle permet de créer, modifier et supprimer les propriétés des monuments historiques.
Elle va faciliter la mise à jour des informations sur les monuments historiques et l'intégration de nouvelles données.
Doivent être installés sur votre machine :
git clone git@github.com:zestones/WikiStone.git
cd WikiStone
cd wikibase
Ouvrez le fichier config.json
et modifiez les informations de connexion de votre BOT :
{
"api_url": "http://localhost/w/api.php",
"login_credentials": {
"botUsername": "", // Nom d'utilisateur du BOT
"botPassword": "" // Mot de passe du BOT
}
}
voir wikibase bot pour plus d'informations sur comment créer un BOT pour wikibase.
Il est possible de modifier directement ces informations dans le fichier python_wikibase.py
dans le dossier wikibase > wikibase_request_api
.
Il vous suffit de modifier la configuration par defaut :
DEFAULT_CONFIG = {
"api_url": "http://localhost/w/api.php",
"oauth_credentials": {},
"login_credentials": {
"botUsername": "", // Nom d'utilisateur du BOT
"botPassword": "" // Mot de passe du BOT
},
"is_bot": True,
"summary": "Modified using python-wikibase"
}
Un makefile est disponible pour lancer les différentes applications. Ce makefile se trouve dans le dossier wikibase
.
Pour voir les différentes commandes disponibles, vous pouvez utiliser la commande suivante :
cd wikibase
make help
Voila les différentes commandes disponibles :
Usage: make <target>
Targets:
install install the dependencies
wikistone run the Flask app
inject run the wiki_injector script with options
electron run the electron app
Options for inject:
-- -h --help show the help message
-- -p --process process all data sources
-- -c --csv process csv data source (https://dataclic.fr/)
-- -a --api process data from the api (https://data.culture.gouv.fr/api/)
-- -s --scrap process data from Web Scraping (https://www.loire.fr/)
Options for electron:
-- -a --app run the desktop application
-- -w --web run the web application
Avant de pouvoir lancer nos applications, il faut lancer wikibase à l'aide de docker :
docker-compose up -d
Vous aurez alors accès à wikibase à l'adresse suivante : http://localhost
Une fois wikibase lancé, nous pouvons lancer l'application web :
cd wikibase
make wikistone
Vous aurez alors accès à l'application web à l'adresse suivante : http://localhost:6060
Si c'est la première fois que vous lancez l'application, il faudra remplir la base de connaissances avec des données. voir Remplir la base de connaissances
Une fois wikibase lancé, nous pouvons lancer l'application d'administration :
cd wikibase
make electron -- -a
ou
cd wikibase
make electron -- --web
Cette application est disponible sous forme d'application lourde avec l'option -a
ou sous forme d'application web avec l'option --web
.
Vous aurez alors accès à l'application d'administration à l'adresse suivante : http://localhost:8000
Une fois wikibase lancé, nous pouvons lancer le script wiki_injector, ce script permet de remplir la base de connaissances avec des données :
Pour voir les différentes options disponibles, vous pouvez utiliser la commande suivante :
cd wikibase
make inject -- -h
Voila les différentes options disponibles :
Options for inject:
-- -h --help show the help message
-- -p --process process all data sources
-- -c --csv process csv data source (https://dataclic.fr/)
-- -a --api process data from the api (https://data.culture.gouv.fr/api/)
-- -s --scrap process data from Web Scraping (https://www.loire.fr/)
Les données utilisées pour remplir la base de connaissances sont disponibles dans le dossier data
pour les données statiques, pour les données dynamiques (données récupérées via une API ou du Web Scraping), elles ne sont pas stockées dans le projet mais directement injectées dans la base de connaissances lors du lancement de l'application de remplissage.
Pour remplir la base de connaissances, vous avez deux possibilités :
- Utiliser l'application d'administration
- Utiliser le script
wiki_injector.py
Si vous utilisez l'application d'administration, il vous suffit de lancer l'applications (voir Lancement de l'application d'administration) et de vous rendre sur l'onglet sources
puis de cliquer sur le bouton Update/Import
d'une des sources de données disponibles.
Si vous utilisez le script wiki_injector.py
, il vous suffit de lancer le script avec les options souhaitées (voir Lancement du script wiki_injector).