Ver.2006-06-14

MML-light では、マシーンや通信、人間に対し軽くするため、 XML ではなく Javascript などで利用される JSON の書式を採用している。 ただし、視認性を高めるため key と value の間をつなぐ記号は「:」ではなく plist 形式の「=」を採用した (ここはオリジナルに添うべきか否か議論を待ちたい)。

なお JSON の記法を XML に変換することは 極めて容易で、 ローカルなシステム中では XML で記述しても構わない。

key(属性名) と、それに対する value(値)との組み合わせからなる

key = value

value は以下のように、オブジェクトの「入れ子構造」として扱える

"連絡先" = {

"住所" = {

"郵便番号" = "142-0012",

"都道府県" = "東京都",

"市区町村" = "品川区",

"町村" = "荏原",

"番地ほか" = "1-1-1-1208",

}

"電話" = {

"職場" = [ "03-1111-2222", "03-1111-2223" ],

"自宅" = "03-3333-4444",

"携帯" = "090-5555-6666",

}

};

配列は、オブジェクトを [ ] でくくることにより表現される

"色" = ["赤", "黄", "緑"]

" " でくくられた範囲外の空白や改行は、無視される。

MML light で独自に拡張したもの

    1. name space の採用

      1. name space を使う必要性はまだ明らかでないが、 ひとまず MML にならい key(属性名・タグ名)には name space を採用し、 単一の名称 mmll: (MML light) を使う構造とした。 MML タグそのままを使うことも考えたが、 そうなると構造も MML を踏襲せざるを得ず 「MML の簡素化」という目的を達成できないためである。

      2. なるべく構造をシンプルにし 「システムにも人にも優しく」 「データを渡すパッケージ」としての実用性を高めたい。 他の世界とは「相互変換のための参照テーブルを使って data mapping を行う」のが現実的な解決法と考えている (少なくとも現実世界で、人間はそうしてコミュニケーションしている)。

      3. そうやって 長年の間に自然と共通言語が生まれてくるのであろう。

                  1. 属性の継承 (Object 指向に対応)

                  2. creator.person のように記述されていれば、 これは person のサブクラス であることを示し、 上位クラス person の属性を継承する。

                  3. サブクラス内で属性を再定義すれば、そちらが優先される。

                  4. name space も継承することができる。 object 内で使われる key の name space が省略されていても、 親の key で使われた name space を継承する。 子の key に異なる name space が付されていれば、 そちらが優先される。

                  5. mmll:id = {

                  6. value = "1304000000077", // id そのもの

                  7. type = "facility"@"MML0024" // ? id のタイプ

                  8. };

                  9. 上の例において、value や type は mmll という name space を継承しているものと解釈される。

                  10. 複数 value の記述 (Ontology に対応)

                  11. 以下のように同じ値を並列表記できるようにした。 「|」で区切られた値のどれかひとつを解釈できれば良いという考えである。 厳密性を求める面から議論もあろうが 「異なるシステムからの認識性が高まる」ため、 実用性で勝ると考える。

                  12. "性別" = "男" | "男性" | "male"

                  13. 上の手法はあくまでも簡単に済ませられる場合で、 これとは別に Ontology のための参照テーブルへ問い合わせに行く方法も 併用できるようにすべきであろう。

                  14. また body は header 属性を継承することとする。

                  15. 参照テーブルの並記

                  16. 以下のように @ マーク以後に参照テーブルを並記。 ここで挙げる例では MML のテーブルを用いることが多いが、 Web などで世の中に公開されたテーブルであれば他のものでも構わない。

                  17. "通信" = "FAX"@"MML0003"

                  18. 文中へのコメント埋め込み

                  19. // から行末までは、コメントとして無視される。

                  20. "通信" = "FAX"@"MML0003" // コメント

                  21. メモ・タグの使用

                  22. mmll:memo タグはどこにでも入れて使うことができる。

                  23. タグの独自拡張をゆるす

                  24. MMLL では、汎用的に使われるであろうタグ名をとりあえず定義している。 この他に以下のように " " でくくる形で、タグをユーザ定義できる。 ただし、これは送付先の相手に理解される必要があるので、 相手に間違いなく理解されるようなタグ名にする必要がある。

                  25. // タグ意味不明の場合お問い合わせください

                  26. "当方で定義したタグ" = "当方のデータ"