算法 – 对用RDF表示的网络数据应用图分析

我想对具有多种模式(即多种类型的网络节点)和多路复用关系(即多种类型的网络边缘)的网络数据进行一些分析.

该分析可能是关于SNA或应用来自图论的任何算法,例如关系强度,中心性,中介性,节点距离,块,簇等

源数据相当非结构化,因此我应该首先考虑如何表示,存储和检索数据.

以下是一些想法.我将不胜感激任何反馈或进一步的建议.:)

我知道已经有一些很棒的NoSQL数据库,例如Neo4J,InfoGrid,用于这种类型的应用程序.但出于某些可扩展性原因(例如许可证,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),那么我必须为可视化工具包构建另一个数据模型.
我不知道这是否是一个明确或有效的整合.

再次感谢任何建议!

最佳答案 如果您想使用SPARQL对RDF数据进行网络分析,可以查看
SPARQL 1.1 Property Paths.我相信在Jena / ARQ中它已经实现了
ARQ – Property Paths.

属性路径,来自SPARQL的新规范,允许您通过定义图形模式来查询RDF数据模型.图形模式比您在SPARQL 1.0中定义的模式稍微复杂一些.

借助此功能以及应用程序级别的某些逻辑,您可以对数据实施一些有趣的网络分析.

点赞