Question

Désolé les gars, je me suis moqué de moi en posant des questions sur la façon d’intégrer les données wikipedia dans mon application et, franchement, je ne pense pas avoir eu de succès de mon côté, j’ai essayé toutes les idées et un peu abandonner quand je lis une impasse ou un obstacle. Je vais essayer d’expliquer ce que j’essaie exactement de faire ici.

J'ai un répertoire simple d'emplacements tels que des villes et des pays. Mon application est une application basée sur ajax basée php simple avec une facilité de recherche et de navigation. Les gens s’inscrivent et s’associent à une ville et quand un utilisateur parcourt les villes, il peut voir des personnes et des entreprises de cette ville, c’est-à-dire quiconque fait partie de notre système.

Cette partie est assez facile à installer et fonctionne bien. Le fait est que mes résultats de recherche seraient dans le format, c’est-à-dire que l’on recherche quelqu'un, disons Beijing. Il retournerait dans une boîte d’interface à trois onglets:

  1. Le premier onglet contiendrait une infobox contenant les informations sur la ville pour Pékin
  2. Seond serait un onglet de pays contenant une infobox des informations de pays de la Chine
  3. Le troisième onglet aurait la liste de tous les contacts à Beijing.

Le contenu des deux premiers onglets devrait provenir de Wikipedia.Maintenant, je suis totalement perdu avec ce qui serait le meilleur moyen de faire cela. De plus, une fois que nous avons choisi une méthodologie, comment puis-je le faire et le rendre tel que c'est assez robuste.

Quelques idées bonnes et mauvaises que j’ai pu digérer jusqu’à présent sont les suivantes:

  1. Exécuter une requête curl directement sur wikipedia et analyser les données renvoyées chaque fois qu'une recherche est effectuée. Il n'est pas nécessaire de conserver une copie locale dans ce cas des données sur wikipedia. L’autre problème est qu’elle repose entièrement sur des données provenant d’un troisième site distant et je doute qu’il soit possible de demander à tout moment à wikipedia de récupérer des informations de base. De plus, étant donné que les données sur wikipedia doivent être analysées à chaque demande, cela va permettre de surmonter des charges de serveur lourdes .. ou je spécule ici.

  2. Effectuez un téléchargement du vidage de Wikipedia et interrogez-le. Eh bien, j'ai téléchargé toute la base de données, mais il faudra une éternité pour importer toutes les tables du dump XML. De plus, considérez le fait que je souhaite simplement extraire une liste de pays et de villes et de leurs boîtes d’informations - beaucoup d’informations contenues dans le dump ne m’ont aucune utilité.

  3. Créez mes propres tables locales et créez un script cron [j'expliquerai pourquoi travail de cron ici] pour pouvoir en quelque sorte analyser toutes les pages des pays et des villes sur wikipedia et les convertir en un format utilisable dans mes tableaux . Cependant, honnêtement, je n'ai pas besoin de toutes les informations contenues dans les infoboxs, car si je pouvais obtenir le balisage de base des infoboxes tel quel, cela me suffirait amplement. J'aime:

Titre du pays | Infobox texte brut

Je peux personnellement extraire des éléments tels que des coordonnées et d'autres détails si je le souhaite.

J'ai même essayé de télécharger des jeux de données tiers à partir d'infochiumps et de dbpedia mais le jeu de données d'infochimps est incomplet et ne contient pas toutes les informations que je voulais afficher. De plus, avec dbpedia, je ne sais absolument pas quoi faire avec le fichier csv I téléchargé des infoboxes et j'ai bien peur qu'il ne soit pas complet non plus.

Mais cela n’est qu’une partie du problème ici. Je veux un moyen de montrer les informations de wikipedia - tous les liens pointant sur wikipedia ainsi qu'une bonne information de wikipedia seront affichés correctement, MAIS le problème est qu'il me faut un moyen de pouvoir mettre à jour périodiquement les informations dont je dispose de wikipedia si au moins je n'ai pas de données totalement obsolètes. Comme bien, disons un système qui peut vérifier et si nous avons un nouveau pays ou un nouvel emplacement, il peut analyser les informations et les récupérer d’une manière ou d’une autre. Je me base sur des catégories de pays et de villes dans wikipedia pour cela mais, franchement, toutes ces idées sont sur papier, partiellement codées et c’est un énorme gâchis.

Je programme en PHP et MySQL et mon échéance approche à grands pas - étant donné la situation et les exigences décrites ci-dessus, quelle est la méthode la meilleure et la plus pratique à suivre et à mettre en œuvre. Je suis totalement ouvert aux idées - exemples pratiques si quelqu'un a fait quelque chose de similaire - j'aimerais entendre: D

Était-ce utile?

La solution

Je suggérerais ce qui suit

  • Interrogez la ville sur wikipedia lorsqu'elle est créée dans votre base de données
  • Analyser les données, stocker une copie locale avec l’horodatage de la dernière mise à jour
  • lors de l'accès, mettez à jour les données si nécessaire. Vous pouvez afficher l’ancien avec un filigrane indiquant qu’il a ... jours et qui est maintenant mis à jour. Ensuite, passez à la version fraîchement acquise lorsque la mise à jour est terminée. Vous avez dit que vous utilisiez AJAX, donc ce ne sera pas un problème

Cela réduirait les requêtes sur wikipedia et votre service ne montrerait pas les pages vides même lorsque wikipedia est inaccessible.

Autres conseils

Quelques choses auxquelles je peux penser:

  1. Il suffit d'afficher les données wikipedia dans un iframe de votre site.

  2. Utilisez Curl pour obtenir le code HTML de wikipedia, puis utilisez une feuille de style personnalisée pour le styler et / ou masquer les parties que vous ne souhaitez pas afficher.

Essayer d’analyser le code HTML et d’extraire les éléments que vous voulez sera une douleur énorme, et devra probablement être personnalisé pour chaque ville. Mieux vaut obtenir quelque chose de simple pour le moment, puis revenir en arrière et l’améliorer ultérieurement si vous décidez que vous en avez vraiment besoin.

Pourquoi ne pas utiliser l'un des services Web de géocodage Wikipedia

Il existe plusieurs endroits où vous pouvez passer, par exemple. code postal et pays vers un résumé de l'article et un lien vers l'article de Wikipédia.

Si cela suffisait.

Jetez un coup d’œil à DBPedia: il contient une bonne extraction des données Wikipedia au format CSV.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top