get_namedentities = (article, project = "en.wikipedia.org" ) => {
const query = `SELECT ?item ?itemLabel ?gender ?genderLabel
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 .
?item rdfs:label ?itemLabel filter (lang(?itemLabel) = "en") .
?gender rdfs:label ?genderLabel filter (lang(?genderLabel) = "en") .
}
`
return fetch(`https://query.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,
item: res.item.value,
itemLabel: res.itemLabel.value,
gender: res.gender.value,
genderLabel: res.genderLabel.value,
}))
)
}