データを使う

narrativist.org のデータベースは、サイト上の表示と同じ内容を機械可読な JSON として公開している。 登録も鍵も要らない。物語の系譜を扱う研究・制作・教育のために、そのまま読み込んで使うことができる。

6つのファイル

すべて https://narrativist.org/data/ の直下に置かれている。 文字コードは UTF-8、日本語はエスケープしていない。

ファイル種類ID接頭辞件数主なフィールド
narratives.json物語NAR104発生年代・発生地域・中核テキスト・中核概念・伝播経路・信奉者規模・対抗物語・現代への影響
thinkers.json思想家THK48生没年・活動地域・関与した物語・主要テキスト・役割
texts.jsonテキストTXT44成立年代・成立地域・運ぶ物語・種別・原語
regions.json地域/文明圏REG17種別・対応する現代地域・上位地域
concepts.json概念CON49定義・構成する物語・対概念
relations.json関係REL173種別(派生/対立/習合/輸入翻訳)・起点・終点・成立年代・説明・根拠

構造

どのファイルも items(レコードの配列)と names(ID から名称への辞書)の2つのキーを持つ。 レコード間の参照は ID の配列で表され、名称は names で引く。

{
  "items": [
    {
      "id": "NAR-0001",
      "name": "一神教(アブラハム系)",
      "name_en": "Abrahamic Monotheism",
      "category": "宗教",
      "era_display": "前13世紀〜前6世紀(唯一神信仰の成立期。諸説あり)",
      "era_year": -1200,
      "confidence": "B",
      "confidence_label": "有力だが異説あり",
      "region_ids": ["REG-0001", "REG-0002"],
      "core_concept_ids": ["CON-0001", "CON-0002", "CON-0005"],
      ...
    }
  ],
  "names": { "NAR-0001": "一神教(アブラハム系)", "REG-0001": "メソポタミア", ... }
}

ID の読み方

ID は 接頭辞-4桁 の形式で、発行後は変更しない。名称が変わっても ID は同じものを指し続け、 削除されたレコードの ID は再利用しない。つまり ID は安定した参照先として使える。

各レコードのページは https://narrativist.org/db/{ID}.html にある。 例:/db/NAR-0001.html

確度について

全レコードに確度が付いている。A は学術的定説、B は有力だが異説あり、 C は要検証である。公開データに含まれるのは A と B のみで、C は出力されない。 確度 B のレコードには、どの点に異説があるかを本文に明記している。

年代は表示用の era_display(「前13世紀〜前6世紀(諸説あり)」のような文字列)と、 ソート用の era_year(西暦。紀元前は負数)の2つを持つ。 後者は比較のための代表値であり、それ自体が確定した年代を主張するものではない。

使い方

系統樹の親子関係をたどる例。

# Python
import json, urllib.request

def load(name):
    url = f"https://narrativist.org/data/{name}.json"
    return json.loads(urllib.request.urlopen(url).read())

rel = load("relations")
names = rel["names"]

# キリスト教から派生した物語を列挙する
for e in rel["items"]:
    if e["type"] == "派生" and e["from_id"] == "NAR-0027":
        print(names[e["to_id"]], "/", e["era_display"])
// JavaScript
const rel = await fetch("https://narrativist.org/data/relations.json").then(r => r.json());

// 習合(複数の物語が1つに合流した関係)だけを取り出す
const syncretic = rel.items.filter(e => e.type === "習合");
console.log(syncretic.length);

引用のしかた

レコードを引用する場合は、ID を併記していただきたい。ID は不変なので、名称や記述が更新されても参照先が特定できる。

ナラティビスト編集部「一神教(アブラハム系)」narrativist.org 物語データベース、
NAR-0001、https://narrativist.org/db/NAR-0001.html(参照日)

データは編集途上であり、記述の更新・確度の改訂・レコードの追加が継続的に行われる。 参照日を明記していただけると、どの時点の記述かが後から確認できる。

再利用の条件

出典を明記したうえでの引用・研究利用・教育利用は歓迎する。 大規模な複製や再配布の条件については、正式なライセンスを準備中である。 現時点で判断がつかない用途については、公開している内容の範囲を超えない形での利用をお願いしたい。

安定性について

現在このデータには版番号が付いていない。ファイルの場所とキーの構造、そして ID の不変性は維持するが、 フィールドの追加や記述の更新は予告なく行われる。継続的に利用する場合は、 取得したデータを手元に保存し、必要なタイミングで更新することを勧める。