ApplicationNote
biblioteka/entity/application_note.jsonコンテキスト、コメント、または追加情報のために任意のエンティティに添付されたフリーフォームのノート。
コンテキスト、コメント、または追加情報のために任意のエンティティに添付されたフリーフォームのノート。
文学作品を帰属させるために使用される、一人または複数のペルソナに関連付けられた著者のアイデンティティ。
出版社、年、形式によって識別される文学作品の特定の出版版。通常、contains_work で文学作品に、authored_by で著者に、published_by で出版社にリンクされます。物理的なコピーは exemplar_of でリンクされた book_exemplar エンティティとして追跡されます。
個人図書館のアイテムを表す書籍版の物理的なコピー。exemplar_of で書籍版にリンクされます。画像(表紙、ページ)は has_image で添付されます。保管場所は located_in で追跡されます。複数の exemplar_of 関連は合冊(複数の本が一緒に製本されたもの)を示します。
共通のブランドまたはインプリントのもとで刊行されるオープンエンドのテーマ別叢書(例:ペンギン・クラシックス、ЖЗЛ)。書籍は part_of_series でオプションの seriesNumber とともにリンクされます。一冊の本は複数の叢書に所属できます。出版社は published_by でリンクされます。
複数の書籍を番号付きコレクションにまとめた固定巻数の出版セット(例:全集、多巻版)。個々の巻は volume_of と volumeNumber でリンクされた book エンティティです。出版社は published_by でリンクされます。
個人コレクション内の実物のエフェメラアイテム。ポストカード、グリーティングカード、しおり、新聞の切り抜き、手紙、写真など。実物レベルの収集対象オブジェクトを表します。画像は has_image で添付されます。保管場所は located_in で追跡されます。
特定の版や翻訳に依存しない抽象的な創作作品。出版された版は contains_work でリンクされた book エンティティとして追跡されます。著者情報は authored_by で persona にリンクして記録されます。
書籍の物理的な製造を担当する印刷所。
書籍版の制作を担当する出版社またはインプリント。書籍、書籍セット、叢書は published_by で出版社にリンクされます。
ペルソナに帰属するか、文学作品から抽出された注目すべき引用。帰属は attributed_to で記録されます。出典は taken_from または contains_quote で追跡されます。
文学作品を別の言語に翻訳したもの。originalWorkId フィールドで原作にリンクされます。翻訳者は translated_by でリンクされます。contains_work で書籍に含めることができます。
文学作品(左側:手紙または公開の呼びかけ)を、その宛先となる人物または組織(右側:ペルソナ、著者、組織、または出版社)に結び付けます。
引用(左側)をその推定著者または話者(右側:ペルソナまたは著者)に結び付けます。
創作物(左側:書籍または文学作品)をそれを執筆したペルソナ(右側:著者)に結び付けます。
書籍版(左側)をイラストを描いたペルソナ(右側:イラストレーター)に結び付けます。
作品(左側:書籍、文学作品、または翻訳文学作品)を解説、序文、または注釈を提供したペルソナ(右側:注釈者)に結び付けます。
作品(左側:書籍、文学作品、または翻訳文学作品)を題辞として使用される引用(右側:引用)に結び付けます。
作品(左側:書籍、文学作品、または翻訳文学作品)をそのテキスト内で引用された引用(右側:引用)に結び付けます。
書籍版またはブックセット(左側)にそれが収録する文学作品(右側:文学作品または翻訳文学作品)を結び付けます。
文学作品(左側:文学作品または翻訳文学作品)をその著作権を保有する組織(右側:出版社、ペルソナ、または著者)に結び付けます。
創作作品(左側:book または literary work)を、それを献呈した人物(右側:persona または author)に結び付ける。
創作物(左側:書籍または文学作品)をそれが捧げられた組織(右側:ペルソナ、著者、または文学作品)に結び付けます。
献辞の出来事:人物Aが人物Bに文学作品を献呈した。最初のサブ関連 (dedicated_by) は作品を献呈者に結び付け、2番目 (dedicated_to) は同じ作品を被献呈者に結び付ける。
dedicated_by: literary_work → persona, authordedicated_to: literary_work → persona, author作品(左側:書籍、文学作品、または翻訳文学作品)をそのビジュアルスタイルを担当したデザイナーまたはアーティスト(右側:ペルソナまたは著者)に結び付けます。
作品(左側:書籍、文学作品、または翻訳文学作品)をその版を担当した編集者(右側:ペルソナまたは著者)に結び付けます。
物理的な書籍のコピー(左側:書籍の実物)をその書籍版(右側:書籍)に結び付けます。
文学作品(左側:文学作品または翻訳文学作品)がそれが初めて掲載された書籍(右側:書籍)に結び付けます。
エフェメラ(左側:エフェメラの実物)を、取得時にそれが挿入されていた物理的な書籍(右側:書籍の実物)に結び付けます。一般的な保管や取引の関係よりも具体的です。
ペルソナ(左側:ペルソナまたは著者)を彼らが設立した組織(右側:出版社、印刷所、または会社)に結び付けます。
贈与の出来事:人物Aが人物Bに物を贈った。最初のサブ関連 (gifted_by) はその物を贈り主に結び付け、2番目 (gifted_to) は同じ物を受け取り手に結び付ける。
gifted_by: book_exemplar → persona, authorgifted_to: book_exemplar → persona, author実物の本(左側:book_exemplar)を、それを贈った人物(右側:persona または author)に結び付ける。
実物の本(左側:book_exemplar)を、それを贈り物として受け取った人物(右側:persona または author)に結び付ける。
任意のエンティティ(左側)を追加のメタデータまたは注釈を含むアプリケーションノート(右側:アプリケーションノート)に結び付けます。
出版社のインプリント(左側:出版社)をその親出版社(右側:出版社)に結び付けます。階層的な出版社関係を表します。
実物の本(左側:book_exemplar)を、そこに書き入れ、署名、またはマークをした人物(右側:persona または author)に結び付ける。サイン、贈呈の献辞、蔵書票、印章を扱う。
書き入れを行った人物(左側:persona または author)と、その書き入れを写した写真(右側:image)を結び付ける。同じ画像が他の関連(例えば role が title_page の has_image)に競合なく参加できるようにする。
文学作品(左側:文学作品としてのインタビュー)をインタビューを行ったペルソナ(右側:インタビュアーのペルソナまたは著者)に結び付けます。
作品(左側:文学作品、映画作品、またはソフトウェア)をその中で言及または引用された任意のエンティティ(右側:人物、他の作品、組織、場所、集落などを含む任意のエンティティタイプ)に結び付けます。
書籍または書籍セット(左側:版または多巻のセット)を、それが出版されたテーマ別シリーズ(右側:book series)に、任意のシリーズ番号とともに結び付ける。
書籍版(左側:書籍)をその物理的な製造を担当した印刷業者(右側:印刷業者)に結び付けます。
書籍版または書籍セット(左側:書籍または書籍セット)をその出版を担当した出版社(右側:出版社)に結び付けます。
出版物(左側:書籍または書籍セット)をそれが出版された集落または場所(右側:集落または場所)に結び付けます。
ある書籍版(左側)を、その元となった、または再版・派生のもととなる以前の書籍版(右側)に結び付ける。再版、後刷り版、その他の派生版を扱う。
文学作品(左側:続編)をそれが続く文学作品(右側:前作)に結び付けます。シリーズの順序を表します。
引用(左側)をそれが抜粋された文学作品(右側:文学作品または翻訳文学作品)に結び付けます。
創作物(左側:文学作品または翻訳文学作品)をアクションが発生する地理的場所(右側:集落または場所)に結び付けます。
作品(左側:書籍、文学作品、または翻訳文学作品)をその翻訳を担当した翻訳者(右側:ペルソナまたは著者)に結び付けます。
翻訳文学作品(左側:翻訳文学作品)を、その翻訳元となった原作の文学作品(右側:文学作品)に結び付けます。
本(左側:個々の巻)を、それが属する多巻のセット(右側:book set)に巻番号とともに結び付ける。
商業または工業の企業。
競争や試合における二つのエンティティを結び付けます(左右両側は交換可能:ペルソナ、ソフトウェア、会社、または組織)。例にはチェスの試合、ビジネス上の競争、またはスポーツの競技が含まれます。
企業(左側)をその本社が所在する集落または場所(右側:集落または場所)に結び付けます。
企業(左側)をそれが法的に設立または登録されている州または管轄区域(右側:州)に結び付けます。
集落でない名前のある地理的な場所。
都市、町、または村などの居住地。
エンティティ(左側:場所、集落、組織、書籍の実物、エフェメラの実物、または保管場所)をそれが位置する場所(右側:集落、州、または保管場所)に結び付けます。
書籍の実物が保管される物理的な場所で、階層的な入れ子構造に対応(棚、書棚、部屋、住居)。書籍実物は located_in でリンクされます。階層は保管場所間の located_in で構築されます(推移的)。located_in で settlement にリンクすることで地理的階層に接続できます。
記述的なメタデータを持つバイナリ画像ファイルを表す画像エンティティ。
任意のエンティティ(左側)をそれに関連付けられた画像(右側:画像)に結び付け、画像の目的(例:表紙、肖像)を指定するロールを持ちます。
任意のエンティティ(左側)の主要なビジュアル表現として1つの画像(右側:画像)を指定するユーザーの明示的な選択を記録します。各エンティティにつき primary_image 関連付けは最大1つまで許可されます。これはユーザーが選択した表示設定であり、エンティティや画像自体の固有の属性ではありません。参照される画像は、同じエンティティとの has_image 関連付けも持っている必要があります。
伝記的な属性を持つ、史料で確認された、実在が議論されている、伝承上の、または架空の人物。通常、authored_by で著者として、translated_by で翻訳者として、edited_by で編集者としてリンクされます。出生地と死亡地は born_in_settlement/born_in_state および died_in_settlement/died_in_state で記録されます。
ペルソナ(左側)を彼らが生まれた集落または都市(右側:集落)に結び付けます。
ペルソナ(左側)を彼らが生まれた州または国(右側:州)に結び付けます。
共著関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。
ペルソナ(左側)を彼らが亡くなった集落または都市(右側:集落)に結び付けます。
ペルソナ(左側)を彼らが亡くなった州または国(右側:州)に結び付けます。
友情関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。
ペルソナ(左側)に称号、学位、または栄誉を授与した組織または州(右側:組織または州)に結び付けます。
インタビュアーのペルソナ(左側)を彼らがインタビューした回答者のペルソナ(右側:ペルソナ)に結び付けます。
ペルソナ(左側)を彼らが居住した集落または場所(右側:集落または場所)に結び付けます。
親のペルソナ(左側)を子供のペルソナ(右側:ペルソナ)に結び付けます。
一般的な家族関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。
ペルソナ(左側)を一定期間居住した州または国(右側:州)に結び付けます。
恋愛関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。
婚姻関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。
ペルソナ(左側)を彼らが働いていたペルソナまたは組織(右側:ペルソナまたは組織)に結び付けます。
映画、ドキュメンタリー、またはその他の動画作品。
一回の公演またはイベント——特定の会場で特定の日時に、特定のキャストで行われるもの。
特定の演出家、劇団、またはフェスティバルによる、特定のシーズン内での舞台作品の具体的な演出。
舞台芸術のための抽象的な作品——オペラ、バレエ、演劇、またはミュージカル——特定の演出や公演とは独立したもの。
舞台作品または映画作品(左側)をそれが基づく文学作品(右側:文学作品)に結び付けます。
舞台作品またはプロダクション(左側)をその振付家(右側:ペルソナ)に結び付けます。
舞台作品(左側)をその作曲家(右側:ペルソナ)に結び付けます。
映画作品または舞台演出(左側)をその監督(右側:ペルソナ)に結び付けます。
公演(左側)をそれに参加した演奏者(右側:ペルソナ)に結び付け、オプションで役柄や楽器/声種の詳細を含みます。
公演(左側)をそれが属するプロダクション(右側:プロダクション)に結び付けます。
舞台作品(左側)をその台本作家(右側:ペルソナ)に結び付けます。
公演(左側)をそれが行われた会場(右側:場所または組織)に結び付けます。
プロダクション(左側)をそれを制作した組織(右側:組織)に結び付けます。
プロダクション(左側)をそれが実現する舞台作品(右側:舞台作品)に結び付けます。
読書履歴と好みを追跡するために使用される読者自身のペルソナ。
ユーザーが作成・命名した任意のエンティティのリスト(例:購入予定図書の「Desiderata」リスト、「2026 年読書プロジェクト」、「N からの推薦」コレクション、訪問したい書店リストなど)。項目はリスト種別ごとのサブタイプスキーマで追加されます(ファイル `
ユーザー定義の custom 型 user_list(左側:listType='custom' の user_list)を、それが含む任意の項目(右側:任意のエンティティ型)に結び付けます。事前定義された listType に該当しない場合のための汎用ステートマシン(pending、done、abandoned)を保持します。任意の優先度フラグと、親 user_list が順序付けされている場合の任意の 1 起算位置をサポートします。
desiderata 型の user_list(左側:listType='desiderata' の user_list)を、それが含む任意の項目(右側:任意のエンティティ型、例:書籍、文学作品、ペルソナ)に結び付けます。デシダラタムの取得状態(pending、found、abandoned)、取得日、ユーザーが最初に見つけたい項目を強調する任意の優先度フラグを保持します。
読書プロジェクトの user_list(左側:listType='reading_project' の user_list)を、それが含む作品(右側:book、literary_work、または translated_literary_work)に結び付けます。リストへの所属と、その作品のリスト文脈における読書状態の両方を保持します — reads_v1 と同じ status enum と日付フィールド(to_read、reading、finished、abandoned)。作品が読書プロジェクトリストに含まれている場合、このレコードは「リスト内」と「読書状態」の両方の統合された真実の出所であり、その交差に対して別途 reads_v1 レコードは必要ありません。
読者のペルソナ(左側:読者のペルソナ)を読書体験を表す創作物(右側:書籍、文学作品、または翻訳文学作品)に結び付けます。
recommendations 型の user_list(左側:listType='recommendations' の user_list)を、それが含む任意の項目(右側:任意のエンティティ型)に結び付けます。ユーザーが推薦に対応したかを追跡します:pending、followed_up、または dismissed;任意で対応日を記録します。
reference 型の user_list(左側:listType='reference' の user_list)を、それが含む任意の項目(右側:任意のエンティティ型、例:ペルソナ、文学作品、集落)に結び付けます。参照リストは研究から得られた分析的なグループ化です(例:「Empire Must Die で言及された著者」);項目は含まれるか含まれないかであるため、このサブタイプには status フィールドがありません。任意の position フィールドはソース内の正規の順序(例:言及順)を記録します。
wishlist 型の user_list(左側:listType='wishlist' の user_list)を、それが含む任意の取得不可能なターゲット(右側:場所、集落、組織、公演など)に結び付けます。ターゲットが訪問または体験されたかを追跡し(pending、visited、abandoned)、任意で訪問日を記録し、必須項目用の任意の優先度フラグと、wishlist が意図的に順序付けされている場合の任意の 1 起算位置をサポートします。
正式な組織、機関、またはグループ。
国、帝国、または自治領などの政治的実体。
ソフトウェアアプリケーション、ツール、ビデオゲーム、またはウェブサービス。
ソフトウェア作品(左側:ソフトウェア)をその開発者(右側:ペルソナ、会社、または組織)に結び付けます。
各データレコードにはスキーマ URL を指す $schema フィールドがあります。JSON Schema 2020-12 対応の任意のツールでレコードがスキーマに準拠しているか検証できます。例えば、ajv-cli(Node.js)を使用:
npm install -g ajv-cli ajv-formats
ajv validate -s https://public-schema.com/biblioteka/entity/book.json -d record.json
JSON Schema バリデーションは構造と型を検証しますが、すべてのビジネスルールを強制することはできません。以下の Deno スクリプトは、JSON Schema の範囲を超えた制約を検証します——例えば ISBN/ISNI チェックサム、名前配列の整合性、マルチアソシエーションの連結グラフ要件など。
スクリプトは stdin から JSON を読み取り、エラーを stderr に出力します。ゼロ権限モード:
cat record.json | deno run https://public-schema.com/dist/validate.ts
Deno はリモートスクリプトを積極的にキャッシュします。--allow-net=public-schema.com を追加して、キャッシュされたハッシュを公開バージョンと照合できるようにしてください:
cat record.json | deno run --allow-net=public-schema.com https://public-schema.com/dist/validate.ts
キャッシュされたコピーが古い場合、スクリプトはコード 2 で終了します。次のコマンドで更新してください:
deno cache --reload https://public-schema.com/dist/validate.ts