総合科目「ネットワーク社会を支える情報技術入門 II」、2016年11月21日
筑波大学システム情報系
新城 靖
<yas @ cs.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/it-2016-11-21
あるいは、次のページから手繰っていくこともできます。
http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/
http://www.cs.tsukuba.ac.jp/~yas/
印刷配布資料 http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/it-2016-11-21
/it-2016-11-21
.pdf
- 情報を整理する時に、もっとも基本的で重要な方法として、木構造を使
う方法がある。
- 木構造には、様々な表現方法がある。
- 節と枝。根も葉もある。根を上に書く。
- 領域的(集合のベン図)
- 段付け(字下げ)
- (区切り文字を挟んで)単語を並べる
- 木構造は、コンピュータであつかうものの名前を管理するために使われ
ている。
- 木構造は、英語の読解や作文に役立てることができる。
- 木構造を使うと要素の数が増えても対応することができる。
- 木構造だけでは、情報の整理はうまくいかない。木構造を補う仕組みが
必要になる。
- ファイル名では、非循環グラフ
(エイリアス、ショートカット、シンボリック・リンク)が使われている。
- World Wide Web では、ハイパーテキスト(グラフ構造)が使われている。
- URL (Uniform ResourceLocator) には2つの木の表現が含まれている。
木構造(tree structure)というのは、コンピュータ・サイエン
ス(情報科学類で学ぶ学問)でよく使われる用語である。分野によっては、同じ
ものを階層構造(hierarchical structure)という言葉で表現す
ることが好まれる。ドイツ語語源の、ヒエラルヒー(Hierarchie)という言葉が
使われることもある。
木構造の例を、大学の組織を使って説明する(図1)。
- 木構造は、節と枝からできている。
- 特別な節として、根(root)が1個ある。
- 末端の節を葉(leaf)と言う。
- 木構造では、ある節から別の節までの道が1通りしかない。
- つながっている節と節で、根に近いものを親、そうでない
ものを子という。
木構造という名前は、本物の木が、一度枝分かれした後は決して交わらないこ
とに似ていることによる。ある節から別の節までの道が2通り以上あるは、グ
ラフ構造と呼ばれる。
図1 大学組織に見られる木構造
- 筑波大学が木の根にあたる。根からは、何本かの学群の枝が出ている。
コンピュータ・サイエンスでは、木の根を上に書く習慣がある。
- 情報学群の節には、情報科学類、情報メディア創成学類、知識情報・図書館学類の子の節がある。
情報学群の親は、筑波大学である。
- 学群は中間節、学類は葉(端節)である。
図2 大学組織に見られる木構造(領域的な見方)
A、B、2つの集合があると、一般には、次の4つに分割される。
- Aにしか含まれない部分
- AとBの両方に含まれる部分
- Bにしか含まれない部分
- AにもBにも含まれる部分
領域(木構造)の場合、完全に含まれるか、無関係かのどちらかになる。
図? 2つの集合の関係(一般的な場合)
図? 2つの集合の関係(領域の場合)
木構造を字下げで表すことがある。
筑波大学
- ・・・
- 社会・国際学群
- 理工学群
- 情報学群
- 情報科学類
- 情報メディア創成学類
- 知識情報・図書館学類
- ・・・
- ・・・
「情報科学類」という節を、次のように表記する。
筑波大学情報学群情報科学類
コンピュータの中で、文字列(文字の並び)で木構造上の位置を表現する時に
は、節が分かりやすくために、はっきりと区切りを入れて表現することがよく
行われる。
筑波大学.情報学群.情報科学類
筑波大学/情報学群/情報科学類
筑波大学\情報学群\情報科学類
筑波大学¥情報学群¥情報科学類
情報科学類.情報学群.筑波大学
区切り文字としては、「.」(点)、「/」(スラッシュ)、「\」(バック
スラッシュ)、「¥」(円記号)などがよく使われる。単語を並べる時に、木
の根に近いほうから書く流儀と遠い方から書く流儀がある。
コンピュータでは、次のような場所で木構造が使われている。
- ファイルの名前
- インターネット上のコンピュータの名前
- 電子メールのアドレス
- World Wide Web のアドレス (URL)
- ネットワーク・ニュースのニュース・グループの名前
- さまざまなメニュー
コンピュータ以外では、次のような場所で木構造が使われている。
- 分類(生物、図書館の本)
- 住所
- 会社組織、官僚機構
- 1つの文
- 1つの文書
1つの文も、木構造で表される。同じ単語の並びでも、組み立てられる木構造
が違うと違う意味になる。英文の解釈は、木構造を組み立てることである。
Time flies like an arrow.
図4 「Time flies like an arrow.」の木(その1)
光陰矢のごとし。
図5 「Time flies like an arrow.」の木(その2)
時蝿、矢を好む。
文章の中にも、木構造が現れる。
- 章立て。章、節、項。
- 箇条書き。箇条書きの中に箇条書き。
- パラグラフ
英語国民に対する英語の教育では、パラグラフ(段落)の内部も、きちんと木構
造で書くことが求められる。
- パラグラフは、1つの topic を語る (0個、2つ以上は不可)。
- 1つのパラグラフには、1つの topic sentence (パラグラフの内容を一
言で語った文)を置く。
- topic sentence は、多くの場合、パラグラフの先頭に置かれる。
- パラグラフに含まれる他の文は、次のいずれか(宙に浮いているものは不可)。
- topic sentence を展開させたもの
(topic sentence を木の根として、その子供の節になる)
- (他のパラグラフとの関係を示すもの)
- 木構造を明確にするために、signal wordsを使う。
- First, Second, Third, ...
- 原因・結果
- 対句、対比
図6 topic sentence を根とする木構造
1,2,3 は、文の順番。木の根が上。
(よく書かれた)英語の長い文章を斜めに読むには、パラ
グラフの先頭の topic sentence だけを読めばよい。
逆茂木: よろい、かぶとの時代に、敵の侵入を防ぐために樹を斬り倒して尖っ
た枝を外に向けて並べた障害物。
図7 逆茂木型の段落
1,2,3 は、文の順番。木の根が下。
日本語の特徴
- 漢字仮名混じり文。重要な言葉が漢字で書かれている。
- 文の構造。動詞が最後。
(日本語ではなくて)「国語」の教師は、木構造(生成文法、文脈自由文法、
キョムスキー(学者の名前))を知らないこともある。
日本語でも、文学作品をのぞいて、英語的に木構造になっていると読みやすい。
This is-a pen の意味。
図7 「This is-a pen」の集合的な意味
is-a関係
図8 is-a関係の例(哺乳類 is-a 動物)
工業製品などが部品で構成されている。
例: パソコン。
- ソフトウェア
- システム・ソフトウェア
- アプリケーション・ソフトウェア
- ワードプロセッサ
- Web ブラウザ
- メール・リーダ
- ハードウェア
- 本体
- マザーボード
- CPU
- メモリ
- ハードディスク
- 電源
- キーボード
- ディスプレイ
- マウス
ディレクトリ(フォルダ)は、全体では
木構造(tree structure)
になっている。階層化ディレクトリ(hierarchical directory)と呼ばれるこ
ともある。
図9 ファイルとディレクトリの木
ファイルは、葉(leaf)になる。ディレクトリは、節(node)になる。特殊な節と
して、根(root)がある。これを、ルート・ディレクトリ(root directory)と
いう。
図10 自然の木
ファイルの名前の表現には、「パス名」がよくつかわれる。パス (path)とい
うのは、道の意味である。パス名では、どの道を通ればよいかの道順を示すこ
とでファイルの名前を表現する。
木構造では、節、または、枝(道)に名前がついている。ファイル名は、区切り
文字で区切られた、節、または、枝の名前の並びになる。ファイルの名前を表
現する時の区切り文字としては、次のものがよく使われる。
ファイル名で「.」は、木構造の区切りとしては使われない。
パス名の例:
-
/home/s123456
-
/usr/bin/emacs
パス名には、 次の2種類がある。
- 絶対パス名 ( absolute path name )
- 絶対パス名というのは、ディレクトリの木の根(ルート・ディレクトリ)
から出発する道順
- 相対パス名 ( relative path name )
- 現在着目しているディレクトリ(カレント・ワーキング・ディレクトリ)
から出発する道順
例:絶対パス名 /usr/bin/awk
- ルート・ディレクトリから出発する
- usrという枝へ進む
- binという枝に進む
- 最後に (awk)という枝に進む。
よって、/usr/bin/awk は、こういう手順で見つかるファイルを意味する。
例:相対パス名 bin/awk (カレント・ワーキング・ディレクトリが /usrの時)
- カレント・ワーキング・ディレクトリから出発する
- binという枝に進む
- 最後に (awk)という枝に進む。
複数の人が使うコンピュータで、個人のファイルを保存する
時の出発点となるディレクトリを、ホーム・ディレクトリと呼ぶ。
たとえば、icho という名前のコンピュータで、
新城のホーム・ディレクトリは、
絶対パス名では、/home/shinjo.yasushi/
である。
- ルートディレクトリ(
/
)から出発する。
-
home
という名前の節に進む。
-
shinjo.yasushi
という名前の節に進む。
電子メールを送ったりWorld Wide Web のページを閲覧する時には、データの
送り先やデータを持っているコンピュータを指定する必要がある。
インターネットで使われている、コンピュータの名前を管理する仕組みは、
DNS(Domain Name System)
と呼ばれている。
DNS では、膨大な数のコンピュータの名前を含む名前空間を階層的にドメイン
(領域)に分割して管理している。
たとえば、次のような名前を考える。
azalea1.coins.tsukuba.ac.jp
このように、インターネットでのコンピュータの名前は、「.
」
で区切られた文字列(文字の並び)である。この文字列で使える文字は、アル
ファベットと数字、ハイフン(マイナス)である。
DNS で名前は、右から左に向かって解釈される。
図8 名前空間のドメインへの分割
「azalea1.coins.tsukuba.ac.jp
」を
図8で考えると、次のようになる。
- 名前空間全体は、まず、af, al, ・・・, jp, ・・・, uk, zw というド
メインに分割されいる。その中の jp を選ぶ。
- その中の jp ドメインは、ac, ad, co, ne, gr, or などのドメインに分
割されている。その中の ac を選ぶ。
- その中の ac ドメインは、ass, ・・・,tsukuba, ・・・, zokei 等のドメ
インに分割されている。その中の tsukuba を選ぶ。
- tsukuba ドメインは、さらに cc, is, coins などのドメインに分割されて
いる。その中の coins を選ぶ。
- 最後に、coins ドメインに azalea1 という名前が登録されている。
図9 名前空間の木構造としての見方
「azalea1.coins.tsukuba.ac.jp
」を
図9で考えると、次のようになる。
- まず根から出発する。
- 根の下の
jp
という節を選ぶ。
- その下の
ac
という節を選ぶ。
- その下の
tsukuba
という節を選ぶ。
- その下の
coins
という節を選ぶ。
- 最後に、その下の
azalea1
という節(葉)を選ぶ。
初期のインターネットは、コンピュータの名前(ホスト名)は、
フラットな名前空間が使われていた。
問題
- 名前の衝突。同じ名前を取り合いになった。
- 中央の管理組織の負荷が増えた。
- 最新のホスト名の一覧表の維持が困難になった。
コピーがネットワークを重たくした。
1986年、3100の公式名と6500の別名。
1990年、6400の公式名。DNS に移行。この時点で、137,000。
2016年11月ごろの名の統計
トップレベルドメイン名 | ドメイン名の数 |
.com | 1億2736万 |
.cn | 1950万 |
.de | 1614万 |
.net | 1573万 |
.org | 1073万 |
.uk | 1062万 |
.xyz | 620万 |
.nl | 567万 |
.ru | 534万 |
.info | 506万 |
.br | 390万 |
.au | 307万 |
.fr | 298万 |
.it | 297万 |
.pl | 273万 |
.ca | 251万 |
.ch | 201万 |
.es | 183万 |
.be | 154万 |
.jp | 144万 |
.se | 132万 |
ICANN(Internet Corporation for Assigned Names and Numbers)
インターネットにおけるドメイン名や IPアドレスを調整する
ための非営利法人。1998年に設立。
2016年10月1日、アメリカ政府の監督から完全に独立。
JPNIC News & Views vol.1439【臨時号】2016.10.3
木構造で考えて、根の直下に位置する節に相当するドメイン。
ICANN が制約している。
- ccTLD (country code Top Level Domain)
-
ISO (国際標準化機構, International Standardization
Organization ) が定めた2文字による国別コード(country code))
(ISO 3166)
を使う。日本の国別コードは、
jp
。
- gTLD (generic Top Level Domain)
-
ccTLD 以外。伝統的:
.arpa .com,.edu,.gov,.int,.mil,.net,.org
。
新しい: .aero,.biz,.coop,.info,.museum,.name,.pro (2000年)、
.jobs,.travel,.cat カタロニア語,.mobi,.asia,
.tel, .travel
(2005年)
https://archive.icann.org/en/tlds/
。
- 英語の37文字(a-z,0-9,-)以外の文字(日本語も含む)でも利用可能にする。
- 審査費用 US$185,000。年間 US$25,000。
- 2012年1月募集開始。
2012年6月現在、1930件の申し込み。
2013年12月現在、1930件の申し込み。
2013年12月現在、1930件の申し込み。
-
2014年2月-10月、.nagoya, .tokyo, .yokohama, .okinawa, .ryukyu 等の登録開始。
- 複数の申請が競合すると、TLDのオークションが行われることもある。
.web 1億3500万ドル、.shop 4150万ドル、.app 2500万ドル、.tech 676万ドル等。
https://gtldresult.icann.org/application-result/applicationstatus
大量の情報を保存するには、木構造を使うしかない。
しかし、、、
図13 こうもりの分類(1)
図14 こうもりの分類(2)
木構造は、ファイルを整理するのに非常に強力な構造である。しかし、それだ
けでは、ファイルを整理するには不都合が起きる。それを解消するために、次
のような名前で呼ばれる仕組みが用意されている。
- エイリアス(alias, Macintosh)
- ショートカット(shortcut, Windows)
- シンボリック・リンク(symbolic link,UNIX)
2つの節に、「別名」をつけて、2つの道からたどり着けるようにする。
(木構造では、1つの節にたどり着く道は、ただ1つしかない。)
図15 こうもりの分類(別名つき)
10進分類が多く使われる。
- 木構造の各節は、(最大)10個の子供の節への枝を作る。
枝には、0から9の名前をつける。
- 根から枝をn個たどった場合、n個の数で表す。
例: 007.64 は、根から 0→0→7→6→4 とたどった枝を意味する。
図書の分類の問題点
- 木のバランスがとれていない。時代の変化について行けない。
兄弟の節で、自分より下の節の本の数が違う。
(例:コンピュータ系は、数が多いが、007.6 のように深い階層にある。)
- いくつかの種類がある。日本十進分類法、
デューイ十進分類法。
- 1つの視点からの分類しかできない。コウモリの分類問題問題。
コロン分類法。インドの図書館学者S. R. Ranganathan により考案された方法。
5つのファセット(カテゴリ)を使う。
木構造とは違い、順番を気にしない。
例: アパートの分類。次のような項目から任意の順で絞り込める。
「folks(大衆) + taxonomy(分類法)」
情報(Webページ、ブログなど)に、各人がタグを付けていく。
そのようなタグ付けされた情報を多数持ち寄ると、
大衆(folks)に指示されたタグが浮かび上がる。
Social Bookmark などでよく使われている。
子供の節の数が最大2個(0個でも1個でもよい)。
(左右が区別される。)
生物の進化を、最初の生物を根とする木構造で表したもの。
- 普通は、二分木で書く。(分岐した時期が近くなるとどちらが先かよくわから
ないものもあるが、必ずどちらかが先と考える。)
- 種Aと種Bの共通の祖先となるものが存在する。
(今は絶滅したかもしれないが。)
参考:
http://www.biol.tsukuba.ac.jp/tjb/Vol5No9/TJB200609TM.html
牧岡 俊樹(元 筑波大学 生物科学系):
"動物系統分類学―私の昔のテキストから―",
つくば生物ジャーナル Tsukuba Journal of Biology (2006) 5: TJB200609TM.
もともと別の種であったものが、合体して1つの種になる。
例:
これを考えると木構造ではなくなる。
木構造の悪用の例。
- メンバが節となり木構造を作る。
- 先に参加したメンバが、2人以上新しいメンバを入れる。
- 各メンバは、親に参加費を払う。
- 各メンバは、子供から参加費を受け取り、一部を自分でもらい、残りを自分の親に送る。
図? 木構造とレベル
各メンバが n 人を勧誘したとすると、m レベルの人数が n m 人となる。
n == 2 としても、m == 27 で、参加者が日本の人口を超え、新たなメンバがいなくなり、破綻する。
日本では、法律で禁止されている。
無限連鎖講の防止に関する法律。
Multi-Level Marketing。木構造の悪用の例。「ネットワークビジネス」や
「pyramid scheme」ということもある。
マルチ商法も、ねずみ講と同様に木構造を作る。
マルチ商法は、ねずみ講と異なり、
商品販売やサービスの提供の提供が伴う。
日本では、直ちに違法にはならないが、法律で厳しく規制されている。
(日本では、法律を守ると利益が出ないので、違法な形で勧誘が行われることがある。)
- 整理棚。人間を系統的に分類する。事実を系統的に分類する。(保存)
- 情報が流れる経路。(通信)
情報の流れには予算の流れも関連している。
- 政府の予算のトップレベルは、国会の審議で省庁に分割して割り当てる。
- 一度省庁に分割した予算を、下流で合算して使うことはできない。
(これを許せば、国会審議の意味がなくなる。)
- 大きさ、細分化の問題。縦割り行政(木構造行政)。
- 時間的に古くなる。状況の変化についていけない。日本の財務省/国会は、
省庁予算に「シーリング」を設定して、省庁に配分を任せると、予算配分が固
定化される。
- 省庁内部の組織の木構造で、レベルを上がる(昇進する)ためには、国民
の利益ではなく、省益を考えるようになる。昇進できない人は、必ずやめる
(天下り)。
図? 木構造と天下り
木構造でしか情報が流れないような組織は、潰れる。木構造を補う意味で、会
社組織では、裏チャネルや同期会が重要となる。
国会議員が、木構造の問題を打ち破る必要がある。
木構造のどちらに付くか。
領土問題の「木構造」の考え方に基づいた解決方法
木構造を補う方法として、ハイパーテキストと呼ばれる方法を使うことがある。
ハイパーテキスト(hypertext)とは、内部に他のテキストへの「参照
(reference)」が埋め込まれているテキスト(文書、文字だけから構成される
データ)である。ハイパーテキストという仕組みを使えば、テキストのある部
分から、関連している情報を含んでいるテキストのある部分を引き出すことが
簡単になる。
ハイパーテキストを拡張し、テキスト・データだけでなく、音声や画像などの
データを扱えるようにしたものを、ハイパーメディア(hypermedia)という。
World Wide Web は、(木構造ではなく)ハイパーメディアに基づいて
作られている情報提示のための仕組みである。
図16 インターネットの資源とハイパーメディア
ハイパーメディアやハイパーテキストのデータを作成するためには、次の2つ
の事が必要になる。
- 差されるデータに印(mark,label)を付ける。
- 差すデータに、参照を埋め込む。
文書(テキスト)に、「ここは表題」、「ここは箇条書」といった、文書の構
造を示す目印(マーク)を付けることをを付けることを、マークアップすると
いう。
ハイパーメディアを記述するためには、上の2つのことを支援した、人工の言
語を使う。このような言語を、マークアップ言語(markup language)という。
言語の分類
- 自然言語
- 人工言語
- 数学で使う表現
- 化学式
- コンピュータ言語
- プログラミング言語(コンピュータのプログラムを作る時に使う言語)
- スクリプト言語
- マークアップ言語
- HTML
- SGML
- XML
- TeX, LaTeX
- roff
WWW では、マークアップ言語として HTML (HyperText Markup Language)と呼
ばれている言語が使われている。
マークアップ言語でマークを付ける時の方法としては、テキストに
タグ(tag,たぐ)(名札の意味)
を埋め込む。
たとえば日本語の普通の文書では、括弧「」で括れば誰かの発言を意味する。
これは括弧"「" と "」" の間のテキストに誰かの発言という意味のマークが
付けられていることを意味する。
HTML や SGML では、「<」 と 「>」で括られた範囲がタ
グになる。タグには、「<name>」という形式と
「</name>」という形式の2つの種類があり、前者を
開始タグ
後者を
終了タグ
といいます。開始タグと終了タグに囲まれた部分が、マークが付けされたテキ
ストになる。
ハイパーリンクを実現するためのマークアップ言語には、次の2つの機能が必
要になる。
- データにラベルを付ける(参照の目標となるマークを付ける)。
- データにラベルへの参照を埋め込む。
HTML では、他のデータへの参照を実現するためにURL (Uniform Resource
Locator) という形式を使う。次に、URL の例を示す。
http://www.tsukuba.ac.jp/education/college.html
-
http
- HyperText Transfer Protocol。WWWのデータを保持しているプログラム
と、WWWを表示するプログラムの間でデータをやり取りするときの形式を定め
た約束。
-
www.tsukuba.ac.jp
- そのデータを持っているコンピュータの名前。
-
/education/college.html
- そのコンピュータの中での資源の名前(ファイルの名前)。最後の
.html
は、その資源がHTML で書かれている事を表わしている。
URL には、2つの木構造の表記方法が混じっている。
- 木の根が左(ファイル名)
- 木の根が右(コンピュータの名前)
2種類のエラー
- Not Found. The requested URL XXX was not found on this server.
- Unable to locate the server URL XXX. Please check the
server name and try again.
長い URL のどの部分が怪しいかを区別できるようにする。
エラーが出た時には、木構造で親を探してみる。
Last updated: 2016/11/16 20:36:31
Yasushi Shinjo / <yas @ cs.tsukuba.ac.jp>