2025-05-25

"統辞構造論" Noam Chomsky 著

言語学の革命と称される生成文法理論の誕生は、「統辞構造論」という一冊の小冊子によって告げられたという。それは、当時流行していた二つの理論の限界を示しつつ、これらに論理構造という視点を加味する形で展開されるとか...
尚、本書には「言語理論の論理構造 序論」も併録され、福井直樹、辻子美保子訳版(岩波文庫)を手に取る。

二つの理論とは、初歩的な生成文法としての形態音素論と、有限状態マルコフ過程に基づく形式文法である。そこには、「変換」という概念からのアプローチが披露され、語句の置換や代入、挿入や削除といった操作は、まるで代数学!
ノーム・チョムスキーの視点は、ソシュールの構造主義を踏襲しているのだろうか。言語システムを一つの集合体として捉え、それが有機体のごとくうごめくような。言語の運用と能力、そしてなによりも、その慣習に人間の姿を投射して魅せる。
あるいは、句構造のツリー分解、再帰的特性や巡回、語彙羅列や文脈依存、同義性と多義性、音素的弁別性と意味特性の結びつきなどの考察は、哲学と数理論理学の融合を思わせる。言語学は、いや、あらゆる学は、自然科学であるべし!と告げるかのように...

おそらく、自然言語には普遍法則なるものが存在するのだろう。文法構造には、完全に規定できる変換法則なるものがあるのだろうか。例外を認めれば、それに近いものはあるだろう。生得的に学習できる何かがが。帰納的に組み込まれた何かが...
言語には、数学で言うところの不完全性の問題を孕んでいるものの、各国語の文法は、VO型、SOV型、VSO型などで規定され、英語で言うところの WH 疑問文のような雛形もある。
そして、意味を与えることなく文法を与えることはできるのか、という疑問がわく...

元々、言語システムには変化の余地が組み込まれている。
語句や文体の使われ方は時代とともに変化し、誤用の方が庶民の圧倒的支持を得れば、それが主流となる。文法の正当性を組織化することは、国語辞典や文法事典などでは心もとない。この変化の余地は、言語が精神の投射装置として機能している以上、避けられまい。そもそも精神ってやつの実体が完全に解明できない限り、言語もまた完全な体系として説明することはできまい。そして、それは人類にとっての永遠のテーマの一つとなろう。己を知るというテーマとして...
こうした状況を尻目に、小説家たちは新たな表現様式を次々と編み出してくる。言語の競争原理としての表現のテクニックや派生のおかげで、言葉が豊かになるのも確か。これこそが言語の本質やもしれん...

そして、本書とは関係ないが、あるフレーズが頭に浮かぶ...

「文法は言語の規則とみなされている。だが、日本語をしゃべっている者がその文法を知っているだろうか。そもそも文法は、外国語や古典言語を学ぶための方法として見出されたものである。文法は規則ではなく、規則性なのだ。... 私は外国人のまちがいに対して、その文法的根拠を示せない。たんに、"そんなふうにはいわないからいわない"というだけである。その意味では、私は日本語の文法を知らないのである。私はたんに用法を知っているだけである。」
... 「定本 柄谷行人集、ネーションと美学」より...

2025-05-18

WinScreeny との戯れ!ジャンクコマンドに癒やされる...

気分転換に、WinScreeny...
それは、Cygwin 版 ScreenFetch といったところ。そう、unix 系でお馴染みのアスキーアートだ。CLI 環境が手放せずにいるネアンデルタール人の憩いの場!
人生とは、無駄をいかに楽しむか!ということであろうか。それで、無駄も無駄ではなくなるような...

さて、こいつの良いところは、なんといっても bash で書かれていること。おかげで、いかようにもカスタマイズできる。つまり、Cygwin である必要もないのだ。これぞ自由感!
我が環境では、二つほど warning が出力されるが、コードを見れば一目瞭然!勉強にもなって、ありがたや!ありがたや!
尚、GitHub からダウンロードできる。


 1. 出力は、こんな感じ...
● WinScreeny for Cygwin

#! /bin/bash
screeny
figlet -w 110 -f slant -c "CYGWIN x64"



● ScreenFetch for Roccky Linux(参考まで)

#! /bin/bash
screenfetch-dev
figlet -w 110 -f slant -c "Rock Linux 9"



2. 押さえておきたいワザは、二つ...
● 一つは、変数 "display" で宣言した項目数でループをかけて、detect*() 関数をアクティブ化。

  ...
#display=( Host Cpu OS Arch Shell Motherboard HDD Memory Uptime Resolution DE WM WMTheme Font )
display=( Host Cpu OS Arch Shell Motherboard HDD Memory Uptime Resolution DE WM WMTheme Font GPU Kernel )
  ...

detectHost () { ... }
detectCpu () { ... }
  ...
detectGPU () { ... }
detectKernel () { ... }
  ...

# Loops :>
for i in "${display[@]}"; do
  [[ "${display[*]}" =~ "$i" ]] && detect${i}
done
  ...
尚、GPU と Kernel を追加してカスタマイズ。

● 二つは、文字色と背景色をエスケープシーケンスのカラーコードで抽象化。

  ...
f=3 b=4
for j in f b; do
  for i in {0..7}; do
    printf -v $j$i %b "\e[${!j}${i}m"
  done
done
  ...

cat << EOF
    ...
  ${f1}OS: ${f3}${os} ${arch}
  ${f1}CPU: ${f3}${cpu}
    ...
EOF

# ---- 文字色変数 $f* ----
# $f0 =>  "\e[30m  :Black
# $f1 =>  "\e[31m  :Red
# $f2 =>  "\e[32m  :Green
# $f3 =>  "\e[33m  :Yellow
# $f4 =>  "\e[34m  :Blue
# $f5 =>  "\e[35m  :Magenta
# $f6 =>  "\e[36m  :Cyan
# $f7 =>  "\e[37m  :White

# ---- 背景色変数 $b* ----
# $b0 =>  "\e[40m  :Black
# $b1 =>  "\e[41m  :Red
# $b2 =>  "\e[42m  :Green
# $b3 =>  "\e[43m  :Yellow
# $b4 =>  "\e[44m  :Blue
# $b5 =>  "\e[45m  :Magenta
# $b6 =>  "\e[46m  :Cyan
# $b7 =>  "\e[47m  :White
尚、printf 文は、-v オプションで変数に直接代入できるんだぁ...

2025-05-11

xdotool との戯れ!Window ID の取得で、ちと悩むものの...

起動位置やウィンドウサイズを記憶してくれないアプリケーションがある。
gnome-terminal のように、--geometry オプションが使えるとありがたいが、できないアプリケーションもある。すべてのウィンドウ配置をコマンドラインで制御したいというのは、いまだ awk や sed が手放せずにいるネアンデルタール人の感覚か... 

ちなみに、nautilus や mutter では、痒いところに手が届かない。
ウィンドウのサイズは、nautilus から...
$ dconf-editor
org/gnome/nautilus/window-state に "initial-size" があり、自動で変化する模様。
ウィンドウの起動位置は、mutter から...
$ dconf-editor
org/gnome/mutter に "center-new-windows" の on/off しか見当たらない。

0. てなわけで、xdotool を試す...

$ sudo dnf install xdotool

尚、環境は...
OS: Rock Linux 9.5 (Blue Onyx)
Kernel: 5.14.0-503.38.1.el9_5.x86_64
Gnome Version: 40.4.0
Gnome 環境: スタンダード(X11ディスプレイサーバー)

1. 手順は、こんな感じ...
  1. Window ID を取得: xdotool search --name(or --class) "ウィンドウ名"
  2. Window ID を指定して移動: xdotool windowmove "Window ID" X Y
Window ID さえ取得できれば、なんとかなりそう...

2. 例えば、chrome では、素直にうまくいく。
$ xdotool search --neme chrome
39845892
$ xdotool windowmove 39845892 100 200

3. しかし例えば、baobab「ディスク使用量アナライザ」では、うまくいかない。
尚、baobab は、ウィンドウサイズは記憶してくれるが、起動位置は記憶してくれない。
$ xdotool search --name baobab
33554433
$ xdotool windowmove 33554433 100 200
これで反応なし!
xwininfo で確認すると、Window ID の取得に問題あり...

そして、こうやると、うまく取得できる。
$ xdotool selectwindow
=> 対象ウィンドウをクリック!
33554680
これは、xwininfo の取得値(16 進表記)と同じ。

さらに、こうやると、二つの値が得られる。
$ xdotool search --class baobab
33554433
33554680
欲しいのは、下の ID...

そして、こうやると、ビンゴ!
$ xdotool search --onlyvisible --class baobab
33554680
尚、"--class" を "--classname" としても結果は同じだが、違いは微妙か...

4. 結果、コードはこんな感じ... とりあえず、めでたし!めでたし!
#! /bin/bash
baobab /home/username &
sleep 1s
window_id=$(xdotool search --onlyvisible --class baobab)
xdotool windowmove $window_id 100 200

2025-05-04

セントからロッキーへ鞍替え!いや、本家回帰か...

ショッキングな CentOS 終了宣告で CentOS Stream 9 に乗り換え、一年が過ぎた。安定感はまあまあ...
騒ぐほどのことでもなかったかなぁ... と同じ感覚で Stream 10 へアップデートすると、なんじゃこりゃ!GUI の不安定感は、Fedora 並み!?
リモートで使う分には問題なさそう。いや、怪しいかも?せっかくのマルチモニタ環境が... サーバ系とは、そういうものなのかなぁ... メジャーバージョンのアップデートがトラウマになりそう!
うん~、こんなことで愚痴ってるようでは... 

ここは思い切って、Rocky Linux 9.5 へ鞍替え!コミュニティにはお世話になってきたし...
今、Fedora から CentOS へ鞍替えした頃の感覚が蘇る。CentOS の名に不安定感は似合わない。やはり、こちらが本家か!
うん~、こんなことが精神安定剤になろうとは...

ネアンデルタール人は、時代の流れに翻弄されるばかり...
人生とは、寄り道、脇き道、回り道... いずれも奥深い道!などと自らに言い訳しながら生きる道。この道を楽しめぬようでは、まだまだ...