新しいアイテムを作成する
OpenRefine では新しいアイテム(Qid)を作成できます。このページではその仕組みを説明します。
注意事項
-
OpenRefine がリコンサイル候補を提示しないからといって、そのアイテムが Wikibase に存在しないとは限りません。さまざまな理由で見落とされることがあるため、重複の作成には十分気をつけてください。
-
作成するアイテムが Wikibase の受け入れ基準を満たしていることを確認してください。Wikidata の場合は Notability ガイドライン を参照。
-
アイテムの削除には特別な権限が必要です。新規作成を含む編集グループを差し戻したい場合は、管理者に依頼する必要があります。
ワークフロー概要
OpenRefine で新しいアイテムを作成する一般的な流れは次のとおりです。
- 対象の列をリコンサイルする
- 該当セルを「新しいアイテム」としてマークする(この時点ではまだ作成されない)。多数のセルをまとめてマークする場合は Reconcile → Actions → Create a new item for each cell を使用
- その列を使って通常どおり Wikibase スキーマを作成する
- 編集を実行すると、そのタイミングで Wikibase 上に新しいアイテムが生成される
- 「新規」としてマークしていたセルは、生成されたアイテムに自動的にリコンサイルされる
新規アイテムだけを別のスキーマで処理すると便利です。既存アイテムに余計な編集を加えることなく、ラベルや説明を含む複数のステートメントを追加できます。リコンサイル列の判断(judgment)でファセットを作り、「新規」の行だけを対象にして編集しましょう。OpenRefine では常にファセットで絞り込まれた行だけがアップロードされるため、ファセットから外れたセルは新規作成されません1。
列内のすべてが新規であると分かっている場合でも、まずは Wikidata リコンサイルサービスを指定してリコンサイルを走らせ、判断を「new」に変更する必要があります。これを省略すると、OpenRefine はその列がどのサービスに対してリコンサイルされているか判断できず、スキーマ内でアイテムの代わりとして利用できません。
QuickStatements によるアップロードも可能ですが、その場合 OpenRefine のプロジェクトには新しい Qid が反映されません。
新しいアイテムにラベルを追加する
「new」とマークされたセルの文字列が、そのままラベルに使われることはありません。どの言語のラベルか推測できないためです。新しいアイテムを追加するときは、スキーマで明示的にラベルを追加してください。ラベルの値としてリコンサイル済みの列を参照できますが、既存アイテムに紐づいたセルがある場合はラベルを上書きしてしまわないよう注意してください。
ラベルが 1 つもない状態で新規作成しようとすると、OpenRefine は重大な問題としてアップロードを拒否します。その他にも基本情報が不足していると警告が表示されますが、致命的でない限りアップロードを続行できます。
複数セルを同じ新規アイテムとしてマークする
セルを個別に new マークすると、行ごとに別々のアイテムが作成されます。複数行が同一アイテムを指している場合は、OpenRefine でそれらのセルを 同じ 新規アイテムとしてマークできます。ただし以下の条件が必要です。
- 対象セルは同じ列にあること(列をまたいで同じアイテムにすることは不可)
- セルの元の文字列が同一であること
条件を満たすセルをファセットで絞り込み、Reconcile → Actions → Create one item for similar cells を実行すると、それらのセルは同一の新規アイテムに紐づきます。
作成したアイテムの Qid を取得する
アップロード完了後、ファセットに含まれていた新規セルには新しい Qid が保存されます。Edit column → Add column based on this column で cell.recon.match.id を指定すると Qid を抽出できます。この段階では判断が matched に変わり「new」をファセットで追跡できなくなるため、アップロード前にスターやフラグで印を付けておくと便利です。
Footnotes
-
例外は「複数セルを同一アイテムとしてマーク」する場合です。このときファセットに含まれたセルが 1 つでもあれば、アップロード後に他のセルもまとめて新しい Qid で更新されます。 ↩