10
votes

Obtenez tous les modèles Wikipedia Infobox et toutes les pages en les utilisant

Étant donné une page Wikipedia comme Wikipedia: Overflow de pile Il y a souvent des infoboxes (surtout à droite main en haut de la page). Exemple d'écran:

Stackoverflow infobox à Wikipedia

  1. DBPEDIA répertorie tous ces attributs en tant que triple RDF. Vous pouvez voir l'exemple à dbpedia: débordement de pile . Vous voyez la propriété DBPProp: WikiPageUsestemplate avec la valeur dbpedia: modèle: infobox_website qui est intéressant. Je veux savoir quelles pages Wikipedia utilisent ce modèle. Comment puis-je faire cela et répertorier toutes les pages qui utilisent le modèle InfoBox_Website? De préférence avec une requête SPARQL mais je suis ouvert à d'autres solutions simples.

  2. La prochaine chose est une liste de tous les modèles Infobox. Wikipedia: Catégorie Infobox Modèles montre la hiérarchie des catégories Wikipedia souhaitées - qui ressemble à ce que je Je cherche. Mais je veux tout cela dans un format lisible par machine, sur une page. Peut-être que dbpedia est la bonne chose ici aussi? Chez dbpedia: catégorie Infox Modèles et DBPEDIA: Infobox Je trouve très peu d'informations. Mais ceux-ci sont très prometteurs. Comment utiliser SPARQL pour trouver tous les types Infobox afin que je puisse faire l'étape 1 à plusieurs reprises pour chacun d'eux?

    Vous pouvez utiliser ceci pour tester les requêtes SPARQL: http://dbpedia.org/snorql/ << / p>

    Mise à jour 1

    Je semble avoir résolu le problème Numéro 1: SPARQL: Liste toutes les pages avec infobox_website

    Mise à jour 2

    En outre, cela semble être la requête pour le numéro de problème 2: SPARQL: Lister toutes les infoboxes


3 commentaires

Votre requête «Update 1» renvoie maintenant aucun résultat. Avez-vous une solution de travail encore?


Désolé, je suis coincé aussi. S'il vous plaît laissez-moi savoir si vous trouvez une solution


Ouais trouvé une solution, ajoutera comme une réponse


3 Réponses :


1
votes

Vous pouvez également utiliser le MediaWiki API's Query EmbeddeDIn pour renvoyer une liste de toutes les pages qui incluent un modèle donné. Vous voudrez utiliser une bibliothèque pour accéder à l'API, quelle langue préféreriez-vous? Pour Ruby, je suggérerais mediawiki :: passerelle .


1 commentaires

Ceux-ci ont l'air très limité. Comment afficher tous les types d'infoboxes à la fois?



8
votes

OK, puisque je semble avoir trouvé une solution (probablement pas le meilleur) je veux les partager.

1) Cette requête SPARQL peut être utilisée pour trouver toutes les pages qui incluent un type spécifique infobox:

Sélectionnez * Où {? Page dbpedia2: wikipageUsestemplate . ?page dbpedia2: nom? Nom. }

Lien à Snorql


2) Cette requête SPARQL peut être utilisée pour trouver tous les types Infobox:

Sélectionnez Distinct? Modèle où {? Page DBPEDIA2: WikiPageUnestemplate? Modèle. Filtre (regex (? Modèle, "Boîte d'info")) . } Commandez par? Modèle

Lien à Snorql


0 commentaires

2
votes

Les réponses précédentes semblent avoir cessé de fonctionner. Seul un petit changement est nécessaire pour les amener à travailler au nouveau point final DBPEDIA Query à http://live.dbpedia.org/ Sparql cependant.

Pour obtenir une liste de toutes les pages et des modèles qu'ils utilisent cette requête: p> xxx pré>

voir les résultats (limités à 100) p>

Si vous recherchez un modèle spécifique: p> xxx pré>

voir les résultats p>

et pour mon cas d'utilisation, je m'intéresse à l'URL Wikipedia plutôt que la page DBPEDIA, alors je ' m Utilisation de cette requête: P>

SELECT DISTINCT ?template WHERE { 
    ?page  
    dbpprop:wikiPageUsesTemplate  
    ?template . 
    FILTER (regex(?template, "Infobox")) . 
} ORDER BY ?template


4 commentaires

Merci pour la mise à jour. Si vous ajoutez des liens SPARQL au nouveau point d'extrémité avec la solution aux deux problèmes de la question, je vais marquer ceci comme réponse acceptée.


Le nouveau point d'extrémité ne vous permet pas de lier directement au navigateur de la requête. Je vais notamment ajouter des liens vers les résultats.


Oh, laissez-moi répondre également à la deuxième partie


Le préfixe dbppProp génère un préfixe d'espace de noms indéfinie, le remplaçant par DBP semble faire le truc