Para la capa de presentación utilizaremos la librería js d3:
http://d3js.org/
Mediante dicha librería y una interfaz REST de nuestros métodos de manipulación y búsqueda sobre los datos del graf, podremos realizar la capa de presentación de un modo ágil y rápido.
Bastará con adaptar nuestros datos de nodos y relaciones a un formato JSON predeterminado por d3 e implementar el web service REST con todos los métodos necesarios. Nos podrán ayudar:
-GSON (transformación de objetos a formato JSON)
-Spring RESTful services (una opción para crear el WS REST)
La aplicación mostrará en todo momento el grafo, mientras nos permite realizar otras operaciones:
-Permitirá ejecutar los 3 tipos de búsquedas descritos en la entrada anterior, mediante varios formularios. Los nodos y/o relaciones devueltos serán resaltados.
-Al pinchar sobre un nodo, podremos ver todas sus propiedades y se abrirá un menú para ejecutar cambios sobre el mismo, por ejemplo crear/eliminar alguna dependencia o atributo.
-Sería muy interesante disponer de herramientas de visualización del grafo. Por ejemplo, resaltar u ocultar un determinado tipo de relación o nodo.
El modelo de datos GedcomX es bastante completo y complejo. Por ello, creemos que sería necesario mostrar al usuario una versión simplificada del mismo. Tenemos varias opciones, y conforme vaya conociendo la librería d3 podrían aparecer nuevas opciones o descartar otras:
-Resaltar los nodos más importantes y sus relaciones: Persons y Relationships.
-Ocultar nodos menos importantes.
-Mostrar una capa de abstracción sobre el grafo original. El nodo Person sería un "supernodo". Al pinchar sobre Person, veríamos el detalle del subgrafo Person (Names, Identifiers, Facts...).
Hem de recordar que en l'apartat de visuaització del graf, vam comentar l'Albert i jo que un arbre genealogic mostra nodes com persones i relacions de tipus 'matrimoni', 'fill/pare' i poques més. Aquestes relacions son linees horizontals entre marit i esposa, o verticals entre pare/mare i fill en un arbre ascendent, o entre el fill i el matrinoni dels pares. Per tant, aquest graf simplificat o resumit que dius, haurem de dissenyar-lo per a que sigui el més intuitiu possible per al usuari genealogista.
ResponderEliminarEstic molt d'acord amb quests dos nivells de visualització del graf/arbre.
Enric