我想对具有多种模式(即多种类型的网络节点)和多路复用关系(即多种类型的网络边缘)的网络数据进行一些分析.
该分析可能是关于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中定义的模式稍微复杂一些.
借助此功能以及应用程序级别的某些逻辑,您可以对数据实施一些有趣的网络分析.