タグ

ブックマーク / m-hiyama.hatenablog.com (32)

  • 関係データベースの第n正規形もほぼナンセンス、そしてだから… - 檜山正幸のキマイラ飼育記 (はてなBlog)

    デイヴィッド・スピヴァックの著作物を読むときに注意しなくてはならないのは、彼が好んで例に出しているものを彼が好んでいるかどうか分からないことです。評価・価値判断にはあえて触れないのかも知れないし、好悪の感情や批判も称賛もほんとに興味ないのかも知れません。 僕は最初、Functorial Data Migration(http://arxiv.org/abs/1009.1166)は、関係(リレーショナル)データモデルを圏論の立場から合理化するものかと思いました。例として出しているのが関係(リレーショナル)データベースだからです。しかし実際は、スピヴァック理論は関係データモデルの諸概念をほとんど無意味化してしまいます。 RDF(Resource Description Framework)もしょっちゅう例に出しているので、RDFを推奨している印象もありましたが、スピヴァック理論からの帰結は「R

    関係データベースの第n正規形もほぼナンセンス、そしてだから… - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 関係データベースの第1正規形はナンセンス - 檜山正幸のキマイラ飼育記 (はてなBlog)

    一昨日の「主キー/外部キーなんてドーデモイイ」と昨日の「絵で分かる! 主キー/外部キーのアホらしさ」において、主キー/外部キーというのは、いわばメモリ番地とポインターのような、仕掛け・手段が露出しているだけのものだ、と説明しました。仕掛けが露出している結果、概念的には単純なもの(例えば単なる写像)の実現が複雑でしかも恣意的になっています。 今日は正規形、なかでも一番基的な第1正規形の話です。控えめなデイヴィッド君に代わって、ジイサマ(檜山)が批判的に検討しましょう。 アトミックって何ですかぁ? 圏論を使えばどうなる スピヴァックは型システムとデータベースシステムの統合を目指す アトミックって何ですかぁ? 関係データベースである限り、かならず第1正規形になっていることが要求されます。で、第1正規形って何? カラムの値がアトミックであることだと定義されます。アトミック? それ何? まーともか

    関係データベースの第1正規形はナンセンス - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 関手データモデルからの教訓とノウハウ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    スピヴァックが関手データモデルでやったことは、データベースの諸概念を極端に単純化することにより、圏の基概念(圏、関手、自然変換)だけで書き直すことです。これにより、圏論のあらゆる手法をデータベースに適用できる途が開けたわけです。 徹底的に夾雑物を排除して単純化すればいいことあるよ -- これが関手データモデルから得られるひとつの教訓です。この教訓は、いつか役に立つとかではなくて、すぐさまに使えるノウハウでもあります。僕自身、身近な懸案に適用して効果があるのを確認しています。 頂点と辺からなる有向グラフが出てきたら、そこに圏があるんじゃないか? と推測してみるという無邪気な方法論は思いの他に強力です。広い意味でのフローチャートはその典型例でしょう。 比較的最近、The n-Category Cafe の記事にプロジェクトスケジュールに出てくるPERT図(Program Evaluation

    関手データモデルからの教訓とノウハウ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 衝撃的なデータベース理論・関手的データモデル 入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    デイヴィッド・スピヴァックによる衝撃的なデータベース理論である関手的データモデル。どうしたらうまく説明できるか? と色々と悩んでしまいますが、まー、書けるところから書き始めてしまいましょう。 さー、いらっしゃい、いらっしゃい。関手的データモデルの世界へようこそ。圏論の言葉は出てきますが、圏論の予備知識はほぼゼロでOKですよ。 [追記 date="翌日"]取り急ぎ勢いで書きましたので、不注意と早とちりが混じっていました。追記と取り消し線の形で訂正と注記を足しました。字句レベルの表現の変更は直接編集しています。 あとそれと、圏論の基用語を知りたいときはコチラ、… って、……、ゴメン![/追記] 内容: はじめに の購入のサンプル スキーマのグラフ表現 キーとか計算カラムとか 圏としてのスキーマ 関手としてのデータベース状態 テーブルの変化 自然変換としてのデータ操作 データベースに圏論が使

    衝撃的なデータベース理論・関手的データモデル 入門 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • デイヴィッド・スピヴァックはデータベース界の革命児か -- 関手的データモデル - 檜山正幸のキマイラ飼育記 (はてなBlog)

    最近、「おおおー、これは凄い、すんばらしい!」と思ったことがあるので、それについて書きます。 最初に言葉についてのお断り; "categorical"の訳語をどうしようか? と。片仮名で「カテゴリカル」が無難ですが、漢字で書きたい。「圏論的」が落ち着きがいいようですが、必ずしも「論」の意味を含まないときもあります。そこで、以下、「圏的」を使います。 [追記 date="2013-02-12"]入門的解説を書きました。→「衝撃的なデータベース理論・関手的データモデル 入門」[/追記] スピヴァックと関手的データモデル デイヴィッド・スピヴァック(David I. Spivak, http://math.mit.edu/~dspivak/)は、MITの研究者です。 彼は圏的情報学(categorical informatics)を提唱しています*1。圏的情報学の中心的な概念が関手的データモデル

    デイヴィッド・スピヴァックはデータベース界の革命児か -- 関手的データモデル - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • セールスメール配信停止の手続き - 檜山正幸のキマイラ飼育記 (はてなBlog)

    配信停止のために↓って、合法なのかな? いずれにしても、電話するかメールを出さないといけないってメンドクサ過ぎる。 配信停止を希望される場合はお客様のお名前・ご住所・メールアドレスを下記までご連絡ください。 TEL: XXXX-XXX-XXX メールアドレス: XXXXXX@XXXXXX.co.jp

    セールスメール配信停止の手続き - 檜山正幸のキマイラ飼育記 (はてなBlog)
    oanus
    oanus 2012/12/28
  • フローチャートをめぐる迷信と妄言と愚昧 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    2011年12月20日の記事で: [フローチャートについて書くのは] 僕にとっては定期ポストみたいなものです。年に一,二度はこのことを言っておきたい、みたいな。 と書きました。それから半年たってないのですが、なんかまたフローチャート・ネタをやりたくなりましたね。 そう思い立ったのは; 「フローチャートを復権させよう -- 2020年代のプログラミングへ」のブックマークに、羽生章洋(id:habuakihiro)さんが次のコメントを残しておりまして、 昔フローチャートについて講演したりポジティブなことを書いたりしたら偉い叩かれたなあ。似たケースにJavaScriptの記事書いたときも叩かれてその後gmail+ajaxブームが来たら一転したり。みんな原理原則より流行が好き。 いまさらながら当時の情報を探して読んでみたのですよ。2006年夏、羽生さんの講演について大森敏行記者が書いた記事が残って

    フローチャートをめぐる迷信と妄言と愚昧 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 悟りやヒラメキがほんとに大キライだ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ソフトウェアの設計は僕の仕事の一部なんだけど、モデリングとか高水準の設計手法とかに興味がない。いや、正確に言うと、そのテの手法とか流儀とかには、僕を苛立たせるものがあって、精神衛生のために避けている傾向があるってことです。 参照の必要があって、モデリングや設計手法の情報をWebや書籍で調べると、たいていはイライラしてきて最後まで読みきれず、腹を立てて放り投げてしまいますね。 なんでか?と言うと、僕が嫌いな「悟り」や「ヒラメキ」の要素が含まれることがあるからです。「最初は意味不明でも、我慢しているとある日わかってしまう」ような体験 -- それを想定しているような説明がほんとに嫌いなんです。「ある日わかってしまう」経験は僕にもあります。でも、それは僕の能力が足りないからです。つまり、来なら分かるはずのものが「理解力の不足ゆえに分かってなかった」という事実があるだけ、「遅れて理解した」という事

    悟りやヒラメキがほんとに大キライだ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 論理的であるかのごとくに装って、根拠のないイチャモンをつける 13+2 の方法 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ちょっと挑発(コレの最後)してみたけど、どうせ反応はないだろな。しらけてしまわないうちに自分でテンション上げて解説を書いてみました。 内容: 前がき 編 定義の違いを真偽の議論にすり替える 言ってもない事を否定して印象操作をする 傾向や量に関する主張に、勝手に全称限量子を付けてしまう とある階層でなされた主張を、別な階層で否定する 権威や前例に訴える 権威や前例に訴える 別バージョン 論点ズラシ、意図・論点の曲解 論点ズラシ、意図・論点の曲解 感情バージョン 意味もなく自分の経験や知識を強調 問題点を他の事情により帳消しにする 意味不明でもいいから難しそうなことを言ってみる 普通とは異なる解釈を持ち出す 反論されたときは最小コストでごまかす 余計なお世話な悪口も辞さない 言い張る 後がき 前がき すぐあとに続く「編」では、ホントに「根拠のないイチャモンをつける方法」、もう少し正確に言う

    論理的であるかのごとくに装って、根拠のないイチャモンをつける 13+2 の方法 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 4値の論理のベキ集合モデル - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日話題にした4値の論理ですけど、短絡評価をしないことにして論理AND(∧)の真偽表を書いてみると: ∧ true false indef ⊥ true true false indef ⊥ false false false false ⊥ indef indef false indef ⊥ ⊥ ⊥ ⊥ ⊥ ⊥ この演算に、別な解釈を与えてみます。 一般に、集合A上に二項演算 ○:A×A→A があるとき、この二項演算を、Aのベキ集合 Pow(A) 上に持ち上げることができます。Pow(A)×Pow(A)→Pow(A)の演算 ◎ を次のように定義します。 X⊆A、Y⊆A に対して、X◎Y = {x○y | x∈X, y∈Y} 新しく定義した演算◎も、もとの演算と同じ記号○を使ってしまうことが多いですね(記号の乱用)。つまり、X○Y = {x○y | x∈X, y∈Y} 。典型的な例は、文字

    4値の論理のベキ集合モデル - 檜山正幸のキマイラ飼育記 (はてなBlog)
    oanus
    oanus 2011/05/14
  • 3値または4値の論理の使いどころ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    論理に出てくる述語(predicate)をコンピュータの文脈で考えると、適当なデータ領域Dの上で定義され、真偽値(trueまたはfalse)を戻り値とする関数になります。述語を数学的な関数と捉えるなら、その論理計算は古典論理と同じようにできます。しかし、コンピュータによる計算だと、なかなか古典論理と同じにはいきません。 部分的にしか定義されない述語の計算 コンピュータのなかの関数はプログラムにより定義されます。プログラムにより定義された関数の宿命として、無限走行したり例外が発生したりで結果が得られないことがあります。つまり、述語の関数 D→{true, false} は部分関数となります。 部分(かもしれない)関数 f:D→{true, false} があるとき、未定義な部分では f(x) = ⊥ と考えます。⊥ は架空の値でボトムと呼ばれます。「f(x) = ⊥」という言明は、xのところ

    3値または4値の論理の使いどころ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    oanus
    oanus 2011/05/14
  • 不快感をもよおす衒学的文章とはどんなものか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    http://d.hatena.ne.jp/m-hiyama/20100225#c1267490716 : 何人かがご指摘なさっているように「郡司さんは真剣なんだ/真面目なんだ」を否定する気は全然ありません(そうなんだろうと思っています)。であるなら、どうしてデタラメを書くんでしょうか? デタラメという表現方法でしか真意を語れないのでしょうか? -- 僕はそんなことはないと思います。痒いところに手が届かないような語り口でも、デタラメよりは効率的なコミュニケーション方法はあるはず。 以前、bonotakeさんもおっしゃっていた事ですが、「それで誰が幸せになるのか?」です。郡司さんになんらかの「真意」があるにしても、晦渋で難解、デタラメな用語法・推論では「真意」の理解者を減らすだけだろうし、「こけおどしの装飾」との評価もいたしかたないでしょう。 と、なんか「親切な忠告」風なことを書いてしまいま

    不快感をもよおす衒学的文章とはどんなものか - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 線形代数の難所とアダムとイブと矢印一元論 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    量子計算や可逆計算って、なんか面白そうだと思っているのですが、あんまり先に進めないでいます。とりあえず線形代数の復習でもしよう、と、紙ナプキンで計算とかはじめました。 それでいまさら気がついたのですが、線形代数(「線型」を使う場合もあり)って、いくつかの流儀があるんですよね。もちろん、おおすじにおいては同じなんだけど、細かい差異がある。この差で混乱したり、理解が阻害されそう。線形代数の難所(つまずきの石)になりかねませんね。 特に、双対空間の扱いは、定式化に「ものの見方」が反映されるので、流儀によりだいぶ違った印象があります。このへんの違いは、抽象的に見てるとあまり鮮明じゃないのですが、なんかのプログラミング言語で線形計算ライブラリを作ろうと思うとハッキリ認識できます。僕の場合、具体的なプログラミング言語じゃなくて(インフォーマルな)ラムダ計算で線形手計算しようと思ったんですが、やり方が何

    線形代数の難所とアダムとイブと矢印一元論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    oanus
    oanus 2011/04/02
  • データの性質について考える - 檜山正幸のキマイラ飼育記 (はてなBlog)

    データの(あるいはデータ型の)大事な性質に次のものがあります。 変更可能性(ミュータビリティ) 複製可能性(コピーアビリティ) 破棄可能性(ディスカーダビリティ) 状態を表すデータは変更可能でないと使い物になりませんが、一方で、変更してはいけないデータを変更してしまうバグは非常に多いものです。変更可能データをギリギリまで少なくして、できるだけ多くのデータを変更不可能(イミュータブル)にしたほうがいいだろうと思います。constとかfinalをイッパイ付けようね、ってことです。それを突き詰めると、一部の関数型言語のように、そもそも変更可能データがない仕様となります。 コンピュータでは、データのコピーが比較的容易ですが、それでも巨大なデータとなるとそうそうコピーはできません。現実的には複製不可能なデータもあるのです。変更不可能データなら、データ共有(シェアリング)によりコピーしたのと同じ効果を

    データの性質について考える - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • VOODOOな理論達:南堂久史さん、その強さの秘密 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    平成のアリストテレス/博学の王・南堂久史さん(と勝手にキャッチコピー付けてみました)の解説「シュレーディンガーのの核心」に対して、nucさんが「シュレディンガーの」なるエントリーを書かれました。 昨日のエントリーより引用: しかしながら、これを読んでみて、nucさんも僕も、南堂さんには“かなわない”なー、という気分もしました。それはどういうことかと言うと … ウーン、時間がない、明日とか。 で、続きです。 ●理解した気分になったほうが嬉しい id:mindさんの、「いいセンいってる南堂久史さん」へのブックマーク・コメントが大変に示唆的: 我々は理解するよりも、理解した気分になったほうが嬉しいですから。 さらに面白ければ2倍トク。 この「理解した気分」の取り扱いが非常に厄介でして、僕もホントに悩まされていることなんですよ。 ●比喩の功罪 誰か(ファインマンだったかな?)が、量子力学的現象

    VOODOOな理論達:南堂久史さん、その強さの秘密 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 古典論理は可換環論なんだよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    酒井さんのコメントに対して、 {true, false}と{0, 1}の対応でも、ほとんどの場合trueを1にしますが、trueを0にしたほうが計算がスムーズな状況もあります。 なんて応えたわけですが、これでフト思い出したことがあります。 以前、「イデアルと論理」つうネタでいくつかのエントリーを書いたことがあるのですが(「はてなブックマーク - ideal+logicに関するm-hiyama-taxonのブックマーク」参照)、中途半端にうっちゃってあるなー、ダハハハ。 未完(永久にか? ^^;)の「イデアルと論理」シリーズの最初のほうでは、普通の(つまり、可換環の)イデアルを紹介してますが、最終的には論理の(つまり、ブール代数の)イデアルに結びつけようと思っていたわけです。で、「どうやって結びつけるのか」という筋書きは今日説明しようかな、っと。(とはいえ、基的に自分の備忘用ですけど。)

    古典論理は可換環論なんだよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    oanus
    oanus 2010/12/10
  • Wiki処理系を作る前に知るべきこと/考えるべきこと - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Wiki構文(Wiki記法のルール)は山にようにイッパイあります。 「新たにもう1つ構文を付け加えても別にいいだろう」と考えるか、「これ以上新しい構文を増やしてはいけない」と考えるかは人によるでしょう。僕は、「集約・統合してWiki構文を減らすべきだ」と考えています。それで、標準的なWiki構文としてWikiCreole 1.0を採用し、KuwataさんがCreoleパーザーを実装しています。 ところが、WikiCreoleの構文記述が曖昧過ぎてサッパリわからんのです。Kuwataさんもイライラしている様子。このような状況はWikiCreoleに限りません。たいていのWiki構文の記述はイイカゲンです -- いやっ、仕様書があるだけでマシなのです。イイカゲンな仕様に適合した(conformantな)処理系を作れと言われてもそりゃ困りますわな。 WikiCreole仕様の曖昧さは以前にも話題

    Wiki処理系を作る前に知るべきこと/考えるべきこと - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 掛け算から足し算を作る(パズルとしてやってみよう) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    とある論文に、パズルのネタになりそうな計算の話があったので紹介します。予備知識は特に要りませんが、けっこう難しい。 小学校で最初に習う計算は足し算です。しばらくして掛け算を習います。整数の掛け算、例えば 3×4 は、足し算の繰り返しとして導入することもできます。3×4 := 3 + 3 + 3 + 3 。 掛け算を先に習って、掛け算をベースに足し算を定義するような学習コースは聞いたことがありません。が、宇宙のどっかに、そんな順序で計算を教えている星があるかもしれません。我々地球人には不自然ですが、掛け算をもとに足し算を定義することは出来るようです。 実数の集合に対して、足し算を忘れてしまい、掛け算だけを考えます。掛け算の法則は全部使えます。具体的に書けば: (a×b)×c = a×(b×c) a×b = b×a a×1 = a a≠0 ならば、a×a' = 1 となるa'(aの逆数)が存在

    掛け算から足し算を作る(パズルとしてやってみよう) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    oanus
    oanus 2010/07/13
  • 笑いが恐怖に変わるとき:江本勝さんと郡司ペギオ-幸夫さん - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「僕がだんだんと郡司ペギオ-幸夫さんに批判的になっていった様子」(今日の別エントリー): この引用だけでは、僕の心境が変化した理由は読めないでしょうね。またそのうち書きます。 今日のうちに書きます。 水の詐欺師・江勝さんのときと似てると思います。江さんや郡司さんに対する僕自身の好奇心のあり方はずっと変わってなくて「おもしろいな」って気分のほうが強いのです。当初は「こんなことをマに受けるヤツはいないだろう」みたいな甘い認識だったのが、けっこう信じている人が多い事実に気付いて、「それはないだろ/マズイ、ひじょーにマズイ」と思い直す、というパターン。 「さらに「水は生きている」-- ウチには子供がいるってこと」から引用します: 僕が今回なんでショックを受けてしまったかというと、江<えもと・ぼん>へのコメントが43件もあるのに、ほとんどがマジに書いてること。ムキになっての批判や意地悪な揶揄

    笑いが恐怖に変わるとき:江本勝さんと郡司ペギオ-幸夫さん - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • BNF、EBNF、ABNF、まー正規表現だな - 檜山正幸のキマイラ飼育記

    BNFとか正規表現の話を。 ミニマムなBNFと正規表現 BNF(バッカス/ナウア記法)は、プログラミング言語の構文記述によく使われるメタ構文です。もともとは、「?」(省略可能)や「*」(任意回の繰り返し)のような記号は使わなかったようです。現在の正規表現で標準的に使われる「?」「*」「+」は、なくても次のように定義可能なのです。(以下で、EMPTYはそこに何もないことです。ほんとに何も無いと分かりにくいので目印にEMPTYを使います。) // X は A? X ::= EMPTY | A // Y は A* Y ::= EMPTY | A Y // Z は A+ Z ::= A | A Z 「|」があれば「?」「*」「+」を定義できますが、その代わりに再帰的な定義になります。 「::=」の左に同じ記号が複数回登場するのを許すと、「|」さえも不要になります。 // X は A? X ::=

    BNF、EBNF、ABNF、まー正規表現だな - 檜山正幸のキマイラ飼育記