跳轉到內容

SPARQL/SERVICE - mwapi

來自華夏公益教科書

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 .
  }
}

試試看!

描述一個 Commons 類別中檔案的荷蘭語標籤的語句

[編輯 | 編輯原始碼]
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') } 
    }
}

試試看!

參考文獻

[編輯 | 編輯原始碼]


華夏公益教科書