4

複数のモード(つまり、複数のタイプのネットワークノード)と多重関係(つまり、複数のタイプのネットワークエッジ)を持つネットワークデータに対して分析を実行したいと思います。

分析は、おそらくSNAに関するものか、グラフ理論からの任意のアルゴリズムを適用することです。たとえば、タイの強さ、中心性、中間性、ノード距離、ブロック、クラスターなどです。

ソースデータはかなり構造化されていないため、最初に、データをどのように表現、保存、取得するかを考える必要があります。

以下はいくつかのアイデアです。フィードバックやさらなる提案をいただければ幸いです。:)

そのような種類のアプリケーション用に、Neo4J、InfoGridなどの優れたNoSQLデータベースがすでにいくつかあることを私は知っています。しかし、いくつかの拡張性の理由(たとえば、ライセンス、Web標準など)のために、データの保存と表現にRDFを使用することを好みます。使用するツールはSESAMEまたはJENAです。

ネットワーク/グラフデータをRDFで表現するという考えは簡単です。例えば:

ネットワーク/グラフデータ

         *Alice* ----lend 100USD----> *Bob* ----- likes ----> *Skiing*

RDFで表される

         *Alice* --src--> *lend_relation* <---target--- *Bob* ---likes---> *Skiing*
                                  |
                               has_value                                   
                                 \|/
                               *100USD*  

         [Alice         src       lend_relation]
         [Bob           target    lend_relation]
         [lend_relation has_value 100USD] 
         [Bob           likes     Skiing]

ただし、問題は、RDFとSPARQLにグラフモデルの視点が欠けていることです。ノード間をトラバースしたり、RDFクエリで(最短の)距離を見つけたりするのは効率的ではありません。これは、JUNGやJGarphTなどの追加の分析ツールを使用して実行する必要があります。まず、RDFストレージにクエリを実行してサブグラフを作成し、それをJUNGまたはJGraphTで使用されるデータモデルに変換する必要があります。(JUNGでもJGraphTでもない)追加の視覚化が必要な場合は、視覚化ツールキット用に別のデータモデルを構築する必要があります。それが明確な統合なのか効率的な統合なのかはわかりません。

提案をありがとう!

4

1 に答える 1

2

SPARQLを使用してRDFデータのネットワーク分析を行いたい場合は、SPARQL1.1プロパティパスを確認できます。Jena / ARQでは、すでにARQ-PropertyPathsが実装されていると思います。

SPARQLの新しい仕様からのプロパティパスを使用すると、グラフパターンを定義することでRDFデータモデルをクエリできます。SPARQL1.0で定義できるものよりも少し複雑なグラフパターン。

この機能に加えて、アプリケーションレベルのロジックを使用すると、データに対して興味深いネットワーク分析を実装できる可能性があります。

于 2010-09-03T13:44:36.450 に答える