スキーマ一覧

⚠️ このオントロジーは現在作成中です。スキーマと説明は予告なく変更される場合があります。

Biblioteka

エンティティ

biblioteka/entity/application_note.json

コンテキスト、コメント、または追加情報のために任意のエンティティに添付されたフリーフォームのノート。

biblioteka/entity/author.json

文学作品を帰属させるために使用される、一人または複数のペルソナに関連付けられた著者のアイデンティティ。

biblioteka/entity/book.json

出版社、年、形式によって識別される文学作品の特定の出版版。通常、contains_work で文学作品に、authored_by で著者に、published_by で出版社にリンクされます。物理的なコピーは exemplar_of でリンクされた book_exemplar エンティティとして追跡されます。

biblioteka/entity/book_exemplar.json

個人図書館のアイテムを表す書籍版の物理的なコピー。exemplar_of で書籍版にリンクされます。画像(表紙、ページ)は has_image で添付されます。保管場所は located_in で追跡されます。複数の exemplar_of 関連は合冊(複数の本が一緒に製本されたもの)を示します。

biblioteka/entity/book_series.json

共通のブランドまたはインプリントのもとで刊行されるオープンエンドのテーマ別叢書(例:ペンギン・クラシックス、ЖЗЛ)。書籍は part_of_series でオプションの seriesNumber とともにリンクされます。一冊の本は複数の叢書に所属できます。出版社は published_by でリンクされます。

biblioteka/entity/book_set.json

複数の書籍を番号付きコレクションにまとめた固定巻数の出版セット(例:全集、多巻版)。個々の巻は volume_of と volumeNumber でリンクされた book エンティティです。出版社は published_by でリンクされます。

biblioteka/entity/ephemera_exemplar.json

個人コレクション内の実物のエフェメラアイテム。ポストカード、グリーティングカード、しおり、新聞の切り抜き、手紙、写真など。実物レベルの収集対象オブジェクトを表します。画像は has_image で添付されます。保管場所は located_in で追跡されます。

biblioteka/entity/literary_work.json

特定の版や翻訳に依存しない抽象的な創作作品。出版された版は contains_work でリンクされた book エンティティとして追跡されます。著者情報は authored_by で persona にリンクして記録されます。

biblioteka/entity/printer.json

書籍の物理的な製造を担当する印刷所。

biblioteka/entity/publisher.json

書籍版の制作を担当する出版社またはインプリント。書籍、書籍セット、叢書は published_by で出版社にリンクされます。

biblioteka/entity/quote.json

ペルソナに帰属するか、文学作品から抽出された注目すべき引用。帰属は attributed_to で記録されます。出典は taken_from または contains_quote で追跡されます。

biblioteka/entity/translated_literary_work.json

文学作品を別の言語に翻訳したもの。originalWorkId フィールドで原作にリンクされます。翻訳者は translated_by でリンクされます。contains_work で書籍に含めることができます。

アソシエーション

biblioteka/association/addressed_to.json

文学作品(左側:手紙または公開の呼びかけ)を、その宛先となる人物または組織(右側:ペルソナ、著者、組織、または出版社)に結び付けます。

biblioteka/association/attributed_to.json

引用(左側)をその推定著者または話者(右側:ペルソナまたは著者)に結び付けます。

biblioteka/association/authored_by.json

創作物(左側:書籍または文学作品)をそれを執筆したペルソナ(右側:著者)に結び付けます。

biblioteka/association/book_has_illustrator.json

書籍版(左側)をイラストを描いたペルソナ(右側:イラストレーター)に結び付けます。

biblioteka/association/contains_comments_by.json

作品(左側:書籍、文学作品、または翻訳文学作品)を解説、序文、または注釈を提供したペルソナ(右側:注釈者)に結び付けます。

biblioteka/association/contains_epigraph.json

作品(左側:書籍、文学作品、または翻訳文学作品)を題辞として使用される引用(右側:引用)に結び付けます。

biblioteka/association/contains_quote.json

作品(左側:書籍、文学作品、または翻訳文学作品)をそのテキスト内で引用された引用(右側:引用)に結び付けます。

biblioteka/association/contains_work.json

書籍版またはブックセット(左側)にそれが収録する文学作品(右側:文学作品または翻訳文学作品)を結び付けます。

biblioteka/association/copyright_held_by.json

文学作品(左側:文学作品または翻訳文学作品)をその著作権を保有する組織(右側:出版社、ペルソナ、または著者)に結び付けます。

biblioteka/association/dedicated_by.json

創作作品(左側:book または literary work)を、それを献呈した人物(右側:persona または author)に結び付ける。

biblioteka/association/dedicated_to.json

創作物(左側:書籍または文学作品)をそれが捧げられた組織(右側:ペルソナ、著者、または文学作品)に結び付けます。

マルチ

biblioteka/multi_association/dedication.json

献辞の出来事:人物Aが人物Bに文学作品を献呈した。最初のサブ関連 (dedicated_by) は作品を献呈者に結び付け、2番目 (dedicated_to) は同じ作品を被献呈者に結び付ける。

  • dedicated_by: literary_work → persona, author
  • dedicated_to: literary_work → persona, author

biblioteka/association/designed_by.json

作品(左側:書籍、文学作品、または翻訳文学作品)をそのビジュアルスタイルを担当したデザイナーまたはアーティスト(右側:ペルソナまたは著者)に結び付けます。

biblioteka/association/edited_by.json

作品(左側:書籍、文学作品、または翻訳文学作品)をその版を担当した編集者(右側:ペルソナまたは著者)に結び付けます。

biblioteka/association/exemplar_of.json

物理的な書籍のコピー(左側:書籍の実物)をその書籍版(右側:書籍)に結び付けます。

biblioteka/association/first_published_in.json

文学作品(左側:文学作品または翻訳文学作品)がそれが初めて掲載された書籍(右側:書籍)に結び付けます。

biblioteka/association/found_with.json

エフェメラ(左側:エフェメラの実物)を、取得時にそれが挿入されていた物理的な書籍(右側:書籍の実物)に結び付けます。一般的な保管や取引の関係よりも具体的です。

biblioteka/association/founder_of.json

ペルソナ(左側:ペルソナまたは著者)を彼らが設立した組織(右側:出版社、印刷所、または会社)に結び付けます。

マルチ

biblioteka/multi_association/gift.json

贈与の出来事:人物Aが人物Bに物を贈った。最初のサブ関連 (gifted_by) はその物を贈り主に結び付け、2番目 (gifted_to) は同じ物を受け取り手に結び付ける。

  • gifted_by: book_exemplar → persona, author
  • gifted_to: book_exemplar → persona, author

biblioteka/association/gifted_by.json

実物の本(左側:book_exemplar)を、それを贈った人物(右側:persona または author)に結び付ける。

biblioteka/association/gifted_to.json

実物の本(左側:book_exemplar)を、それを贈り物として受け取った人物(右側:persona または author)に結び付ける。

biblioteka/association/has_application_note_attached.json

任意のエンティティ(左側)を追加のメタデータまたは注釈を含むアプリケーションノート(右側:アプリケーションノート)に結び付けます。

biblioteka/association/imprint_of.json

出版社のインプリント(左側:出版社)をその親出版社(右側:出版社)に結び付けます。階層的な出版社関係を表します。

biblioteka/association/inscribed_by.json

実物の本(左側:book_exemplar)を、そこに書き入れ、署名、またはマークをした人物(右側:persona または author)に結び付ける。サイン、贈呈の献辞、蔵書票、印章を扱う。

biblioteka/association/inscription_image.json

書き入れを行った人物(左側:persona または author)と、その書き入れを写した写真(右側:image)を結び付ける。同じ画像が他の関連(例えば role が title_page の has_image)に競合なく参加できるようにする。

biblioteka/association/interviewed_by.json

文学作品(左側:文学作品としてのインタビュー)をインタビューを行ったペルソナ(右側:インタビュアーのペルソナまたは著者)に結び付けます。

biblioteka/association/mentions.json

作品(左側:文学作品、映画作品、またはソフトウェア)をその中で言及または引用された任意のエンティティ(右側:人物、他の作品、組織、場所、集落などを含む任意のエンティティタイプ)に結び付けます。

biblioteka/association/part_of_series.json

書籍または書籍セット(左側:版または多巻のセット)を、それが出版されたテーマ別シリーズ(右側:book series)に、任意のシリーズ番号とともに結び付ける。

biblioteka/association/printed_by.json

書籍版(左側:書籍)をその物理的な製造を担当した印刷業者(右側:印刷業者)に結び付けます。

biblioteka/association/published_by.json

書籍版または書籍セット(左側:書籍または書籍セット)をその出版を担当した出版社(右側:出版社)に結び付けます。

biblioteka/association/published_in.json

出版物(左側:書籍または書籍セット)をそれが出版された集落または場所(右側:集落または場所)に結び付けます。

biblioteka/association/reprint_of.json

ある書籍版(左側)を、その元となった、または再版・派生のもととなる以前の書籍版(右側)に結び付ける。再版、後刷り版、その他の派生版を扱う。

biblioteka/association/sequel_of.json

文学作品(左側:続編)をそれが続く文学作品(右側:前作)に結び付けます。シリーズの順序を表します。

biblioteka/association/taken_from.json

引用(左側)をそれが抜粋された文学作品(右側:文学作品または翻訳文学作品)に結び付けます。

biblioteka/association/takes_place_in.json

創作物(左側:文学作品または翻訳文学作品)をアクションが発生する地理的場所(右側:集落または場所)に結び付けます。

biblioteka/association/translated_by.json

作品(左側:書籍、文学作品、または翻訳文学作品)をその翻訳を担当した翻訳者(右側:ペルソナまたは著者)に結び付けます。

biblioteka/association/translation_of.json

翻訳文学作品(左側:翻訳文学作品)を、その翻訳元となった原作の文学作品(右側:文学作品)に結び付けます。

biblioteka/association/volume_of.json

本(左側:個々の巻)を、それが属する多巻のセット(右側:book set)に巻番号とともに結び付ける。

Business

エンティティ

business/entity/company.json

商業または工業の企業。

アソシエーション

business/association/competed_against.json

競争や試合における二つのエンティティを結び付けます(左右両側は交換可能:ペルソナ、ソフトウェア、会社、または組織)。例にはチェスの試合、ビジネス上の競争、またはスポーツの競技が含まれます。

business/association/headquartered_in.json

企業(左側)をその本社が所在する集落または場所(右側:集落または場所)に結び付けます。

business/association/incorporated_in.json

企業(左側)をそれが法的に設立または登録されている州または管轄区域(右側:州)に結び付けます。

Geography

エンティティ

geography/entity/place.json

集落でない名前のある地理的な場所。

geography/entity/settlement.json

都市、町、または村などの居住地。

アソシエーション

geography/association/located_in.json

エンティティ(左側:場所、集落、組織、書籍の実物、エフェメラの実物、または保管場所)をそれが位置する場所(右側:集落、州、または保管場所)に結び付けます。

Library

エンティティ

library/entity/storage_location.json

書籍の実物が保管される物理的な場所で、階層的な入れ子構造に対応(棚、書棚、部屋、住居)。書籍実物は located_in でリンクされます。階層は保管場所間の located_in で構築されます(推移的)。located_in で settlement にリンクすることで地理的階層に接続できます。

Media

エンティティ

media/entity/image.json

記述的なメタデータを持つバイナリ画像ファイルを表す画像エンティティ。

アソシエーション

media/association/has_image.json

任意のエンティティ(左側)をそれに関連付けられた画像(右側:画像)に結び付け、画像の目的(例:表紙、肖像)を指定するロールを持ちます。

media/association/primary_image.json

任意のエンティティ(左側)の主要なビジュアル表現として1つの画像(右側:画像)を指定するユーザーの明示的な選択を記録します。各エンティティにつき primary_image 関連付けは最大1つまで許可されます。これはユーザーが選択した表示設定であり、エンティティや画像自体の固有の属性ではありません。参照される画像は、同じエンティティとの has_image 関連付けも持っている必要があります。

People

エンティティ

people/entity/persona.json

伝記的な属性を持つ、史料で確認された、実在が議論されている、伝承上の、または架空の人物。通常、authored_by で著者として、translated_by で翻訳者として、edited_by で編集者としてリンクされます。出生地と死亡地は born_in_settlement/born_in_state および died_in_settlement/died_in_state で記録されます。

アソシエーション

people/association/born_in_settlement.json

ペルソナ(左側)を彼らが生まれた集落または都市(右側:集落)に結び付けます。

people/association/born_in_state.json

ペルソナ(左側)を彼らが生まれた州または国(右側:州)に結び付けます。

people/association/coauthor_of.json

共著関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。

people/association/died_in_settlement.json

ペルソナ(左側)を彼らが亡くなった集落または都市(右側:集落)に結び付けます。

people/association/died_in_state.json

ペルソナ(左側)を彼らが亡くなった州または国(右側:州)に結び付けます。

people/association/friend_of.json

友情関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。

people/association/title_granted_by.json

ペルソナ(左側)に称号、学位、または栄誉を授与した組織または州(右側:組織または州)に結び付けます。

people/association/interviewer_of.json

インタビュアーのペルソナ(左側)を彼らがインタビューした回答者のペルソナ(右側:ペルソナ)に結び付けます。

people/association/lived_in.json

ペルソナ(左側)を彼らが居住した集落または場所(右側:集落または場所)に結び付けます。

people/association/parent_of.json

親のペルソナ(左側)を子供のペルソナ(右側:ペルソナ)に結び付けます。

people/association/relative_of.json

一般的な家族関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。

people/association/resided_in_state.json

ペルソナ(左側)を一定期間居住した州または国(右側:州)に結び付けます。

people/association/romantic_relationship_with.json

恋愛関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。

people/association/spouse_of.json

婚姻関係にある二つのペルソナを結び付けます(左右両側は交換可能:ペルソナ)。

people/association/worked_for.json

ペルソナ(左側)を彼らが働いていたペルソナまたは組織(右側:ペルソナまたは組織)に結び付けます。

Performing_arts

エンティティ

performing_arts/entity/cinematic_work.json

映画、ドキュメンタリー、またはその他の動画作品。

performing_arts/entity/performance.json

一回の公演またはイベント——特定の会場で特定の日時に、特定のキャストで行われるもの。

performing_arts/entity/production.json

特定の演出家、劇団、またはフェスティバルによる、特定のシーズン内での舞台作品の具体的な演出。

performing_arts/entity/stage_work.json

舞台芸術のための抽象的な作品——オペラ、バレエ、演劇、またはミュージカル——特定の演出や公演とは独立したもの。

アソシエーション

performing_arts/association/based_on.json

舞台作品または映画作品(左側)をそれが基づく文学作品(右側:文学作品)に結び付けます。

performing_arts/association/choreographed_by.json

舞台作品またはプロダクション(左側)をその振付家(右側:ペルソナ)に結び付けます。

performing_arts/association/composed_by.json

舞台作品(左側)をその作曲家(右側:ペルソナ)に結び付けます。

performing_arts/association/directed_by.json

映画作品または舞台演出(左側)をその監督(右側:ペルソナ)に結び付けます。

performing_arts/association/features_performer.json

公演(左側)をそれに参加した演奏者(右側:ペルソナ)に結び付け、オプションで役柄や楽器/声種の詳細を含みます。

performing_arts/association/instance_of_production.json

公演(左側)をそれが属するプロダクション(右側:プロダクション)に結び付けます。

performing_arts/association/libretto_by.json

舞台作品(左側)をその台本作家(右側:ペルソナ)に結び付けます。

performing_arts/association/performed_at.json

公演(左側)をそれが行われた会場(右側:場所または組織)に結び付けます。

performing_arts/association/produced_by.json

プロダクション(左側)をそれを制作した組織(右側:組織)に結び付けます。

performing_arts/association/staging_of.json

プロダクション(左側)をそれが実現する舞台作品(右側:舞台作品)に結び付けます。

Reader

エンティティ

reader/entity/reader_persona.json

読書履歴と好みを追跡するために使用される読者自身のペルソナ。

reader/entity/user_list.json

ユーザーが作成・命名した任意のエンティティのリスト(例:購入予定図書の「Desiderata」リスト、「2026 年読書プロジェクト」、「N からの推薦」コレクション、訪問したい書店リストなど)。項目はリスト種別ごとのサブタイプスキーマで追加されます(ファイル `_list_contains_v1.json`;`associationType` 判別子の値 `_list_contains`)。項目として許容されるエンティティ型のセットはサブタイプに依存します — 例:`reading_project` は rightSide を book / literary_work / translated_literary_work に制限し、`desiderata` は任意のエンティティ型を許容します。任意で読者ペルソナに所有されます。

アソシエーション

reader/association/custom_list_contains.json

ユーザー定義の custom 型 user_list(左側:listType='custom' の user_list)を、それが含む任意の項目(右側:任意のエンティティ型)に結び付けます。事前定義された listType に該当しない場合のための汎用ステートマシン(pending、done、abandoned)を保持します。任意の優先度フラグと、親 user_list が順序付けされている場合の任意の 1 起算位置をサポートします。

reader/association/desiderata_list_contains.json

desiderata 型の user_list(左側:listType='desiderata' の user_list)を、それが含む任意の項目(右側:任意のエンティティ型、例:書籍、文学作品、ペルソナ)に結び付けます。デシダラタムの取得状態(pending、found、abandoned)、取得日、ユーザーが最初に見つけたい項目を強調する任意の優先度フラグを保持します。

reader/association/reading_project_list_contains.json

読書プロジェクトの user_list(左側:listType='reading_project' の user_list)を、それが含む作品(右側:book、literary_work、または translated_literary_work)に結び付けます。リストへの所属と、その作品のリスト文脈における読書状態の両方を保持します — reads_v1 と同じ status enum と日付フィールド(to_read、reading、finished、abandoned)。作品が読書プロジェクトリストに含まれている場合、このレコードは「リスト内」と「読書状態」の両方の統合された真実の出所であり、その交差に対して別途 reads_v1 レコードは必要ありません。

reader/association/reads.json

読者のペルソナ(左側:読者のペルソナ)を読書体験を表す創作物(右側:書籍、文学作品、または翻訳文学作品)に結び付けます。

reader/association/recommendations_list_contains.json

recommendations 型の user_list(左側:listType='recommendations' の user_list)を、それが含む任意の項目(右側:任意のエンティティ型)に結び付けます。ユーザーが推薦に対応したかを追跡します:pending、followed_up、または dismissed;任意で対応日を記録します。

reader/association/reference_list_contains.json

reference 型の user_list(左側:listType='reference' の user_list)を、それが含む任意の項目(右側:任意のエンティティ型、例:ペルソナ、文学作品、集落)に結び付けます。参照リストは研究から得られた分析的なグループ化です(例:「Empire Must Die で言及された著者」);項目は含まれるか含まれないかであるため、このサブタイプには status フィールドがありません。任意の position フィールドはソース内の正規の順序(例:言及順)を記録します。

reader/association/wishlist_list_contains.json

wishlist 型の user_list(左側:listType='wishlist' の user_list)を、それが含む任意の取得不可能なターゲット(右側:場所、集落、組織、公演など)に結び付けます。ターゲットが訪問または体験されたかを追跡し(pending、visited、abandoned)、任意で訪問日を記録し、必須項目用の任意の優先度フラグと、wishlist が意図的に順序付けされている場合の任意の 1 起算位置をサポートします。

Social

エンティティ

social/entity/organization.json

正式な組織、機関、またはグループ。

social/entity/state.json

国、帝国、または自治領などの政治的実体。

Software

エンティティ

software/entity/software.json

ソフトウェアアプリケーション、ツール、ビデオゲーム、またはウェブサービス。

アソシエーション

software/association/developed_by.json

ソフトウェア作品(左側:ソフトウェア)をその開発者(右側:ペルソナ、会社、または組織)に結び付けます。

バリデーション

JSON Schema バリデーション

各データレコードにはスキーマ 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