Propuesta para la "Publicación de Instalaciones" 2015 Open Data Canarias San Cristóbal de La Laguna, marzo de 2015 Open Data Canarias Control de Versiones Resumen de los cambios realizados en el documento: Fecha 2015-02-23 Versión Autor V0.1 Adrián Muñoz Barrera 2015-03-05 V0.1 2015-03-05 V0.1 2015-04-29 V0.1 Adrián Muñoz Barrera Luis Alberto Rubio Rodríguez Adrián Muñoz Barrera Cambios Creación e inicio del documento. Añadido campo fecha de apertura y modificados los campos de horario y días. Añadidas nuevas consideraciones. Solucionados errores. Nota: Valorar si borrar esta sección en el documento final Índice 1 Introducción ..................................................................................................................... 4 2 Modelo de datos de la información de Instalaciones ...................................................... 5 3 Justificación de CSV y JSON .............................................................................................. 5 4 Propuesta del esquema que seguir .................................................................................. 6 Anexo I Modelo de datos CSV ............................................................................................ 8 Anexo II Modelo de datos JSON. ......................................................................................... 9 Anexo III Consideraciones a utilizar.................................................................................... 10 Anexo IV Ejemplos .............................................................................................................. 13 1 Introducción Este documento contiene una propuesta para la publicación de datos sobre instalaciones de una institución. Se parte de los datos existentes de varias organizaciones y se plantea una estructura común para dicha información. Con las directrices que aquí se plantean, se pretende que esta liberación sea lo más homogénea posible en cuanto a metadatos y formatos utilizados, con el objetivo de facilitar la reutilización de la información. Esta propuesta se realiza como tarea de la colaboración entre RedELTIC (Red de Técnicos en Modernización y Tecnologías de la Información y las Comunicaciones de Entidades Locales de la isla de Tenerife) y el Proyecto Open Data Canarias. Se encuentra actualizada a febrero de 2015, fecha en la que se celebró la última reunión. En el estudio se han analizado diferentes fuentes de datos en formatos CSV y JSON de miembros de RedELTIC. Las fuentes analizadas han sido: Ayuntamiento de Arona o CSV: http://portal.adeje.es/opendata/get/instalaciones/HlN5emloU590nE0WuYi5XpRCdw=/?format=csv o JSON: http://portal.adeje.es/opendata/get/instalaciones/HlN5emloU590nE0WuYi5XpRCdw=/?format=json Ayuntamiento de Granadilla de Abona o JSON: http://portal.adeje.es/opendata/get/instalaciones/HlN5emloU590nE0WuYi5XpRCdw=/?format=json Ayuntamiento de Adeje o CSV: http://lod.arona.es/bulkdata/inst-culturales/inst-culturales.csv http://lod.arona.es/bulkdata/inst-deportivas/inst-deportivas.csv http://lod.arona.es/bulkdata/inst-educativas/inst-educativas.csv http://lod.arona.es/bulkdata/inst-sanitarias/inst-sanitarias.csv Cabildo de Tenerife o CSV: http://opendatacanarias.es/datos/dataset/d1561851-ddaf-4baf9cf7-a2fb956006f7/resource/dbeb2841-081e-4b61-bbd1a98a893b7f26/download/camposdefutbol.csv http://opendatacanarias.es/datos/dataset/06e67b96-c473-43cca881-ad4030955eef/resource/aa9839e8-7248-490a-831f560f614e30ee/download/camposdebaloncesto.csv Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 4 2 Modelo de datos de la información de Instalaciones Vista la información que los diferentes ayuntamientos ofrecen, se puede definir una estructura común que modele las instalaciones: Campo Identificador Nombre Categoría Tipo de instalación Descripción Fecha de apertura Horario Dónde Dirección Código Postal Georreferencia Contacto Teléfono Fax Email Web Imagen Descripción Identificador único para la instalación. Nombre de la instalación. Categoría (instalación educativa, instalación deportiva...). Tipo específico de la instalación (biblioteca, escuela...) Descripción detallada de la instalación. Fecha en la que se inauguró la instalación. Horario semanal de la instalación. Lugar (calle, edificio, etc.) donde se ubica la instalación. Código postal del lugar donde se ubica la instalación. Latitud y longitud del lugar donde se ubica la instalación. Teléfono de contacto de la instalación. Fax de la instalación. Email de contacto de la instalación. Página web de la instalación. Imagen de la instalación. 3 Justificación de CSV y JSON El análisis se ha centrado en el uso de los formatos CSV y JSON (en sus diferentes versiones). CSV y JSON Ambos tipos de formatos son de formato abierto utilizados para la representación y el intercambio de datos. CSV (Comma-Separated Values) representa los datos en forma de tabla, donde las columnas se separan por comas y las filas por saltos de línea. Se trata de un formato muy sencillo, compacto y fácil de generar, leer y analizar. Por otro lado, JSON (JavaScript Object Notation) es un formato sencillo para el intercambio de datos. Se trata de un subconjunto de la notación de objetos de JavaScript. La simplicidad de este formato ha dado lugar que surja como alternativa a XML. La ventaja de JSON sobre XML como formatos de intercambio reside en la sencillez de realizar un análisis documentos en formato JSON, gracias a JavaScript. Es legible por un humano, así como por una máquina y es fácil de aprender ya que su sintaxis es reducida y no se extiende. Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 5 Conclusiones de uso de CSV y JSON. Hemos decidido usar CSV y JSON como formato para la publicación inicial de contenidos referidos a las instalaciones. Ya que este sería un primer acercamiento, sería ideal un planteamiento sencillo para la publicación de dichos datos, que facilite su reutilización por los desarrolladores. Por sus características, anteriormente descritas, estos formatos cumplen dichos requisitos. En posteriores pasos, lo más conveniente sería publicar estos datos en un formato más rico, como RDF. 4 Propuesta del esquema que seguir Una vez seleccionados CSV y JSON como formatos que vamos a utilizar para la publicación de instalaciones, necesitamos definir la estructura completa de las instalaciones a publicar según la tabla del apartado 2. Los campos que usaremos para el formato CSV son los siguientes: Campo CSV Identificador Nombre Categoría Tipo de instalación Descripción Fecha de apertura Horario Dirección Código Postal Latitud Longitud Teléfono Fax Email Web Imagen Uso IDENTIFICADOR NOMBRE CATEGORIA TIPO-INSTALACION DESCRIPCION FECHA-APERTURA HORARIO DIRECCION CODIGO-POSTAL LATITUD LONGITUD TELEFONO FAX EMAIL WEB IMAGEN Por otro lado, los campos que usaremos para el formato JSON son los siguientes: Campo JSON Entidad URL entidad Imagen entidad Uso entidad url-entidad imagen-entidad Identificador Nombre Categoría Tipo de instalación identificador nombre categoria tipo-instalacion Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 6 Descripción Fecha de apertura Horario Dónde Dirección Código Postal Latitud Longitud Contacto Teléfono Fax Email Web Imagen descripcion fecha-apertura horario localizacion direccion codigo-postal latitud longitud contacto telefono fax email web imagen Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 7 Anexo I CSV - Identificador - Nombre - Categoría - Tipo instalación - Descripción - Dirección - Fecha de apertura - Horario Ejemplo 1 1 Nombre 1 deportiva campo-de-futbol Instalación de tipo… Calle 1 2010-02-14 L-V:08:00:00Z-20:00:00Z,S:09:00:00Z-13:00:00Z - Código postal - Latitud - Longitud - Teléfono - Fax - Email - Web - Imagen 38640 28,10055885 -16,6786565 +34600112233 "Id", Ej1 1, Ej2 2, Modelo de datos CSV "Nombre", "N 1", "N 2", Ejemplo 2 2 Nombre2 deportiva complejo-deportivo Instalación de tipo… Calle 2 2012-01-01 L-J:08:00:00Z-20:00:00Z, V:09:00:00Z-18:00:00Z, S-D:09:00:00Z-13:00:00Z 38650 28,05707652 -16,7160573 +34922112233 +34922112233 info@ejemplo2.com www.ejemplo2.com www.ejemplo2.com/imagenes/imagen.jpg info@ejemplo1.com www.ejemplo1.com www.ejemplo1.com/imagenes/imagen.jpg "Cat", "dep…", "dep…", "Tipo", "cam…", "com…", "Desc", "Inst…", "Inst…", "Dir", "Calle", "Calle", "Fecha", "2010", "2012", Propuesta para la "Publicación de Instalaciones" – Open Data Canarias "Horario", "L-V…", "L-J…", "CP", "38640", "38650", "Lat", "28…", "-1…", 8 "Lon", "28…", "-1…", "Tlfn", "+34…", "+34…", "Fax", "+34…", "+34…", "Email", "info@...", "info@...", "Web", "www…", "www…", "Imagen" "www…" "www…" Anexo II Etiqueta - Entidad - URL entidad - Imagen entidad Instalación - Identificador - Nombre - Categoría - Tipo de instalación - Descripción - Fecha de apertura - Horario - Localización » Dirección » Código postal » Latitud » Longitud - Contacto » Email » Teléfono » Fax - Web - Imagen Instalación Instalación Modelo de datos JSON. Ejemplo Ayuntamiento 1 http://www.ayuntamie nto1.org http://www.ayuntamin to1.es/images/logo.png 1 Nombre 1 deportiva complejo-deportivo Instalación de tipo… 2010-02-14 L-V… Calle 1 38280 28.52194265 -16.34796068 abc@abc.es +34922112233 +34922112233 www.ayuntamiento1.co m/instalaciones/1 www.ayuntamiento1.co m/instalaciones/images /1.jpg JSON Ejemplo { "entidad": "url-entidad": "Ayuntamiento 1", "http://www.ayuntamiento1. org", "http://www.ayuntamiento1. org/images/logo.png", "imagen-entidad": "instalaciones": [ { "identificador": "nombre": "categoría": "tipo-instalacion": "descripcion": "fecha-apertura": "horario": "localizacion":{ "direccion": "codigopostal": "latitud": "longitud": "contacto":{ "email": "telefono": "fax": "web": "imagen": 1, "Nombre 1", "deportiva", "complejo-deportivo", "Instalación de tipo…", "2010-02-14", "L-V…", "Calle 1", "38660", "28.0599006497", "-16.7268933424"}, "abc@abc.com", "+34922112233", "+34922112233"}, "www.ayuntamiento1.com/in stalaciones/1", "www.ayuntamiento1.com/in stalaciones/images/1.jpg" }, {...}, {...}, ]} Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 9 Anexo III Consideraciones a utilizar Atributos del formato CSV Los nombres de los atributos del formato CSV se escribirán en mayúscula para diferenciarlos de los valores de las filas. Un ejemplo de CSV simplificado sería el siguiente: IDENTIFICADOR 1 NOMBRE Nombre 1 CATEGORIA deportiva Categoría Aunque en posteriores revisiones del documento se irán añadiendo más categorías a medida que se vayan necesitando, inicialmente sólo se permitirán los siguientes valores para este campo: Instalaciones deportivas: instalacion-deportiva Instalaciones culturales: instalacion-cultural Instalaciones educativas: instalacion-educativa Instalaciones sanitarias: instalacion-sanitaria Tipos de instalación El tipo de instalación dependerá de la categoría a la que pertenezca la misma y al igual que en el caso anterior, los posibles tipos de instalación contemplados en el documento se irán ampliando según se necesiten. A continuación, se listan los posibles tipos de instalación para cada una de las categorías: Instalación deportiva campo-de-futbol campo-de-baloncesto centro-de-voleibol club-deportivo complejo-deportivo empresa-de-ocio-y-deporte Instalación cultural agrupacion-folklorica agrupacion-musical agrupacion-teatral asociacion biblioteca Instalación educativa academia centro-educativo-adultos colegio-privado colegio-concertado colegio-publico escuela-de-idiomas instituto-publico universidad Instalación sanitaria veterinario spa-y-balneario centro-salud-hospital Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 10 Dirección La dirección de la instalación se escribirá en el campo de texto dirección de forma no estructurada. Por ejemplo: Avenida Arquitecto Gómez Cuesta 17, Arona, Santa Cruz de Tenerife, España Fecha de apertura Para representar la fecha de apertura de la instalación se hará uso del estándar ISO 8601. A continuación, se describe cómo debe ser el formato: YYYY-MM-DD Se puede desglosar: YYYY-MM-DD: Año en número con cuatro cifras. Ej.: 2014. YYYY-MM-DD: Mes en número con dos cifras. Ej.: 05. YYYY-MM-DD: Día en número con dos cifras. Ej.: 09. Ejemplo completo: 2014-05-09 Horario Para describir el horario semanal de la instalación se utilizarán intervalos para especificar los días de la semana y para las horas usaremos el estándar UTC. Los días de la semana se van a representar mediante intervalos, correspondiendo cada día de la semana con su primera letra en mayúscula, salvo para el miércoles que se utilizará una X. El intervalo podrá estar compuesto por un único día en caso de que dicho día tenga un horario diferente al resto de la semana. Por ejemplo, si la instalación está abierta de lunes a viernes el intervalo será L-V, y si abre el sábado con otro horario el intervalo será simplemente S. Los horarios se representarán mediante el estándar UTC, especificando el horario de apertura y el de cierre separados mediante un guión. A continuación se describe como debe ser el formato para las horas: hh:mm:ss±hh:mm-hh:mm:ss±hh:mm hh:mm:ssZ-hh:mm:ssZ Se puede desglosar: hh:mm:ss±hh:mm-hh:mm:ss±hh:mm: Hora de apertura con dos cifras y en formato 24H, minutos y segundos. Ej.: 09:30:00. hh:mm:ss±hh:mm-hh:mm:ss±hh:mm: Hora de cierre con dos cifras y en formato 24H, minutos y segundos. Ej.: 18:30:00. hh:mm:ss±hh:mm-hh:mm:ss±hh:mm: Indicador zona horaria: positiva = UTC + desviación, negativa = UTC – desviación. Para Canarias: zona horaria positiva. Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 11 hh:mm:ss±hh:mm-hh:mm:ss±hh:mm: Desviación con respecto al UTC, con dos cifras para las horas y dos para los minutos. Para Canarias: la desviación es de 0 horas y 0 minutos (UTC+00:00). Ejemplo completo: 09:00:00+00:00-18:35:33+00:00 hh:mm:ssZ-hh:mm:ssZ: Se puede omitir la desviación horaria, sustituyéndola por Z (se asumirá que ésta es 00:00). Ejemplo completo (equivalente al anterior): 09:00:00Z-18:35:33Z Un ejemplo completo de una instalación cuyo horario varía a lo largo de la semana podría ser el siguiente: L-X:09:00:00Z-21:30:00Z,J:09:30:00Z-14:00:00Z,V-S:09:00:00Z-20:00:00Z Correos electrónicos (email) Los correos electrónicos se deben escribir siguiendo una forma natural: abc@abc.com (es decir: .+@.+). Por ejemplo: info@ayuntamiento.org. No está permitido: mailto:abc@abc.com Números de teléfono y fax Los números de teléfono y fax deben estar precedidos por el prefijo internacional correspondiente asignado por la UIT (para España: +34) y sin espacios entre los dígitos. Por ejemplo: +34922000000 Cómo comprobar el JSON Es posible comprobar la correcta sintaxis del JSON. Para ello, basta con introducir el contenido de éste o su URL de acceso en http://www.freeformatter.com/jsonvalidator.html y pulsar el botón “VALIDATE JSON”. En caso de que lo detecte como correcto, la página devolverá: Cómo comprobar el CSV Es posible comprobar la correcta sintaxis del CSV. Para ello, basta con introducir el contenido de éste o su URL de acceso en http://csvlint.io/ y pulsar el botón “Validate”. En caso de que lo detecte como correcto, la página devolverá: Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 12 Anexo IV Ejemplos Ejemplo JSON completo: { "entidad": "Ayuntamiento 1", "url-entidad": "www.ayuntamiento1.com", "imagen-entidad": "www.ayuntamiento1.com/imagenes/logo.png", "instalaciones": [ { "identificador": 1, "nombre": "Nombre 1", "categoria": "instalacion-deportiva", "tipo-instalacion": "complejo-deportivo", "descripcion": "Descripción de la instalación", "fecha-apertura": "2014-02-14", "horario": "L-X:09:00:00Z-21:30:00Z,J:09:30:00Z-14:00:00Z,VS:09:00:00Z-20:00:00Z", "localizacion": { "direccion": "Calle 1", "codigo-postal": "38660", "latitud": "28.0599006497", "longitud": "-16.7268933424" }, "contacto": { "email": "ejemplo@ejemplo.es", "telefono": "+34922112233", "fax": "+34922112233" }, "web": "www.ayuntamiento1.com/instalaciones/1", "imagen": "www.ayuntamiento1.com/instalaciones/imágenes/1.jpg" }, { ... }, ... { ... } ] } Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 13 Ejemplo CSV completo: IDENTIFICADOR,NOMBRE,CATEGORIA,TIPO-INSTALACION,DESCRIPCION,FECHA-APERTURA,HORARIO,DIRECCION,CODIGOPOSTAL,LATITUD,LONGITUD,EMAIL,TELEFONO,FAX,WEB,IMAGEN 1,"Nombre 1","deportiva","complejo-deportivo","Descripción de la instalación.","2014-02-14","L-X:09:00:00Z21:30:00Z,J:09:30:00Z-14:00:00Z,V-S:09:00:00Z-20:00:00Z","Calle 1","38660","28.0599006497","16.7268933424","ejemplo@ejemplo.es","+34922112233","+34922112233","www.ayuntamiento1.com/instalaciones/1"," www.ayuntamiento1.com/instalaciones/imágenes/1.jpg" ... ... ... ... Propuesta para la "Publicación de Instalaciones" – Open Data Canarias 14