arkhe¶
ARK 識別子の基盤。採番と解決を別プロセスで動かす。
flowchart LR
R["組織の<br/>リポジトリ"] -->|採番| M[minter]
U[誰でも] -->|ark:/99999/…| S[resolver]
M --> D[(台帳)]
S --> D
S -->|302| T[対象]
S -->|"?? "| P[永続性宣言]
ARK は DOI / Handle と違い、有償の登録組織と中央基盤を前提としない識別子体系で、 永続性は文字列の性質ではなく、サービスの問題という立場を取る。arkhe はその立場の まま、組織へ名前空間を委譲し、永続性の水準を各組織が自己申告できる形で運用するための 実装。
名前の由来はギリシャ語 ἀρχή(始原・原理)。参照が始まる点、という意味。
できること¶
- 組織に委譲した名前空間で ARK を採番し、二度と振り直さない。
?/??/?info/?jsonの inflection つきで解決する。対象が失われても 記述は答えられる。- 委譲する。NAAN の保有者が shoulder を切り出して組織に渡し、採番や解決を さらに外へ委ねることもできる。
- 組織の改編に耐える。組織が統合しても分割しても離脱しても、識別子は解決し続ける。
意図的にやらないこと¶
- リポジトリではない。 識別子と行き先を持つだけで、対象そのものは持たない。
- 認可サーバにならない。 トークンは検証する。自前で発行するのは機械向けの 1 種類 だけで、認可コードフローは持たない。
- メタデータの器ではない。 対象に到達できないときに記述を返せるよう、ERC の kernel と少数の Dublin Core 項目だけを持つ。
どこから読むか¶
現状¶
FastAPI / SQLAlchemy 2.0 / PostgreSQL。arkspec/(ARK 仕様の純関数層)と
domain/resolution.py は stdlib しか使わないので、仕様適合に関わる部分は
何もインストールせずに読めるし試せる。
arkspec/ の一部は Internet Archive の
arklet(MIT)から派生している。
NOTICE を参照。