Tooling
Mirai Guide:人間の拒否権を持つ抽出パイプライン
承認済み公開ソースをレビュー済み構造へ変える取り込みパイプライン――ブースコードが不変である理由。
Mirai Guideのカタログは、スクレイピング結果がそのまま本番に入るのではありません。型付きのパイプラインを通り、各段階が提案し、人間が裁定します。各段階は、前の段階で承認された構造しか参照できない順序に並んでいます。
6つの段階
- イベント。 発見処理は、ちょうど1つの年次開催回と、その場所、開催日、会場、会場別の営業日・時間、型付きソースリンクを抽出します。管理者は階層全体をレビューします。承認は保留中ソースを作りますが、クロールは決して開始しません。
- ソース。 ソースの役割(
vendor_list、vendor_map、vendor_catalogなど)は取得モード(html、browser、manual)と分離されています。すべてのソースはレビュー済み構造に明示的にスコープされ、未解決の場所・会場リンクは抽出できません。 - ベンダーリストはブース識別の唯一の抽出権限です。候補を場所と会場でグループ化してレビューし、開催回レベルでベンダーを照合し、承認前にブースコードを修正します。承認済みブースコードは不変です。後の修正は割り当てを編集するのではなく置き換える(supersede)ため、履歴が書き換わることはありません。
- マップは1つの会場に属し、すでに承認済みのブース割り当てIDの位置づけしかできません。マップ抽出はブースを作ることも改名することもできません。
- ベンダーカタログはベンダーごとに一度、そのベンダーの有効なブース割り当てすべてを文脈に含めて抽出します。レビュー済みの証拠が販売範囲を制限しない限り、商品は全ブースに紐づきます。グッズの適用はブース割り当てごとに明示的なオファーを1つ作り、ベンダー・会場・ブースコードを変更できません。
- レビューキュー。 型付き提案はそれぞれ、抽出時に使われたサーバー側の文脈とコンテンツハッシュに対して検証されます。古くなった提案や文脈外のIDは、その場で拒否されます。
この順序が買うもの
各段階には単一の権限があります。ブースの識別はベンダーリストからだけ、位置はマップからだけ、オファーはカタログからだけ生まれます。抽出後にソースページが変わればハッシュ検査が捕まえるので、レビュアーが見ていない内容に対して承認することはありません。そして公開への道が承認だけである以上、抽出の失敗は「拒否された提案」で終わり、来場者の手の中の間違ったマップにはなりません。