kzhr's diary

ad ponendum

時刻合わせ over Proxy

qiita.com をやってみたけど、date --setGNU dateのオプションのようであるし、wgetはさいきんのMacにはすくなくともデフォルトで入っていない。ということで、macOS Catalina版のメモ。

sudo date -f "%s" "$(curl -s https://ntp-a1.nict.go.jp/cgi-bin/jst | sed -n 4p | cut -d. -f1)"

Launchdに登録するplist版。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.ntpOverProxy</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/ntpOverProxy.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>1200</integer>
</dict>
</plist>

shのファイルにはsudoはいらないはず? 時刻未指定で1200秒なのは、ネットワークの治安の問題による。

なお、精度は……。組織内NTPもないのに、NTPを止めるようなProxyサーバーなどないのがもっとも望ましいのは言うまでもない。

ここ10年の言語学系新書

言語系新書ということであれば、CiNiiで検索すれば済む話ですが、言語学系となるとまた。

独断と偏見で。

やきっぺの個人的に好きな調理法

北海道には、やきっぺというご当地インスタント焼きそばがあり、ただのインスタント焼きそばなのだが、みょうに好きである。

たいしたことはいつもどおり書かないのだが、個人的においしいと思える調理法が確立されたのでメモしたいということである。材料は、やきっぺだけあればよい。

  1. インスタント・ラーメンを茹でるくらいの水をフライパンで沸かす
  2. 1分茹で、裏返して1分茹でる
  3. ざるに空けて湯切りをし、すぐ戻す
  4. 効用は知らないが、麵をフライパンの端に寄せて、ソースを空いたスペースに出し、沸騰するまで待つ
  5. 混ぜる
  6. よそる(ここでふりかけを忘れがちになる)
  7. 食べる

ここで、揚げた油が落ちて、すこしだけ罪悪感が薄れるというのは、もっとも意味のない効用である。

定訓であることについて ウチはなんの定訓であるのか*1

定訓と常用漢字表

山田(一九七一)は、定訓であることについて、つぎのやうに述べてゐる。

某一字について、その呼称を考へる時に、直ちに喚起される字訓を、先づ第一にその字の定訓(またはその一つ)に擬することが許されるであらうと考へる。……その字を指し示すに援用できて、十分その機能がみとめられるレベルに達してゐる語を、その字の定訓といふことができよう。
(山田、一九七一・四‐五ページ)

ここにおいて、定訓とは、ひとつの漢字と訓について、これが脳裏に浮べばかれが浮び、かれが浮べばこれが浮ぶごとき緊密さを持った字を言ふ。これは、芮(二〇一一)においても認められてゐる立場である。

しかし、定訓は、山田(一九七一)が述べるやうに、漢字の訓みを想起する必要があってこその存在であることは注意されてしかるべきことのやうに思ふ。なんとなれば、漢字で表記せず、仮名(万葉仮名にせよ、平片仮名にせよ)で表記してもよいからである。ある語を漢字表記するとき、その語が定訓であるような漢字を選ぶのは、そのはうが読みやすいからであって、そのゆゑに『類聚名義抄』や『色葉字類抄』では、定訓をその筆頭に挙げてゐるのであらう。

かかる認識に立つとき、芮(二〇一一)の行ふやうな定訓の常用漢字表への引き当てのなしやう、とりわけ、『訓点語彙集成』の用ゐかたにはいくつか疑問点がある。以下、ウチといふ訓を例として、略説しよう。

本論文における常用字・常用訓と定訓

芮(二〇一一)では、『類聚名義抄』・『色葉字類抄』とともに、『訓点語彙集成』を検討してゐる。『類聚名義抄』と、『色葉字類抄』がすでに学問的に定訓との関係があるていど示されてゐるのに対し、『訓点語彙集成』は、その利用法さへ定ってゐない資料であって、芮氏の手法の有効性が検討されねばならないだらう。

さて、その手法は、

I.常用字が『訓点語彙集成』で用例数の一番多い用例漢字である。
(芮、二〇一一・七ページ)

ことを定訓である基準とする。すなはち、当該資料において、訓ごとにまとめられた見出しに集められた各漢字表記の用例数を材料とするものである。

この手法には、つぎのやうな問題がある。第一に、『訓点語彙集成』はたんに膨大なコーパスであり、そこに現れる語彙の偏在をして、言語体系がさうであると見なすことはできないことである。また、これでは漢文における用字の多寡にあまりに影響を受けてしまふ。これは、用例が多数の文献に見られることなどの尺度を導入するなどして、訓の安定性を確めることで解消され得よう。第二に、この手法では、訓から漢字を引くこととなるが、用例が多ければ定訓が導けるかいなか、これまで明らかにされてはゐないことである。いかに用例が多くとも、その漢字からその訓が想起できないやうな訓は定訓と呼ぶにふさはしくはない。ハカルと訓まれる漢字がどの字がどれほど用ゐられてゐるか示しても、ハカルといふ定訓を持つ漢字がどれであるかを証明しはしないやうに。『色葉字類抄』において、訓からもっとも望ましい漢字が引けるのは、どの字で読ませるのがもっとも望ましいか調べる字書であるからであらう。

訓点語彙集成』の訓の用例数から定訓を考へる問題点を、いますこし具体例をもって検討しておきたい。ここでは、ウチを対象とする。ウチと訓む字には、主として中と内とがある。この両字は、ウチのほかに、ナカと訓むのであって、それをまとめて示せば

ウチ四九文献一五三用例
ナカ四一文献二三三用例
ウチ二四文献四七用例
ナカ一文献一用例
のごとくになる。

この結果が示すことは、用例数で見れば飛びぬけて多いナカと訓む中は、文献のはばひろさにおいてウチに劣り、また、中の訓がウチとナカとで頡頏してゐるのに対し、内の訓が圧倒的にウチと結びついてゐるといふ事実である。

まず、第一の点については、特定の文献に頻出したものを拾ひすぎた、統計的な外れ値を除去せずに考察してしまってゐることを示してゐる。

そして、そのやうな外れ値を除いて検討すれば、中といふ字を見たとき、ウチとナカのどちらが中と緊密なつながりにあるか分らないとするのがおよそ妥当なところではなからうか。このことは、『色葉字類抄』における中の訓第一位が、ウチとナカの両方を備へてゐることからも推察されるやうに思ふ。

翻って内については、ウチとの緊密な関係が明白であって、これを定訓と呼ぶことに疑ひをはさむ余地はないのではなからうか。しかしながら、現在の手法ではこのことを捉へることができないのである。

小結

以上、芮(二〇一一)における『訓点語彙集成』の検討方法については、その手法の是非について疑問点があることを示した。

さて、今回取り上げた中の定訓はなんであり、どのやうにして示されるべきかといふことが疑問として残された。いま、その回答を持ってゐないが、ひとつにはどちらも定訓でないといふことであり、ひとつにはどちらも定訓であるといふことであらうと思ふ。前者であれば、既存の定訓の概念に反するものではないが、後者については、あるいは既存の概念に背くものであるかもしれない。すくなくとも、峰岸(一九八六)が古事記に対して施したやうな借訓仮名として利用可能かといった分析では、定訓の複数性について許容し得ないのではないかとも考へられるが、いまはその可能性を示唆するに留める。

文献

*1:昔ゼミで読んだ論文の紹介を気まぐれに持ってくる

国語研天草版テキストから対比できそうな四つ仮名を取り出すスクリプト

#!perl

use strict;
use warnings;
use utf8;
use open qw/:std :utf8/;

my $substr = 3; # まとめ文字数

my $file = shift @ARGV;

open my $fh, "<", $file or die;

my %match;
my $fno = '';
my $lno = 1;
my $llno = 0;
my $skip = 0;

while (my $line = <$fh>) {
  chomp $line;
  $llno++;
  if (not $skip) {
    $skip = 1 if $line eq '(扉)';
    $fno = '扉' if $skip;
    next;
  }
  if ($line =~ /^((.+))$/) {
    $fno = $1;
    $lno = 1;
    next;
  }
  next if $line !~ /^\d/;
  while ($line =~ /\b\w*zzu\w*\b/ig) {
    my $m = my $m_mod = $&;
    $m_mod = lc $m_mod;
    $m_mod =~ s/zzu/zu/ig;
    $m_mod =~ s/gi/ji/ig;
    my $m3 = substr $m_mod, 0, $substr;
    push @{$match{$m3}{zzu}}, [$m, $fno, $lno, $llno];
  }
  while ($line =~ /\b\w*(?<!z)zu\w*\b/ig) {
    my $m = my $m_mod = $&;
    $m_mod = lc $m_mod;
    $m_mod =~ s/zzu/zu/ig;
    $m_mod =~ s/gi/ji/ig;
    my $m3 = substr $m_mod, 0, $substr;
    push @{$match{$m3}{zu}}, [$m, $fno, $lno, $llno];
  }
  while ($line =~ /\b\w*ji\w*\b/ig) {
    my $m = my $m_mod = $&;
    $m_mod = lc $m_mod;
    $m_mod =~ s/zzu/zu/ig;
    $m_mod =~ s/gi/ji/ig;
    my $m3 = substr $m_mod, 0, $substr;
    push @{$match{$m3}{ji}}, [$m, $fno, $lno, $llno];
  }
  while ($line =~ /\b\w*gi\w*\b/ig) {
    my $m = my $m_mod = $&;
    $m_mod = lc $m_mod;
    $m_mod =~ s/zzu/zu/ig;
    $m_mod =~ s/gi/ji/ig;
    my $m3 = substr $m_mod, 0, $substr;
    push @{$match{$m3}{gi}}, [$m, $fno, $lno, $llno];
  }
  $lno++;
}

my @keys = sort keys %match;
for my $key (@keys) {
  if (exists $match{$key}{ji} && exists $match{$key}{gi} or exists $match{$key}{zu} && exists $match{$key}{zzu}) {
    my $m = $match{$key};
    my @yotsu_keys = sort %{$m};
    for my $yotsu_key (@yotsu_keys) {
      for my $y (@{$m->{$yotsu_key}}) {
        printf "%s\t%s\t%s\t%s\t%s\t%s\n", $key, $yotsu_key, @$y;
      }
    }
  }
}

ばあいによって、テキストデータのBOMを落としたり改行コードを直したりする必要はある。対比ではなく全例を見たいときは、if (exists…)のif文をコメントアウトすればよい。