применять анализ графов к сетевым данным, представленным с помощью RDF

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

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

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

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

Я знаю, что уже есть несколько отличных баз данных NoSQL, например Neo4J, InfoGrid, для такого рода приложений. Но по некоторым причинам расширяемости (например, лицензия, веб-стандарт ...) я бы предпочел использовать RDF для хранения и представления моих данных. Инструменты, которые следует использовать, - это СЕЗАМ или ДЖЕНА.

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

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


person rnd_nr_gen    schedule 03.09.2010    source источник
comment
Что вы подразумеваете под «перспективами графических моделей»?   -  person Manuel Salvadores    schedule 03.09.2010
comment
Я имею в виду обход графа или анализ графа.   -  person rnd_nr_gen    schedule 06.09.2010


Ответы (1)


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

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

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

person Manuel Salvadores    schedule 03.09.2010