El día jueves se dedicó a generar RDF desde los datos parseados de transparencia, el trabajo estuvo acotado a los datos de Dotación (el 80-20 de los datos). Gran parte del esfuerzo fue destinado a clasificar los datos, particionando las tablas según los siguientes criterios:
- Tipo de dotación (planta, contrata, honorario, otra)
- Fecha (el año al que corresponden los datos)
El principal problema encontrado fue la cantidad de esquemas distintos que se publican para cada tipo de datos, entendiendo que los headers de las tablas representan el esquema. Para muestra, y luego de normalizar las etiquetas, se encuentran los siguientes 31 esquemas:
- contrato|estamento|paterno|materno|nombres|grado|funcion|region|nombreregion|ingreso|ini|fin|obs|
- dotacion|estamento|paterno|materno|nombres|grado|funcion|region|ini|fin|obs|
- estamento|paterno|materno|nombres|grado|funcion|region|ini|
- estamento|paterno|materno|nombres|grado|funcion|region|ini|fin|obs|
- estamento|paterno|materno|nombres|grado|funcion|region|ini|fin|obs|estab|
- estamento|paterno|materno|nombres|grado|funcion|region|ini|fin|obs|ley afecto|
- estamento|paterno|materno|nombres|grado|funcion|region|renta|ini|fin|
- estamento|paterno|materno|nombres|grado horas|funcion|region|ini|fin|obs|
- estamento|paterno|materno|nombres|obs|grado|region|ini|fin|
- estamento|rut|dv|corr|paterno|materno|nombres|obs|grado|region|ini|fin|
- n|estamento|paterno|materno|nombres|grado|
- n|estamento|paterno|materno|nombres|grado|region|ini|fin|obs|
- n|estamento|paterno|materno|nombres|obs|funcion|calificacion|region|ini|fin|estab|
- n|estamento|paterno|materno|nombres|obs|grado|region|ini|fin|
- n|estamento|paterno|materno|nombres|obs|grado|region|ini|fin|estab|
- n|estamento|paterno|materno|nombres|obs|grado|region|ini|fin|n res.|
- n|n|estamento|paterno|materno|nombres|obs|grado|region|ini|fin|
- n|paterno|materno|nombres|funcion|calificacion|
- n|paterno|materno|nombres|funcion|calificacion|grado|region|um|honorario|ini|fin|obs|
- n|paterno|materno|nombres|funcion|calificacion|region|ini|fin|
- n|paterno|materno|nombres|funcion|calificacion|region||ini|fin|estab|obs|
- n|paterno|materno|nombres|obs|funcion|calificacion|region|ini|fin|
- n|paterno|materno|nombres|obs|grado|region|ini|fin|
- n|planta|estamento|corr|paterno|materno|nombres|grado|region|ini|fin|obs|
- n|planta|estamento|corr|paterno|materno|nombres|region|grado|ini|fin|estab|funcion|profesion|obs|
- n|planta|estamento|paterno|materno|nombres|region|grado|ini|fin|estab|funcion|profesion|obs|
- paterno|materno|nombres|funcion|calificacion|grado|region|um|honorario|ini|fin|obs|
- paterno|materno|nombres|funcion|calificacion|region|um|honorario|ini y fin|obs|
- paterno|materno|nombres|funcion|grado|region|um|remuneracion|ini|fin|obs|
- paterno|materno|nombres|obs|funcion|calificacion|region|ini|fin|
- paterno|materno|nombres|obs|funcion|profesion|region|ini|fin|
La buena noticia, es que justamente una de las características de RDF es la flexibilidad en sus esquemas, por lo que sin importar que existan entidades que difieran en cantidad o tipos de atributos, esto no es un problema.
Luego, al tener los esquemas de cada archivo procesado normalizado, la generación de RDF es directa, ver en el update del repositorio los cambios en el código con los script de generación.
Al aplicar sobre 50M de datos tabulados, se generaron 300M de datos en RDF serializados en xml.
Cada "entrada de dotación" se modeló con el siguiente esquema:
Lo que viene es dejar todos los datos en un triplestore y presentar por facetas.