/WikiStone

Wikistone est un projet permettant de centraliser les informations sur les monuments historiques, de les rendre accessibles et de les mettre à jour facilement.

Primary LanguageJupyter Notebook

Wikistone logo

Wikistone

Wikistone est un projet permettant de centraliser les informations sur les monuments historiques, de les rendre accessibles et de les mettre à jour facilement.

Comment fonctionne Wikistone ?

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)

Documentation

La documentation du projet est disponible dans le dossier documentation. Ce dossier comprend la documentation suivante :

Présentation des applications

Application web (wikistone)

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. Wikistone web app

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.

Wikistone web app

Application d'administration (wikistone-admin)

Wikistone admin app

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.

Wikistone admin app

Elle va faciliter la mise à jour des informations sur les monuments historiques et l'intégration de nouvelles données.

Wikistone admin app

Prérequis

Doivent être installés sur votre machine :

Installation

Récupération du projet

git clone git@github.com:zestones/WikiStone.git
cd WikiStone

Configuration

Création d'un BOT pour wikibase

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"
}

Lancement

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

Lancement de wikibase

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

Lancement de l'application web

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

Lancement de l'application d'administration

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

Lancement du script wiki_injector

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/)

Remplir la base de connaissances

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.

Comment remplir la base de connaissances ?

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).