URIとトリプルにこだわっている限りダメだと思う。
トリプルは S×P×O の要素で、RDFグラフは S×P×O の部分集合。これは次の同型に基づいて解釈できる。($`\mathrm{Rel}`$ の意味が曖昧だが、適宜解釈するとして)
$`\quad \mathrm{Map}(P, \mathrm{Rel}(S, O)) \cong \mathrm{Rel}(S, P, O)`$
つまり、Pの要素で二項関係に名前を付けている。次の点が不十分。
- 一般にn項関係に名前を付けることは考えないのか? 0項関係、1項関係、3項関係
- Pが単なるトークン(URI)の集合で、構造を持たせてない。SやOに構造を持たせているのにオカシイ。プロパティグラフへの拡張は、関係〈リンク〉にも属性を付けている。
- ファセットが考慮されてない。
- 多関係のテンソル計算を使えばよい。
- カリー変形を考える。
- クォーティング=レイフィケーションを考える。
- 摘出と復元を考える。
関係の議論は甘く考えていると足をすくわれる。舐めプはダメ。
次のグラフを考える。(ちょっと生々しくきな臭いが。)
digraph { N1[label="アキラ"] N2[label="コウタ"] N3[label="ユリコ"] N4[label="アユミ"] N5[label="チエ"] N1 -> N2[color=blue] N1 -> N3[color=red] N3 -> N1[color=blue] N4 -> N1[color=red] N3 -> N4[color=blue] }
blue が likes、red が loves だとして:
- チエはアキラに「ユリコはアキラを愛している」と言ったが、それは嘘だった。
- チエはアユミに「アキラはユリコを愛している」と言ったが、それは本当だった。
上のような文〈センテンス〉を、RDFグラフを事実だとしてどう表現するか? 考えてみると、多項関係のハイパーエッジ=順序単体からなる複体〈ハイパーグラフ | 高次グラフ〉の議論をしなくてはならない。甘く見ない。
グラフだけではなくて、高次グラフ/ストリング図/テンソル計算を考えないといけない。また、多関係〈関係テンソル〉の圏とデータ変換写像の圏から構成される二重圏も出てくる。甘く見ない。
ゲンツェンの構造規則=カリー変形が多様だから、表層的定式化も多様になる。
知識ベースとしてのRDFグラフに関して言えば、否定の扱いが難しから極性付き論理式を考えるべき。正論理式と負論理式(肯定論理式と否定論理式)を独立に保存する。