記録請求
目標: 指定された文書を低コストで入手し、後でさらに情報を得たい役所を煩わせないこと。完了 = ファイルがディスク上にキャッシュされ、その出典と権利状況が記録されていること。または、書面による「当方には該当文書はありません」という回答(これでファイルは閉じられ、それも成功です)。
関門: 人間が送信する。 草案を作成し、受信者を確認し、ファイルに保存し、「下書き」と明記して止める。CAPTCHAと署名チェックボックスがあるポータルは、常に人間が操作するしかありません。
ステップ0 — まずウェブサイトを読む。これが最も安価なルール。
何かを起草する前に、機関自身のサイトで文書を探す。
公表された料金表は、その機関がよく請求を受けている証拠であり、回答に費用がかかる証拠ではない。 ある郡は、その資本化率調査を年間34.50ドルで販売していると報告されていたが、統計ページで同じものを4年分無料で公開していた。1回のページ取得で、費用と3週間の待ち時間を節約できた。
次に隣接機関を確認する。州機関は郡が公開しない集計値を公開することがある(ただし、実際にカバーしている範囲を読むこと — 州の「キャップレート調査」は州評価の公益事業・鉄道財産のみをカバーしている可能性がある)。そして否定を適切に確認する。機関の公開レポートで自分の検索語を検索する。その否定が、請求を唯一のルートにするものである。
ステップ1 — 機関を見つけ、その名称を正しく把握する
同じ機関でも州によって呼び名が異なる。 間違った組織に書いても何も返ってこない。商業用不動産評価の場合、例えば:
| 州 | 商業用不動産を評価する機関 |
|---|---|
| MN, IA, NE | 郡 Assessor(評価官) |
| KS | 郡 Appraiser(鑑定士) |
| ND | 郡 Director of Tax Equalization(税均衡局長) |
| SD | 郡 Director of Equalization(均衡局長) |
| WI | 郡の評価官はいない — 評価は市町村が行うので、市に書くこと |
また、一部の州では大都市を郡の評価官に含める(アイオワ州:ポーク郡はデモインをカバー)が、そうでない州もある(ノースダコタ州:ファーゴとカス郡は別)。
連絡手段の優先順位: メール、ポータル、郵送。
- メール アドレスが存在する場所ならどこでも。機関自身のページで確認すること。
- ポータル (GovQA, NextRequest) は、アドレスが公開されていない場合のみ。ポータルはアカウント、CAPTCHA、拘束力のある署名チェックボックスに人間が必要。
- 郵送 は最後の手段。下書きのヘッダーにフォールバックとして記載すること。
一部のページはスクリプトでレンダリングされ、curlでは有用なものが返ってこない。Pythonでタグを除去し、@を検索する。本当にアドレスがない場合は、推測せずにその旨を伝える。
ステップ2 — 除外条項パラグラフが請求全体の鍵
機密性の法令を自ら指名し、それを手紙の中で否定する。 そのパラグラフがなければ、請求は全面的に拒否される。なぜなら、機関が反射的に手を伸ばすのが機密性条項だからだ。これがあれば、問題は「これを公開できるか」から「当方のどの表をご希望ですか」に変わる。
機関が自ら作成した、郡全体のスケジュールと調査のみを請求し、区画レベルや所有者を特定できるデータは含まず、所有者が提出した部分が編集された混合文書があればそれを受け入れる用意があることを伝える。
評価官請求で成功した規定(現行法との整合性を確認すること):
| 州 | 請求根拠 | 除外条項 |
|---|---|---|
| MN | Minn. Stat. 13.03 subd. 3 | 13.51 subd. 2 — 所有者提出の収入/支出、空室率、賃貸可能面積、リース |
| KS | K.S.A. 45-215 et seq. (管理者: 45-218) | 45-221(b) — 鑑定士に提供された納税者の財務情報 |
| IA | Iowa Code ch. 22 | 22.7 営業秘密 — さらに441.21(3)(a)を引用。これは方式または方法の開示を積極的に要求するもの。加えて441.19(1)(a) |
| NE | Neb. Rev. Stat. 84-712 | 84-712.05(3) 営業秘密/所有権 |
| ND | N.D.C.C. 44-04-18 | 44-04-18.4 営業秘密/商業 |
| SD | SDCL 1-27-1 | その州の評価官機密性相当規定 |
法令が開示を義務付けている場合は、それを引用する(上記アイオワ州):機密性の反射的反応を完全に排除する。
一度受け入れられた文言は言い換えない。 ある機関があなたの文言を受け入れたら、名前だけを変えて同じ文言を同種の機関に対してそのまま再利用する。言い換えた文言は、追加の範囲確認を招く。そのパラグラフが一括編集を生き延びたかどうかを、受け入れられた原本とハッシュを比較して確認する。
ステップ3 — 最初の手紙に必ず入れる3つのこと
- 1年ではなく5年分を請求する。 「2022年から2026年を含む評価年度。」 機関にとって同じ検索で5倍のデータ — そして系列はしばしば成果物そのもの(機関が自社のレートをどのように変更したかを示す)。さらに追記:「お手元にある年分をお送りください。一部の回答でも有用です。」 これにより、欠落した年が返答を遅らせない。
- 安価な出口を提供する。 「もし局がこの種のスケジュールを管理していない場合、その旨を一行でお知らせいただければ、これで終了とし、以後フォローアップしません。」 書面による否定はファイルを閉じるものであり、拒否の手紙を書く代わりに30秒で済む。
- まず費用の見積もりを尋ねる。 「これの作成に費用が発生する場合は、まず見積もりをお知らせください。その上で請求を絞り込みます。」 一部の機関は、所在確認と編集の両方に時間単位で請求する — 2つのメーターが同時に動く。
ステップ4 — 一括送信の前に
- すべての受信者ドメインのMXレコードを確認する:
dig +short MX <domain>。19件のバウンスが発生する前にタイプミスを発見できる。 - 一通の本文全体を最初から最後まで読む。 差分ではなく、手紙そのものを。
- キャンペーン全体で請求者の身元を統一する(同一人物または同一会社、同一住所)。返信がスレッド化され、誰が誰だか聞き直されないようにする。
- プレーンテキストで送信する。 ハードラップされた手紙はHTMLで崩れる。
ステップ4b — ウェブフォームは敵対的なチャネルである。2つの罠に備えよ。
-
知らされない文字数制限。 メッセージフィールドは、2,000文字の本文を1,000文字で静かに切り詰める可能性がある。すべてのフォームに対して、最初から短いバリアントを用意する:法令引用、年範囲を含む依頼、機密性免責条項、費用見積もり依頼行、連絡先。免責条項が最後に削るもの。
-
ペイロード全体を拒否するWebアプリケーションファイアウォール (
Event Type: signature)。原因は文字数ではなく句読点:裸のアポストロフィは標準的なSQLインジェクションのシグネチャである。 本文および件名から、'"()&/;=<>--および非ASCII文字を削除する。&の代わりに「and」と書き、法令の細分箇所は括弧で囲まずに削除し、「the Office's」の代わりに「your Office derived」と言う。コードで監査する:python3 -c "s=open('body.txt').read(); print({c:s.count(c) for c in "'\\\"()&/;=<>" if c in s})"
始める前にフォールバックを知っておく: メールを隠す機関でも、住所は公開している。3回も抵抗するフォームは4回目に値しない。郵送する。
ステップ5 — 送信記録を残す。さもなければそれはなかったことになる。
法定件名を維持する — 記録管理者はそれでルーティングし、返信はその下でスレッド化される。各下書きのヘッダーを NOT SENT から SENT <日付> from <アドレス>, messageId <ID> に変更し、本文をそのまま記録として下に保持し、トラッカーを更新する。一括編集が触れた行はすべて再確認する:ステータス列に対するグローバルな検索置換は、未送信のウェブフォーム行を喜んでSENTとしてマークする。
ステップ5b — 添付ファイルが必要な返信
一部のメールMCP(例:Zoho)には添付ファイルアップロード機能がない。その返信は、同じアドレスからトランザクションプロバイダー(例:Mailgun)を通じて送信し、h:In-Reply-To と h:References を機関のメッセージIDに設定して機関のメッセージにスレッド化し、件名を維持する。curlを使用する場合、すべてのヘッダーと本文フィールドに --form-string を使用する — -F は <(すべてのMessage-ID)または @ で始まる値を「このファイルを読み込め」として扱う。プロバイダーのイベントAPIから配信を確認する。
機関自身のフォームは通常、そのウェブサイトにある。 それがフラットなPDFの場合は、reportlabでテキストをオーバーレイし、詳細な仕様は2ページ目に置き、送信前にページをPNGにレンダリングして確認する(テキストがラベルの上に重なることは想像以上に多い)。
フォームを返送するときは範囲を絞る。 料金警告は、既に保有しているデータを伝え、残りの部分のみを請求し、まず見積もりを依頼するタイミングである。
入力データを名指しするソフトノーは、派生テーブルに対するノーではない。 「私たちはレンタル調査からのデータを使用しており、これは機密です」という回答は、機密の入力を指し示すことで1つの項目に答えており、派生調査をスキップしている。スキップされた項目をイエス/ノーで再度尋ね、感謝し、再び一行での出口を提供する。礼儀正しく保つ:この機関から次の回答も得たいのだから。
ステップ6 — 催促する。なぜなら通常期限がないから。
短い時計はたいていあなたのものではない。 ポータルの「10営業日」は、データ主体が自分自身について尋ねる場合にのみ適用されることがある。政府データに対する一般的な請求は、通常「合理的な時間」(例:Minn. Stat. 13.03 subd. 3)とされ、これは全く時計を設定しない。フォローアップが唯一の圧力である。 送信日に約2週間後の催促をキューに入れる(pending-queue フックを参照)、その中に参照番号、ポータルパス、指名された連絡先、および「請求を言い換えないでください」を含める。催促は状況確認である。フォローアップで決して範囲を変更しない。
ステップ7 — 返ってきたものは再公開できるか?
これに基づいて何かを構築する前に、この質問に答える。
- ミネソタ州: はい。商用利用も含む。 機関は「反対の具体的な法定権限がない限り、商業目的であっても、そのデータの無制限の使用を許可しなければならない」 — MN Attorney General意見書852 (1995)。
- どこでも: 事実には著作権はない (Feist) — 特定の選択または配列のみが著作権対象となり得る。数字は再公開しても、その文書のレイアウトは決して再公開しない。 自身のスキーマに再表現する。
- その他の地域では、利用部分は未確定である。 その州の商用利用条項を主張する前に読み、自身のファイルを正直にマークする(「再公開未承認」はあなたのマーカーであり、機関の制限ではない — それを制限として引用しないこと)。
ステップ8 — 到着したものを解析する
sha256と正規URLとともに、解析出力の隣に原本をキャッシュし、決して再取得しない。
ラベルは年ごとにずれる。 ある郡の独自の行ラベルは、4枚の年間シートにわたって22, 22, 18, 18と変化し、物件タイプが消えた。クロスウォークを手書きし、すべてのレコードに生のラベルをそのまま保持する。決してファジーマッチングを行わない — それにより、間違った数字が正しく見えて出荷される。消えたタイプは欠落であり、ゼロではない。
pdftotext 出力に対する正規表現で構造がわかると信じてはいけない。 文字クラスが数字を欠いていると、Warehouse <25% Office / >20K が 2 で切り詰められ、4行が2行に静かにマージされる。抽出を信じる前に、ソースに対して行数を確認する。
網羅性を売り込む前に、クロスソース結合をソース#2で証明する。 同じ州の同じ文書タイプの2つの郡が、まったく同一の物件タイプ名を共有することはあり得ない。