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') }
}
}