OTM-JSON

ページ名:OTM-JSON

OTM-JSON(OneToMany-JSON)は、スライム氏などによって考え出された人工言語辞書のデータ形式。

標準的な OTM-JSON はトップレベルに words 属性をもち、これは単語 1 つに相当するオブジェクト(word)の配列である。word オブジェクトは次の属性をもつ:

  • entry : id(項目 ID)と form(見出し語)の属性をもつオブジェクト。
  • translations : title(品詞)と forms(訳語の配列)の属性をもつオブジェクトの配列。
  • tags : タグの配列。
  • contents : title(記述タイトル(注釈や語法など))と text(記述内容)の属性をもつオブジェクトの配列。OTM-JSON では自由記述はここに書かれる。
  • variations : title(変化形名(過去形、未来形など))と form(語形)の属性をもつオブジェクトの配列。
  • relations : title(関係性(同義語、対義語など))と entry(語項目)の属性をもつオブジェクトの配列。

よって、OTM-JSON には、単語オブジェクト、見出し語オブジェクト、翻訳オブジェクト、記述オブジェクト、語形変化オブジェクト、関連語オブジェクトが登場する。

目次

厳密な仕様

この節では、OTM-JSON 形式の厳密な仕様を述べる。以下、 は文字列を表し、 は整数値を表す。また、[] は要素が からなる配列を表す。

整数値は、アプリケーションの予期せぬ動作を防ぐため、-2147483648 以上 2147483647 未満 (符号付き 4 バイト) が望ましい。

バージョンに関わらずトップレベルには version キーが存在し、この値によってバージョンを区別する。後方互換性のため、この version キーは存在しなくてもよく、その場合は version 1 であるとする。

version 1

 ::= { "words": [], "version": 1 // バージョンは1で固定 (互換性のためこのキーはなくても良い)} ::= { "entry": { "id": , // 項目ID (全体の中で一意) "form": // 見出し語 }, "translations": [], "tags": [], // タグの配列 "contents": [], "variations": [], "relations": []} ::= { "title": , // 品詞タグ "forms": [] // 訳語の配列} ::= { "title": , "text": } ::= { "title": , // 変化型の説明 (活用形態など) "form": // 変化形の綴り} ::= { "title": , // 関連語の説明 "entry": { "id": , // 項目ID "form": // 見出し語 }}

の entry キーの値の中の id キーの値は、その JSON ファイル内で重複してはならない。また、 の entry キーの値は、その JSON ファイル内に存在する がもつ entry キーのうちちょうど 1 つと全く同じでなければならない。

トップレベルの には上に記されたキー以外のキーをもつことが許される。これは主に、OTM-JSON 形式を扱うソフトウェアが、独自の設定項目を保存するために使われる。したがって、OTM-JSON 形式の入出力を行うソフトウェアは、読み込んだファイルを編集する際に、そのソフトウェアには必要のない words 以外のキーは変更せずにそのまま出力すべきである。

version 2

 ::= { "words": [], "version": 2}

version 2 の仕様は version 1 と全く同じだが、トップレベルに余分なキーをもつことが許されるのに加え、 内のあらゆるオブジェクトに関しても余分なキーをもつことが許される。これにより、OTM-JSON 形式を扱うソフトウェアが、単語ごとの設定項目などを保存することができる。

拡張

ZpDIC では、 に zpdic というキーを追加して、ZpDIC 内で用いるデータを格納している。zpdic キーの値を と書くことにすれば、その仕様は以下の通りである (ver 1.3.0)。

 ::= { "alphabetOrder" : , // アルファベット順を表す文字列 "plainInformationTitles" : [], // ラベル後に改行しない項目名の配列 "informationTitleOrder" : null | [], // 内容の表示順, 設定しない場合は null "defaultWord" : // 新規作成時のデフォルトデータ}

また、おかゆ氏が作成しているロジバン辞書の OTM-JSON 形式には、meta 属性が追加され、翻訳元/先言語の情報が格納されている。

名称の由来

名称に「OTM」が入っている理由は以下の 2 つである。

  • 一つ目は DB を使うことで一対多のデータを扱うのが楽になる。
  • 一つの形式で、多種多様な言語の表記ができる [1]

対応ソフトウェア

2016 年 11 月現在、OTM-JSON 形式に対応した辞書ソフトに ZpDIC がある。

2020 年 3 月から C# で OTM-JSON 形式を扱うためのライブラリ Otamajakushi がある。

  1. https://twitter.com/slaimsan/status/745087303681355776

外部リンク

https://togetter.com/li/1363644

補稿: CDDLによるスキーマ記述例

RFC8610に基づく。

otm-json = otm-json-1 / otm-json-2otm-json-1 = { "words": [ * word-1 ] "version": 1 * tstr => any}word-1 = { "entry": entry-1 "translations": [ * translation-1 ] "tags": [ * tstr ] "contents": [ * content-1 ] "variations": [ * variation-1 ] "relations": [ * relation-1 ]}entry-1 = { "id": int .size 4 "form": tstr}translation-1 = { "title": tstr "forms": [ * tstr ]}content-1 = { "title": tstr "text": tstr}variation-1 = { "title": tstr "form": tstr}relation-1 = { "title": tstr "entry": entry-1}otm-json-2 = { "words": [ * word-2 ] "version": 2 * tstr => any}word-2 = { "entry": entry-2 "translations": [ * translation-2 ] "tags": [ * tstr ] "contents": [ * content-2 ] "variations": [ * variation-2 ] "relations": [ * relation-2 ] * tstr => any}entry-2 = { "id": int .size 4 "form": tstr * tstr => any}translation-2 = { "title": tstr "forms": [ * tstr ] * tstr => any}content-2 = { "title": tstr "text": tstr * tstr => any}variation-2 = { "title": tstr "form": tstr * tstr => any}relation-2 = { "title": tstr "entry": entry-2 * tstr => any}


特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。

シェアボタン: このページをSNSに投稿するのに便利です。


最近更新されたページ

左メニュー

左メニューサンプル左メニューはヘッダーメニューの【編集】>【左メニューを編集する】をクリックすると編集できます。ご自由に編集してください。掲示板雑談・質問・相談掲示板更新履歴最近のコメントカウン...

黙字

黙字とは、表音文字[1]を使用する言語に於いて、綴られているにもかかわらず発音されない文字のことである。サイレントとも言う。自然言語に於ける黙字自然言語に於いては主に以下のような歴史的な理由で黙字が存...

類型論

言語類型論抱合語孤立語膠着語屈折語総合的言語分析的言語特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。...

音韻論

音韻弁別的素性音素母音子音音節アクセントイントネーション韻律特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。...

音韻規則記述言語

音韻規則記述言語(PRDL; Phonetic Rule Description Language)とは、デネブさんによって提唱された、言語音の条件異音などを簡潔に記述するためのドメイン固有言語である...

音韻

ここでは、自然言語において起こり得る音韻の変化について説明する。目次1 母音関連1.1 母音調和1.2 ウムラウト1.3 アクセントのある音節の母音が変化する2 子音関連2.1 語中の有声音、無声音の...

音声記号の入力方法

芸術言語研究(カテゴリー)芸術言語の創り方・芸術言語の哲学このページの対象言語Se分類芸術言語モユネ分類ART音声記号の入力方法では,各種音声記号を入力する方法について解説する。目次1 文字コード1....

音声学

音声国際音声記号(IPA)国際音声記号への拡張調音調音部位調音方法特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。...

韓国日本語2

通り韓国日本語2.jpg特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。...

韓国日本語

写真の通り韓国日本語.jpg特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。...

集合化造語法

集合化造語法とは、短期間にたくさんの単語を作るための意味を創造する手法である。補完造語法と合わせることでより効果的になる。概要・方法この造語法の流れは以下の二つの手順で意味をあらかじめ考えておく必要が...

限定性と修正性

限定性と修正性は動詞の性質を示す用語である。言語の特徴を探る手掛かりとなる。簡単な内容は表1に記載表 1限定性修正性格の指定未定義文脈依存修飾必須任意抽象度高低限定性動詞に含まれる項が未定義で指定する...

関係方式

関係方式とは、辞書の保存方式の一つである。クノーツアクアにより提唱された。説明この方式では語句に含まれる意味や用法をカード毎に分割し、それらを組み合わせて辞書を作っていく。カードは形式毎に異なる種類の...

関与原理

関与原理(英: relatedness principle)とは、おかゆの発案による、意味役割の標示に関する原理である。関与原理は、関与という意味役割を提示する。これはいわば、あらゆる具体的な意味役割...

遺伝造語法

遺伝造語法とは、カルノス・アクアが考案した造語法の一種である。発端は、生物の遺伝の選択を造語にも生かせないか?というところからである。目次1 方法2 特徴3 用法・用量4 関連記事方法まず、何らかの共...

達丸漢字

写真2枚漢字1.jpg追記ほとんどなさそうです特に記載のない限り、コミュニティのコンテンツはCC BY-SAライセンスの下で利用可能です。...

達丸日本語

達丸日本語.jpgまず最初に達丸日本語から書きはじ‘めます。更新していく予定です 2023 4/1 (土) 21:24 現在 3つあります  googleplay アプリのcloudy で作成中ですま...

造語論

造語論とは、人工言語を制作する際の考え方の一つで、語句を作る際の考え方である。目次1 クノーツ法1.1 題目(テーマ)1.2 対象(ターゲット)1.3 目的(コンセプト)1.3.1 語法(ヴィジョン)...

辞書の読み物性

辞書の読み物性とは人工言語の辞書の読みごたえに関する指標の一つである。本来は "Fafs falira sashimi"氏が2014年に考案し、2015年7月に辞書の情報密度を表す数値として提案した。...

転写

転写とは、ある言語の発音を他の文字体系で表記することである。例えば日本の固有名詞(地名や人名など)をローマ字表記したり、英語圏の固有名詞をカタカナ表記したりすることなどである。あくまでも発音に基づいて...