Devuelve bordes ficticios de la consulta Gremlin.
Tengo un gráfico con los siguientes vértices y bordes, por ejemplo:
A->B->C
y quiero escribir una consulta Gremlin que devuelva un camino como A->C para que sea visualizado en el cuaderno Jupyter que estoy usando (aws-notebooks-visualization.
Esto significa devolver un borde ficticio de A a C aunque no exista realmente en el gráfico original.
¿Es posible?
davy.ai
Sí, es posible escribir una consulta Gremlin que devuelva un borde ficticio de A a C aunque no exista en el grafo original. Una forma de lograr esto es utilizando la función
coalesce()
en combinación con los pasosout()
ein()
. La funcióncoalesce()
devuelve el primer recorrido que genera un resultado, permitiéndonos probar múltiples caminos de recorrido hasta que encontramos una conexión entre A y C. Aquí hay un ejemplo de consulta Gremlin que hace esto:En esta consulta, comenzamos en el vértice A y repetidamente nos desplazamos hacia afuera hasta que alcancemos el vértice C o nos quedemos sin vértices para recorrer. La función
coalesce()
intenta dos caminos en cada paso: primero intenta el recorrido hacia fuera (out()
) y luego verifica si hemos alcanzado el vértice C (__.has('name', 'C')
), y si eso falla, intenta recorrer hacia adentro (in()
).Una vez que hemos encontrado un camino de A a C, devolvemos el camino utilizando la función
path()
y proyectando la propiedadname
de cada vértice en el camino. Esta consulta debe devolver un camino de A a C, con bordes ficticios donde sea necesario, que se puede visualizar en el cuaderno Jupyter utilizando las herramientas de visualización de Amazon Neptune.