-
Notifications
You must be signed in to change notification settings - Fork 1
2.1_Jeux de donnees
L'objectif du sujet est l'exploitation de diverses sources de données. (décrites dans la partie 1.3) Nos données sont toutes en lien avec des entités géographiques en France : les ontologies de l'INSEE et de GEONAMES ont une place prépondérante.
Les entités de GEONAMES liées à la France ont été récupérées grâce à un crawler écrit en ligne de commande :
while read i;
do
echo $i |
grep '<gn:Feature' |
curl -L -H "Accept: application rdf+xml" -f $(sed 's@^.*\="\(.*\)">$@\1@'){about,contains}.rdf |
grep -v '?xml' |
grep -v 'rdf:RDF' ;
done < geonames.rdf >> geonames.rdf
Ce crawler parcourt la base de données GEONAMES à partir de l'URI de la France et, en descendant dans l'ontologie par rapport à l'attribut "childrenFeatures", récupère les entités géographiques de la France. Toutes ces données sont stockées dans un fichier RDF nommé "geonames.rdf".
Lorsque le crawler est lancé, il commence par la lecture du fichier geonames.rdf qui ne contient au début que l'URI de la France. Voici comment se déroule le script :
1) while read i; do
Cette commande parcourt le fichier geonames.rdf une ligne à la fois. Elle assure ainsi l'arrêt du script : la fin du fichier marque la fin du script.
2) echo $i | grep '<gn:Feature'
Ces commandes sont responsables pour l'identification des entités contenus dans le fichier geonames.rdf.
3) curl -L -H "Accept: application rdf+xml" -f $(sed 's@^.*\="\(.*\)">$@\1@'){about,contains}.rdf
Une fois l'entité identifiée, la commande commande "sed" utilise une expression régulière pour identifier l'URI exacte à traiter. Cette URI est passée en argument à la commande "curl" qui, à son tour, renvoie le fichier rdf qui contient les triplets qui représentent les "childrenFeatures", ainsi que tous les attributs de l'entité concernée.
4) grep -v '?xml' | grep -v 'rdf:RDF' ;
Les informations renvoyées par la commande "curl" précédente sont contenues dans un fichier rdf qui doit être concaténé au fichier "geonames.rdf". Afin de respecter le format XML de ce dernier, la commande "grep" permet de supprimer les entêtes inutiles du fichier rdf renvoyé par "curl".
5) done < geonames.rdf >> geonames.rdf
Cette commande représente la fin de l'algorithme et spécifie son entrée ainsi que sa sortie. Plus précisément, le crawler prend en entrée le fichier "geonames.rdf" qui ne contient qu'une seule entité (celle de la France) et en sortie rajoute à ce même fichier les informations récupérées lors de son déroulement. Ainsi, le scripte s'arrête lorsqu'il n'y a plus d'informations à ajouter au fichier courant "geonames.rdf".
Le fichier final "geonames.rdf" contient toutes les informations liées aux "childrenFeatures" des "childrenFeatures" des "childrenFeatures" etc. de la France.