get_genderdiversity = (article, project = "en.wikipedia.org") => {
const query =
`SELECT ?gender ?genderLabel (COUNT(*) AS ?count)
WHERE {
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:endpoint "` +
project +
`";
wikibase:api "Generator";
mwapi:generator "links";
mwapi:titles "` +
article +
`";.
?item wikibase:apiOutputItem mwapi:item.
}
FILTER BOUND (?item)
?item wdt:P31 wd:Q5 .
?item wdt:P21 ?gender .
?gender rdfs:label ?genderLabel filter (lang(?genderLabel) = "en") .
}
GROUP BY ?gender ?genderLabel
ORDER BY DESC(?count)`;
return fetch(
`https://query-main.wikidata.org/sparql?query=${encodeURIComponent(query)}`,
{ headers: { accept: "application/sparql-results+json" } }
)
.then((response) => response.json())
.then((d) =>
d.results.bindings.map((res) => ({
project: project,
article: article,
gender: res.gender.value,
genderLabel: res.genderLabel.value,
count: res.count.value
}))
);
}