Для определенной категории (например, https://commons.wikimedia.org/wiki/Category:Motorcycles) Я хочу получить имена всех подкатегорий рекурсивно, либо в SPARQL:
SELECT ?category ?entityLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
#get sub categories of category wd:Q7025402
}
LIMIT 10000
или с помощью MediaWiki API:
https://commons.wikimedia.org/w/api.php?{get all subcategories of Category:Motorcycles}
Есть ли способ сделать это?
categories
, поэтому вы должны использоватьhttps://query.wikidata.org/bigdata/namespace/categories/sparql
в качестве конечной точки SPARQL. - person UninformedUser   schedule 20.07.2018PREFIX gas: <http://www.bigdata.com/rdf/gas#> prefix mediawiki: <https://www.mediawiki.org/ontology#> SELECT * WHERE {SERVICE gas:service { gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.BFS" . gas:program gas:linkType mediawiki:isInCategory . gas:program gas:traversalDirection "Reverse" . gas:program gas:in <https://en.wikipedia.org/wiki/Category:Motorcycles>. # one or more times, specifies the initial frontier. gas:program gas:out ?out . gas:program gas:out1 ?depth . gas:program gas:maxIterations 8 . } } ORDER BY ASC(?depth)
- person UninformedUser   schedule 20.07.2018SELECT ?out ?depth WHERE { SERVICE mediawiki:categoryTree { bd:serviceParam mediawiki:start <https://en.wikipedia.org/wiki/Category:Motorcycle> . bd:serviceParam mediawiki:direction "Reverse" . bd:serviceParam mediawiki:depth 5 . } } ORDER BY ASC(?depth)
- person UninformedUser   schedule 20.07.2018