Main Page
From wikibase
Bienvenue sur le référentiel des Bibliothèques Virtuelles Humanistes.
Statistiques des entités
Statistiques des entités
Chargement des statistiques...
<script> // Liste des types d'entités à compter const entityTypes = ["Q2", "Q5", "Q6", "Q7", "Q8"]; const results = {}; const apiUrl = window.location.origin + "/w/api.php";
// Fonction pour compter les entités via wbgetentities async function countEntities() {
const container = document.getElementById('entity-counts-container');
if (!container) {
console.error("Conteneur introuvable !");
return;
}
// Étape 1: Récupérer toutes les entités dans le namespace Item (ID: 120)
const allPagesUrl = `${apiUrl}?action=query&list=allpages&apnamespace=120&aplimit=500&format=json`;
const allPagesResponse = await fetch(allPagesUrl);
const allPagesData = await allPagesResponse.json();
const entityIds = [];
if (allPagesData.query?.allpages) {
allPagesData.query.allpages.forEach(page => {
const match = page.title.match(/^Item:(Q\d+)$/);
if (match) entityIds.push(match[1]);
});
}
if (entityIds.length === 0) {
container.innerHTML = "
Aucune entité trouvée dans le namespace Item (ID: 120).
";
return; }
container.innerHTML = `
Trouvé ${entityIds.length} entités. Comptage en cours...
`;
// Étape 2: Compter les entités par type (P1)
const counts = {};
entityTypes.forEach(type => counts[type] = 0);
// Traiter par lots de 50 (limite de wbgetentities)
for (let i = 0; i < entityIds.length; i += 50) {
const batch = entityIds.slice(i, i + 50);
const batchUrl = `${apiUrl}?action=wbgetentities&ids=${batch.join('|')}&format=json&props=claims`;
const batchResponse = await fetch(batchUrl);
const batchData = await batchResponse.json();
if (batchData.entities) {
for (const [id, entity] of Object.entries(batchData.entities)) {
if (entity.claims?.P1) {
entity.claims.P1.forEach(claim => {
const targetId = claim.mainsnak?.datavalue?.value?.id;
if (targetId && entityTypes.includes(targetId)) {
counts[targetId]++;
}
});
}
}
}
}
// Afficher les résultats
let html = '
- ';
for (const [type, count] of Object.entries(counts)) {
html += `
- Type ${type}: ${count} éléments `; } const total = Object.values(counts).reduce((a, b) => a + b, 0); html += `
- Total: ${total} éléments
`;
container.innerHTML = html;
}
// Lancer le comptage quand la page est chargée document.addEventListener('DOMContentLoaded', countEntities); </script>
Consulter le référentiel
Contribuer au référentiel
Démarrer avec Wikibase
- Configuration settings list
- MediaWiki FAQ
- MediaWiki release mailing list
- Localise MediaWiki for your language
- Learn how to combat spam on your wiki
Consult the User's Guide for information on using the wiki software.
