マーク付け言語

マーク付け言語

[1] マーク () 言語 (げんご) (markup language) は、 テキストに記号列 (マーク付け) を書き加えることで文書の構造や意味、 処理の方法などを記述する言語です。

呼称

[14] 接尾語 (みたいなもの) -ML は、マーク付け言語の略称の語末にあってマーク付け言語 (markup language) を表す。

[15] 単体で ML と言うことはありません。

意味

[6] 元々は文字列主体の文章を記述することが主たる目的でした。 平文に、 構造的意味や装飾を表す記号列 (マーク) を付加していくような記述言語のことを、 マーク付け言語と言っていました。

[22] 20世紀末くらいから次第に適用範囲が拡大し、 データ構造の記述方式としても一部使われるようになりました。

[2] その結果「マーク付け言語」の範囲は曖昧になっており、 そうでないデータ形式データ構造との区別は明確ではありません。

[23] SGML の系譜に連なるか、自然言語文に特別な意味をもたせた記号列を混在させていて人間テキストエディターで編集することがよくあるかのいずれかの条件を満たせばマーク付け言語と認識されることが多いようです。

[24] ただしその条件を満たしても、プログラミング言語の系譜に連なるものは、 マーク付け言語とは言われにくい (言われるものもいくつかある) という例外があります。

マーク付け言語の一覧

[7] マーク付け言語には、色々な種類があります。

SGML 系

[8] SGML に由来するマーク付け言語:

SGML応用XML応用も参照。
[20] HTML を生成する言語は、 HTML を参照。

テキスト系

[10] テキスト系のマーク付け言語:

[18] こうしたものを、軽量マーク付け言語簡易マーク付け言語のように呼ぶこともあります。 明確で広く合意された定義は見出だせませんが、 平文を書くのと同じような気楽さで記述でき、 専門知識がなくてもおおよそ理解できるようなマーク付け言語をそう呼んでいるようです。

[26] 「軽量」と呼んでいても、必要な機能を追加していった結果、 複雑怪奇になっていたりします。 SGML も、最初はテキストに簡単にマークを追加していくだけと謳っていたのですから、 世が世なら「軽量」の仲間に入っていたはずです。 (SGML の中でも shortrefデータタグ軽量マーク付け言語そのものといって良いでしょう。)

[29] MediaWiki の構文は (特にウィキペディアでは) 雛形を使いまくって複雑になっていて、 あまり「軽量」感がありません。

[34] Markdown の構文は記号の使い方があまり直感的でなく覚えにくいです。 技術者はちょっとした構文はすぐに覚えてしまうので麻痺して Markdown をあちこちで使いまくってしまいますが、非技術者に使わせるにはハードルが高かったり。 でも「軽量」の代表みたいな扱いです。 (実装も真面目にやろうとするとかなり厄介な点が多いし。)

[35] 「はじめ」は「作った人」にとって「軽量」な言語も、普及するにつれ複雑になっていくんですよねえ。 どんな (普及した) 言語も通る道。そして次の「軽量」言語が生み出されるのです。

[36] マーク付け言語の世界における軽量マーク付け言語は、 プログラミング言語の世界におけるスクリプト言語のようなものかもしれません。

プログラミング言語系

[9] TeX 系のマーク付け言語:

[19] TeXマーク付け言語のような性質も持っていますが、 チューリング完全プログラミング言語でもあります。 そのためもあってか、あるいは SGML の系譜から離れているためなのか、 マーク付け言語に含めないこともあります。

[11] プログラミング言語埋め込み系のマーク付け言語:

[30] プログラミング言語の構文の一部分という位置付けのためもあるのか、 あまりマーク付け言語として意識されないかもしれません。

[13] その他のプログラミング言語風構文を持つマーク付け言語:

その他

[37] その他のマーク付け言語

文書構造慣用句

文書構造慣用句

メモ

[3] 言語と言っても、自然言語プログラム言語などとは趣が異なります。これらは言語が情報の主を成すのに対して、マーク付け言語は主たる情報に印をつける従たるものなのです。多分それが違いの原因です。

[12] RTFPostScriptCSVJSONCSSVRMLXBM などもマーク付け言語と似た性質を多かれ少なかれ持っていますが、通常はマーク付け言語とはいいません。

[31] RTFマーク付け言語と読んでも良さそうなものなのに、 普通は含めないのは、SGML の系譜から遠いからですかね。 あるいは手書きすることが稀だからですかね。

[32] PostScriptPDFTeXマーク付け言語である程度にはマーク付け言語の仲間なのかもしれませんが、 プログラミング言語的な性質や手書きのし難さが、 マーク付け言語と呼ばしめないのでしょう。

[33] VRMLHTML の影響なのかいかにもマーク付け言語だと言いたげな名前なのですけど、 マーク付け言語ではないことになってるのですよね。 実際構文もマーク付け言語というよりデータ構造を記述してるプログラミング言語に近いデータ形式で。 でも後継の X3DXML ベースなので、 名目上マーク付け言語でもあるとかいう。

[4] Steven J. Murdoch :: Survey of general-purpose data-representation formats and markup languages http://www.cl.cam.ac.uk/users/sjm217/projects/markup/survey/

[5] 虚像残影 - 何故みんな記法を使わないのか ( 版) http://nyarla.nowa.jp/entry/69a867cc73 (名無しさん 2007-05-25 07:56:06 +00:00)

[16] 「XML」を編集中 - Wikipedia () https://ja.wikipedia.org/wiki/XML?action=edit&veswitched=1

Category:ファイルフォーマット <!-- 削除しないでください、Category:マークアップ言語 からたどれるのは専門家だけです、専門家のためだけのカテゴリではありません -->
<!-- Category:Extensible Markup Language|* -->
Category:マークアップ言語

[17] 「ファイルフォーマット」も「マークアップ言語」もどちらも等しく専門家にしか理解されない言葉のような気がするが。。。

[21] 「小説家になろう」や「カクヨム」の相互変換するツールをつくろうかな - KDP(電子出版)のメモ 急急如律令 ( ()) http://99nyorituryo.hatenablog.com/entry/2016/07/21/234922

[25] Lightweight markup language - Wikipedia, the free encyclopedia ( 版) http://en.wikipedia.org/wiki/Lightweight_markup_language

[27] ANSI/NISO Z39.98-2012, Authoring and Interchange Framework for Adaptive XML Publishing Specification - Z39-98-2012_AI_Framework.pdf, https://groups.niso.org/apps/group_public/download.php/12125/Z39-98-2012_AI_Framework.pdf

[28] T-Time:インデント、アウトライン () https://www.voyager.co.jp/support/T-Time/t_1-3.html

HTMLではない普通のテキストデータの場合、段落の頭にTABを入れておくと、その段落全体が自動的にインデント表示されます。また、▲や●などの図形文字を付加することにより、テキストに階層構造をもたせることもできます。詳しくは電子マニュアルの「05)テキスト表示設定」をご参照ください。