HTML とは、HyperText Markup Language の略語で、internet で文書を公開する為の言語です。HTML で書かれた文書は HTML 文書と言います。
HTML は元々研究機関が手順書などの文書を internet を使って共有化する為に作られた物で、文書の共有化の為に HyperText という仕組みを、文書の記述の為に SGML と言う規格を採用しています。従って HTML は HyperText の機能を持った SGML 文書といえます。
HyperText とは一つの文書が関連するほかのデータと関連付けられ、参照出来る状態に出来る文章を指します。例えばある論文を表示して読んでいる時に、参考文献として名前が記述されている別の図書を指定すると、表示がその図書に切り替わる仕組みを持っているとすれば、その論文はその図書にリンクしている、HyperText と言えます。
HTML 文書は他の文書や画像などのデータにリンクし、参照などが出来ます。
SGML とは Standard Generalized Markup Language の略で ISO で定められた電子文書の為の汎用的記述方法の規格で、また、HTML 同様 SGML で書かれた文書を SGML 文書と呼びます。
SGML を直訳すると標準 (Standard) 一般化 (Generalized) 印付け (Markup) 言語 (Language) で、Generalized (一般化) ということ、markup (印を付ける) という事に大きな特徴があります。
例えば紙の雑誌を読んでいる時、各段落の始めは一般的に 1 字字下げされています。見出しは大きな字で書かれ。強調は赤い文字で書いてあるかもしれません。読む人は 1 字字下げされているのをみてここが段落の開始、大きな文字を見てここが見出し、赤い文字を見てここが強調と知ることが出来ます。しかし、これは紙の雑誌を読む時の一般的な話です。
では、電子文書を読むときの一般的、とはどのような物でしょうか。所謂パソコン、例えば Windows や Macintosh で文章を読むときには既存の雑誌と同じように段落の最初は 1 字分、字下げ、見出しは大きな文字、強調は赤い文字と言う風に表示出来るでしょう。しかし、その電子文書を携帯電話で読む時は、字下げは出来ても大きな文字は表示出来ないかもしれませんし、白黒の画面だったら赤い文字の表示は不可能です。
従来、ワープロや pdf など多くの場合は表示を統一する方法が用いられ、同じワープロで作られた文章は、昔の version でも、OS が違っても同じように大きな文字や色が表示にされてきました (または、そう求められてきました)。しかし、ソフトで機種間の違いを吸収出来ない、例えば携帯電話でも同じ文章を共有しようとするとこの方法は使えなかったり、または一番低い性能の端末に合わせなければ成らない事になってしまいます。
そこで、SGML は段落や見出しや強調と言った文章の意味と字下げや大きな文字や赤い文字と言った見た目の要素を分離し、意味付けのみを行うと言う方式を採用しています。つまり段落の場所には段落と言う意味だけを記述し、具体的に段落をどう表現するかはそれぞれの環境に任せて、多くの環境で一つの文章を使えるようしてあるのです。
SGML を採用している HTML も見た目と意味付けを分離し、意味付けのみを行います。
例えばこの関係は、CD に録音された音楽と、譜面の関係と考えても良いかもしれません。CD に録音された音楽は再生機で再生すれば (それでも再生機の性能によりますが) 同じ音色で、同じ演奏が楽しめます。一方譜面に書かれた音楽は演奏する楽器によって音色が変わり、指揮者や演奏者によって上手かったり下手だったりするかもしれません。しかし、CD は再生機があり、電気が無ければ音楽が聴けませんが、譜面なら、ピアノがあればピアノで、オルガンがあればオルガンで、なにも無ければ口笛や声とあらゆる環境で音を出せますし、何百年も前の譜面が演奏出来るように今後も (少なくとも CD よりは) 長期に渡って使用出来ます。HTML は CD で言う楽器の音色や演奏者の技術を放棄することで、譜面のように汎用的で、長期間使えるように作られているのです。
SGML の目的は汎用的な文書の記述であり、その為に文章の意味付けをする訳ですが、その為にはどうしたら良いでしょうか。
一番簡単に思い付くのは段落の最初にここが段落です、見出しの最初にここが見出です、強調する部分にここが強調ですと書く事でしょう。そして、それが正に Markup(印を付ける) なのです。
HTML は文章の意味をここが見出しですよ、ここが段落ですよと言う風に印を直接テキストに書き込んで記述されます。試しにこのmarkup とは何か。と言う見出しとその直後の 1 段落目の HTML を表示してみると以下の様に成ります (註: 先頭についている数字は説明用に挿入した行番号です。実際の HTML 文書には書かれていません)。
<h3>markup とは何か。</h3>
<p>SGML の目的は汎用的な文書の記述であり、その為に文章の意味付けをする訳ですが、その為にはどうしたら良いでしょうか。</p>
さて、具体的な HTML の説明は別途述べるとしてここでは簡単に markup と言うものを解説すると、普通の文章に比べて 1 行目は <h3> と </h3> と言う記号で、2 行目は <p> と </p> と言う記号で前後が囲まれています。これが HTML による markup で 逆にいえば、素のテキストにこのように HTML の markup を行うとその文章は HTML 文書になる、と言う訳です。
ちなみに、h3 の一文字目の h は 見出し (heading) の意味で、p は段落 (paragraph) と言う意味です。HTML の markup 出来る要素 (見出しや段落など) は種類が予め決まっており、またその表記が英語である事や、頭文字だけである為に、若干の学習や慣れを要するかも知れませんが、一度成れてしまえば見出しに見出しと言う markup を、段落に段落と言う markup をする訳ですから非常に直感的で解りやすい方法と言えます。
文書の規格で、HyperText Markup Language の略。HTML で書かれた文書を HTML 文書と言う。
SGML と言う Markup Language の規格で実現された HyperText である。
汎用的な電子文書であり、文章の意味付けのみ行われ、見た目は表示する環境に依存する (SGML の特徴)。
テキスト文に文章の意味を直接書きこんで記述される (Markup Language としての SGML の特徴)。
他のデータとリンク出来る (HyperText の特徴)。
HTML は表示を制御しません。しかし、HTML 文書は素っ気無い表示しか出来ない訳では有りません。たしかに HTML 文書の見た目は表示する環境に依存しますが、逆にいえば、表示する環境にどのように表示せよと指示を出せば HTML 文書の表示を制御出来る訳です。
HTML の表示の制御には幾つもの方法がありますが (最も知られているのが、Browser に文字の大きさを変える様に指示する事でしょう)、現在は (そして恐らく将来も) Style Sheets と言う物で Internet Explorer や Netscape Navigator などの Browser に表示の指定をする方法が主流で、その中でも最も主流なのが Cascading Style Sheets (以下 CSS と略す) と言う規格です。HTML を一通り覚えて表示に凝りたくなったら CSS を覚えると CSS に対応したソフトを使えばグラフィカルな HTML の表示が出来るようになります。
なお、どうしても全ての環境で同じ表示をしなければ成らない (例えばレイアウトと意味が切り離せない) 場合は、その部分を画像にしてしまうか、または HTML での記述を辞めて他の、表示を制御する規格を使う事をお奨めします (なお、その場合筆者は pdf をお奨めします)。