Mostrando entradas con la etiqueta implementación. Mostrar todas las entradas
Mostrando entradas con la etiqueta implementación. Mostrar todas las entradas

EL EDITOR

Se presenta EL EDITOR, que mezcla parte del trabajo realizado en el editor de vocabulario, incorporandolo sobre el editor rdf, implementado de esta forma un editor que cumple con vocabulario visual.

VER DEMO

El siguiente esquema representa la jerarquía de clases Javascript para la implementación (ver source):


Caracterizando la implementación de Gobierno Transparente


La implementación para cumplir la "Ley N° 20.285 - sobre Acceso a la Información Pública", denominada "Gobierno Transparente", tiene un sabor a "linkeddata". La opción tradicional implicaba implementar un sistema centralizado, donde se cargan los datos y permite consultar. Recordemos que la forma de cumplir con la normativa de publicar los datos en la web, se implementó con un modelo distribuido pero asistido, pasando por el siguiente flujo para cada servicio:

- Bajar las planillas desde http://www.gobiernotransparente.cl/

- Llenar las planillas con los datos respectivos (*)

- Utilizar los asistentes disponibles para generar las páginas con los datos, url (**) e índices

- Subir la información a cada sitio web (***)


Las particularidades corresponden a los puntos con asteriscos, que presentan una similitud con el modelo de datos linkeados en la web (linkeddata):

(*) Lo que se está haciendo al llenar una planilla es "crear instancias de una clase", asi cada fila de la planilla es una "instancia de la clase que define la planilla" con las "propiedades detalladas en el encabezado de la hoja". En la práctica, la planilla es "el esquema".
(**) Algunas url están "linkeando" a otros sistemas, que luego pueden extenderse con más información, ver por ejemplo listado de urls de "chileclic", y listado de urls del "Registros Ley N° 19.862".

(***) Al publicar las páginas en cada sitio, se da libertad para "ajustar" el formato de las páginas y urls.

Al utilizar un modelo distribuido, se tienen problemáticas similares a las de "linkeddata":

- Se requiere tipos de datos estrictos (e.g. para fecha, valores)

- Existe una evolución de vocabulario (e.g. cambio de planilla para dotación entre años)

- Es necesario contar con taxonomias para realizar agregación automática (e.g. nombre de servicios/instituciones, tipo de pagina)

Existen pocas soluciones de este tipo y quitando el antecedente del formato en que se serializan los datos, se tiene una oportunidad, ya que "conceptualmente el problema es el mismo que si tuvieramos los datos con RDF", en particular están incluidos los problemas listados anteriormente. Bajo este análisis y convencido cada vez más que la fuente de datos del "Gobierno transparente" puede ser explotada ahora, he comenzado con una serie de tareas que permitan caracterizar mejor los sub-sitios que mantiene cada servicio. Estas tareas son:

1.- Construir un listado de instituciones con páginas de transparencia

2.- Implementar un "sistema asistido" para: clasificar las páginas y rescatar los esquemas

3.- Presentar opciones de consulta que permita caracterizar cada sub-sitio


Construir un listado de instituciones con páginas de transparencia

Anteriormente ya se tenía un listado de instituciones, ahora se presenta el listado actualizado, con mas antecedentes y con opciones de filtrado (ofrecidos por exhibit). El listado es mantenido en una hoja de google spreadsheets.

Ver listado.

La información del listado proviene del sitio chileclic y se puede complementar con la información existente en la Dirección de Presupuesto, del Ministerio de Hacienda.

Implementar un "sistema asistido" para: clasificar las páginas y rescatar los esquemas

Mediante un sistema de bookmarklet y gracias a que cada página de los sub-sitios mantienen un formato estandarizado, es posible rescatar la siguiente información: url, institución, clase, periodo, actualización y esquema. Los datos son presentados para que puedan ser editados (funciona como una ventana de delicious o un bookmarklet de diigo) y luego son enviado mediante un formulario a una hoja de google spreadsheets.

La parte novedosa de esta herramienta consiste en utilizar un algoritmo de similaridad de strings (levenshtein) para buscar y normalizar el nombre de la institución, para ello es mandatorio contar con la lista de instituciones (descrita en el punto anterior).

Copiar el bookmarklet ClasificadorTransparencia a la barra de marcadores.



Presentar opciones de consulta que permita caracterizar cada sub-sitio

Utilizando opciones de filtrado y facetas (ofrecidos por exhibit), es posible "recorrer" el listado de páginas y esquemas recolectados con la herramienta del "sistema asistido", permitiendo caracterizar el número de páginas por institución, categoría, año y tipo.

Consultar características de páginas para 20+ instituciones.

Los pasos siguientes son:

1.- agregar opciones avanzadas para detectar clase (tipo de página), la consecuente categoría y parsear mejor el periodo

2.- permitir actualizar la clasificación de una página y dar opciones de colaboración

3.- recolectar las instancias de cada página, para ello ya se tiene un prototipo para el bookmarklet de DatosTransparencia

4.- presentar opciones para caracterizar y consular las instancias


Día 3 y Día 4

El día miércoles pude dedicar poco tiempo al trabajo de tesis, principalmente revisando alguna solución para generar RDF y publicarlos.

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:
  1. contrato|estamento|paterno|materno|nombres|grado|funcion|region|nombreregion|ingreso|ini|fin|obs|
  2. dotacion|estamento|paterno|materno|nombres|grado|funcion|region|ini|fin|obs|
  3. estamento|paterno|materno|nombres|grado|funcion|region|ini|
  4. estamento|paterno|materno|nombres|grado|funcion|region|ini|fin|obs|
  5. estamento|paterno|materno|nombres|grado|funcion|region|ini|fin|obs|estab|
  6. estamento|paterno|materno|nombres|grado|funcion|region|ini|fin|obs|ley afecto|
  7. estamento|paterno|materno|nombres|grado|funcion|region|renta|ini|fin|
  8. estamento|paterno|materno|nombres|grado horas|funcion|region|ini|fin|obs|
  9. estamento|paterno|materno|nombres|obs|grado|region|ini|fin|
  10. estamento|rut|dv|corr|paterno|materno|nombres|obs|grado|region|ini|fin|
  11. n|estamento|paterno|materno|nombres|grado|
  12. n|estamento|paterno|materno|nombres|grado|region|ini|fin|obs|
  13. n|estamento|paterno|materno|nombres|obs|funcion|calificacion|region|ini|fin|estab|
  14. n|estamento|paterno|materno|nombres|obs|grado|region|ini|fin|
  15. n|estamento|paterno|materno|nombres|obs|grado|region|ini|fin|estab|
  16. n|estamento|paterno|materno|nombres|obs|grado|region|ini|fin|n res.|
  17. n|n|estamento|paterno|materno|nombres|obs|grado|region|ini|fin|
  18. n|paterno|materno|nombres|funcion|calificacion|
  19. n|paterno|materno|nombres|funcion|calificacion|grado|region|um|honorario|ini|fin|obs|
  20. n|paterno|materno|nombres|funcion|calificacion|region|ini|fin|
  21. n|paterno|materno|nombres|funcion|calificacion|region||ini|fin|estab|obs|
  22. n|paterno|materno|nombres|obs|funcion|calificacion|region|ini|fin|
  23. n|paterno|materno|nombres|obs|grado|region|ini|fin|
  24. n|planta|estamento|corr|paterno|materno|nombres|grado|region|ini|fin|obs|
  25. n|planta|estamento|corr|paterno|materno|nombres|region|grado|ini|fin|estab|funcion|profesion|obs|
  26. n|planta|estamento|paterno|materno|nombres|region|grado|ini|fin|estab|funcion|profesion|obs|
  27. paterno|materno|nombres|funcion|calificacion|grado|region|um|honorario|ini|fin|obs|
  28. paterno|materno|nombres|funcion|calificacion|region|um|honorario|ini y fin|obs|
  29. paterno|materno|nombres|funcion|grado|region|um|remuneracion|ini|fin|obs|
  30. paterno|materno|nombres|obs|funcion|calificacion|region|ini|fin|
  31. 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:


Una instancia de dotación, se describe de la siguiente forma con el vocabulario visual:
Lo que viene es dejar todos los datos en un triplestore y presentar por facetas.

Día 2

Ayer fue el segundo día full time en la universidad. El trabajo realizado estuvo centrado en parsear los datos de transparencia para los tres ministerios seleccionados, a recordar: educación, justicia y salud. Previamente se almacenó el resultado de crawlear los sitios de transparencia en cada ministerio.

Ver en el update del repositorio los cambios en el código. Entre los problemas encontrados durante el parser están:
  • El Servicio Médico Legal (SML) tiene los links con javascript, por eso el crawler no trajo datos.
  • De un total de 5466 páginas ( 141 educación, 277 justicia, 5048 salud ) en 47 (aprox. un 1%) existió un fallo del parser por errores de sintaxis en el html, a esas páginas se les aplicó tidy para arreglar los problemas, lo que no resultó para 7 de estos documentos.
  • El ministerio de salud, y sus organizaciones, presenta una copia de sus datos para distintos meses del año 2009 (al menos desde marzo).
  • Existen cambios en los esquemas para el año 2009, en especial afecta a las Transferencias, Compras y Dotación.
Al aplicar el parser (proceso automático, que tomó 3 horas) y particionar los datos (proceso manual, que tomó 2 horas), se obtuvieron los siguientes resultados de interés:

Item Data
Auditoría 0,05%
Vínculo 0,12%
Subsidio 0,28%
Participación 0,35%
Remuneración 0,38%
Tramite 1,07%
Compra 3,51%
Normativa 5,03%
Transferencia 10,59%
Dotación 78,62%

Como se puede observar el 80/20 de los datos corresponde a información de dotación. Analizando el número de dotación crawleadas, con respecto a las que se tiene en el estudio de recursos humanos en el sector publico, vemos que los datos corresponden, al menos en el orden de magnitud.


estudio crawler
educación 12k 5k
justicia 19k 22k
salud 85k 80k

Queda por validar que ocurre con el ministerio de educación, donde solo se encontró la mitad de las personas, quizás falta incluir alguna organización dependiente. El detalle de organismos crawleados es el siguiente:

Ministerio Nombre Alias
Justicia Servicio de Registro Civil e Identificación srcei
Justicia Superintendencia de Quiebras squiebras
Justicia Servicio Medico Legal sml
Justicia Servicio Nacional de Menores sename
Justicia Gendarmería de Chile gendarmeria
Justicia Defensoría Penal Pública dpp
Salud Central de Abastecimiento cenabast
Salud Fondo Nacional de Salud fonasa
Salud Instituto de Salud Pública isp
Salud Servicios de Salud Arica SSARICA
Salud Servicios de Salud Iquique SSIQUIQUE
Salud Servicios de Salud Antofagasta SSANTOFAGASTA
Salud Servicios de Salud Atacama SSATACAMA
Salud Servicios de Salud Coquimbo SSCOQ
Salud Servicios de Salud Aconcagua SSACONCAGUA
Salud Servicios de Salud Viña del Mar Quillota SSVQ
Salud Servicios de Salud Valparaíso San Antonio SSVSA
Salud Servicios de Salud Metropolitano Norte SSMETRONORTE
Salud Servicios de Salud Metropolitano Central SSMC.
Salud Servicios de Salud Metropolitano Oriente S.S.M.O.
Salud Servicios de Salud Metropolitano Sur SSMETROSUR
Salud Servicios de Salud Metropolitano Sur Oriente SSMETROSURORIENTE
Salud Servicios de Salud Metropolitano Occidente SALUD OCCIDENTE
Salud Servicios de Salud Libertador B. O'Higgins SSOHIGGINS
Salud Servicios de Salud del Maule SSMAULE
Salud Servicios de Salud Ñuble SSNUBLE
Salud Servicios de Salud Concepción SSC
Salud Servicios de Salud Arauco SSARAUCO
Salud Servicios de Salud Talcahuano SSTALCAHUANO
Salud Servicios de Salud Bio Bio SSBIOBIO
Salud Servicios de Salud Araucanía Norte SSARAUCANIANORTE
Salud Servicios de Salud Araucanía Sur SASS
Salud Servicios de Salud Valdivia SSVALDIVIA
Salud Servicios de Salud Osorno SSOSORNO
Salud Servicios de Salud del Reloncaví SSDELRELONCAVI
Salud Servicios de Salud Chiloé SSCHILOE
Salud Servicios de Salud Aysén SSAYSEN
Salud Servicios de Salud Magallanes SSMagallanes
Salud Seremi de Salud Región de Arica y Parinacota SEREMI15
Salud Seremi de Salud Región de Tarapacá SEREMI1
Salud Seremi de Salud Región de Antofagasta SEREMI2
Salud Seremi de Salud Región de Atacama SEREMI3
Salud Seremi de Salud Región de Coquimbo SEREMI4
Salud Seremi de Salud Región de Valparaíso SEREMI5
Salud Seremi de Salud Región Metropolitana SEREMI13
Salud Seremi de Salud Región de O'Higgins SEREMI6
Salud Seremi de Salud Región del Maule SEREMI7
Salud Seremi de Salud Región del Bio Bio SEREMI8
Salud Seremi de Salud Región de la Araucanía SEREMI9
Salud Seremi de Salud Región de Los Ríos SEREMI14
Salud Seremi de Salud Región de Los Lagos SEREMI10
Salud Seremi de Salud Región de Aisén SEREMI11
Salud Seremi de Salud Región de Magallanes y Antártica Chilena SEREMI12
Salud Establecimiento Experimental Centro de Referencia de Salud de Maipú CRS MAIPU
Salud Establecimiento Experimental CRS Cordillera Oriente CRSCO
Salud Establecimiento Experimental Hospital Padre Hurtado HPADREHURTADO


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.

Editor RDF (I)

Durante las últimas semanas he trabajado en desarrollar un editor rdf, el objetivo principal es re-escribir el código de vocab-editor y de paso tener una herramienta que permita, gráficamente, la creación de triples RDF.

Un primer prototipo se encuentra disponible en el repositorio svn.

Planificación de trabajo

Recordemos que durante el trabajo de tesis se desarrollarán dos casos de ejemplo, el primero relacionado con las escuelas de Chile y el segundo con la ley de transparencia. Además se desarrollan herramientas y por último se documenta el trabajo realizado. La planificación de los próximos tres meses contempla los siguientes hitos:

Como un avance del Caso 1, se tiene el siguiente resultado de ejemplo:
@prefix esc: <http://wdat.org/cl/estado/vocabulario/educación/escuela/> .
@prefix dem: <http://wdat.org/cl/estado/vacabulario/demografía/> .
@prefix con: <http://wdat.org/cl/estado/vocabulario/contacto/> .
@prefix comuna: <http://wdat.org/cl/estado/geografía/comuna/> .

<http://wdat.org/cl/estado/educación/escuela/999> a esc:Escuela;
esc:nombre "ESCUELA BASICA ANTUMALAL";
esc:dotación 18;
esc:matrícula 242;
esc:estadoEstablecimiento esc:Funcionando;
esc:tipoEnseñanza esc:Parvularia;
esc:tipoEnseñanza esc:Básica;
esc:dependenciaAdministrativa esc:MunicipalCorporación;
dem:áreaGeográfica dem:Urbana;
dem:grupoSocioEconómico dem:B;
con:calle "HERIBERTO ROJAS";
con:número 5967;
con:comuna comuna:QuintaNormal;
con:fono 7738458;
con:email "ANTUMALAL@CORPQUIN.CL".
Para la documentación se propone la siguiente estructura:
  • Capítulo 1 Introducción
  • Capítulo 2 Marco Teórico
  • Capítulo 3 Metodología y Framework
  • Capítulo 4 Editor de Diagramas de Vocabularios
  • Capítulo 5 Caso de Estudio I: Escuelas
  • Capítulo 6 Caso de Estudio II: Transparencia
  • Capítulo 7 Conclusiones

VOCAB EDITOR

Se encuentra disponible la primera versión del editor de diagramas de vocabularios.

De las principales funcionalidades requeridas, solo las con [OK] están disponibles.
  • Composición de esquemas, seleccionando partes desde otros diagramas.
  • Import y Export
  • I18N y Documentación
  • Micro-taxonomías (skos)
  • Wiki de diagramas [OK]
  • Esquemas con NS, Clases, Propiedades e Individuos [OK]
  • Propiedades de tipo objetos y tipo de dato [OK]
  • App web, basada en browser sin plugins [OK]
Además, el nombre del aplicativo cambió a VOCAB EDITOR.


Reporte de avance, modelamiento de esquema

INTRODUCCION

Para el esquema asociado a las escuelas, estoy agrupando los sub-esquemas que ya habia presentado. Para el tema de jerarquía, he decidido utilizar owl:Class / rdfs:subClassOf, pero complementarlas con skos:Concept / skos:broader, creando un microtesauro. La propuesta es tener una clase llamada Escuela y un microtesauro llamado TesauroEscuela *con cinco elementos principales, cada uno es también una jerarquia de clases*. El objetivo de usar clases es permitir propiedades con rdfs:range y el objetivo de utilizar skos es enfatizar en que las relaciones de jerarquía dicen relación clasificación mas que con algún tipo de meronimia.

KOS son los Sistemas de Organización del Conocimiento y son utilizado por los bibliotecarios, skos permite llevar a rdf+owl, de manera Simple, cualquier tipo de vocabularios controlados: esquemas de clasificación, taxonomías, tesauros, etc. En skos, al igual que en owl se tienen muchas clases y propiedades. Sin embargo, para describir un tesauro, solo se necesita un subconjunto del vocabulario, y se puede crear siguiendo el siguiente patrón:
  • Escoger un nombre para el esquema (N)
  • Indicar que el esquema es de tipo conceptos (N rdf:type skos:ConceptScheme)
  • Crear al menos un concepto principal, se puede tener mas de uno (A skos:topConceptOf N)
  • Jerarquizar los conceptos como especifico (A skos:narrower B) o general (B skos:broader A)
  • Indicar el esquema el que pertencede cada concepto (A skos:inScheme N)
Ademas, para el esquema de la Escuela se utilizaran algunos elementos de owl:
  • Especificar distintos tipos de propiedades, discriminando entre owl:DatatypeProperty (que tienen como rango un literal tipado) y owl:ObjectProperty (que tienen como rango una instancia de una clase).
  • Detallar la cardinalidad que tiene cada propiedad (utilizando owl:cardinality, owl:maxCardinality y owl:minCardinality).

ESQUEMA

Se presentan algunas secciones de ejemplo del esquema, codificado en notation3:
:Escuela a owl:Class.
:rbd a owl:DatatypeProperty;
owl:cardinality "1"^^xsd:nonNegativeInteger;
rdfs:domain :Escuela;
rdfs:range xsd:integer.
[OTRAS PROPIEDADES TIPADAS AQUI]
:areaGeo a owl:ObjectProperty;
owl:cardinality "1"^^xsd:nonNegativeInteger;
rdfs:domain :Escuela;
rdfs:range :AreaGeografica.
[OTRAS PROPIEDADES OBJETO AQUI]
:TesauroEscuela a skos:ConceptScheme.

:AreaGeografica a skos:Concept;
skos:inScheme :TesauroEscuela;
a owl:Class;
skos:topConceptOf :TesauroEscuela.

:Rural a skos:Concept;
a owl:Class;
rdfs:subClassOf :AreaGeografica;
skos:broader :AreaGeografica.

:Urbana a skos:Concept;
a owl:Class;
rdfs:subClassOf :AreaGeografica;
skos:broader :AreaGeografica.
[OTRAS CONCEPTOS AQUI]

Y una representación gráfica de la clase y el microtesauro.



REFERENCIAS

La alternativa de utilizar owl con skos no es nada nuevo, como referencia, ver http://isegserv.itd.rl.ac.uk/public/skos/2007/10/f2f/skos-owl-patterns.html en _Overlay OWL with SKOS_

"""As a point of interest, the SKOS overlay triples could be inferred by RDFS-entailment, by stating that rdf:type, rdfs:subClassOf and rdfs:subPropertyOf are all sub-properties of skos:broader. If we were to allow that, then there would be consequences for the semantics of skos:broader, because we would at least have to optionally allow skos:broader to be interpreted as both reflexive and transitive."""

En el ambito educacional existe el Tesauro Europeo de la Educación, que será de gran ayuda para el proyecto, por ejemplo ver: centro de enseñanza.

CONCLUSION

Como caso general, se propone el siguiente "vocabulario mínimo" para crear esquemas:


ClasesPropiedades
rdf
rdf:type
rdfs
rdfs:domain
rdfs:range
rdfs:subClassOf
owlowl:Class
owl:DatatypeProperty
owl:ObjectProperty
owl:cardinality
owl:maxCardinality
owl:minCardinality
skosskos:Concept
skos:topConceptOf
skos:broader
skos:narrower
skos:inScheme

Ademas se deberán agregar instancias de documentación, quedando por revisar y seleccionar algunos de los siguientes elementos: rdfs:comment, rdfs:label, owl:Ontology, owl:versionInfo, skos:prefLabel, skos:altLabel, skos:hiddenLabel, skos:note.

Se incorporará este vocabulario mínimo, como opciones para ser generados en el editor gráfico de esquemas que estamos desarrollando, lo que permitirá proveer de un marco de trabajo para probar la metodología planteada.

Último prototipo editor

Se presenta el último prototipo del editor de esquemas, esta vez contiene gran parte de las funcionalidades ideadas inicialmente, permitiendo:
  • Agregar/Eliminar una clase
  • Agregar/Eliminar una propiedad
  • Enlazar una clase con otra clase (para indicar rdfs:subClassOf)
  • Enlazar una propiedad con una clase (para indicar rdfs:range)
  • Incrustar una propiedad en una clase (para indicar rdfs:domain)
Nuevamente se presenta, como caso de ejemplo, el diagrama de foaf, esta vez se encuentra pre-cargado al ingresar al prototipo.



Dentro de las funcionalidades a implementar para la primera versión del editor están:
  1. Grabar esquema en servidor
  2. Manejar versiones (histórico)
  3. Listar diagramas en servidor (con nombre - fecha - namespace)
  4. Administrar namespaces (color, curie, url, etc)
  5. Importar rdfs
  6. Seleccionar datatypes (xml)
  7. Borrar un conector
  8. Quitar una propiedad de una clase y dejar sin dominio
  9. Ordenar propiedades en una clase
  10. Dejar como una vista el ocultar las propiedades (diagrama de clases)
  11. Dejar como una vista el mostrar todos los enlaces de rango (diagrama entidad relación)
Las bibliotecas JavaScript utilizados en el prototipos son:

Prototipo editor (2)

Se presenta un nuevo prototipo de la gui para el editor de esquemas. Esta vez ya están "cargadas" todas los esquemas y se pueden agrupar las propiedad que son del dominio de una clase. Como ejemplo se presenta el siguiente esquema que asimila el diagrama del proyecto DOAP .




En el prototipo se "perdió temporalmente" la opción de seleccionar el rango de una propiedad (uniendo una propiedad con una clase) y al hacer doble click sobre una clase se elimina.

Las bibliotecas JavaScript utilizados en el prototipos son:

Prototipo de editor

Se presenta el primer prototipo de la GUI para el editor de ontologías colaborativo. Las funcionalidades habilitadas permiten solo hacer un diagrama, además se tienen habilitadas las primeras seis ontologías solamente. El objetivo del editor es tener una herramienta que permita componer esquemas, reutilizando ontologías existentes. Como un ejemplo, se presenta el intento de reconstruir parte del esquema FOAF.



Como se puede ver en el ejemplo, o bien utilizando el prototipo, existen solo dos tipos de relaciones:
  • La primera es una relación dirigida (con flecha), que une dos clases, para representar la propiedad sub-clase.
  • La segunda relación permite unir una propiedad con una clase y es para indicar el rango de una propiedad.

El dominio de una propiedad esta dada por el contexto de orden sobre una clase, el cual se debe implementar con algún tipo de restricción visual (enmarcando clase con sus propiedades, por ejemplo). Además, se deben agregar restricciones de cardinalidad para las propiedades.

Una lista de características que debiera tener la versión 0.1 del editor es la siguiente:
  • Permitir selección de múltiples elementos con draging options, operaciones de move y delete
  • Eliminar clases y propiedades del diagrama
  • Mostrar y ocultar propiedades y sus relaciones de rango
  • Agrupar propiedades "dentro" de una clase
  • Ingresar cardinalidad en relación de propiedades
  • Exportar e Importar el diagrama
  • Activar puntos sin conexión solo ante un MouseOver

Javascript

Para la manipulación de rdf con javascript existen algunas soluciones destacadas:
  • PAC : permite crear formularios rdf
  • RDFQUERY : un plugin de JQUERY, donde se destaca el demo MARK IT UP!
  • TABULATOR: un browser generico para data en rdf, ver paper
  • OAT: una serie de herramientas AJAX de OpenLinkSW (los mismos de virtuosos)
  • DOJO DATA: una implementación para acceder un rdfstore
  • JALAVA: un editor de diagramas

Esquema de Escuela

Tengo una nueva revisión del modelo de InfoEscuela, donde se agregan y corrigen algunos datos.


Desarrollé una primera versión del esquema para una escuela, que contiene los campos subrayados en el esquema anterior. El esquema tiene solo trece propiedades para describir una escuela y se utiliza un sub-esquema de división administrativa junto a algunos de los esquemas presentados en la entrada anterior de este blog. La mayoría de las propiedades seleccionadas son mapeables con el esquema en Freebase.

1.- División Administrativa


2.- Escuela



DataEstado

Buscando un nombre de dominio para la implementación de referencia, se me ocurrieron los siguientes: chiledata, chiledb, ldow, infoestado y dataestado.

DataEstado.cl es el nombre de dominio seleccionado para la implementación de referencia, ya que es lo suficientemente amplio para aceptar tanto información de carácter educacional, como de municipal, transparencia, etc.

Carwler InfoEscuela

En el repositorio esta disponible una primera versión del crawler para infoescuela, se basa en la solución propuesta en una entrada anterior. Al ejecutar el crawler se obtienen 3.7GB de datos en páginas html (con mas de 30 horas de ejecución). Luego, al ejecutar un proceso de scraping besico, sobre cada página, se logra un total de 117M en datos formateados (el proceso toma 8 horas de ejecución). El siguiente es un ejemplo de la data formateada para la escuela con RBD 9061.



De un total de 12114 colegios, existen 287 que presentaron problemas al momento de consultar por alguna de las páginas con información. Los problemas se concentran en solo dos paginas, la de datos sobre el SIMCE (58 casos) y la página de datos de profesores (229 casos). Por ejemplo la escuela con RBD 5421 presenta problemas en la pagina de datos del SIMCE, y la escuela con RBD 9813 presenta problemas con la página de datos de profesores. Es probable que estos problemas se deban a un bug en la generación de las páginas en el sistema InfoEscuela.

Datastores escalables y distribuidos

Para los motores en el cloud computing tanto Amazon como Google implementan su propia versión de datastore escalable.

Estos se unen a las soluciones opensource:

Evaluación de dominio para los casos de estudio

En el siguiente cuadro se presenta una evaluación para los dominios a trabajar en los casos de estudio.

Dominio Volumen de datos
Utilidad Impacto
Escuelas medio alto alto
Órganos del Estado alto alto medio
Deportes bajo media alto
Medios bajo baja alto

Las categorías seleccionadas son: Escuelas y Órganos del Estado, ya que tienen un volumen de datos razonable, presentan un beneficio social (utilidad) y mayor impacto.