平成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
木構造(tree structure)というのは、コンピュータ・サイエン ス(情報学類で学ぶ学問)でよく使われる用語である。分野によっては、同じ ものを階層構造(hierarchical structure)という言葉で表現す ることが好まれる。ドイツ語語源の、ヒエラルヒー(Hierarchie)という言葉が 使われることもある。
木構造の例を、大学の組織を使って説明する(図1)。
図1では、筑波大学と書いてある所が木の根にあたる。根からは、何本かの学 群の枝が出ている。このように、コンピュータ・サイエンスでは、木の根を上 に書く習慣がある。第三学群の節には、情報学類、社会工学類などの子の節が ある。第三学群の親は、筑波大学である。
A、B、2つの集合があると、一般には、次の4つに分割される。
図3 2つの集合の関係
筑波大学
筑波大学第三学群情報学類
コンピュータの中で、文字列(文字の並び)で木構造上の位置を表現する時に は、節が分かりやすくために、はっきりと区切りを入れて表現することがよく 行われる。
筑波大学.第三学群.情報学類
筑波大学/第三学群/情報学類
情報学類.第三学群.筑波大学
区切り文字としては、「.」(点)、「/」(スラッシュ)、「\」(バック スラッシュ)、「¥」(円記号)などがよく使われる。単語を並べる時に、木 の根に近いほうから書く流儀と遠い方から書く流儀がある。
コンピュータでは、次のような場所で木構造が使われている。
コンピュータ以外では、次のような場所で木構造が使われている。
Time flies like an arrow.
図4 「Time flies like an arrow.」の木(その1)
図5 「Time flies like an arrow.」の木(その2)
<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つが現れることが多い。
図6 topic sentence を根とする木構造
受験生へのヒント:(よく書かれた)英語の長い文章を斜めに読むには、パラ グラフの先頭の topic sentence だけを読めばよい。
日本語の特徴
(日本語ではなくて)「国語」の教師は、木構造(生成文法、文脈自由文法、 キョムスキー(学者の名前))を知らないこともある。木構造を知らない人が試 験問題を作る場合、木構造の知識が応用しくにい。
(日本語でも、文学作品をのぞいて、英語的に木構造になっていると読みやすい。)
電子メールを送ったりWorld Wide Web のページを閲覧する時には、データの 送り先やデータを持っているコンピュータを指定する必要がある。 インターネットで使われている、コンピュータの名前を管理する仕組みは、 DNS(Domain Name System) と呼ばれている。 DNS では、膨大な数のコンピュータの名前を含む名前空間を階層的にドメイン (領域)に分割して管理している。
たとえば、次のような名前を考える。
adonis1.coins.tsukuba.ac.jpこのように、インターネットでのコンピュータの名前は、「
.
」
で区切られた文字列(文字の並び)である。この文字列で使える文字は、アル
ファベットと数字、ハイフン(マイナス)である。
DNS で名前は、右から左に向かって解釈される。
「adonis1.coins.tsukuba.ac.jp
」を
図8で考えると、次のようになる。
図9 名前空間の木構造としての見方
「adonis1.coins.tsukuba.ac.jp
」を
図9で考えると、次のようになる。
jp
という節を選ぶ。
ac
という節を選ぶ。
tsukuba
という節を選ぶ。
coins
という節を選ぶ。
adonis1
という節(葉)を選ぶ。
木構造では、ある節から別の節にたどり着く道は、ただ1つしか許されていない。
図10 こうもりの分類(1)
図11 こうもりの分類(2)
類似の問題は、領土問題、外交機密費問題、縦割り行政(木構造行政)問題にもある。
1つの節に、1つの本名の外に、いくつかの「別名」をつけて、2つの道から
たどり着けるようにする。検索する時には、本名と別名を区別する。
図12 こうもりの分類(別名つき)
木構造を補う方法として、ハイパーテキスト(グラフ構造) と呼ばれる方法を 使うことがある。
(単なる)テキストとは、文字だけから構成されるデータである。 ハイパーテキスト(hypertext)とは、内部に他のテキストへの「参照 (reference)」(ハイパーリンク)が埋め込まれているテキストである。埋め 込まれた参照を使えば、テキストのある部分から、関連している情報を含んで いるテキストを簡単に引き出すことができる。ハイパーテキストを拡張し、テキスト・データだけでなく、音声や画像などの データ(マルチメディア・データ)を扱えるようにしたものを、ハイパーメディ ア(hypermedia)という。World Wide Web は、(木構造ではなく)ハイパーメディ アに基づいて作られている情報提示のための仕組みである。
ハイパーメディアやハイパーテキストのデータを作成するためには、次の2つ の事が必要になる。
http://www.tsukuba.ac.jp/education/college.html
http
www.tsukuba.ac.jp
/education/college.html
.html
は、その資源がHTML で書かれている事を表わしている。
http://www.aaa.bbb.ccc/ddd/eee/fff.html
次の2種類のエラーが出る可能性がある。
エラーが出た時には、木構造で親になる節を探してみればよい。