#dataset #poetry #japan #haiku #literature

santoka

翻译了 Taneda Santoka 的 668 首自由体俳句

3 个稳定版本

1.0.2 2024年4月28日
1.0.1 2024年4月27日

266 in 文本处理

MIT 许可证

1.5MB
1.5K SLoC

TypeScript 1K SLoC // 0.1% comments Svelte 215 SLoC // 0.0% comments Rust 112 SLoC // 0.1% comments JavaScript 24 SLoC // 0.2% comments

Santoka

arukeba kimpouge suwareba kimpouge
if i walk the buttercups if i sit the buttercups

包括 Hiroaki Satō、Scott Watson 和 Cid Corman 等人的优秀翻译,翻译了 Taneda Santōka 的 668 首自由体俳句。

以 JSON 格式提供,方便解析,或在 Leaflet.md 格式提供,以便在如 Obsidian 等Markdown友好的应用程序中查看。

您可以在 lucaaurelia.com/santoka 上探索数据集中的诗歌。

来源

这些诗歌中的许多最初由 Gábor Terebess 为 Terebess Asia Online 编写并数字化。我添加了元数据,如发布网址,并将其转换为易于解析的结构化格式。

诗歌

请参阅 ./poems.json。诗歌以该格式呈现

{
  "id": 68,
  "publicationId": 3,
  "englishText": "Absolutely no cloud I take off my hat",
  "japaneseText": "Mattaku kumo ga nai kasa o nugi"
}

某些诗歌缺少 japaneseText 字段,并可能包含罗马字或假名/汉字。

出版物

请参阅 ./publications.json。出版物以该格式呈现

{
  "id": 12,
  "name": "Santôka",
  "translatorIds": [11, 16],
  "year": 2006,
  "description": "Santôka: A Translation with Photographic Images. Photographs by Hakudô Inoue; book and cover design by Kazuya Takaoka; English text by Emiko Miyashita and Paul Watsky. (PIE Books, Tokyo, 2006). 400 pages",
  "url": "https://thehaikufoundation.org/omeka/items/show/2643",
  "lucaRanking": 5
}
字段 描述
name 这是我尝试识别出版物单个名称的最佳尝试,但由于数据包括个人网页和其他非正式来源,有时需要判断。
translatorIds 这是一个数组,因为有时出版物有多个人员参与英语文本的工作,如上面的例子。只有一个翻译者的出版物(大多数)使用一个元素数组:translatorIds: [8]
year 这是一个数字,或者如果我没有确定出版年份,则为 null
description 这是出版物的文本描述。
url 当我能找到时,这是一个相对权威的出版物 URL。《tt class="src-rs">null 如果我找不到。
lucaRanking 这是一个基于我希望在 lucaaurelia.com/santoka 上显示的位置的主观排名。

翻译者

请参阅 ./translators.json。翻译者格式如下:

{
  "id": 10,
  "name": "Scott Watson"
}

安装

如果你正在使用 Rust,你可以从 crates.io 安装此数据集。

cargo add santoka

示例用法

在大多数语言中解析 JSON 都很简单。以下是一个 JavaScript 示例:

import fs from "fs";

const poemsJson = fs.readFileSync("./santoka/poems.json");
const poems = JSON.parse(poemsJson);
console.log(poems);

如果你正在使用 Rust,则 santoka crate 会为你处理解析。

fn main() {
    let dataset = santoka::Dataset::new();

    for poem in &dataset.poems {
        dbg!(&poem);

        let publication = dataset.publication(poem.publication_id);
        dbg!(&publication);

        let translators = dataset.translators(publication.translator_ids);
        dbg!(&translators);
    }
}

依赖项