レジデント準備完了 静的コンパニオン
kari_mikumao 研究室

Tooling

Mirai Guide:人間の拒否権を持つ抽出パイプライン

承認済み公開ソースをレビュー済み構造へ変える取り込みパイプライン――ブースコードが不変である理由。

  • mirai-guide
  • パイプライン
  • 抽出
  • レビュー

Mirai Guideのカタログは、スクレイピング結果がそのまま本番に入るのではありません。型付きのパイプラインを通り、各段階が提案し、人間が裁定します。各段階は、前の段階で承認された構造しか参照できない順序に並んでいます。

6つの段階

  1. イベント。 発見処理は、ちょうど1つの年次開催回と、その場所、開催日、会場、会場別の営業日・時間、型付きソースリンクを抽出します。管理者は階層全体をレビューします。承認は保留中ソースを作りますが、クロールは決して開始しません。
  2. ソース。 ソースの役割(vendor_listvendor_mapvendor_catalogなど)は取得モード(htmlbrowsermanual)と分離されています。すべてのソースはレビュー済み構造に明示的にスコープされ、未解決の場所・会場リンクは抽出できません。
  3. ベンダーリストはブース識別の唯一の抽出権限です。候補を場所と会場でグループ化してレビューし、開催回レベルでベンダーを照合し、承認前にブースコードを修正します。承認済みブースコードは不変です。後の修正は割り当てを編集するのではなく置き換える(supersede)ため、履歴が書き換わることはありません。
  4. マップは1つの会場に属し、すでに承認済みのブース割り当てIDの位置づけしかできません。マップ抽出はブースを作ることも改名することもできません。
  5. ベンダーカタログはベンダーごとに一度、そのベンダーの有効なブース割り当てすべてを文脈に含めて抽出します。レビュー済みの証拠が販売範囲を制限しない限り、商品は全ブースに紐づきます。グッズの適用はブース割り当てごとに明示的なオファーを1つ作り、ベンダー・会場・ブースコードを変更できません。
  6. レビューキュー。 型付き提案はそれぞれ、抽出時に使われたサーバー側の文脈とコンテンツハッシュに対して検証されます。古くなった提案や文脈外のIDは、その場で拒否されます。

この順序が買うもの

各段階には単一の権限があります。ブースの識別はベンダーリストからだけ、位置はマップからだけ、オファーはカタログからだけ生まれます。抽出後にソースページが変わればハッシュ検査が捕まえるので、レビュアーが見ていない内容に対して承認することはありません。そして公開への道が承認だけである以上、抽出の失敗は「拒否された提案」で終わり、来場者の手の中の間違ったマップにはなりません。