SPARQL/SERVICE - mwapi
外觀
< SPARQL
Mediawiki API 服務允許從 SPARQL 呼叫 Mediawiki API,並在 SPARQL 查詢內部接收結果。查詢由帶有 URL wikibase:mwapi 的 SERVICE 發起。目前支援的 Mediawiki 終結點是:*.wikipedia.org, commons.wikimedia.org, www.mediawiki.org, www.wikidata.org, test.wikidata.org。
目前支援以下服務
| 服務 | 文件 | 輸入 | 輸出 | 描述 |
|---|---|---|---|---|
| 生成器 | 參見 此處 | generator, prop, pprop | title, item, pageid, lastrevid, timestamp | 呼叫任何生成器 API。使用“generator”引數指定,並使用特定生成器引數進一步修改搜尋(請參見下面的示例)。 |
| 類別 | 參見 此處 | titles,cllimit | category, title | 獲取頁面上的類別列表。 |
| 搜尋 | 參見 此處 | srsearch,srwhat,srlimit | title | 維基百科中的全文搜尋。 |
| 實體搜尋 | 參見 此處 | search,language,type,limit | item,label | 按標題進行維基資料實體搜尋。 |
必填引數以粗體顯示。有關輸入引數的含義,請參考服務文件(連結在“文件”列中)。
請參閱 Mediawiki API 服務文件頁面 上的完整描述。
SELECT * WHERE {
wd:Q6501349 wdt:P910 ?category . # Parking lot - Main category
?link schema:about ?category; schema:isPartOf <https://en.wikipedia.org/>; schema:name ?title .
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:api "Generator" .
bd:serviceParam wikibase:endpoint "en.wikipedia.org" .
bd:serviceParam mwapi:gcmtitle ?title .
bd:serviceParam mwapi:generator "categorymembers" .
bd:serviceParam mwapi:gcmprop "ids|title|type" .
bd:serviceParam mwapi:gcmlimit "max" .
bd:serviceParam wikibase:limit 50 .
# out
?subcat wikibase:apiOutput mwapi:title .
?ns wikibase:apiOutput "@ns" .
?item wikibase:apiOutputItem mwapi:item .
}
}
SELECT ?file ?title ?depicts ?depicts_label
WITH
{ SELECT ?file ?title
WHERE
{ SERVICE wikibase:mwapi
{
bd:serviceParam wikibase:api "Generator" .
bd:serviceParam wikibase:endpoint "commons.wikimedia.org" .
bd:serviceParam mwapi:gcmtitle "Category:Historia Naturalis van Rudolf II" .
bd:serviceParam mwapi:generator "categorymembers" .
bd:serviceParam mwapi:gcmtype "file" .
bd:serviceParam mwapi:gcmlimit "max" .
?title wikibase:apiOutput mwapi:title .
?pageid wikibase:apiOutput "@pageid" .
}
BIND (URI(CONCAT('https://commons.wikimedia.org/entity/M', ?pageid)) AS ?file)
}
} AS %get_files
WHERE
{ INCLUDE %get_files
?file wdt:P180 ?depicts .
service <https://query.wikidata.org/sparql> {
OPTIONAL {?depicts rdfs:label ?depicts_label FILTER (lang(?depicts_label) = 'nl') }
}
}