Un nuevo mejor amigo: Gephi para redes a gran escala
Descargar como PDFAI3
Visualización + Análisis de redes deja a un lado el Cytoscape
Aunque nunca tuve la intención de hacerlo, algunas publicaciones mías de hace unos años sobre 26 herramientas para la visualización de grafos a gran escala han sido algunas de las más populares en este sitio. De hecho, mi recomendación para Cytoscape para ver grafos a gran escala se ubica dentro de los 5 primeros puestos de todos los tiempos en este sitio.Cuando se realizó ese análisis en enero de 2008, mi empresa estaba en medio de la necesidad de procesar el gran vocabulario de UMBEL, que ahora consta de 28,000 conceptos. Al igual que cualquier otra cosa, la necesidad impulsa la investigación y la demanda, y después de revisar muchos programas de grafos, elegimos Cytoscape, y luego proporcionamos algunas pautas continuas en su uso para fines web semánticos. Hemos continuado utilizándolo productivamente en los años intermedios.
Al igual que con cualquier herramienta, una revisa y selecciona la mejor en el momento de la necesidad. Más recientemente, sin embargo, con el uso cada vez mayor de grandes ontologías por parte de los clientes y el desarrollo de nuestro propio marco de gestión y edición de structOntology, hemos comenzado a chocar con las limitaciones del análisis de redes y grafos a gran escala. Con esta publicación, anunciamos nuestra nueva herramienta favorita para la red semántica Web y el análisis de grafos, Gephi, y explicamos su uso y mostramos un ejemplo actual.
La línea base y las limitaciones de Cytoscape
Hace tres años y medio cuando escribí por primera vez sobre Cytoscape, fue en la versión 2.5. Hoy está en la versión 2.8 y se han mejorado muchos aspectos (incluido su sitio web). Sin embargo, en otros aspectos, el desarrollo se ha desacelerado. Por ejemplo, la versión 3.x se discutió por primera vez hace más de tres años; todavía no está disponible hoy.Aunque el sistema es de código abierto, Cytoscape también se ha desarrollado en gran parte con fondos de subvención externos. Al igual que otros proyectos financiados de manera similar, una vez y cuando los fondos de las subvenciones disminuyen, también se desacelera el desarrollo. Si bien claramente ha habido una comunidad activa detrás de Cytoscape, comienza a sentirse cansado y un poco largo en el diente. Desde un punto de vista web semántico, algunas de las limitaciones del Cytoscape actual incluyen:
- Difícil conversión de ontologías existentes: Cytoscape requiere crear una entrada de CSV; había un plug-in anterior de RDFscape que ofrecía una gran promesa de unir el software al RDF y al ámbito de la Web semántica, pero no se mantuvo activo
- Análisis de red: uno de los primeros y valiosos plug-ins de análisis de redes generalizadas fue NetworkAnalyzer; sin embargo, ese componente no ha visto un desarrollo activo en tres años, y los nuevos módulos dinámicos generalizados adecuados para el análisis de redes sociales (ARS) y las redes del mundo pequeño no han sido aparentes
- Rendimiento lento y fallas demasiado frecuentes: Cytoscape siempre ha tenido una interfaz peculiar y fallas frecuentes; las versiones posteriores son un poco más estables, pero la usabilidad sigue siendo un desafío
- Ampliamente respaldado por la comunidad biomédica: desde el principio, Cytoscape fue un proyecto de la comunidad biomédica. La mayoría de los complementos aún pertenecen a ese espacio. Debido al soporte de los formatos OBO (Open Biomedical and Biological Ontologies) y la falta de aceptación por parte de la comunidad web semántica más amplia, el desarrollo basado en RDF y OWL ha estado muy ausente.
- Aparte de los archivos PDF, la capacidad deficiente para generar grafos de gran tamaño de manera visible
- Soporte de diseño limitado y bajo rendimiento para muchos de los que se incluyen con el paquete estándar.
Sin lugar a dudas, si estuviéramos haciendo tecnologías semánticas en el espacio biomédico, podríamos desarrollar nuestros propios complementos y contribuir al proyecto Cytoscape para ayudar a superar algunas de estas limitaciones. Pero, como soy un friki de herramientas (consulte mi lista de Sweet Tools con casi 1000 herramientas Web semánticas y relacionadas), decidí consultar el estado actual de las herramientas de visualización a gran escala y ver si alguna había avanzado en algunos de nuestros objetivos sobresalientes.
Elegir Gephi y usarlo
Hay tres clases de herramientas gráficas en el espacio de la tecnología semántica:- Navegación y descubrimiento ontológicos, a los que el Relation Browser y RelFinder son ejemplos notables
- Visualización de la estructura de ontología (y, a veces, edición), como las herramientas GraphViz (OWLViz) o OntoGraf utilizadas en Protégé (o el agradable FlexViz, utilizado nuevamente por la comunidad OBO), y
- Visualización de grafos a gran escala para obtener una imagen completa y relaciones macro en la ontología.
Se podría argumentar que las dos primeras categorías han recibido la atención de desarrollo más actual. Pero, también diría que la tercera clase es una de las más importantes: para comprender dónde se encuentra uno en un gran espacio de conocimiento, se necesitan herramientas de navegación y visualización a gran escala mucho mejores. Desafortunadamente, esta tercera categoría también es la que parece estar recibiendo la menor atención de desarrollo. (Sin duda, los grafos a gran escala plantean desafíos computacionales y de rendimiento).
En los casi cuatro años desde mi última gran revisión de 26 herramientas en esta categoría, los nuevos participantes parecen bastante limitados. Seguramente he pasado por alto algunos, pero los más notables son Gruff, NAViGaTOR, NetworkX y Gephi [1]. Gruff en realidad parece pertenecer más a la Categoría # 2; No pude encontrar ejemplos de grafos en la escala de miles de nodos. NAViGaTOR es solo biomédico. NetworkX no tiene importación directa de grafos semánticos y, aunque aparentemente algunas bibliotecas RDF pueden usarse para manipular importaciones, los flujos de trabajo alternativos eran demasiado complejos para abordarlos en una evaluación inicial. Esto deja a Gephi como el único nuevo candidato potencial.
Desde un sitio web limpio hasta tutoriales introductorios bien diseñados, las primeras impresiones de Gephi son muy positivas. La prueba real, por supuesto, era hacer que funcionara contra mis pruebas de casos de uso reales. Para eso, utilicé una ontología "grande" para un cliente actual que captura aproximadamente 3000 conceptos diferentes y sus relaciones y más de 100 propiedades. Lo que aquí cuento, desde la primera vez que instalé el programa y complementos y luego configuré, analicé, definí los parámetros de la pantalla y luego publiqué los resultados, me llevó menos de un día desde un comienzo totalmente frío. El programa y el entorno de Gephi es sorprendentemente fácil de aprender, ayudado por algunos excelentes tutoriales e información en línea (ver la sección de conclusión).
El habilitador crítico para poder usar Gephi para esta fuente y para mis propósitos es el complemento SemanticWebImport, desarrollado recientemente por Fabien Gandon y su equipo en Inria como parte del proyecto Edelweiss [2]. Una vez que el complemento está instalado, solo necesita abrir la pestaña SemanticWebImport, darle la URL de su ontología de origen y seleccionar el botón de Inicio (panel central):
Tenga en cuenta que la herramienta SemanticWebImport también tiene la capacidad (panel central) de enviar consultas a un punto final SPARQL, cuyos resultados arrojan un grafo de resultados (parcial) desde la ontología de origen. (Esta característica no se trata más en este documento.) Esta carga de ontología y capacidad de visualización funcionó sin error para las cinco o seis ontologías OWL 2 que probé inicialmente contra el sistema.
Una vez cargada, se puede manipular una ontología (grafo) con una interfaz convencional de IDE de pestañas y vistas. En los paneles de la derecha de arriba estamos seleccionando varias rutinas de análisis de red para ejecutar, en este caso grados promedio. Una vez que se ejecutan una o más de estas opciones de análisis, podemos usar los resultados para agrupar o visualizar el grafo; el panel superior izquierdo muestra el resaltado de la clase de modularidad, que es la forma en que hice el análisis de la comunidad (clustering) de nuestra gran ontología de prueba. (Cuando se ejecuta, también puede asignar colores diferentes a las familias de clúster). También realicé algunos filtros de nodos y propiedades extraños en esta etapa y también instruí al sistema a través del análisis de clasificación para mostrar que los nodos con más conexiones de enlace son más grandes que esos nodos con menos enlaces
En esta coyuntura, también puede configurar la escala para variar las opciones de visualización como lineal o alguna función de potencia. También puede seleccionar diferentes opciones de diseño de grafo (panel inferior izquierdo). Hay muchas opciones de plug-in de diseño para Gephi. Se informa que el complemento de diseño llamado OpenOrd, por ejemplo, puede escalar a millones de nodos.
En este punto, jugué extensivamente con la combinación de filtros, análisis, clusters, particiones y clasificaciones (como se pueden aplicar por separado a nodos y bordes) para: 1) comenzar a comprender la estructura y las características generales del grafo grande; y 2) refinar el aspecto final que quería que tuviera mi grafo publicado.
En nuestro ejemplo, finalmente elegí el diseño estándar de Yifan Hu para hacer que las comunidades (clusters) se agreguen una cerca de la otra en el grafo. Luego apliqué el diseño de Atlas de Fuerza Paralela para organizar los nodos y hacer los espaciamientos más uniformes. El aspecto paralelo de este diseño basado en la fuerza permite que estos cálculos intensos se ejecuten más rápido. El resultado de estos dos diseños en secuencia es entonces lo que se usó para las pantallas de resultados.
Al finalizar este análisis, estaba listo para publicar el grafo. Uno de los mejores aspectos de Gephi es su flexibilidad y control sobre las salidas. A través de la pestaña de Vista previa principal, pude hacer mis configuraciones finales para el grafo publicado:
Los resultados del grafo de los filtros y clústeres y colores procesados anteriormente se muestran en el panel Vista previa de la derecha. En el lado izquierdo, se configuran muchos aspectos de la visualización final, como etiquetas encendidas o apagadas, tamaños de fuente, colores, etc. Vale la pena mirar la figura anterior en tamaño completo para ver algunas de las opciones disponibles.
Las opciones de salida estándar incluyen SVG (imagen vectorial) o archivos PDF, como se muestra en la esquina inferior izquierda, con escala de tamaño de salida mediante barra deslizadora. Además, es posible realizar guardados estándar en una variedad de formatos de archivo o hacer exportaciones específicas.
Una opción de publicación realmente excelente es crear una pantalla con zoom dinámico usando la tecnología Seadragon a través de un complemento Seadragon Web Export por separado. (Sin embargo, debido a las limitaciones de scripts entre sitios debido a problemas de seguridad, solo uso esa opción para sitios específicos. Consulte la siguiente sección para la opción Zoom It, basada en Seadragon, para solucionar esa limitación).
Los resultados hablan por sí mismos
Estoy muy satisfecho con los avances en visualización y análisis proporcionados por Gephi. Usando la alternativa Zoom It [3] a Seadragon incrustado, podemos ver nuestro gran ejemplo de ontología con:- Todos los 3000 nodos etiquetados, con conexiones mostradas (aunque debe hacer zoom para ver) y
- Al hacer zoom (use la rueda de desplazamiento o el ícono +) o la panorámica (al mover el mouse hacia abajo), espere unos segundos para obtener la actualización más clara de la imagen:
Nota: a resolución estándar, si este grafo fuera renderizado en tamaño real, ¡sería más grande que 7 pies por 7 pies cuadrados con zoom completo!
Para comparar las opciones de salida, también puede;
- Descargue un PDF de este gran grafo ó
- Descargue un SVG (versión legible de Inkscape) de este gran grafo.
Aún así, algunas mejoras serían bienvenidas
Es notable que Gephi aún solo se presenta a sí mismo como un "alfa". Ya existe una robusta comunidad de usuarios con la promesa de que vendrá mucha más tecnología.Como alfa, Gephi es notablemente estable y bien desarrollado. Aunque claramente útil como es, mido el estado de Gephi contra mi lista completa de funcionalidades deseadas, con estos elementos aún faltantes:
- Navegación interactiva y en tiempo real: la capacidad de moverse por el grafo de forma interactiva y emitir consultas y descubrir relaciones
- Números de nodo enormes: tal vez el complemento OpenOrd en cierta forma solucione esta necesidad. Probaremos Gephi contra UMBEL, que es un orden de magnitud más grande que nuestra gran ontología de prueba
- Mayor control de nodos y enlaces: Cytoscape aún conserva la ventaja en el grado en que los nodos y los bordes se pueden diseñar gráficamente
- Edición completa: ser capaz de usar Gephi en un modo de edición sería fantástico; la funcionalidad de edición es bastante sencilla, pero la capacidad de ida y vuelta en los formatos adecuados (BÚHO, RDF o de otro tipo) puede ser el mayor punto de fricción.
En última instancia, por supuesto, como expliqué en una presentación anterior sobre un Paisaje normativo para herramientas de ontología, nos gustaría ver un programa grafo completo vinculado directamente con la API OWL. Algunos intentos iniciales se han realizado con el enfoque de visualización no Gephi GLOW, pero aún se encuentra en fases muy tempranas y se desconocen los compromisos en curso. De manera óptima, sería genial ver un complemento Gephi que se vincule directamente con la API OWL.
En cualquier caso, aunque tal vez el desarrollo de Cytoscape se ha estancado un poco con fines de tecnología semántica, Gephi y su complemento SemanticWebImport han llegado a la vanguardia. Este es un fino conjunto de herramientas que promete utilidad por muchos años por venir.
Algunos enlaces adicionales de Gephi
Para aprender más acerca de Gephi, también vea:- Excelentes tutoriales introductorios sobre inicio rápido, visualización y diseños
- Videos rápidos sobre el uso del complemento SemanticWebImport para DBpedia y programas de la BBC
- Wiki de la comunidad Gephi.
Además, para desarrollos futuros en todo el espectro de visualización de grafos, revise la lista de herramientas de visualización general de Wikipedia de forma periódica.
[1] El paquete de matemática y estadísticas de código abierto R es muy rico, aparentemente con algunas capacidades de visualización de grafos, como el Statnet del proyecto de visualización y análisis de red dedicado. rrdf también puede proporcionar un camino interesante para las importaciones de RDF. R y su familia de herramientas pueden ser bastante prometedoras, pero el compromiso necesario para R parece bastante desalentador. A más largo plazo, R puede representar una ruta de actualización más poderosa para nuestros conjuntos de herramientas generales. Neo4j también es una estrella en ascenso en las bases de datos de grafos, con sus propios componentes de visualización. Sin embargo, dado que no queríamos convertir nuestros almacenes de datos subyacentes, tampoco probamos esta opción.
[2] Erwan Demairy es el principal desarrollador y committer de SemanticWebImport. La primera versión se lanzó a mediados de abril de 2011.
[3] Para presentaciones como esta publicación de blog, Seadragon JavaScript impone algunas restricciones de seguridad contra scripts entre sitios. Para superar eso, la opción que seguí fue:
- Usar la opción de exportación SVG de Gephi
- Abrir el SVG en Inkscape
- Expandir el tamaño del diagrama según sea necesario (con dimensiones bloqueadas para evitar la distorsión)
- Guardar como PNG
- Ve a Zoom It y envía el archivo de imagen
- Elija la función de inserción, y
- Incruste el enlace proporcionado, que es lo que se muestra arriba.
(Aunque Zoom.it también acepta archivos SVG directamente, encontré el rendimiento