⬆ トップ
Ta-Na-Si Media & Document Repository の透明性のある概要 — アーキテクチャ、技術スタック、開発クレジット。

Repository Core

このページでは、Ta-Na-Si Media & Document Repository が何からできているのか —— そのアーキテクチャ、技術、そして開発を支える人々を説明します。私たちは完全な透明性を信条としています。アーカイブを使う人も、自分のアーカイブの運営を考えている人も、このシステムが正確に何でできているかを知る権利があります。「概要」ページはこのアーカイブが何のためにあるかを説明し、このページはどう動くかを説明します。

1. Repository Core とは

Repository Core は、このアーカイブが稼働しているソフトウェアです。完全に独立したセルフホスト型のデジタルアーカイブシステムであり、ただ一つの目的のためにゼロから書かれました —— 文書とメディアを証拠となる原資料として保存し、整理し、開かれた形で提供することです。WordPress、Joomla、Drupal などの既製 CMS を基盤とせず、PHP フレームワークも使っていません。データベース層、検索エンジン、キュレーション作業室、公開ページ —— あらゆるコンポーネントが、この仕事のために専用に設計され、書かれています。

このソフトウェアはマルチインストール型プラットフォームとして作られています。一つの中央アーカイブに仕えるのではなく、数多くの別個の独立したアーカイブを動かします。小さな家族コレクションであれ、大規模な地域リポジトリであれ、各アーカイブは自前のデータベース、自前のファイル、自前の管理者を持つ、それ自体で完結したインストールです。アーカイブ間で共有されるインフラはなく、依存する中央サービスも存在しません。

2. 一つのコードベース、多数の独立アーカイブ

すべてのインストールは同一のコードベースで動きます。個々のサーバーに固有のもの —— 公開アドレス、データベース接続、メール送信元 —— はすべて、セットアップ時に一度だけ作成される単一の環境ファイルに収められ、コードと一緒に移動することはありません。この厳格な分離こそがこのモデルを成り立たせています。同じソフトウェア更新を、大小を問わずすべてのアーカイブに、各アーカイブ個別の設定に触れることなく適用できるのです。

新しいアーカイブはブラウザー上のガイド付きセットアップアシスタントでインストールします —— コマンドラインも、手で編集する設定ファイルも不要です。アシスタントは 18 の言語を話し、サーバーの要件を確認し、何かを書き込む前にデータベース接続をテストし、安全にハッシュ化されたパスワードでオーナーアカウントを作成します。データベーステーブルは冪等なマイグレーションシステムによって作成されます。何度実行しても、必ず正しいスキーマに収束するのです。その後のスキーマ変更はバージョン管理されて追跡されるため、どのインストールも自分が今どこにいるかを正確に把握できます。日常的な変更は自動で適用され、重い変更はオーナーの明示的な確認を待ちます。更新も同じ慎重な順序に従います。まずバックアップ、次にマイグレーション、最後にキャッシュのクリアです。

3. 技術スタック バージョン 1.0.0 (Thuringia)

🖥️ サーバー標準的な Apache + PHP 環境 —— 一般的な共有ホスティングでも自前のサーバーでも動作。コンテナ、ビルドツール、外部サービスは一切不要
🐘 バックエンドPHP 8.1 以降 —— フレームワーク不使用。サーバー側の第三者ライブラリは、小さな Markdown パーサーの Parsedown のみ
🗄️ データベースSQLite(設定不要)、MySQL/MariaDB、PostgreSQL に対応する単一のマルチドライバー層 —— 各アーカイブが自分の規模に合うものを選択
🔎 検索全レコードテキストに対する全文インデックスに加え、リアルタイムのヒット件数を備えた 9 つのファセット軸(主題、場所、言語、寄与者、ジャンル、所属、コレクション、シリーズ、アクセス)
🌐 言語インターフェースは 18 の言語パックに対応する設計(翻訳進行中)。コンテンツは右から左へ書く文字体系を含む 49 言語を、検索とファセットでネイティブにサポート
📦 ファイルストレージ決定的なパスを持つ UUID シャーディングのメディアツリー —— 数百万ファイルへの成長を見込んだ設計。S3 互換オブジェクトストレージへのオフサイト複製もオプションで可能
🎨 フロントエンドレイヤー化されたデザインシステムによる手書きの HTML5 と CSS3、最小限の素の JavaScript —— すべてのページはまずスクリプトなしで動作
🧩 ブラウザーライブラリセルフホストされた 3 つのオープンソースコンポーネント。CDN からではなく、常にアーカイブ自身から配信 —— 画像のズーム可能な詳細表示のための OpenSeadragon(New BSD 3-Clause)、リッチテキストエディターの Jodit(MIT)、Markdown エディターの EasyMDE(MIT)
🔒 認証強力なパスワードハッシュを用いたセッションベースのサインイン、オプションの二要素コード(TOTP)、ログイン試行のロックアウト、全フォームでの CSRF 保護
⚡ キャッシュスタンピード保護付きのファイルベースのページキャッシュ。サーバー、ブラウザー、CDN それぞれに独立した有効期間。前段にオプションで Cloudflare を配置可能
🗺️ SEO と発見性ストリーミング XML サイトマップ(単一ファイル、または超大規模アーカイブ向けのインデックスモード)、自動生成の robots.txt、構造化メタデータ(JSON-LD)、クリーンで安定した URL
💾 バックアップ保持ポリシー付きで選べる 4 種類の ZIP バックアップ、rclone によるオプションのオフサイト同期、そして先に安全バックアップを取ってから実行される保護付きリストア

4. 検索とファセットナビゲーション

公開アーカイブの心臓部は検索です。単一の全文インデックスが、公開されているすべてのレコード —— タイトル、説明、要約、注記、記事本文 —— をカバーするため、一つの検索フィールドですべてに届きます。しかし本格的なリサーチには全文だけでは足りません。そのため、すべてのレコードは9 つのファセット軸でも分類されています。

  • 主題 —— レコードが扱うトピックやテーマ。
  • 場所 —— レコードが関わる地理的な場所。構造化された場所ディレクトリから取得(下記の GeoNames の節を参照)。
  • 言語 —— レコードの内容の言語。ネイティブにサポートされる 49 言語から。
  • 寄与者 —— 関わった人々。著者、話者、写真家、編集者。
  • ジャンル —— 資料の種類。証言、分析、報告など。
  • 所属 —— レコードが属するより大きな作品。複数部からなる資料をつなぎます。
  • コレクション —— アーカイブの管理者が維持する、キュレーションされた名前付きのまとまり。
  • シリーズ —— 順序を持つ資料のための、順序付きのまとまり。
  • アクセス —— レコードのアクセスレベル。たとえば公開、会員限定など。

ファセットナビゲーションは、研究者が大規模な機関アーカイブに期待するとおりの動きをします。結果の横に各軸の頻出値がリアルタイムのヒット件数付きで表示され、ワンクリックで結果が絞り込まれます。異なる軸のフィルターは自由に組み合わせられます。たとえば、主題が教育で、1990 年代の、ドイツ語音声レコードすべて、というように。有効なフィルターは結果の上に取り外し可能なチップとして表示されるため、現在の絞り込みは常に見えており、どのフィルターもワンクリックで外せます。サイドバーに収まらないほど多くの値を持つ軸では、その軸全体のアルファベット順の完全な索引を、文字ごとにたどることができます。

ファセットに加えて、結果は資料の種類(記事、音声、動画、文書、画像、データセット —— 望めば複数同時に)と日付でも絞り込めます。日付は 10 年単位のクイックリンクでも、正確な年範囲の指定でも構いません。結果は関連度、タイトル、日付で並べ替えられ、詳細なリスト、画像ギャラリー、コンパクトなグリッド、全画面スライドショーの 4 つの方法で表示できます。検索の状態全体 —— クエリ、フィルター、並べ替え、表示方法 —— はアドレスバーに収められているため、どの結果ページもそのままの形でブックマークし、引用し、共有できます。

ファセットは根無し草のタグではありません。その語彙はアーカイブの管理者によってキュレーションされており、コレクションやシリーズのような軸は階層的に整理できます。レコードページに表示されるすべてのファセット値は検索へ逆リンクしているため、読者は一つの興味深いレコードから、同じ主題・場所・人物・シリーズについてアーカイブが持つ他のすべてへ、いつでも軸足を移すことができます。

5. レコードページ

各レコードは、種類に応じた表示を備えた専用ページを持ちます。音声と動画はページ内で直接再生され、PDF 文書は埋め込みビューアーで開き、画像はズーム可能な詳細表示で調べられ、記事は安全にフィルターされた Markdown からレンダリングされます。ファイルそのものと並んで、レコードページには完全な説明、寄与者、所属するより大きな作品(各部の間を移動するナビゲーション付き)、次に見る価値のある関連アイテム、そしてシカゴ・APA・MLA 形式の引用文が表示されます。すべてのレコードは機械可読メタデータ(schema.org JSON-LD)と、決して変わらない安定したアドレスを持ちます。印刷物や外部参照での引用のために、/go/… 形式の短い恒久リンクを割り当てることもできます。

6. 言語

このアーカイブは多言語の世界のために、はっきり区別された二つのレベルで作られています。

インターフェース —— 訪問者や管理者がページそのもので読むすべて —— は英語で書かれており、目に見えるすべてのテキストは翻訳可能な言語ファイルに保たれ、コードに埋もれることはありません。18 言語のインターフェース言語パックが準備中で、現在翻訳が進んでいます。英語、ドイツ語、フランス語、イタリア語、スペイン語、ポルトガル語、オランダ語、ロシア語、ポーランド語、スウェーデン語、デンマーク語、ノルウェー語、中国語、日本語、韓国語、トルコ語、チェコ語、ルーマニア語です。パックは管理パネルからインストール・管理され、各翻訳が英語の原文に対してどこまで完成しているかもそこで追跡されます。セットアップアシスタントは今日すでに 18 言語すべてを話します。

コンテンツ —— アーカイブされる資料そのもの —— は 49 言語をネイティブにサポートします。英語、ドイツ語、フランス語、イタリア語、スペイン語、ポルトガル語、オランダ語、ロシア語、ウクライナ語、ポーランド語、ギリシャ語、スウェーデン語、デンマーク語、ノルウェー語、トルコ語、中国語、ヒンディー語、アラビア語、インドネシア語、日本語、ベトナム語、韓国語、ベラルーシ語、チェコ語、スロバキア語、ハンガリー語、ルーマニア語、ブルガリア語、クロアチア語、スロベニア語、フィンランド語、ベンガル語、ウルドゥー語、ペルシャ語、アイスランド語、アイルランド語、スワヒリ語、タイ語、フィリピノ語、ヘブライ語、パンジャブ語、テルグ語、タミル語、マラーティー語、ハウサ語、ヨルバ語、アムハラ語、ジャワ語、パシュトー語です。レコードには内容の言語がタグ付けされ、検索の言語ファセットはそのいずれでも絞り込めます。たとえば、アーカイブがウクライナ語やアラビア語で所蔵しているすべてを、ワンクリックで呼び出せるのです。アラビア語、ヘブライ語、ペルシャ語、ウルドゥー語のような右から左へ書く文字体系も、全体を通して正しく表示されます。

加えて、すべての公開ページにある言語スイッチャーからは、ページ自体に第三者のスクリプトを読み込むことなく、機械翻訳されたページ表示を開くことができます。

7. 場所データ:GeoNames

場所ファセットは、国・地域・場所という階層で整理された地理ディレクトリに支えられており、レコードを正確に位置づけ、地理から再び見つけることができます。基礎データ(世界中の国とその行政区域)は地理データベース GeoNames に由来し、セットアップ時に、または後から管理パネルで、ローカルの参照ストアにインポートされます。アーカイブの管理者は、独自のローカルな場所でこれを拡張できます。場所データ:GeoNames.org(CC BY 4.0 ライセンス)。

8. 語彙データ:主題・ジャンルカタログ

主題やジャンルといったファセットを支えるキュレーション語彙は、ソフトウェアと共に提供され、中央で翻訳されるため、その用語はどのインターフェース言語でも意味を保ちます。確立された知識組織化の標準との互換性を保つため、カタログ作業の参照源として次の公開統制語彙を用いています:欧州連合の多言語シソーラスであるEuroVoc(© 欧州連合、CC BY 4.0)、IPTC Media Topics(© IPTC、CC BY 4.0)、およびGetty Art & Architecture Thesaurus(ODC-By 1.0)。外部語彙に由来するカタログ用語はすべてその出所を記録しており、サードパーティ製コンポーネントとデータソースの完全な一覧は各インストールに同梱されています:こちらでお読みください

9. 作業の側

公開アーカイブの背後には、4 つのエリアに整理された管理パネルがあります。人員ガバナンス(運営側と会員のアカウント、ロール、権限)、内部パブリケーション(レコードのキュレーション作業室とエディター)、プラットフォーム構成(設定、メディア形式、ファセット、言語、サイト構造)、そして技術とデータ(システム状態、診断、バックアップ)です。アーカイブの管理者が設定する必要のあるものはすべて、これらのページから到達できます —— アーカイブの運営にコードの変更は要りません。

レコードは明確なキュレーションワークフローをたどります。下書きとして作成され、メタデータとファセットが与えられ、必要に応じてレビューに提出され、そして公開されます —— 後で再びアーカイブ入りさせることもできます。ファイルは再開可能な小さなチャンクでアップロードされるため、大きなメディアも不安定な接続に耐えます。また、すべてのアップロードは受理される前に、ファイルシグネチャの検査によって申告された種類と一致するかが検証されます。サーバーが対応していれば、プレビュー画像は自動生成されます。

オプションの会員エリアによって、アーカイブは管理者の枠を越えて成長できます。登録した会員は、閲覧と議論からレコードのキュレーションと公開まで、4 つの固定された段階を通じて一歩ずつ信頼を託されていきます。権限は両側で細かく設定できます —— 管理側のロールは自由に定義でき、詳細な権限レジストリーから引き出されます。さらに、個別のオーバーライドで一人ひとりのアクセスを広げたり狭めたりできます。オーナーのアクセスは意図的にデータベースの完全に外側に置かれているため、壊れたファイルや失敗した変更によってアーカイブへの扉が閉ざされることは決してありません。

10. データの安全

バックアップは第一級の機能です。アーカイブの管理者は、データベース、メディアコンテンツ、インストール、あるいはそのすべてを一度に、日付入りの ZIP バックアップとして作成できます —— 必要なときにいつでも、最新のものを残して最古のものを削除する保持ポリシー付きで。各バックアップはさらに、任意の S3 互換ストレージプロバイダーへオフサイト複製できます。リストアは意図的に保護されています。システムはバックアップがそのインストールに合致するかを検証し、何かに触れる前に新しい安全バックアップを取ります。バージョン管理されたスキーマ追跡と合わせて、これは丹精込めて築かれたアーカイブを長期にわたって維持し、移設し、修復できることを意味します。

11. 設計原則

このリポジトリは、すべてのアーキテクチャ上の決定を導いてきた、譲れない少数の原則を中心に作られています。

  • トラッキングなし、アナリティクスなし、第三者へのリクエストなし —— フォントやスクリプトライブラリを含むすべてのアセットは、アーカイブ自身のサーバーから配信されます。訪問者に関する情報はどこにも送信されません。
  • 設計段階から開かれたクロール可能性 —— クリーンな HTML、構造化されたサイトマップ、説明的なメタデータ、そして検索エンジンと AI システムを歓迎する robots.txt。アーカイブされた事実が広く見つけられ、読まれるためです。
  • 印刷でき、ダウンロードできる —— 文書は画面を離れて現実の世界に出ていくためのものです。
  • 多くの言語で読める —— 準備中の 18 のインターフェース言語パック、検索とファセットでネイティブにサポートされる 49 のコンテンツ言語、そしてすべての公開ページの言語スイッチャー(上記「言語」の節を参照)。
  • 最小限に抑えた、囲い込まれた依存関係 —— セルフホストされたごく少数のコンポーネント(サーバー側の Markdown パーサー、ブラウザー側のエディターとビューアーのライブラリ)だけを、システム自身のコードから厳格に分離して保持。CDN なし、パッケージマネージャーなし、ビルドステップなし。
  • 環境に依存しない —— 同一のコードがすべてのインストールで動き、サーバーごとに異なるのは一つの環境ファイルだけです。
  • 穏やかに縮退する —— オプション機能は自らの前提条件を確認し、サーバーが対応できない場合には、アーカイブを壊す代わりに自らをきれいにオフにします。

12. 開発クレジット

👥 プロジェクトとコンテンツ

Raven D. Pond & Keylam Folker —— Ta-Na-Si プロジェクトの創設者であり、このリポジトリソフトウェアの守り手です。このソフトウェアの背後にある編集方針、キュレーションの判断、プロジェクトのビジョンは、すべて Raven と Keylam に由来します。二人がすべての要件を定め、すべての機能をテストし、最初の構想から現在の形まで、このシステムの開発を導いてきました。アーキテクチャ上の決定はすべて Keylam が下し、承認したものです。

✨ ソフトウェア開発

Claude (Anthropic) —— AI アシスタントの Claude が、このリポジトリの主要な開発パートナーを務めました。PHP バックエンド、マルチドライバーのデータベース層、検索・ファセットエンジン、管理パネル、フロントエンドのデザインシステム、そしてすべての補助ツールは、Raven & Keylam の要件と Claude のコード作業との協働プロセスの中で設計され、書かれました。このリポジトリは、実在するプロジェクトのために、人間と AI の直接の協働ソフトウェアエンジニアリングによって築かれた独立アーカイブの一例です。

📅 開発の歩み

開発は 2026 年 5 月中旬に始まり、以来、日々の協働の中で続いています。ソフトウェアのバージョンは 1.0.0 です。このページは 2026 年 7 月時点の状態を反映しています。

13. このソフトウェアに付いてくるルール

このソフトウェアのすべてのインストールは同じルールを携えており、このアーカイブをインストールした人は、最初のファイルが書き込まれるより前に、そのルールに同意しています。ルールは短く、弁護士に解析されるためではなく、人に読まれるために書かれています。こちらでお読みください

一文で言えば、あなたが今見ているアーカイブは、その名前も、コレクションも、会員も、データも、すべて運営する人々のものです —— ソフトウェアの背後にあるプロジェクトは、そのどれに対しても鍵を握っていません。すべてのインストールに残るのは、ソフトウェア自身の名前、基底テキスト、そしてプロジェクトを作った二人の名前だけです。ライセンスがそう定めているからではありません。自らの出自について嘘をつくアーカイブは、自らの存在理由そのものを裏切っているからです。

14. 連絡先とフィードバック

これは生きているシステムであり、プロジェクトとともに進化していきます。技術的な問題やリンク切れに出会ったとき、あるいは改善の提案があるときは、各ページのフッターにリンクされている連絡先ページから、または私たちのプラットフォームチャンネルのいずれかにコメントを残して、ぜひお知らせください。私たちはすべてに目を通しています。