どうも体調わろし。ボンヤリしているので勘違いや妄想が入るかも。
しばらく前(1月の中盤くらい)、二重圏の話をしていました。
このとき、僕がイメージしていた二重圏(直和を考えればモノイド二重圏)は次のようなものです。
関手的データモデルの文脈でもなんか二重圏が出てくるみたい。
Sがスキーマとして、データベース状態(データベースインスタンス)は関手 D:S→Set となります(アンビエント圏に集合圏を使うとき)。データベース状態Dから別な状態D'を得るデータ操作(data manipulation)は、α::D⇒D' という自然変換です。よって、データベース状態とデータ操作からなる圏は関手圏 [S, Set] となるわけです。これが関手的データモデルの基本設定ですね。
さて、比喩的に言うと、データベース状態Dはアンビエント圏Set内に描かれた図形です。データ操作 α::D⇒D' は図形の変形、つまりホモトピーみないなもんです。ここで、アンビエント圏Setの射は2つの目的で使われています。
- 図形を描く線として
- 図形の変形の軌跡として
この2つの目的で使われる射を区別したいことがあります。例えば、データ操作(の成分射)には単射しか使わないとかです。すべての t∈|S| に対して、αt:D(t)→D'(t) が単射なら、データを一切削除しないデータベースとなります。この場合、データ操作(である自然変換)の成分は、単射(モノ射)の圏 Mono(Set) に入ります。
すこし一般化して、圏Cに対して次のような二重圏Eを考えます。(Dはデータの意味で使ってしまったのでEにします。)
- HとVは、Cの広い部分圏とする。(|H| = |V| = |C|)
- Eの対象(0-セル)の集合は、E0 = |C|
- Eの水平射(水平1-セル)の集合は、Eh1 = Mor(H)
- Eの垂直射(垂直1-セル)の集合は、Ev1 = Mor(V)
- Eの2-セルの集合は、E2 = (Cの可換四角形で、横の辺がHに入り、縦の辺がVに入るもの)
基本的には、「二重圏のもっと簡単な例:圏の可換四角形の二重圏」と同じような構成です。四角形の辺に条件を付けています。例えば、C := Set, H := Set, V := Mono(Set) と置くと先の例となります。
関手データモデルの文脈において、上記の手順で二重圏Eを作り、二重圏のなかでデータ操作 α::D⇒D' を考えましょう。DやD'は横方向に広がる1次元の図形で、αは縦方向に伸びる2次元の図形となります。D0⇒ D1 ⇒ D2 ⇒ ... のような列を考えると、これは離散時間でアニメーションする図形と思えます。離散時間を補間して連続時間に出来るかもしれません。
スピヴァックは、データの永続トポロジー/永続ホモロジー(persistent topology/persistent homology 例えば、http://www.math.upenn.edu/~ghrist/preprints/barcodes.pdf)にも言及していたので、パラメータに沿った関手の変形はなんかに使えるかも?