Datos abiertos de gobierno

Ocho principios de datos abiertos de gobierno

En diciembre del 2007 en Sebastopol, California, un grupo de treinta "defensores de gobierno abierto", entre los que destacan Tim O'Reilly (el mismo de los libros técnicos con portadas de animales), Adrian Holovaty (creador de django y everyblock, a todo esto, everyblock fue comprado por msnbc) y Aaron Swartz (un "viejo conocido"), se reunieron a desarrollar un conjunto de principios para datos abiertos de gobierno, los cuales se detallan a continuación:

  1. Completo: todos los datos públicos está disponible. Los datos público no contempla datos privados ni limitaciones de seguridad o privilegios.
  2. Primario: los datos son recolectados en la fuente de origen, con el nivel de granularidad mas alto posible, no en forma agregada ni modificada.
  3. Oportuno: los datos están disponibles tan rápido como sea necesario para preservar el valor de los datos.
  4. Accesible: los datos están disponibles para el rango mas amplio de usuarios para el rango mas amplio de propósitos.
  5. Procesable por maquinas: los datos están estructurados razonablemente para permitir un procesamiento automático.
  6. No discriminatorio: los datos están disponibles a cualquiera, sin requerir un registro.
  7. No propietario: los datos están disponibles en un formato sobre el cual ninguna entidad tiene un control exclusivo.
  8. Libre de licencias: los datos no están sujetas a ningún derecho de autor, patenté, marca registrada o regulaciones de acuerdo de secreto. Razonable privacidad, limitaciones de seguridad y privilegios están permitidos.

El cumplimiento debe ser revisable.

Definiciones
"público" significa: Los principios de datos abiertos de gobierno no apuntan a que los datos deban ser públicos y abiertos. La privacidad, seguridad y otros asuntos pueden legalmente (y de derecho) prevenir que un conjuntos de datos se compartan públicamente. Más bien, estos principios especifican las condiciones de que los datos públicos deben cumplir para ser considerado "abierto".

"data" significa: La información almacenada electrónicamente o grabada. Ejemplos de esto incluyen documentos, bases de contratos, transcripciones de audiencias, y eventos grabados en audio o video. Mientras los recursos de información no electrónicos, tales como artefactos físicos, no están sujetos a los principios de datos abiertos de gobierno, siempre es alentador que esos recursos estén disponibles por vía electrónica a la medida de lo posible.

"revisable" significa: Se debe designar una persona de contacto para responder a las personas que intenten usar los datos. Se debe designar Una persona de contacto para responder a las quejas sobre violaciones de los principios. Un tribunal administrativo o judicial debe tener la jurisdicción para examinar si los organismos han aplicado estos principios adecuadamente.

Modelo de datos abiertos

El modelo general para el tratamiento de datos abiertos se sintetiza de forma simple y clara en el sitio theinfo.org (iniciado por el mismo Aaron Swartz) y contempla tres niveles.

NivelObtenerProcesarVisualizar
Itemsscrapers
crawlers
phone calls
buyouts
conversions
queries
regressions
collaborative filtering
tables
graphs
maps
web sites


Acerca de este blog

El presente blog registra la bitácora de una Tesis de Grado de Magíster en Ciencias de la Computación y trata sobre una línea de investigación relativamente nueva, denominada Ciencias de la Web, que es la ciencia de sistemas de información distribuidos. Los primeros años de la Web estuvieron llenos de estudios asociados a las Ciencias de la Computación, entre ellos los de hipertextos, recuperación de la información, etc. Pero no fue hasta hace unos pocos años cuando la Web se convierte en una rama de estudio, donde no sólo se tratan temas computacionales, sino que también económicos, psicológicos, legales, socio-culturales, etc. (ver figura siguiente, fuente).



Como se describe en "A Framework for Web Science". que es el resultado de un workshop llamado "Web Science", realizado en Londres el mes de septiembre del 2005, "La Ciencia de la Web no trata sólo de métodos para modelar, analizar y entender la Web en distintos niveles. Trata también sobre como administrar protocolos e infraestructura, de asegurar que exista un calce entre la infraestructura y la sociedad que lo aloja. La Ciencia de la Web debe coordinar la ingeniería con una agenda social; políticas con alternativas y restricciones técnicas; análisis con síntesis."

Para delinear los protocolos e infraestructura de la Web, existe el consorcio de la Web, denominado W3C (World Wide Web Consortium). El consorcio es dirigida por el creador de la Web, Tim Berners Lee, quien durante finales de la primera década de existencia de la Web impulsó lo que se llamó la Web Semántica, y pasó la segunda década buscando lo que se denominó la "killer application", que ayude a impulsar y difundir los principios de la Web Semántica. Fue justamente uno de estos principios, que proviene de la rama de estudios de Metadatos y Base de Datos, los que hoy podemos considerar como la "aplicación matadora", se trata de publicar datos en la web, o lo que se denomina "Linked Data".

El trabajo expuesto en este blog se enmarca en el ámbito de la publicación de datos distribuidos en la Web. Se presentan avances en los siguientes ámbitos:
  • Marco teórico, metodología y marco de trabajo detrás de la idea planteadas en "linked data"
  • Desarrollo de un set de herramientas que facilitan el proceso de publicar datos en la Web
  • Casos de estudio sobre la datos abiertos del Estado Chileno.
En el siguiente esquema se muestra el detalle de herramientas, casos de estudio y línea de producción desarrollados.

Parser rdf en javascript

Para implementar la funcionalidad de "importar triples", en el Editor RDF, es necesario utilizar un parser de documentos rdf. La primera problemática asociada al parser, es la inmensidad de serializaciones existentes para los modelos RDF, sólo para nombrar algunos: xml, xml-abbrev, n3, ntriple, json, trix, trig, turtle. Tomando sólo el caso de xml, que por ser el primero debiera estar mas desarrollado, se encuentra que existen, al menos, los siguientes parser disponibles:
En todos estos parser falla, al menos, el siguiente ejemplo:

Desde: http://openlibrary.org/b/OL10208782M.rdf
<rdf:RDF
  xmlns:bibo='http://purl.org/ontology/bibo/'
  xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
  xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
  xmlns:dcterms='http://purl.org/dc/terms/'
  xmlns:dc='http://purl.org/dc/elements/1.1/'
>
    <rdf:Description rdf:about="http://openlibrary.org/b/OL10208782M">
          <bibo:authorList rdf:parseType="Collection">
            <rdf:Description rdf:about="http://openlibrary.org/a/OL2668863A">
               <rdf:value>Michael C. Rea</rdf:value>
            </rdf:Description>

          </bibo:authorList>
        <dcterms:title>Arguing About Metaphysics</dcterms:title>
        <dcterms:publisher>Routledge</dcterms:publisher>   
        <dcterms:issued>July 1, 2008</dcterms:issued>
        <dcterms:extent>559</dcterms:extent>
        <bibo:edition>1 edition</bibo:edition>
        <dc:subject>Metaphysics</dc:subject>
    </rdf:Description>
</rdf:RDF>

El error se presenta en la sección de Collection (en azul) y ninguno de los parser logra generar los triples asociados de forma correcta.

Una primera opción, para sobrepasar esta dificultad, es implementar un parche que soporte el ejemplo anterior, sobre alguno de los parser rdf/xml en javascript. Además, se puede validar contra los casos de prueba de rdf. Todo lo anterior requiere un esfuerzo no menor, el que puede ser inútil si no se mantiene en el tiempo. Otra opción es implementar el parser por el lado del servidor, utilizando un parser maduro como Raptor, pero es una complicación ya que el Editor RDF es una aplicación javascript sin componente de servidor.

Investigando en la línea de Raptor, encontré el servicio llamado triplr que permite generar triples rdf desde una url, este servicio es obra de Dave Beckett el mismo autor de Raptor. La forma de utilizar el servicio es simple y consiste en llamar una dirección de la forma siguiente:

    http://triplr.org/<formato de salida>/<url del documento rdf, con http:// opcional>

Las opciones de formato de salida son:

(copiado desde http://triplr.org/how)
HTML - use html
JSON - use json
N-Triples - use ntriples
RDF/XML - use rdf (this is also the default)
RSS 1.0 - use rss: removed since people abused this to proxy other RSS feeds.
Turtle - use turtle (n3 also works)

Para el ejemplo que tiene problemas con los parser javascript y con una salida en html la forma de invocar el servicio es: http://triplr.org/html/openlibrary.org/b/OL10208782M.rdf. Como vemos, la colección es identificada de forma correcta. Para utilizar este servicio en el Editor RDF se puede invocar con la salida de tipo json, y gracias al uso de yahoo pipe se puede utilizar como jsonp para sobrepasar la política del mismo origen.

Una vez resuelto el problema del parser, aún queda el problema de la multiplicidad de serializaciones, la solución está en el mismo triplr que soporta los siguientes tipos de documentos rdf: atom, grddl, n3, ntriples, rdf, rdfa, rss, trig, turtle. Como una prueba de concepto, ver el siguiente ejemplo de implementación con la llamada del pipe que invoca triplr.