Open Data y Grafos en el Ayuntamiento de Madrid

Demasiadas veces han aparecido noticias de casos de corrupción de todo tipo en toda clase de organismos públicos. Esto ha llevado a que este sector se tome cada vez más en serio la transparencia de sus cuentas, y realmente estos últimos han supuesto una auténtica revolución en todo lo que está alrededor de la apertura de datos públicos.

El Open Data es de verdad una gran herramienta en manos de los políticos para demostrar que las cosas se están haciendo bien, pero no sólo eso, sino que realmente es también una oportunidad para las empresas privadas de poder usar estos datos y generar valor a partir de ellos.

Análisis de adjudicaciones de contratos públicos en el Ayuntamiento de Madrid

En este sentido, en Graph Everywhere hemos creado una herramienta que, usando datos de adjudicaciones de contratos del Ayuntamiento de Madrid, permite encontrar oportunidades a los licitantes y por supuesto también permite un control de estas mismas adjudicaciones para cualquiera que quiera analizarlas.

Los grafos juegan un papel crucial en este caso, ya que nos dan la capacidad de encontrar relaciones ocultas en estos datos y por tanto encontrar un valor donde no era posible hasta ahora.

Para este ejemplo hemos usado un pequeño subset de datos, con algunos contratos de enero y febrero de 2015, obtenidos del portal de datos abiertos del Ayuntamiento de Madrid:

¿Cómo hemos desarrollado el Grafo para este ejemplo?

Como vemos el modelo tiene el CONTRATO en el centro. Cada CONTRATO es de un TIPO_CONTRATO. Los DEPARTAMENTOS son los encargados de LICITAR (:BID) CONTRATOS, que se ADJUDICAN (:AWARDS)  a un ADJUDICATARIO.

Consultas interesantes en este ejercicio

  • Los 5 Adjudicatarios con más contratos adjudicados
MATCH ()-[r:AWARDS]->(a) RETURN a.nameAwardee, count(r) ORDER BY count(r) DESC LIMIT 5
a.nombreAdjudicatariocount(r)
CLECE S.A15
MERINO Y MERINO PRODUCCIONES S.L.14
FERROVIAL SERVICIOS S.A.14
HARTFORD S.L.13
CAR ET BUS MAINTENANCE IBERICA S.L.11
  • Contratos adjudicados a FERROVIAL SERVICIOS SL
MATCH (j:Awardee {nameAwardee:'FERROVIAL SERVICIOS S.A.'})<-[:AWARDS]-
(c:Contract)<-[:BIDS]-(o:Department)
RETURN j,c,o
Grafo de los contratos ganados por Ferrovial

Esta visualización se ha realizado usando la herramienta Linkurious (http://linkurio.us/) donde hemos hecho que el tamaño del nodo dependa del volumen del contrato, así que vemos 2 contratos muy grandes, otros dos o tres medianos y el resto más pequeños.

  • Detección de nuevas oportunidades de FERROVIAL SERVICIOS SL

Ahora vamos a entrar más en detalle con Ferrovial. ¿Cómo podemos mejorar? Buscaremos Contratos que no nos han sido adjudicados, pero dentro de Organismos donde sí hemos ganado algún contrato. Además nos centraremos en los contratos de más de 1 millón de Euros y que además el tipo de servicio asociado es alguno de los que nosotros hemos ganado.

match (j:Adjudicatario {nombreAdjudicatario:'FERROVIAL SERVICIOS S.A.'})<-[:ADJUDICACION]-
(c:Contrato)<-[:LICITA]-(o:Organismo)-[:LICITA]->
(c_perdido:Contrato)-[:ADJUDICACION]->(competidor:Adjudicatario)
where j <> competidor and c_perdido.presupuesto > 1000000
match (c)-[:P_TIPO_CONTR]->(t)<-[:P_TIPO_CONTR]-(c_perdido)
return distinct competidor.nombreAdjudicatario,c_perdido.presupuesto 
order by c_perdido.presupuesto desc

La siguiente tabla muestra el resultado de la consulta.

competidor.nombreAdjudicatarioc_perdido.presupuesto
API MOVILIDAD S.A.6.701.517
CLECE S.A3.679.547
FOMENTO DE CONSTRUCCIONES Y CONTRATAS S.A.3.488.620
ORTIZ CONSTRUCCIONES Y PROYECTOS S.A.3.389.710
T-SYSTEMS ITC IBERIA S.A.2.909.307
SOCIEDAD IBERICA DE CONSTRUCCIONES ELECTRICAS S.A.2.887.899
DRAGO SOLUTIONS S.A.2.372.261
SOCIEDAD IBERICA DE CONSTRUCCIONES ELECTRICAS S.A.2.110.251
LIMPIEZAS ROYCA S.L.1.969.886
NEXUS INFORMATION TECHNOLOGY S.A.U.1.350.510
DRAGADOS S.A.1.343.837
DRAGADOS S.A.1.335.308
G.E.ESCUELAS URBANASS.L.1.199.317
FREYSSINET S.A.1.017.634

Conclusiones del estudio

Como hemos podido ver, el uso de los grafos nos permite un tipo de analítica en los datos que no es posible realizar de otra manera.

Y juntando esta tecnología con los Open Data las posibilidades son infinitas.

Share This