gremlin

Entre la última tecnología de software de TinkerPop, un grupo de desarrollo de software libre, es la de su trabajo en el área de las bases de datos gráficas. TinkerPop 2.4 ha sido liberado e incluye un entorno para bases de datos gráficas, paquetes de algoritmos y servidores, y se le ha bautizado como “Un Gremlin sin una causa”. Parece ser que el nombre de la misma solamente fue para diseñar un logotipo -con el rostro de James Dean, supuestamente- vestido como un gremlin, pero la realidad, todo esto resulta por demás irrelevante.

Lo que realmente importa es que en las bases de datos gráficas, que hacen uso del Resource Description Framework (RDF), todas las expresiones son una colección de tripletas, cada una consistiendo en un sujeto, un objeto y un predicado o propiedad que denota la relación entre sujeto y objeto (lo cual es una gráfica dirigida, si lo vemos en su forma más simple).

Por ejemplo, la tripleta: Fernando vive en México, se puede representar como un nodo llamado Fernando, otro llamado México y un predicado que podría ser “ciudad” (o tal vez, “dirección”).

Para esto se necesita un lenguaje de consulta que trabaje con estas bases de datos gráficas, porque el hecho de que la gráfica puede recorrerse en diferentes formas, empezando por las trayectorias más directas, añadiendo entonces operaciones, como pudiesen ser filtros o ejes, retrazo de los pasos hechos y actualización de contadores.

Gremlin es pues un lenguaje que puede expresar concisamente las rutas dentro de las gráficas, incluyendo además otras operaciones. Es un lenguaje de dominio específico (Domain Specific Language – DSL), escrito en Groovy que compila a Pipes. Este último es un entorno de flujo de datos del propio TinkerPop que usa lo que llaman Process Graphs. Una gráfica procesada es una composición de vértices de Pipes, conectados por los ejes comunicantes. En esa nueva versión, se da soporye completo para el operador predicado en BluePrints.

gremlin-visualizer

El núcleo de TinkerPop es el entorno BluePrints, en donde Marco Rodríguez, el desarrollador principal de TinkerPop, lo describe como “el JDBC de las bases de datos gráficas”. BluePrints proveé una colección de interfases genéricas, lo que significa que los desarrolladores pueden hacer aplicaciones de bases de datos gráficas sin introducir dependencias explícitas en las implementaciones concretas de bases de datos gráficas. También dan herramientas para ligarse a Neo4J, OrientDB y bases de datos Dex. Gremlin está por encima del propio BluePrints.

Gremlin por sí mismo se ha beneficiado de la optimización en las consultas, por lo que la compilación de Gremlin es más eficiente y tiene un factor de ramaje que soporta más operadores. Todo esto suena muy especializado, pero el hecho es que muchísimos problemas pueden representarse como gráficas dirigidas y probablemente Gremlin sea una herramienta a considerar.

Referencias:

TinkerPop 2.4.0 Released (Gremlin Without a Cause)
TinkerPop Github

Enlaces Patrocinados
Comentarios