UISH

Urban Intelligence Science Hub for City Network

Guía operativa para las AA. PP.

Se desplaza con la rueda del ratón o arrastrando el dibujo; se amplía con los botones, con Ctrl y la rueda o con las teclas + y −. El dibujo en SVG · el modelo en JSON, que se abre arrastrándolo al editor de diagramas de flujo de PortLAB.

Cómo se lee

  • Rombo: una pregunta, con su frase interrogativa abreviada; el texto completo está en la pestaña Flujo.
  • Recuadro redondeado: una respuesta posible; la flecha lleva a la pregunta siguiente o al resultado.
  • Terminal verde: un resultado, con su título.

Qué hace quien usa la página

En la pestaña Flujo el recorrido plantea una pregunta cada vez. Quien lo usa elige una respuesta, y la respuesta decide qué viene después: otra pregunta o un resultado, es decir, una ficha con las indicaciones del Vademécum. Puede retroceder un paso o volver a cualquier punto del recorrido hecho, empezar de nuevo, compartir mediante un enlace el punto alcanzado e imprimirlo. El recorrido no es igual para todos: lo construyen las respuestas, y el grafo de arriba los contiene todos a la vez.

Aquí hay 5 preguntas y 15 resultados; para llegar a un resultado hacen falta de una a 3 respuestas.

El grafo en cifras

Preguntas5
Respuestas19
Resultados15
Nodos alcanzados desde más de una pregunta0
Formaárbol con raíz
Caminos de la primera pregunta a un resultado15
Respuestas a lo largo de un camino1–3

Qué objeto matemático es

Desde el punto de vista matemático, el recorrido es un grafo dirigido. Los nodos son las preguntas y los resultados; los arcos, las respuestas: cada respuesta va de una pregunta a la pregunta o al resultado que viene después. El grafo tiene una raíz, la primera pregunta, desde la que se alcanza cada nodo, y los resultados son las hojas, los nodos de los que no sale nada. Es acíclico: ninguna respuesta lleva de vuelta a una pregunta ya hecha. Un recorrido hecho en la página es un camino de la raíz a una hoja. En el dibujo las respuestas son recuadros, para que se pueda leer su texto; para el grafo son arcos.

En esta píldora cada nodo tiene un solo padre, así que el grafo es un árbol con raíz (una arborescencia): a cada resultado lleva un solo camino, y hay tantos caminos como resultados, 15.

Los caminos se cuentan sin enumerarlos: una hoja vale 1, y cada pregunta vale la suma de los nodos a los que llevan sus respuestas. Es programación dinámica sobre un grafo acíclico, y la cuenta parte de las hojas.

Cómo lo gestiona el portal

Los datos de la píldora son un archivo JSON por idioma (04-modjur/pillole/dati/09-guida_affidamento.es.json) en el formato de flow-manager.ifac.cnr.it, donde los autores construyeron el recorrido: preguntas con las respuestas y el nodo al que lleva cada una, resultados con título y texto en Markdown. Lo importó de allí, el 1 de octubre de 2026, wsgi-scripts/importa_pillola.py; el 14 de octubre de 2026 se corrigió según las observaciones del 1 de octubre de 2026, y desde entonces el archivo es la fuente: volver a importarlo borraría las correcciones. Cada respuesta debe llevar a un nodo que exista, cada nodo debe ser alcanzable desde la raíz y no debe haber ciclos (una búsqueda en profundidad que colorea los nodos en tres estados: un arco hacia un nodo todavía abierto cierra un ciclo): lo comprueba la prueba node-tools/test/uish/pillole_test.js. El servidor no expone el archivo: el PHP lo incorpora en la página, y el motor js/local/pillole.js repite las mismas comprobaciones antes de presentar la primera pregunta.

El punto alcanzado está en la URL, como secuencia de los índices de las respuestas dadas (#percorso=1.0.2): en un grafo con raíz es la descripción más corta de un camino, y por eso un enlace compartido vuelve a abrir el mismo punto. La barra de progreso divide las respuestas dadas entre las respuestas dadas más el camino más largo que queda desde allí: indica cuánto falta en el peor de los casos. La prueba node-tools/test/uish/pillole_test.js vuelve a comprobar el grafo de cada JSON.

El dibujo

El dibujo lo genera node-tools/uish/grafi_decisioni.js a partir del mismo JSON que usa la página, por lo que no puede divergir del recorrido real: si el flujo cambia, se regenera. Lo dispone js/common/flusso.js, el motor del editor de diagramas de flujo de PortLAB, con el esquema por niveles de Sugiyama, Tagawa y Toda (1981): cada nodo está en el nivel del camino más largo que lo alcanza, de modo que ninguna flecha vuelve atrás; un arco que salta niveles pasa por nodos ficticios, uno por nivel; el orden dentro de cada nivel sigue el método del baricentro, que elimina gran parte de los cruces. Las respuestas son recuadros y no etiquetas sobre las flechas porque las flechas que salen de un rombo se reparten sus lados, y con muchas respuestas las etiquetas acabarían unas encima de otras. El flujo va de izquierda a derecha: en este sentido los dibujos de todas las páginas ocupan menos superficie.

K. Sugiyama, S. Tagawa, M. Toda, «Methods for visual understanding of hierarchical system structures», IEEE Transactions on Systems, Man, and Cybernetics 11(2), 109–125, 1981, doi:10.1109/TSMC.1981.4308636.

Keywords: gemelo digital urbano, adjudicación, Código de Contratos Públicos, principio del resultado, pliego de condiciones, cláusulas contractuales, Reglamento de Datos, titularidad de los datos, lock-in, código fuente, niveles de servicio, entrenamiento de la IA, RGPD, administración pública

Moreno Comelli, Ugo Cortesi, Valentina Colcelli & Alessandra Langella, CNR-IFAC, 2022-2026


Code & Design by CNR-IFAC - Core by PortLab