get_claim = (article, project = "en.wikipedia.org", property = "P31", lang = "en" ) => {
const query = `SELECT ?value ?valueLabel (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:${property} ?value .
?value rdfs:label ?valueLabel filter (lang(?valueLabel) = "${lang}") .
}
GROUP BY ?value ?valueLabel
ORDER BY DESC(?count)`
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,
value: res.value.value,
valueLabel: res.valueLabel.value,
count: res.count.value
}))
)
}