木構造

平成15年度 筑波大学第三学群 情報学類 大学説明会 ミニ講義B、2003年7月30日

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/oc-2003
あるいは、次のページから手繰っていくこともできます。
http://www.is.tsukuba.ac.jp/~yas/
http://www.coins.tsukuba.ac.jp/~yas/

印刷配布資料 http://www.coins.tsukuba.ac.jp/~yas/oc-2003 /tree.pdf

逆立ちした木

■今日の重要な話

■参考書

山口和紀, 古瀬一隆, 中村敦司, 新城 靖, 西山博泰, 林 謙一, 金谷英信, 鈴 木孝幸, 端山貴也: "新The UNIX Super Text 上/第34章 木構造とグラフ構造", 技術評論社 (2003年3月25日). ISBN: 4774116823.

■木構造

木構造(tree structure)というのは、コンピュータ・サイエン ス(情報学類で学ぶ学問)でよく使われる用語である。分野によっては、同じ ものを階層構造(hierarchical structure)という言葉で表現す ることが好まれる。ドイツ語語源の、ヒエラルヒー(Hierarchie)という言葉が 使われることもある。

木構造の例を、大学の組織を使って説明する(図1)。

木構造という名前は、本物の木が、一度枝分かれした後は決して交わらないこ とに似ていることによる。ある節から別の節までの道が2通り以上あるは、グ ラフ構造と呼ばれる。

筑波大学、第一から第三学群、情報学類、主専攻の図

図1 大学組織に見られる木構造

図1では、筑波大学と書いてある所が木の根にあたる。根からは、何本かの学 群の枝が出ている。このように、コンピュータ・サイエンスでは、木の根を上 に書く習慣がある。第三学群の節には、情報学類、社会工学類などの子の節が ある。第三学群の親は、筑波大学である。

筑波大学、第一から第三学群、情報学類、主専攻の図

図2 大学組織に見られる木構造(領域的な見方)

A、B、2つの集合があると、一般には、次の4つに分割される。

  1. Aにしか含まれない部分
  2. AとBの両方に含まれる部分
  3. Bにしか含まれない部分
  4. AにもBにも含まれる部分
領域(木構造)の場合、完全に含まれるか、無関係かのどちらかになる。

集合の関係を説明した図。一般的な場合と領域の場合。

図3 2つの集合の関係

◆字下げによる木の表現

木構造を字下げで表すことがある。

筑波大学

◆区切り文字入り表記

「情報学類」という節を、次のように表記する。

筑波大学第三学群情報学類

コンピュータの中で、文字列(文字の並び)で木構造上の位置を表現する時に は、節が分かりやすくために、はっきりと区切りを入れて表現することがよく 行われる。

筑波大学.第三学群.情報学類
筑波大学/第三学群/情報学類
情報学類.第三学群.筑波大学

区切り文字としては、「.」(点)、「/」(スラッシュ)、「\」(バック スラッシュ)、「¥」(円記号)などがよく使われる。単語を並べる時に、木 の根に近いほうから書く流儀と遠い方から書く流儀がある。

◆木の例

コンピュータでは、次のような場所で木構造が使われている。

コンピュータ以外では、次のような場所で木構造が使われている。

◆文の構造

1つの文も、木構造で表される。同じ単語の並びでも、組み立てられる木構造 が違うと違う意味になる。英文の解釈は、木構造を組み立てることである。

Time flies like an arrow.

図4 「Time flies like an arrow.」の木(その1)

図4 「Time flies like an arrow.」の木(その1)

光陰矢のごとし。

図5 「Time flies like an arrow.」の木(その2)

図5 「Time flies like an arrow.」の木(その2)

時蝿、矢を好む。

◆英語の文法

基本5文型は、木構造を意味する。
  1. S V
  2. S V C
  3. S V O
  4. S V O O
  5. S V O C
これを <clause>とする。英語の文は、次の形式で <clause>をいくつかつなげ、最後に「.」をつけたたものである。
<sentence> ::= <simple sentence> '.'
        または <compound sentence> '.'
        または <compound-complex sentence> '.'

<simple sentence> ::=  <clause>

<compound sentence> ::=
           <clause>  ','  <FANBOYS>  <clause>
    または <clause>  ';'  <transition word> <clause>
    または <clause>  ','  <conjunctive> <clause>

<complex sentence> ::=
           <dependent clause> ',' <independent clause>
    または <independent clause>   <dependent clause>

<compound-complex sentence> ::=
    <clause> <dependent clause>

<dependent clause> ::=  <subordinate> <clause>

<subordinate> ::=
           <subordinate-adj> または <subordinate-adv>
    または <subordinate-noun>

<subordinate-adj> ::=
    who または whom または that または which

<subordinate-adv> ::= after または before または because
    または although または since

<subordinate-adv> ::= that または whether

<clause> ::= 基本5文型で表せるもの

<FANBOYS> ::=
    for または and または not または but または
    or または yet または so

<conjunctive> ::=
    <subordinate conjunction> または <coordinate conjunction>
    または  <conjunctive adverb>

<subordinate conjunction> ::= as, if, that など

<coordinate conjunction> ::= and, but, or, for など

<conjunctive adverb> ::= however, nevertheless,
                         still, then など
受験生へのヒント:よい英文は、1つの <sentence> には、2つ の<clause>、つまり、S V が2つが現れることが多い。

◆文書の木

文章の中にも、木構造が現れる。

◆パラグラフの木

英語国民に対する英語の教育では、パラグラフ(段落)の内部も、きちんと木構 造で書くことが求められる。

topic sentence を根に持つ木構造の図

図6 topic sentence を根とする木構造

受験生へのヒント:(よく書かれた)英語の長い文章を斜めに読むには、パラ グラフの先頭の topic sentence だけを読めばよい。

◆日本語の段落の構造:逆茂木型

逆茂木: よろい、かぶとの時代に、敵の侵入を防ぐために樹を斬り倒して尖っ た枝を外に向けて並べた障害物。

逆茂木型の段落

図7 逆茂木型の段落

日本語の特徴

(日本語ではなくて)「国語」の教師は、木構造(生成文法、文脈自由文法、 キョムスキー(学者の名前))を知らないこともある。木構造を知らない人が試 験問題を作る場合、木構造の知識が応用しくにい。

(日本語でも、文学作品をのぞいて、英語的に木構造になっていると読みやすい。)

◆世界最大の木構造:DNS(Domain Name System)

電子メールを送ったりWorld Wide Web のページを閲覧する時には、データの 送り先やデータを持っているコンピュータを指定する必要がある。 インターネットで使われている、コンピュータの名前を管理する仕組みは、 DNS(Domain Name System) と呼ばれている。 DNS では、膨大な数のコンピュータの名前を含む名前空間を階層的にドメイン (領域)に分割して管理している。

たとえば、次のような名前を考える。

adonis1.coins.tsukuba.ac.jp
このように、インターネットでのコンピュータの名前は、「.」 で区切られた文字列(文字の並び)である。この文字列で使える文字は、アル ファベットと数字、ハイフン(マイナス)である。 DNS で名前は、右から左に向かって解釈される。

全体がドメインに分割された図

図8 名前空間のドメインへの分割

adonis1.coins.tsukuba.ac.jp」を 図8で考えると、次のようになる。

ドメインを木構造としてとらえた図

図9 名前空間の木構造としての見方

adonis1.coins.tsukuba.ac.jp」を 図9で考えると、次のようになる。

◆木構造の利点

◆木構造の問題点

木構造では、ある節から別の節にたどり着く道は、ただ1つしか許されていない。

◆こうもりの分類問題

図13 こうもりの分類(1)の図。とぶものとしての分類。

図10 こうもりの分類(1)

図14 こうもりの分類(2)の図。哺乳類としての分類。

図11 こうもりの分類(2)

類似の問題は、領土問題、外交機密費問題、縦割り行政(木構造行政)問題にもある。

◆部分的にグラフ構造を取り入れる

1つの節に、1つの本名の外に、いくつかの「別名」をつけて、2つの道から たどり着けるようにする。検索する時には、本名と別名を区別する。

こうもりの分類(別名つき)の図

図12 こうもりの分類(別名つき)

■ハイパーテキストとハイパーメディア

木構造を補う方法として、ハイパーテキスト(グラフ構造) と呼ばれる方法を 使うことがある。

(単なる)テキストとは、文字だけから構成されるデータである。

ハイパーテキスト(hypertext)とは、内部に他のテキストへの「参照 (reference)」(ハイパーリンク)が埋め込まれているテキストである。埋め 込まれた参照を使えば、テキストのある部分から、関連している情報を含んで いるテキストを簡単に引き出すことができる。

ハイパーテキストを拡張し、テキスト・データだけでなく、音声や画像などの データ(マルチメディア・データ)を扱えるようにしたものを、ハイパーメディ ア(hypermedia)という。World Wide Web は、(木構造ではなく)ハイパーメディ アに基づいて作られている情報提示のための仕組みである。

インターネットの資源とハイパーメディアの図

図13 インターネットの資源とハイパーメディア

ハイパーメディアやハイパーテキストのデータを作成するためには、次の2つ の事が必要になる。

  1. 差されるデータに印(mark,label)を付ける。
  2. 差すデータに、参照を埋め込む。
文書(テキスト)に、「ここは表題」、「ここは箇条書」といった、文書の構 造を示す目印(マーク)を付けることをを付けることを、マークアップすると いう。 ハイパーメディアを記述するためには、上の2つのことができる人工の言語を 使う。このような言語を、マークアップ言語(markup language)という。WWW では、マークアップ言語として HTML (HyperText Markup Language)と呼ばれ ている言語が使われている。

◆URL

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つの木

URL には、2つの木構造の表記方法が混じっている。

◆URLを間違えた時/URLが変更された時

次の URL をWWWブラウザで開くことを考える。

http://www.aaa.bbb.ccc/ddd/eee/fff.html

次の2種類のエラーが出る可能性がある。

  1. Not Found. The requested URL /ddd/eee/fff.html was not found on this server.
  2. Unable to locate the server URL www.aaa.bbb.ccc. Please check the server name and try again.

エラーが出た時には、木構造で親になる節を探してみればよい。

www は、標準的な名前。
Last updated: 2003/07/30 02:15:14
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>