宮崎市に卑弥呼の墓

何と宮崎市に邪馬台国があったという説がある。さらに、卑弥呼の墓かも知れない笠置山という古墳が簡単な調査だけで道路工事で破壊されているらしい。

まったく荒唐無稽というわけではなく、魏志倭人伝の旅程の説明が宮崎平野に邪馬台国があったと考えると矛盾なく説明できるらしい。

また笠置山という小山の周辺では、タタラという古代の製鉄所の広大な遺跡があるらしい。3世紀に大規模な製鉄所を持っていたとすると、強大な国家が存在していたと考えるのは当然だ。

もともと、宮崎平野には驚くほど多数の古墳が分布しており、その推定建造年代も日本最古と思われるくらい古い。これだけの古墳を擁する平野部に強力な古代国家が存在したというのは疑いないはずだ。しかし邪馬台国と関連付けてその国家が論ぜられることは殆ど無い。あまりに重要な国家が全く無視されている。

笠置山がもし卑弥呼の墓であるなら、宮崎県の観光に重大なインパクトが有るはずなのに、宮崎県はなんの手も打っていないようだ。もったいない話だ。

詳しくは「邪馬台国と製鉄」というサイトに書いてある。

[PR]
# by tnomura9 | 2017-04-28 08:27 | 話のネタ | Comments(0)

You'd be so nice to come home to 聴き比べ

You'd be so nice to come home to を聴き比べてみた。

Helen Merrill

Julie London

Sarah McKenzie

Sarah Vaughan

Cheryl Bentyne

Nancy Wilson

Dinah Shore

青江三奈

八代亜紀

Art Pepper

Jim Hall

ジャズ歌詞で英語学習(ダイナ・ショア)

Karaoke

ジャズのスタンダードナンバー曲で、コール・ポーター作曲。もともとは1942年の映画 "Something to shout about" の挿入歌で、戦場に送られた青年が愛する女性を思って歌う歌。女性が歌う場合は片思いの男性を思って歌う歌として聴くといいのかもしれない。

[PR]
# by tnomura9 | 2017-04-22 11:39 | ボーカロイド | Comments(0)

You'd be nice to come home to

カラオケで歌いたい。
[PR]
# by tnomura9 | 2017-04-16 11:07 | 話のネタ | Comments(0)

Wintergatan - Marble Machine

Youtube で面白い演奏を見つけた。


音楽を演奏する手動の機械。自動演奏ではなく演奏しているところがいい。


[PR]
# by tnomura9 | 2017-04-16 10:16 | ボーカロイド | Comments(0)

読み返しやすいノートのとりかた

参考書を読みながらノートをとるというと、本の目次のように階層性に用語を整理していく方法が一般的だが、ノートを読み返すときにはこれが意外に読みにくい。それは項目の階層が変るたびに連想が分岐するからだ。連想は本来数珠つなぎになっているものの想起が自然だからだ。連想の連鎖の中に分岐が入ると連想の流れが途切れ先へ進めなくなる。例えば次のような文章について考えてみる。

CD4ヘルパー細胞には(1)IFN-γ、IL-2を産生し細胞免疫に関与するTh1細胞(2)IL-4、IL-5、IL-13を産生しアレルギー疾患の発症に関与するTh2細胞(3)IL-17Aなどの炎症性サイトカインを産生し、自己免疫疾患の病態に関与するTh17細胞、(4)IL-9とIL-10を主に産生しアレルギー疾患の病態に寄与するTH9細胞(5)ケモカイン受容体CXCR5を発現することにより二次リンパ組織の濾胞胚中心にちちし、ICOSなど副刺激分子の発現とIL-21の産生を介して抗体産生を誘導する濾胞ヘルパーT細胞(Tfh細胞)の5種類が存在する。

これを一般的なノート法で記述すると、

A. CD4ヘルパー細胞
(1)Th1細胞
  (a) IFN−γ
  (b) IL-2
(2)Th2細胞
  ....

のような書き方になるが、ノートの木構造の分岐部で連想が途切れ切れやすく読み返しても内容を思い出せない。これを数珠つなぎの連想の順番に書き直すと次のようになる。

CD4陽性ヘルパー細胞 - Th1細胞 - Th2細胞 - Th17細胞 - Th9細胞 - Tfh細胞
Th1細胞 - IF-γ産生 - IL-2産生 - 細胞性免疫に関与
Th2細胞 - IL-4を産生 - IL-5産生 - IL-13産生 - アレルギー疾患の発症
Th17細胞 - IL-17産生 - 自己免疫疾患に関与
Th9細胞 - IL-9産生 - IL-10産生 - アレルギー疾患の病態に寄与
Tfh細胞 - CXCR5を発現 - 濾胞胚中心に位置 - ICOS発現 - IL21産生 - 抗体産生を誘導

このノートには最初のノートのような整然とした階層構造はないが、分岐がないので、冒頭の語句から数珠つなぎに連想を辿っていくことができる。そのため、読み返すときに各行の冒頭の語句からその内容を容易に思い出すことができる。想起のための連想にやさしいノートの録り方になっている。

[PR]
# by tnomura9 | 2017-04-11 08:20 | 考えるということ | Comments(0)

要するにどういうことか

企業の重役などで細かい専門的な知識はないはずなのに妙にうがった質問をする人がある。これは、物事の概要をつかむ能力に長けているからだろう。

参考書を読むときも、要するに何が言いたいのかという概要を掴んでおくと、細かい技術的なことも頭に入りやすくなる。また、本の概要をつかむのには細部の専門的な知識は必要ない。以前の記事で技術用語を押さえておくことが技術関連の参考書を読むのに必須だと述べたが、概要を把握するには逆に技術用語ではない一般的な単語に注目する必要がある。次の文章はアレルギーについて解説した参考書の最初の部分を抜粋したものだ。

アレルギー疾患とは、特定の抗原(アレルゲン)に対する免疫応答が過剰に誘導され、かえって宿主に対して不利益を与える病態を指すが、実際のアレルギー疾患患者の多彩な症状の発現には、抗原特異的な免疫応答(獲得免疫)だけでなく、抗原に非特異的な要因(感染や組織の障害など)によって誘導される免疫応答(自然免疫応答)が重要な役割を演じることが近年明らかにされている。本稿では、まず獲得免疫系と自然免疫系の活性化による慢性好酸球性炎症(2型炎症)の誘導機序を概説し、環境因子(特に感染性の因子)がアレルギー疾患の発症に与える影響とその機序、ウィルス側の要因か宿主側の要因かの概略を述べ、最後に今後の研究の方向性を記す。

まず第1行の、「アレルギー性疾患とは、.... 近年明らかにされている。」という文だが、まず「アレルギー疾患とは」という文頭の部分に注目する。〜とはというのはグーグル検索のときによく利用する表現で、用語の定義を調べたいときに利用する。この場合も「とは」という単語からこの文章が、アレルギーの定義について述べているのだと予測できる。

用語を定義する文章の場合は「〜と定義される」とか「〜である」などの動詞で文が終わることが多い。しかし、この文の場合の文末は「近年明らかにされている。」となっており整合性がない。実は、この文はアレルギー疾患の定義と、その定義に最近の研究で新しい視点が加わったことという2つの文の複文であるからだ。アレルギーの定義を述べた前半の文の文末は「病態を指すが、」であり、〜を指すという文末で終了しているのでその間に定義が述べられていることが分かる。

「〜とは」と「〜を指すが、」の間がアレルギー性疾患の定義であり、「免疫反応が過剰」とか「不利益」とかいう部分から「アレルギー性疾患は免疫反応が過剰になり人に不利益な状態になったものを指す」というアレルギー疾患の定義が理解できる。

このように文章の概要をつかむためには、技術用語よりも一般的な表現に注目するのがよい。特に、文頭と文末の表現を押さえることが有効だ。

後半の「実際のアレルギー患者の .... 近年明らかにされている。」という部分も読んでみよう。文頭の「実際のアレルギー患者の多彩な症状の発現には、」という部分から実際のアレルギー疾患について述べていることがわかる。また、「実際の」という言葉から、前半の原則的な定義とは違う何かが現場にはあるよというニュアンスがわかる。

そこで文末を読むと「重要な役割を演ずることが近年明らかにされている。」となっているので、以前とはことなる新しい知識に焦点が当てられているのが予測できる。それは、文の中ほどにある「抗原特異的な免疫応答(獲得免疫)だけでなく、」という表現からも獲得免疫では「ないほう」が新しくて重要なのだということが分かる。それは何かというと「抗原に非特異的な要因(感染や組織の障害など)によって誘導される免疫応答(自然免疫応答)が重要な役割を演じること」である。

以上を要約すると「アレルギー疾患は免疫の過剰反応だ。これについては以前は獲得免疫によるものと考えられていたが、近年自然免疫の役割に注目が集まっている。」となる。

文章の概要を求める動機は、「要するに何が言いたいのか」というのを知りたいという気持ちである。また、それは文章の技術的でない一般的な表現を押さえることで理解できる。特に、文頭と文末の表現に注目すると自然に要約をしていくことができる。

分厚い参考書を最初から読んでいくと挫折してしまう。まずザッピング、スキミング、スキャニングなどで大体の構成を調べ、上のような読み方で「要するに何か」ということを知り、そこから「一体自分は何を知りたいのか」ということの一連のリンクされた質問リストを作り、それから読み始めなければならないからだ。最も大切なのは「良い質問を作る」ということであって、参考書の内容を暗記することではない。

[PR]
# by tnomura9 | 2017-04-07 05:42 | 考えるということ | Comments(0)

リンク化問題リスト

参考書のザッピングをしながら、情報カードに問題を書き込んでみた。ところが、しばらくして情報カードを見返すと、問題の内容が全くまとまりがなく、なにを疑問に思っていたのかすら分からなくなっていた。

どうやら問題のリストを作成するときも、問題と次の問題とのあいだに何らかの連想のリンクを考えておかないとあまり役にたたないようだ。

たとえば免疫に関する問題リストをつぎのように作ってみる。

1.免疫系を大別したとき一方は何と呼ばれているか。
2.自然免疫とは何か。
3.自然免疫でないほうの免疫系を何というか。
4.獲得免疫とはなにか。
5.獲得免疫にはどんな種類があるか一つ述べよ。
6.液性免疫とは何か。
7.液性免疫でないほうの免疫系は何か。
8.細胞性免疫とはなにか。

このようにすると問題リストが関連しあっているため、自然な連想で問題のリストを順に思い浮かべることができる。問題点のメモを取るときも、このような LLQ (List of Linked Questions) でまとめていくことで復習が楽になる。

[PR]
# by tnomura9 | 2017-04-03 18:13 | 考えるということ | Comments(0)

ザッピング三昧

最近記事の更新をしていなかったが、参考書のザッピング三昧をしていたからだ。ザッピングというのはテレビのリモコンでチャンネルを次々に変えていく傍迷惑な行動をいうが、これを読書に応用して参考書を読むというわけでもなくぱらぱらと眺めていくのだ。雑誌の記事を気ままに眺めていく感じだ。

現在やっているのは、10冊近くの参考書を机の上に置いてそのなかの適当に手に取った一冊をザッピングする方法だ。1冊の参考書をザッピングするのに10分もかからない。しかし、何も読んでいないようで脳はしっかり働いているらしく、疲労のため数冊のザッピングを連続して続けることはできない。したがって、まとまった時間をザッピングに充てるのではなく、細切れな空き時間が生じたときに行うほうが効果的なようだ。

10分くらいで1冊を終わるのだから、たいして頭に残らない。しかし、この方法の利点は今まで1度も目を通したことのない本も、少し読んで挫折した本もとにかく最後まで目を通すようになったことだ。0はいつまでたっても0だが、0.01は100回繰り返すと1になるかもしれない。

ザッピングのもう一つの利点は、参考書全体の鳥瞰図できな構成を把握できることだ。細部については知らないが、ほんのあの部分にはおおよそどのような話題があったのかを思いつくことができるようになった。

ザッピングをするときに気をつけていることが2つある。それはテクニカルターム(技術用語)を拾い上げることと、目についた内容についていかに疑問点を思いつくことができるかを考えることだ。

テクニカルタームは厳格に定義された言葉なので、文書によって意味が変わることがあまりない。したがって、その意味を知っておけばほかの参考書を読むのに応用が利く。テクニカルタームに出会うと意味が分かればいいやと以前はなおざりにしていたが、最近は読み方まで意識するようになった。

疑問点を重視するのはそれがなければ参考書をよむ動機と理解度が随分減るからだ。自分の頭で考えるという準備ができていない状態で文書を読んでも内容を理解することはできないだろう。

ザッピングにどれくらいの効果があるのかはまだわからないが、面白いのでしばらく続けてみることにする。

[PR]
# by tnomura9 | 2017-03-31 12:46 | 考えるということ | Comments(0)

手のひらに咲いた花

あの山下ヤスミンちゃんが大きくなっていた。いい方向に。頑張れ。


10歳の時の歌。






[PR]
# by tnomura9 | 2017-03-18 19:58 | ボーカロイド | Comments(0)

Haskell で順列のプログラムを作ってみた

Haskell でリストの要素を使った順列を列挙する関数をプログラムしてみた。このような関数を perm とすると、関数型は perm :: [a] -> [[a]] となる。

そこで先ず perm [] の値を考えてみる。これは [[a]] 型になり、[] の順列は [] 一個だけだから perm [] = [[]] になるはずだ。そこで prem [] と同じ動作をする関数を次のように perm0 x として定義する。

Prelude> let perm0 [] = [[]]
Prelude> perm0 []
[[]]

次に要素が1個だけの配列 [a] について perm [a] がどのように振る舞うかを考えてみた。これを perm1 として考えるが、あとで perm を再帰的に定義したいので、perm0 x との関係で考えてみた。

[a] の要素 a を取り出すと、[] が残る。perm0 [] = [[]] であることを考えると。a を使った順列は 、

map (a:) [[]]

になる。これは a と a を取り去った配列の全ての順列との結合を意味する。[a] から a を取り去ってできる配列は [] 一つだけだから [] の全ての要素の配列を集めたリストは [[]] だからだ。上の結果は ghci でも確認できる。

Prelude> map (1:) [[]]
[[1]]

さて、[a] から a を取り去ってできるリストはどうやって作ればいいのだろうか。それは filter 関数を利用すれば簡単にできる。

Prelude> filter (/=1) [1]
[]

部品がそろったので perm [a] と同じ動作をする prem1 [a] をプログラムすることができる。

Prelude> let perm1 x = map (\y -> map (y:) (perm0 (filter (/=y) x))) x
Prelude> perm1 [1]
[[[1]]]

この map が入れ子になっているプログラムがどんな動作をしているのかを説明するのは少しむずかしいが順を追って考えてみよう。

先ず最外側の map はリスト [a] から要素 a を取り出す操作を表している。これは、ラムダ関数の変数 y に引き渡される。内側の map はリスト (perm0 (filter (/=y) x) の要素を一つ取り出して y をその先頭に結合する。perm0 はどんなリストかというと、リスト filter (/=y) x の要素の順列からできるリストだ。さらに filter (/=y) x はリスト x から要素 y を取り去ってできるリストである。

具体的に [1] について上のプログラムがどう動作するかを考える。まず y には 1 が入る。もちろん x = [1] である。そうすると filter (/=y) x = [] である。従って perm0 (filter (/=y) x) = [[]] である。すると map (y:) (perm 0 (filter (/=y) x))) x = map (1:) [[]] = [[1]] だ。しかし、最外層の map もあるので結局 perm1 [1] = [[[1]]] になる。

perm1 [1] は上のプログラムでうまく動作するような気がするが、perm の型を考えると perm1 [1] = [[1]] となって欲しい。そこで perm1 の定義を次のように変更する。

Prelude> let perm1 x = concat (map (\y -> map (y:) (perm0 (filter (/=y) x))) x)
Prelude> perm1 [1]
[[1]]

perm1 [1] が動いたので perm2 [1,2] を考えてみる。perm1 x の定義は perm0 x との関係で定義していたので、perm2 x は perm1 との関係で定義できるのではないかと考えてみる。すなわち、perm1 の定義の perm1 を perm2 に perm0 を perm1 に変えてみる。驚いたことにこの企みは次のように成功する。

Prelude> let perm2 x = concat (map (\y -> map (y:) (perm1 (filter (/=y) x))) x)
Prelude> perm2 [1,2]
[[1,2],[2,1]]

調子に乗って perm3 [1,2,3] も試してみる。

Prelude> let perm3 x = concat (map (\y -> map (y:) (perm2 (filter (/=y) x))) x)
Prelude> perm3 [1,2,3]
[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

再帰的定義の利点は、base case から初めて統一的な方法で recursive case のプログラムを記述できることだ。ここまで来たら目的の perm :: [a] -> [[a]] のプログラムをすることができる。これまでの perm0, perm1, perm2 を同じ perm で定義すればいいのだ。

Prelude> :{
Prelude| let
Prelude| perm [] = [[]]
Prelude| perm x = concat (map (\y -> map (y:) (perm (filter (/=y) x))) x)
Prelude| :}
Prelude> perm [1,2,3]
[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

再帰的プログラムを考えるのは再帰的定義の部分のテストができないので難しくなりがちだが、base case から逆算的にテスト用の関数を作っていくと、テスト用の関数から再帰的定義に移行するのは意外に簡単だった。


[PR]
# by tnomura9 | 2017-03-14 23:15 | Haskell 記事リスト | Comments(0)