更級日記、方丈記を読んで、タイムライン(年表?)を作ってみたくなった。
イベント(人も出来事もイベントとして扱う)のリストを作る
$ more events 紫式部,973?,1014? 菅原孝標女,1008,1059 平清盛,1118,1181 源頼朝,1147,1199 鴨長明,1155?,1216 藤原定家,1162,1241 明月記,1180,1235 養和の飢饉,1181,1181 吉田兼好,1283,1350
・紫式部
https://kotobank.jp/word/%E7%B4%AB%E5%BC%8F%E9%83%A8-140850
ブリタニカ国際大百科事典 小項目事典「紫式部」の解説
紫式部
むらさきしきぶ
[生]天延1(973)頃
[没]長和3(1014)頃
・菅原孝標女
https://ja.wikipedia.org/wiki/%E8%8F%85%E5%8E%9F%E5%AD%9D%E6%A8%99%E5%A5%B3
菅原孝標女(すがわら の たかすえ の むすめ、寛弘5年(1008年) - 康平2年(1059年)以降?)は、平安時代の貴族の女性。本名は伝わっていない。
10歳頃から50歳頃までの人生を回想した『更級日記』の作者。
・更級日記
https://ja.wikipedia.org/wiki/%E6%9B%B4%E7%B4%9A%E6%97%A5%E8%A8%98
東山御文庫に伝えられてきた 藤原定家による写本、通称「御物本」が現存する。
藤原定家の書写、80丁
https://ja.wikipedia.org/wiki/%E6%9B%B4%E7%B4%9A%E6%97%A5%E8%A8%98#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Teika-sarashina-nikki-calligraphy.png
タイムラインを描くプログラムを作る
(my_timeline.pl)
#!/usr/bin/env perl $min = undef; $max = undef; $i = 0; while(<>){ chomp(); ($name,$start,$end) = split(/,/); $event[$i][0] = $name; if( $start =~ /(\d+)(\?*)/ ){ $start = $1; $event[$i][1] = $1; $event[$i][3] = $2; } if( $end =~ /(\d+)(\?*)/ ){ $end = $1; $event[$i][2] = $1; $event[$i][4] = $2; } if( $min eq undef || $start < $min ){ $min = $start; } if( $max eq undef || $max < $end ){ $max = $end; } $i++; } $n = $i; print "min:$min\n"; print "max:$max\n"; $min_dig = int(log($min)/log(10)); $max_dig = int(log($max)/log(10)); $min = int( $min / 100 ) * 100; $max = int( $max / 100 + 1 ) * 100; print "range:$min-$max\n"; $split = 5; #$inc = ( $max - $min ) / $split; #年を描く for($i=$min;$i<$max;$i+=$split){ if( $i % 50 == 0 ){ print $i; $len = length($i) - 1; }elsif( $len > 0 ){ $len--; }else{ print " "; } } print "\n"; for($i=$min;$i<$max;$i+=$split){ if( $i % 50 == 0 ){ print "+"; }else{ print "-"; } } print "\n"; #個々のイベントを描く for($i=0;$i<$n;$i++){ for($j=$min; $j<$max; $j += $split){ if( $j <= $event[$i][1] && $event[$i][1] < $j + $split ){ if( $event[$i][3] ){ print "?"; }else{ print "I"; } }elsif( $j <= $event[$i][2] && $event[$i][2] < $j + $split ){ if( $event[$i][4] ){ print "?"; }else{ print "I"; } }elsif( $event[$i][1] < $j && $j + $split <= $event[$i][2] ){ print "-"; }else{ print " "; } } print "$event[$i][0],$event[$i][1]$event[$i][3],$event[$i][2]$event[$i][4]\n"; }
実行してみる
$ ./my_timeline.pl events min:973 max:1350 range:900-1400 900 950 1000 1050 1100 1150 1200 1250 1300 1350 +---------+---------+---------+---------+---------+---------+---------+---------+---------+--------- ?-------? 紫式部,973?,1014? I---------I 菅原孝標女,1008,1059 I------------I 平清盛,1118,1181 I---------I 源頼朝,1147,1199 ?-----------I 鴨長明,1155?,1216 I---------------I 藤原定家,1162,1241 I----------I 明月記,1180,1235 I 養和の飢饉,1181,1181 I-------------I 吉田兼好,1283,1350
菅原孝標女が幼少の頃、まだ紫式部は生きていた?
菅原孝標女が亡くなってから、藤原定家が生まれるまで100年以上の開きがある。
養和の飢饉が藤原定家、鴨長明に与えたインパクトは大きいのか?