リレーショナル データベース テーブルから (おそらくテーブルを結合することによって) データの行を取得したとします。各行にはいくつかの列 (A、B、C、D など) があり、次の行は私が持っているものです。
A1、B1、C1、D1
A1、B2、C1、D1
A1、B2、C1、D2
エンティティ間でネットワーク グラフを描画する場合、次のような複数のトリプルを作成することで、情報を RDF に保存できます。
A1 は B1 に接続します
B1 は C1 に接続します
C1 は D1 に接続します
A1 は B2 に接続します
B2 は C1 に接続します
C1 は D2 に接続します (反対方向にも)
したがって、双方向グラフでは、それらは次のようになります
A1 -- B1 -- C1 -- D1
'----- B2 --- ' '--- D2
このアプローチの問題は、上のグラフを見ると、元の行にはなかった A1 - B1 - C1 - D2 間の接続も取得できるため、あいまいさが導入されたことです。私の最初の質問- 一般に、これはデータベース行をネットワーク グラフに保存するときに何が起こるのでしょうか (または、何か間違ったことをしていますか?)
元の情報を保持するために、bnode の各行にある 4 つのエンティティをグループ化できますが、グラフ接続を作成する際に以前と同じ柔軟性 (およびパフォーマンス) が得られるかどうかが懸念されます。As と B の間のすべての接続、または後でサブセットの他の組み合わせを取得する必要がある場合があります。また、異なる bnode 間で重複した情報を保存する必要があるため、これは以前ほどスペース効率が良くありません。
私の 2 番目の質問は、RDF に行を格納しながら、柔軟性とパフォーマンスを維持するための最良の方法は何ですか? RDF から RDF へのマッピングに関する WWW.org の推奨事項を確認しました ( http://www.w3.org/TR/r2rml/およびhttp://www.w3.org/TR/rdb-direct-mapping/ ) 。 、しかし、データを保持するには、データを同じ行IDでグループ化する必要があるようです。これが唯一の方法ですか?
ありがとう。