利用者:Suisui/整備
表示
WP:JWNA 関連
[編集]sitelinkが指定個数あって、jawikiにリンクしていないページ wikibase:sitelinksのwikipediaへのリンクだけのカウントはタイムアウトしてしまうためwikipedia以外のプロジェクトへのリンクを含んでいる。wikidataのページで個数は確認できる。 SPARQL
SELECT DISTINCT ?item ?label ?sl ?wlabel WHERE { ?item wikibase:sitelinks 80 . FILTER NOT EXISTS{ ?sc schema:about ?item; schema:isPartOf <https://ja-two.iwiki.icu/> . } OPTIONAL{?item rdfs:label ?label. FILTER(lang(?label)="en") } OPTIONAL{?item wdt:P31 ?what. ?what rdfs:label ?wlabel. FILTER(lang(?wlabel)="ja") } } LIMIT 50}}
https://www.wikidata.org/wiki/Wikidata:Request_a_query/Archive/2020/03#Items_with_more_than_30_sitelinks にヒントあり。 読み出したlinkcountは数値にBINDできない(?)が数字の方を変えることはできる。
SELECT ?item ?label ?w (COUNT(?wplink) AS ?wplinks) WHERE{ ?item wikibase:sitelinks 138 . #values ?lcount {95 96} ?item rdfs:label ?label. FILTER(lang(?label)="en") FILTER(!strstarts(?label, "Category:")) FILTER(!strstarts(?label, "Wikipedia:")) FILTER(!strstarts(?label, "Template:")) FILTER(!strstarts(?label, "Module:")) FILTER NOT EXISTS{?sc schema:about ?item; schema:isPartOf <https://ja-two.iwiki.icu/> . } ?wplink schema:about ?item ; schema:isPartOf [wikibase:wikiGroup "wikipedia"]; OPTIONAL{?item wdt:P31 ?what.?what rdfs:label ?w. FILTER(lang(?w)="ja")} }GROUP BY ?item ?label ?w
これでwikipediaの言語版数を出すことができるが、2021/10現在では検索結果が一つ以上あるとタイムアウトしてしまう。すでにあることがわかっていない限り意味がない。
ヒントの追加で動作することが判明
SELECT ?item ?label ?w (count(?article) as ?lw_count) WHERE{ ?item wikibase:sitelinks ?linkcount . hint:Prior hint:runFirst true. #values ?linkcount {80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100} values ?linkcount {45} ?item rdfs:label ?label. FILTER(lang(?label)="en") FILTER(!strstarts(?label, "Category:")) FILTER(!strstarts(?label, "Wikipedia:")) FILTER(!strstarts(?label, "Template:")) FILTER(!strstarts(?label, "Module:")) FILTER(!strstarts(?label, "Help:")) FILTER NOT EXISTS{?sc schema:about ?item; schema:isPartOf <https://ja-two.iwiki.icu/> . } ?article schema:about ?item ; schema:isPartOf [wikibase:wikiGroup "wikipedia" ]. OPTIONAL{?item wdt:P31 ?what.?what rdfs:label ?w. FILTER(lang(?w)="ja")} } group by ?item ?label ?w
45前後以下だとやはりタイムアウトしてしまうがないより全然いいと思う。
自動化検討
[編集]- SPATRQLエンドポイントで候補(jawpへのsitelinkがなく、ある程度以上のsitlinksを持つ項目)を抽出
- Category/Template/Projectのページを排除
- 一覧にある各項目をwbsearchで取得、wpへのsitelinkを付与
- ヒトの場合、ヒトと職業を付与
マージも機械的に可能かどうかはもう少し観察が必要
構成案
[編集]- 一定数のsitelinkをもち、jaにリンクがないQ一覧をSPARQLクエリで生成
- 各ページのQをwbsearchで取得、wikipediaへのリンク数を取得してソート
- 同時に badgeを取得。ただし、現状どの言語版のbadgeを取得して表示しているのかは要調査
- 同時に一部のプロパティを取得 現状の作りにすべてあわせる場合、一覧をページ側から取得できるようにする必要がある。まずはお試し。
- ヒトと職業
- 行政区分
- タクソン
- 各ページをカテゴリごとにソート
- 整形してページ名とペアにする
- 投稿
カテゴリごとにソートをするために集める必要がある情報を、Wikidataから取れるものに限定すれば自動化は可能。
その他
[編集]- ページ内で使用しているテンプレートが、英語版を無条件に指定する作りになっているので、言語版を指定できるようにしたほうが良い
- GA/FAが手動で、言語の指定も手動
- ヘッダのつけかたに検討の余地あり。多少まとめたほうが見やすいのではないか。細かく何言語か、という情報は日本語版に導入してほしいページ、という位置づけの中ではあまり役に立たない。