<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>M´etodo Pr´actico para la Poblacio´n y Persistencia de un Modelo Sem´antico</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jos´e A. Gilliard</string-name>
          <email>jgilliard@frsf.utn.edu.ar</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Omar R. Per´ın</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mariela Rico</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ma. Laura Caliusco</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Centro de Investigacio ́n y Desarrollo de Ingenier ́ıa en Sistemas de Informacio ́n (CIDISI) - UTN - Fac. Regional Santa Fe</institution>
          ,
          <addr-line>Lavaise 610 - S3004EWB - Santa Fe</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Consejo Nacional de Investigaciones Cient ́ıficas y T ́ecnicas</institution>
          ,
          <addr-line>CONICET</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Resumen Actualmente, cada vez son ma´s los gobiernos que publican sus datos siguiendo la doctrina de Gobierno Abierto. Si bien existen varias propuestas de co´mo realizar dicha publicacio´n, ninguna de ellas es completa y, por lo tanto, no pueden ser fa´cilmente replicadas. En este trabajo se presenta una estrategia para el poblado y persistencia de datos basados en un modelo sema´ntico utilizando el lenguaje de mapeo D2RQ y el Triple Store Jena TDB.</p>
      </abstract>
      <kwd-group>
        <kwd>modelo sema´ntico</kwd>
        <kwd>datos abiertos</kwd>
        <kwd>D2RQ</kwd>
        <kwd>Jena TDB</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Hoy en d´ıa, la publicaci´on de datos ha tomado importancia, siendo ´esta, junto con
la bu´squeda de informaci´on, los objetivos principales de Internet. Si se relacionan
los datos y adem´as se les agrega interpretaci´on, entonces se puede hablar no s´olo
de la publicaci´on de informaci´on sino tambi´en de conocimiento [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Por otro lado, ha surgido un nuevo modelo de gobierno llamado Gobierno
Abierto, el cual se basa en la premisa de que todos los datos que produce el
gobierno son pu´blicos [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Un Gobierno Abierto es aquel que entabla una constante
conversaci´on con los ciudadanos con el fin de o´ır lo que ellos dicen y solicitan,
que toma decisiones basadas en sus necesidades y preferencias, que facilita la
colaboraci´on de los ciudadanos y funcionarios en el desarrollo de los servicios
que presta, y que comunica todo lo que hace de forma abierta y transparente
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Existen varias iniciativas de Gobierno Abierto que difieren en la estrategia
seguida: mientras unas iniciativas, como la de Estados Unidos, se centraron en
la publicaci´on de la mayor cantidad de informaci´on en el menor plazo posible,
volcando la informaci´on en crudo tal y como estaba disponible, otras, como el
caso de Gran Bretan˜a y Espan˜a, realizaron un tratamiento previo de los datos
empleando tecnolog´ıas de la Web Sem´antica para modelar la informaci´on y
establecer relaciones expl´ıcitas entre los distintos conjuntos de datos, siguiendo los
principios de Datos Enlazados [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]:
- Incluir enlaces a otras URIs para localizar m´as Datos Enlazados.
- Utilizar el protocolo HTTP (HyperText Transfer Protocol ) para nombrar y
resolver la ubicaci´on de los datos identificados mediante esas URIs.
- Representar los datos en RDF3 y utilizar SPARQL4, un lenguaje de consulta
para RDF, como lenguaje de consulta de dichos datos.
      </p>
      <p>
        En este u´ltimo sentido existen diferentes arquitecturas y metodolog´ıas
basadas en modelos sem´anticos compuestos por ontolog´ıas. Por ejemplo, en [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] se
presenta un proceso para publicar datos enlazados de gobierno, pero cuando se
quiere llevar a la pr´actica dicho proceso se carece de instrucciones detalladas
sobre c´omo hacerlo. El trabajo presentado en [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] se centra principalmente en el
desarrollo de la ontolog´ıa en un contexto de datos enlazados y en la evaluaci´on
del producto obtenido segu´n criterios de la Ingenier´ıa Ontolo´gica y los principios
de Datos Enlazados, pero no se explicitan reglas claras para el poblado de esta
ontolog´ıa. En [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] se presenta un framework de alto nivel para la publicaci´on de
datos basados en los principios de Datos Enlazados pero no se describe c´omo
aplicarlo. Estos inconvenientes hacen dif´ıcil replicar estas propuestas en otros
casos, sobre todo cuando se deben manejar grandes volu´menes de datos
provenientes de distintas fuentes de informaci´on y no existe una correspondencia
directa entre los elementos de estas fuentes y los de las ontolog´ıas.
      </p>
      <p>
        El objetivo de este trabajo es presentar una estrategia que permita la
persistencia y poblaci´on de grandes ontolog´ıas para dar soporte a aplicaciones de
Datos Abiertos siguiendo los principios de Datos Enlazados. Dicha estrategia se
defini´o luego de realizar varias iteraciones, siguiendo los lineamientos del m´etodo
Investigaci´on en Acci´on [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
2.
      </p>
      <p>Pasos para Poblar y Persistir un Modelo Sem´antico
En esta secci´on se presentan los pasos de una estrategia para la poblaci´on y
persistencia de un modelo sem´antico que ser´a utilizado para la publicaci´on de
datos de gobierno. El objetivo de dicha estrategia es generar las tripletas
necesarias para poblar las ontolog´ıas del modelo sem´antico a partir de los datos
almacenados en una base de datos (BD), cumpliendo con los requerimientos
especificados en el Documento de Especificaci´on de Requerimientos del Modelo
Sem´antico (DERMS) que se desea poblar y las correspondencias entre los datos
en las tablas de las BD y los elementos del modelo. Dichas correspondencias se
encuentran especificadas en el Documento de Correspondencias entre la BD y
las Ontolog´ıas (DCBDO) que se debe recibir como entrada.</p>
      <p>
        Se considera como caso de estudio, para presentar la estrategia, la poblaci´on
y persistencia del modelo sem´antico del personal del Gobierno de la Provincia
de Santa Fe [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Se recibieron como entrada el DERMS, el DCBDO, el modelo
sem´antico implementado en el lenguaje OWL y la BD de la cual se deb´ıan extraer
los datos. El modelo sem´antico recibido como entrada est´a compuesto por cuatro
ontolog´ıas modulares: Lugares, Cargos, Organismos y Agentes.
3 http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/
4 http://www.w3.org/TR/2013/REC-sparql11-query-20130321/
      </p>
      <p>Figura 1. Diagrama entidad-relacio´n simplificado para poblar la ontolog´ıa Lugares
2.1.</p>
    </sec>
    <sec id="sec-2">
      <title>An´alisis de las Fuentes de Informacio´n</title>
      <p>Los objetivos de este paso son: (1) preparar las BDs origen para la extracci´on
de los datos para generar las tripletas necesarias para poblar el modelo, y (2)
analizar el modelo sem´antico para comprenderlo y definir las URLs a usar.
Analizar las fuentes de informacio´n. La informaci´on primaria se encuentra
en una BD ORACLE de gran porte. Para independizar esta fuente de la
publicaci´on de datos, se hizo una r´eplica de la informaci´on a publicar en una BD de
c´odigo abierto, MySQL, denominada “personto” (dicha BD cuenta con 47 tablas
y un total de 7.439.605 registros) y se cre´o un archivo de texto plano conteniendo
las sentencias SQL necesarias para la creaci´on de las tablas y posterior carga de
los datos. Para disponer de una BD operativa fue necesario montar un servidor
de BD en los equipos de desarrollo, y configurar y poner en marcha el servicio.</p>
      <p>Dado que no todas las tablas de la BD se usaron para la generaci´on de
tripletas, result´o de gran utilidad hacer diagramas de entidad-relaci´on simplificados
para cada una de las ontolog´ıas del modelo en los que s´olo se desplegaron
aquellas tablas que intervendr´ıan en su poblaci´on. Esta fragmentaci´on surgi´o de los
requerimientos definidos en el DERMS. A manera de ejemplo, se muestra en la
Figura 1 el diagrama de tablas de Lugares que luego se utilizar´a en los ejemplos.</p>
    </sec>
    <sec id="sec-3">
      <title>Preparar los datos para generar las tripletas. Para poder generar las</title>
      <p>tripletas fue necesario realizar las siguientes tareas sobre los datos de la BD:
Tarea 1: Anonimizar datos. Con el fin de no hacer referencia a personas reales, se
reemplazaron sus nombres y apellidos por datos ficticios para lo cual se cre´o una
rutina en lenguaje Java y se la ejecut´o sobre la BD “personto”.</p>
      <p>Tarea 2: Tratar valores especiales. Un aspecto importante a tener en cuenta es
la existencia de valores nulos (NULL) en la BD. En algunos casos un valor nulo
en un campo de una tabla significa ausencia o desconocimiento del dato. Por
ejemplo, el campo que almacena el nu´mero de tel´efono de una persona.</p>
      <p>En otros casos, al momento de elaborar el modelo sem´antico se le di´o un
significado espec´ıfico a ese valor nulo. Por ejemplo, el modelo sem´antico estudiado
define la propiedad funcionamiento para la clase OrganismoEnSARH, que se
origina a partir del campo CLAUSURA de la tabla organismos. Los valores
almacenados en este campo son los caracteres S y T, que se traducen a los
valores En Funcionamiento y Cerrado Temporalmente de la propiedad para las
instancias de la clase. El modelo sem´antico, adem´as de esta interpretaci´on de los
datos, agrega un tercer posible valor Cerrado que deber´a utilizarse para los casos
en que el valor del campo CLAUSURA sea NULL. Las herramientas adoptadas
no dan soporte para este tipo de transformaci´on con valores nulos, por lo que fue
necesario modificar una serie de registros en la BD para incluir un nuevo valor
al campo CLAUSURA en aquellos registros donde era nulo.</p>
    </sec>
    <sec id="sec-4">
      <title>Definir una URL base para el modelo sem´antico y, en base a ´esta,</title>
      <p>
        una URL para cada ontolog´ıa del modelo. Para publicar datos en la Web,
los elementos de un dominio de inter´es primero deben ser identificados[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Datos
Enlazados utiliza s´olo URIs HTTP por dos razones:
1. proporcionan una forma sencilla de crear nombres u´nicos globales de manera
descentralizada
2. y sirven como medio de acceso a la informaci´on que describe la entidad
identificada.
      </p>
      <p>La URL http://www.frsf.utn.edu.ar/personto/ identifica globalmente al
modelo sem´antico estudiado. Las dem´as URL definidas son las siguientes:
- Agentes: http://www.frsf.utn.edu.ar/personto/ontoagentes#
- Cargos: http://www.frsf.utn.edu.ar/personto/ontocargos#
- Lugares: http://www.frsf.utn.edu.ar/personto/ontolugares#
- Organismos http://www.frsf.utn.edu.ar/personto/ontoorganismos#</p>
    </sec>
    <sec id="sec-5">
      <title>Definir las colecciones para las instancias de cada ontolog´ıa y sus res</title>
      <p>pectivas URLs. Cada clase definida en un modelo sem´antico da origen a una
serie de recursos, sus instancias. Los recursos de una misma clase se agrupan
en una colecci´on. Para identificar estos recursos es necesario adoptar un
criterio respecto de los nombres a asignar a las colecciones y, adem´as, construir una
cadena de texto que identifique de manera un´ıvoca a cada recurso.</p>
      <p>Para la nominaci´on de colecciones se utiliz´o el plural del sustantivo que da
nombre a la clase a la cual corresponden los recursos. As´ı, por ejemplo, las
instancias de la clase Provincia se agruparon dentro de la colecci´on provincias.</p>
      <p>Para generar los identificadores se usaron los valores correspondientes a las
claves primarias de las tablas desde las cuales se extraen los datos, asegurando
as´ı su unicidad. En los casos donde la clave primaria estaba compuesta por m´as
de un campo, se concatenaron sus valores.</p>
      <p>La estructura de la URI correspondiente a cualquier recurso del modelo es:
&lt;http://www.frsf.utn.edu.ar/personto/colecci´on/id recurso&gt;</p>
      <p>Algunos ejemplos de las correspondencias entre cada clase del modelo y la
URI de la colecci´on en la cual se agrupan sus instancias son:
- Pais: http://www.frsf.utn.edu.ar/personto/paises/
- Departamento: http://www.frsf.utn.edu.ar/personto/departamentos/
- Provincia: http://www.frsf.utn.edu.ar/personto/provincias/
2.2.</p>
    </sec>
    <sec id="sec-6">
      <title>Poblacio´n del Modelo Sem´antico</title>
      <p>Cada elemento de la ontolog´ıa tendr´a una correspondencia, directa o no, con
elementos de las BDs. A partir de las BDs y en base a las definiciones establecidas
en las ontolog´ıas, primero se deben establecer las correspondencias que
permitan generar las tripletas necesarias para representar las definiciones de clases,
instancias y sus propiedades, y las relaciones entre las instancias de esas clases.</p>
    </sec>
    <sec id="sec-7">
      <title>Estas tripletas convierten la ontolog´ıa modelada en una ontolog´ıa poblada.</title>
    </sec>
    <sec id="sec-8">
      <title>Para cada ontolog´ıa, identificar grupos de tripletas a generar. Esta</title>
      <p>actividad consiste en identificar qu´e grupos de tripletas se deben generar segu´n
los elementos que componen la ontolog´ıa dada. Para cada ontolog´ıa, se necesitan
tripletas para la declaraci´on e instanciaci´on de cada una de sus elementos.</p>
    </sec>
    <sec id="sec-9">
      <title>Definir los patrones que seguir´an las componentes sujeto, propiedad y</title>
      <p>objeto de las tripletas de cada grupo. Partiendo de los grupos establecidos
en la actividad anterior se procedi´o a especificar de qu´e manera deb´ıan estar
compuestas las tripletas para cada grupo.</p>
      <p>Declaraci´on de clases. Para la declaraci´on de clases se debe generar una
tripleta que identifique a la clase como tal y dos tripletas opcionales para agregar
comentarios y etiquetas, siguiendo los patrones que se muestran a continuaci´on:
&lt;URI CLASE&gt;
&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;
&lt;http://www.w3.org/2000/01/rdf-schema#Class&gt;.
&lt;URI CLASE&gt;
&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;“ETIQUETA” .
&lt;URI PROPIEDAD&gt;
&lt;http://www.w3.org/2000/01/rdf-schema#comment&gt;“COMENTARIO” .</p>
      <p>Cuando existe herencia de clases, para cada una de las subclases se debe
incluir una tripleta extra indicando la relaci´on, como se muestra a continuacin:
&lt;URI SUBCLASE&gt;
&lt;http://www.w3.org/2000/01/rdf-schema#subClassOf&gt;
&lt;URI SUPERCLASE&gt;.</p>
      <p>Instanciaci´on de clases Por cada instancia de clase se debe generar una tripleta
segu´n el siguiente patr´on:
&lt;URI INSTANCIA&gt;
&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;
&lt;URI CLASE&gt;.
Declaraci´on de propiedades de instancias. Las propiedades se declaran con una
tripleta que identifique la propiedad como tal y, opcionalmente, dos o m´as para
agregar comentarios y etiquetas, con los patrones que se muestran a continuaci´on.
&lt;URI
PROPIEDAD&gt;&lt;http://www.w3.org/1999/02/22-rdf-syntaxns#type&gt;&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#Property&gt;.
&lt;URI PROPIEDAD&gt;&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;“ETIQUETA” .
&lt;URI PROPIEDAD&gt;&lt;http://www.w3.org/2000/01/rdf-schema#comment&gt;“COMENTARIO” .</p>
      <p>En los casos en que el dominio de la propiedad est´a integrado por m´as de una
clase, se genera una u´nica tripleta para identificar a la propiedad, las tripletas
de etiqueta y comentario para cada clase incluida en el dominio.
Instanciaci´on de propiedades de instancias. Se debe generar una tripleta por
cada propiedad de cada instancia de cada clase siguiendo el siguiente patr´on:
&lt;URI INSTANCIA&gt;&lt;URI PROPIEDAD&gt;“VALOR PROPIEDAD” .</p>
      <p>Declaraci´on de relaciones entre instancias. Se debe generar una tripleta que
identifique cada relaci´on como tal y, opcionalmente, dos o m´as para agregar
comentarios y etiquetas. Los patrones para estas tripletas son:
&lt;URI
RELACION&gt;&lt;http://www.w3.org/1999/02/22-rdf-syntaxns#type&gt;&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#Property&gt;.
&lt;URI RELACION&gt;&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;“ETIQUETA” .
&lt;URI RELACION&gt;&lt;http://www.w3.org/2000/01/rdf-schema#comment&gt;“COMENTARIO” .
Instanciaci´on de relaciones entre instancias. Se debe generar una tripleta por
cada par de instancias relacionadas segu´n el siguiente patr´on:</p>
      <p>&lt;URI INSTANCIA SUJETO&gt;&lt;URI RELACION&gt;&lt;URI INSTANCIA OBJETO&gt;.
Calcular la cantidad de tripletas a generar para cada grupo en base
a consultas SQL a las BD de origen. Se debe obtener, para cada grupo
de tripletas y teniendo en cuenta los patrones necesarios para cada grupo, la
cantidad exacta de tripletas que se deben generar para la declaraci´on de todas las
clases y propiedades del modelo sem´antico y la extracci´on de todas las instancias
almacenadas en las BDs. Para estos c´alculos se debe tener en cuenta lo siguiente:
- cada subclase en una relaci´on de herencia requiere una tripleta adicional;
- la instanciaci´on de una propiedad de una clase depende de la cantidad de
valores no nulos en el campo origen de dicha propiedad;
- las propiedades con n clases en su dominio (n ≥ 2) requieren 3 + 2 × (n − 1)
tripletas</p>
    </sec>
    <sec id="sec-10">
      <title>Para cada ontolog´ıa, redactar un archivo de mapeo D2RQ que permita</title>
      <p>
        generar los lotes correspondientes de forma automatizada. Mediante el
uso de un lenguaje espec´ıfico, D2RQ Mapping Language, se pueden escribir
bloques de c´odigo que establecen la asociaci´on entre los campos de las tablas en las
BDs y los elementos definidos en las ontolog´ıas, como clases y propiedades [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. El
contenido base de un archivo de mapeo D2RQ consiste en la definici´on de prefijos,
conexiones a BDs, bloques d2rq:ClassMap, uno por cada clase de la ontolog´ıa,
y bloques d2rq:PropertyBridge para generar propiedades entre las instancias de
las clases. A continuaci´on se detallan cada uno de ellos.
      </p>
      <p>Declaraci´on de prefijos. Los archivos de mapeo comienzan con la declaraci´on de
los prefijos necesarios, incluyendo uno para la URI base del modelo, uno para
cada URI de las diferentes ontolog´ıas que lo forman y uno para cada colecci´on
de instancias. Tambi´en, se deben incluir una serie de prefijos de espacios de
nombres de uso comu´n, como el de D2RQ y OWL. No es necesario incluir todos
los prefijos espec´ıficos del modelo, sino s´olo aquellos que se utilizan localmente.
Conexi´on a BDs. Se deben establecer las conexiones a las BDs con las que se va a
trabajar para la extracci´on de tripletas. Para ello, un objeto d2rq:Database define
una conexi´on JDBC a una BD relacional local o remota. Un archivo de mapeo
D2RQ puede contener m´as de un objeto d2rq:Database, permitiendo el acceso a
mu´ltiples BDs diferentes. Una vez declarado este objeto, cualquier acceso a la
BD se realizar´a haciendo referencia al mismo.</p>
      <p>Mapeo de clases y sus instancias. D2RQ abarca las definiciones de clases y sus
instancias con un solo bloque de c´odigo, a trav´es de un objeto d2rq:ClassMap. Por
ejemplo, el bloque de c´odigo siguiente realiza el mapeo entre la tabla paises y la
clase Pais de la ontolog´ıa Lugares, mediante la definici´on del mapeo map:Paises.
map:Paises a d2rq:ClassMap; d2rq:dataStorage map:persontoDB; d2rq:uriPattern
“paises/@@paises.COD PAIS—encode@@”; d2rq:class ontolugares:Pais; d2rq:classDefinitionLabel
“Pais”; d2rq:classDefinitionComment “Representa el pa´ıs de nacimiento de un Agente.”; .</p>
      <p>Este mapeo da origen a las tripletas de definici´on de la clase Pais, una
etiqueta (d2rq:classDefinitionLabel ) y comentario (d2rq:classDefinitionComment ) para
la misma. La propiedad d2rq:dataStorage especifica que el objeto obtendr´a datos
de la BD definida anteriormente por el objeto map:persontoDB.</p>
      <p>Cada registro de la tabla dar´a origen a una instancia de la clase, que
estar´a identificada y ser´a posible acceder a la misma por medio de la URI
compuesta por el infijo paises/, correspondiente a la colecci´on, seguido del c´odigo
del pa´ıs. Esto se logra haciendo uso de la propiedad d2rq:uriPattern. En tiempo
de ejecuci´on, a toda URI generada a partir de un mapeo D2RQ se le an˜ade un
prefijo global correspondiente a la URL base que identifica al modelo.
Mapeo de propiedades y sus instancias. El objeto D2RQ, que hace posible el
mapeo de Data Properties y Object Properties es d2rq:PropertyBridge.</p>
      <p>Una Data Property puede generarse de varias formas. El valor de la misma
puede obtenerse, por ejemplo, a partir de un valor simple de una columna de la
misma tabla desde la cual se origin´o la instancia, una columna de otra tabla, un
patr´on generado a partir de la concatenaci´on de varias columnas o una
correspondencia entre valores enumerados. La definici´on de un d2rq:PropertyBridge
est´a compuesta por la especificaci´on del d2rq:ClassMap, que da origen a las
instancias a las cuales agrega propiedades mediante la propiedad d2rq:belongsToClassMap,
la propiedad RDF que est´a generando, especificada por la propiedad d2rq:property,
y el valor asignado.</p>
      <p>Las Object Properties se extraen generalmente de alguna relaci´on entre tablas
y se mapean generando un bloque de tipo d2rq: PropertyBridge con el agregado
de una o m´as propiedades d2rq:join, que fijen la relaci´on de igualdad entre
campos de tabla. Adem´as, teniendo en cuenta la definici´on de una object property
como una tripleta sujeto-propiedad-objeto, la propiedad d2rq:belongsToClassMap
indica el mapeo que da origen a las instancias sujeto, mientras que d2rq:refersTo
ClassMap indica las instancias objeto. Los signos &lt; y &gt; se utilizan para
indicar, mediante la punta de flecha, cu´al de los lados de la condici´on de igualdad
corresponde a una clave primaria. Esto permite al motor D2RQ optimizar el
mecanismo interno de resoluci´on de consultas SQL, reduciendo los tiempos de
procesamiento requeridos para la transformaci´on de los datos.</p>
      <p>En ciertos casos, el valor que de una propiedad puede estar incluido en una
enumeraci´on de posibles valores, por lo cual el rango de la propiedad corresponde
a un tipo de datos enumerado. Pueden existir, adem´as, casos en los que los valores
almacenados en campos de tablas que dan origen a propiedades de instancias
contengan valores que por disen˜o del modelo sem´antico deban ser traducidos o
convertidos a otro formato al momento de la generaci´on de las tripletas. Para
estos casos se emplean caracter´ısticas particulares del lenguaje D2RQ.
Para cada ontolog´ıa, generar un volcado de tripletas serializadas en
formato n-triples. Una vez redactado el archivo de mapeo para cada ontolog´ıa,
se generan volcados de tripletas para cada mapeo. La herramienta dump-rdf de
la plataforma D2RQ permite generar estos volcados de tripletas serializadas en
formato n-triples. Se utiliza este formato por ser el m´as adecuado para persistir,
en el proceso siguiente, los lotes generados en un T-Store, ya que su
procesamiento requiere menores niveles de recursos de CPU y memoria.</p>
      <p>Verificar si se generaron las cantidades de tripletas correctas. Las
herramientas de l´ınea de comandos grep y wc5 permiten contar la cantidad de
l´ıneas en un archivo que contengan un patr´on de texto especificado. Dado que
bajo el formato de serializaci´on n-triples cada l´ınea del archivo de volcado
corresponde a una tripleta, si se define correctamente el patr´on de texto a buscar
mediante el uso de expresiones regulares, se puede saber con exactitud la
cantidad de ocurrencias de un modelo de tripleta que responden a cada uno de los
grupos particulares que existen en el volcado.
2.3.</p>
    </sec>
    <sec id="sec-11">
      <title>Persistencia del Modelo Sem´antico</title>
      <p>El objetivo es generar un repositorio persistente en el que se encuentre
almacenado el modelo sem´antico junto con las instancias generadas anteriormente, listo
para ser consultado. Este proceso consta de las tres actividades siguientes.
Crear un Triple Store. Para crear la Triple Store se seleccion´o la combinaci´on
de las herramientas D2RQ y el Framework Jena. Para la selecci´on de dichas
herramientas se busc´o alcanzar el mayor grado de interoperabilidad entre ellas,
teni´endose en cuenta, adema´s, la disponibilidad de documentacio´n y madurez de
los proyectos de desarrollo correspondientes. De los dos repositorios ofrecidos por
Jena, SDB y TDB6, se eligio´ el segundo, debido a que SDB ya no se encuentra
en desarrollo activo, y adem´as presenta mayor eficiencia y escalabilidad.</p>
    </sec>
    <sec id="sec-12">
      <title>Cargar al Store cada una de las ontolog´ıas del modelo sem´antico. La</title>
      <p>gesti´on del repositorio y el acceso al mismo pueden realizarse programa´ticamente
mediante una serie de m´etodos ofrecidos por la API del framework Jena, o
mediante el uso de herramientas de l´ınea de comando provistas por la plataforma.
Para la carga masiva de datos, la segunda alternativa resulta m´as eficiente.</p>
      <p>La herramienta de l´ınea de comandos tdbloader permite la carga masiva de
archivos RDF al almac´en Jena TDB, y genera con cada carga los ´ındices
necesarios para optimizar el acceso a los datos. Se deben tener en cuenta dos
restricciones de esta herramienta. En primer lugar, las ontolog´ıas a cargar deben
encontrarse serializadas en formato RDF/XML. La segunda restricci´on es que
tdbloader no es transaccional, lo que implica el bloqueo del repositorio durante
las operaciones de carga, deneg´andose el acceso simult´aneo desde otro proceso.</p>
    </sec>
    <sec id="sec-13">
      <title>Cargar al Store cada uno de los lotes de tripletas generados. El proceso</title>
      <p>de carga se lleva a cabo con la herramienta tdbloader, la cual primero realiza la
carga de tripletas al almac´en para luego pasar a la fase de indexado.
2.4.</p>
    </sec>
    <sec id="sec-14">
      <title>Consulta al Modelo Sem´antico Persistido y Poblado</title>
      <p>
        Para cada una de las preguntas de competencia planteadas en el DERO para el
modelo sem´antico estudiado[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], se realiz´o una traducci´on a consultas en lenguaje
SPARQL. El texto de cada consulta SPARQL se guard´o en un archivo de texto
con extensi´on .sparql, para luego utilizarlo en la ejecuci´on de la consulta.
      </p>
      <p>Finalmente, sobre el repositorio Jena TDB se ejecut´o cada una de las
consultas SPARQL. Esta tarea se puede llevar a cabo ejecutando la herramienta de
l´ınea de comandos tdb-query de la plataforma Jena TDB. Otra forma de
resolver consultas SPARQL es utilizando el motor de ejecuci´on de consultas ARQ
mediante la API provista por el framework Jena. Este m´etodo brinda mayor
flexibilidad, a costas de un mayor consumo de recursos y tiempos de respuesta.</p>
      <p>
        Lecciones Aprendidas y Trabajos Futuros
En este trabajo se present´o una estrategia para persistir y poblar grandes
ontolog´ıas para dar soporte a aplicaciones de Datos Abiertos siguiendo los principios
6 https://jena.apache.org/documentation/tdb/
de Datos Enlazados. La misma se prob´o en dos tesis de maestr´ıa que requer´ıan
la poblaci´on de ontolog´ıas con datos almacenados en sistemas de gobierno. De
estas pruebas se pudo concluir que la estrategia es u´til cuando la BD origen
est´a compuesta por varias tablas y los mapeos entre los elementos de la BD y
los del modelo sem´antico no son directos. Cuando hay pocas tablas, con
muchos registros, y la herramienta de ontology learning permite crear de forma
directa el modelo sem´antico y sus instancias, puede resultar m´as adecuada una
herramienta como RDB2Onto [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>La estrategia definida requiere contar con desarrolladores con conocimientos
en tecnolog´ıas sem´anticas y definir un gran nu´mero de tripletas (en el caso
presentado se definieron m´as de 50.000.000 de tripletas). Por ello, se desarroll´o un
prototipo de aplicaci´on que gu´ıa en la implementaci´on de la estrategia definida,
el cual est´an fuera del alcance de este trabajo.</p>
      <p>La estrategia propuesta est´a basada en D2RQ y el T-Store Jena TDB, sin
embargo podr´ıa extenderse a otros lenguajes y T-stores.</p>
      <p>Otro tema para trabajo futuro es la actualizaci´on de datos. En los casos
estudiados los mismos se modifican una vez al mes siendo necesario realizar los
pasos definidos para actualizarlos. En otros casos, el tema de la actualizaci´on
debe reveerse.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Brys</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montes</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <source>Gobierno Electro´nico 3</source>
          .0.
          <string-name>
            <surname>Aplicaciones de la Web</surname>
          </string-name>
          <article-title>Sem´antica a la Administracio´n Pu´blica</article-title>
          .
          <source>In: Anales del SIE</source>
          <year>2011</year>
          , Simposio de Informa´
          <source>tica en el Estado</source>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>30</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Calder´on,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Lorenzo</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          : Open Government: Gobierno Abierto.
          <article-title>Algo´n Editores, Espan˜a (</article-title>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cerbah</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <article-title>: Learning highly structured semantic repositories from relational databases: the RDBToOnto tool</article-title>
          . In
          <source>: Proc. 5th European semantic web conference on The semantic web: research and applications</source>
          , pp.
          <fpage>777</fpage>
          -
          <lpage>781</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cyganiak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garbers</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maresch</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Becker</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The D2RQ mapping language</article-title>
          , http://d2rq.org/d2rq-language (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Heath</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Linked Data: Evolving the Web into a Global Data Space</article-title>
          . Morgan &amp; Claypool, 1st ed. (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Lozano</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Enfoque Basado en Ontolog´ıas para Brindar Acceso a la Informacio´n del Personal del Gobierno de</article-title>
          la Provincia de Santa Fe. Tesis de Maestr´ıa, Universidad Tecnolo´gica Nacional, Facultad Regional Santa Fe,
          <string-name>
            <surname>Argentina</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. P´
          <article-title>oveda-Villalo´n, M.: A Reuse-based Lightweight Method for Developing Linked Data Ontologies and Vocabularies</article-title>
          . In: Simperl,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Cimiano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Polleres</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Corcho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            ,
            <surname>Presutti</surname>
          </string-name>
          , V. (eds.)
          <source>The Semantic Web: Research and Applications. LNCS</source>
          , vol.
          <volume>7295</volume>
          , pp.
          <fpage>833</fpage>
          -
          <lpage>8379</lpage>
          . Springer, Heidelberg (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. Villaz´
          <article-title>on-</article-title>
          <string-name>
            <surname>Terrazas</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Vilches-Bla´zquez, L.,
          <string-name>
            <surname>Corcho</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <article-title>Go´mez-P´erez, A.: Methodological Guidelines for Publishing Government Linked Data</article-title>
          . In: Wood,
          <string-name>
            <surname>D</surname>
          </string-name>
          . (ed.)
          <source>Linking Government Data</source>
          , pp.
          <fpage>27</fpage>
          -
          <lpage>49</lpage>
          . Springer New York (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Zins</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Conceptual Approaches for Defining Data</article-title>
          , Information, and
          <string-name>
            <surname>Knowledge</surname>
          </string-name>
          .
          <source>J. Am. Soc. Inf. Sci. Technol</source>
          .
          <volume>58</volume>
          ,
          <fpage>479</fpage>
          -
          <lpage>493</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Avison</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lau</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Myers</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nielsen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Action research.
          <source>Commun. ACM</source>
          <volume>42</volume>
          ,
          <fpage>94</fpage>
          -
          <lpage>97</lpage>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>