применить анализ графиков к сетевым данным, представленным с помощью RDF - PullRequest
4 голосов
/ 03 сентября 2010

Я хочу провести некоторый анализ сетевых данных, имеющих несколько режимов (т. Е. Несколько типов сетевых узлов) и мультиплексных отношений (т. Е. Несколько типов сетевых ребер).

Анализ, вероятно, касается СНС или применения какого-либо алгоритма из теории графов, например сила связи, центральность, промежуточность, расстояние до узла, блок, кластер и т. д.

Исходные данные довольно неструктурированы, поэтому я должен сначала подумать о том, как я представляю, храню и извлекаю данные.

Ниже приведены некоторые идеи. Буду признателен за любые отзывы или дальнейшие предложения .:)

Я знаю, что для такого рода приложений уже есть несколько отличных баз данных 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), то я должен построить другую модель данных для инструментария визуализации. Я не знаю, является ли это четкой или эффективной интеграцией.

Еще раз спасибо за любые предложения!

1 Ответ

2 голосов
/ 03 сентября 2010

Если вы хотите выполнить сетевой анализ ваших данных RDF с помощью SPARQL, вы можете взглянуть на SPARQL 1.1 Пути к свойствам . Я считаю, что в Jena / ARQ это уже реализовано ARQ - пути свойств .

Путь к свойствам из новой спецификации SPARQL позволяет запрашивать модель данных RDF путем определения графовых шаблонов. Графические шаблоны, которые немного сложнее, чем те, которые вы могли бы определить в SPARQL 1.0.

С помощью этой функции и некоторой логики на уровне приложений вы можете провести интересный сетевой анализ ваших данных.

...