Utilisation concrète des données RDF

Dmoz extrait ses données au format RDF.
Mais, si vous avez déjà tenté d’utiliser ces données, vous avez dû rapidement être confronté à divers problèmes.
La taille des fichiers; le modèle de données à utiliser.

Voici une solution possible d’utilisation des données de l’ODP.

Dans cet article, nous n’aborderons pas le côté langage, afin de vous permettre de développer votre application dans celui de votre choix, PHP, ASP ou autre.

/!\ L’installation des données prends un espace disque de 3Go. Si vous n’avez pas cet espace à votre disposition, inutile de tenter de récuperer les données. /!\

Le format RDF est un dérivé de l’XML, permettant de stocker au format texte une base de données.
C’est dans ce format que sont stockées les données de l’ODP

Tout d’abord, voyons comment récupérer les données de l’ODP, et les placer dans une base de données.
La base de données utilisée dans cet article est MySQL, et le langage d’interprétation sera PHP.

Récupération des données

Il serait trop complexe de créer un script de traitement du RDF, et un outil assez bien conçu (bien que la base de données qu’il génère ne soit pas vraiment en 3e forme normale), et nous utiliserons donc celui-ci.
Cet outil s’appelle dmoz2mysql
Il est concu en PHP, compatible PHP 4 et 5, et vous permettra de télécharger les données de l’ODP sur votre serveur, puis de traiter celles-ci en les placant dans une base de données de type MySQL.
L’utilisation du script est très simple.
Téléchargez le script à l’adresse donnée plus haut, puis envoyez les fichiers sur votre serveur.
Modifiez le fichier dmozmysql/config.php avec les données de votre base de données.

DEFINE('DB_SERVER', 'localhost');
DEFINE('DB_USER', 'root');
DEFINE('DB_PASSWORD', '');

DEFINE('DB_DATABASE', 'dmoz');

Envoyez ce fichier sur votre serveur, avec les autres.

Il vous faut maintenant créer la structure des données.
pour cela, executez le fichier create_tables.php.
Si vous avez convenablement configuré config.php et que vous avez les droits sur la base, vos tables sont maintenant créées.
Nous n’avons plus qu’à y inserer les données.
Encore une fois, le script nous simplifie grandement les choses, il suffit de lancer le fichier start_script.php
Le script tentera de télécharger les fichiers RDF, traitera les données et les inserera dans votre base de données.
La durée d’execution dépends du serveur, mais prends généralement plus de deux heures.

Utilisation des données

<img src="http://img488.imageshack.us/img488/852/dmoz6sj.jpg&quot; Si on représentait la base de données créée sous la forme d'un Modèle Conceptuel des Données, voici ce que nous pourrions obtenir.

Voici donc quelques exemples de requetes SQL permettant de récuperer diverses données de notre base.

SELECT *
FROM `structure`
WHERE `name` = 'Top'

Cette requête permet d’obtenir les informations d’une catégorie (ici, Top)

Les données qu’elle retournera sont les suivantes :
catid : Identifiant de la catégorie (nous en aurons besoin plus bas pour récuperer les données des sous-catégories, et des liens)
name : Nom de la catégorie
title : Titre de la catégorie
description : Description de la catégorie
lastupdate : Date de dernière modification de la catégorie

SELECT *
FROM `datatypes`, `structure`
WHERE datatypes.catid = 1
AND datatypes.resource = structure.name;

Cette requête vous permettra de récuperer toutes les catégories relatives à la catégorie donnée (ici, Top)

Les données retournées par cette requête sont les suivantes :
catid : Contient l’identifiant de la catégorie
type : Contient le type de la catégorie (lien relatif, sous-catégorie, …)
resource : Contient l’emplacement (dans l’arborescence) de la catégorie
title : Contient le titre de la catégorie
description : Contient la description de la catégorie
lastupdate : Contient la date de dernière modification de la catégorie.

Il peut également être utile de récuperer la liste des liens affichés dans une catégorie !
SELECT *
FROM `content_links`, `content_description`
WHERE content_links.catid = 1
AND content_links.resource = content_description.externalpage;

cette requête vous retournera tous les liens présents dans une catégorie dont le catid est passé en paramètre (ici, 1, le Top)

Les données retournées par cette requête sont les suivantes :
catid : Contient l’identifiant de la catégorie (inutile ici)
type : Contient le type du lien (normal, xml, pdf, …)
resource : Contient l’emplacement (dans l’arborescence) de la catégorie (inutile ici)
title : Contient le titre du lien
description : Contient la description du lien
lastupdate : Contient la date de dernière modification de la catégorie (inutile ici)

Comme vous pouvez le constater, certains champs sont inutiles ici.
Afin de permettre aux personnes non familières avec SQL de comprendre cet article, nous avons sélectionné tous les champs.
Rien ne vous empeche de modifier la requête SQL, et de n’afficher que les champs de votre choix.

Voila. maintenant, vous avez la possibilité d’afficher toutes les catégories, avec les catégories à afficher dans celles-ci, ainsi que les liens.
Vous pouvez maintenant utiliser de par vous même les données du RDF dmoz.

Attention ! l’utilisation du RDF dmoz est assujettie au respect de la licence d’utilisation

About these ads

2 Réponses to “Utilisation concrète des données RDF”

  1. Erwin Says:

    Et ça n’existe pas une API REST ou SOAP pour accéder aux données de DMOZ ?

  2. kazhar Says:

    Pas pour l’instant non.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s


Suivre

Recevez les nouvelles publications par mail.

%d blogueurs aiment cette page :