Я хочу провести некоторый анализ сетевых данных, имеющих несколько режимов (т. Е. Несколько типов сетевых узлов) и мультиплексных отношений (т. Е. Несколько типов сетевых ребер).
Анализ, вероятно, касается СНС или применения какого-либо алгоритма из теории графов, например сила связи, центральность, промежуточность, расстояние до узла, блок, кластер и т. д.
Исходные данные довольно неструктурированы, поэтому я должен сначала подумать о том, как я представляю, храню и извлекаю данные.
Ниже приведены некоторые идеи. Буду признателен за любые отзывы или дальнейшие предложения .:)
Я знаю, что для такого рода приложений уже есть несколько отличных баз данных NoSQL, например Neo4J, InfoGrid. Но по некоторым причинам расширяемости (например, лицензия, веб-стандарт ...) я бы предпочел использовать 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), то я должен построить другую модель данных для инструментария визуализации.
Я не знаю, является ли это четкой или эффективной интеграцией.
Еще раз спасибо за любые предложения!