<!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>Metodo para la indexacion de grafos RDF desde un SPARQL Endpoint</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alejandro Jesus Marin~o-Molerio</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juan Carlos Moreira de Lara</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Leduan Flores-Riera</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yusniel Hidalgo-Delgado</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>Grupo de Web Semantica, Universidad de las Ciencias Informaticas</institution>
          ,
          <country country="CU">Cuba</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Palabras claves: Indice Invertido</institution>
          ,
          <addr-line>Datos Enlazados, Grafos RDF, Almacen de Tripletas, Web Semantica</addr-line>
        </aff>
      </contrib-group>
      <fpage>98</fpage>
      <lpage>109</lpage>
      <abstract>
        <p>Linked Data refers to a set of principles and best practices for publishing and linking structured data on the web. The linked data research community has been publishing library data using the standard RDF, a graph-based data model. These RDF graphs are stored in a speci c type of database called triplestore and provides a SPARQL endpoint for querying them. However, these triplestores are not optimized for executing real-time queries submitted by the users, a ecting the response time and usability in real environments. In this paper, we propose an index-based method for optimizing the query response time and solve the issues related to search and retrieval in large RDF graphs stored in triplestores. To prove the feasibility of the method proposed, it was applied to a semantic digital library, improving the query response time.</p>
      </abstract>
      <kwd-group>
        <kwd>Inverted Index</kwd>
        <kwd>Linked Data</kwd>
        <kwd>RDF Graph</kwd>
        <kwd>Triplestore</kwd>
        <kwd>Semantic Web</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Resumen Los datos enlazados se re eren a un conjunto de principios
y buenas practicas para la publicacion y enlazado de datos
estructurados en la web. En los ultimos an~os se han publicado datos bibliogra cos
utilizando el modelo de datos basado en grafos RDF. Los grafos RDF
son almacenados en un tipo espec co de base de datos conocidos como
almacen de tripletas. Los almacenes de tripletas proporcionan un punto
de acceso para la realizacion de consultas en el lenguaje SPARQL. Sin
embargo, estos sistemas de almacenamiento no estan optimizados para
la ejecucion de consultas realizadas por los usuarios en tiempo real,
afectando el tiempo de respuesta y por tanto la usabilidad de los datos en
entornos reales. En este art culo se propone un metodo basado en
ndices para la optimizacion del tiempo de respuesta a consultas realizadas
en un punto de acceso SPARQL, mejorando los procesos de busqueda y
recuperacion de datos en grandes grafos RDF. Para comprobar la
aplicabilidad del metodo propuesto, se aplico el mismo en una biblioteca digital
basada en datos enlazados, obteniendose una mejora en los tiempos de
respuestas obtenidos en la experimentacion.</p>
    </sec>
    <sec id="sec-2">
      <title>Introduccion</title>
      <p>
        El transito hacia la Web Semantica requiere de una adecuada estructuracion
e integracion de datos; esto propicio que [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] enunciara el concepto de Datos
Enlazados: \Los datos enlazados se re eren a un conjunto de principios y buenas
practicas para la publicacion y enlazado de datos estructurados en la Web". La
idea que persiguen los datos enlazados es utilizar la arquitectura general de la
web para la comparticion de datos estructurados a escala global [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        La Web Semantica se basa en dos conceptos fundamentales: (1) la descripcion
del signi cado que tiene los contenidos en la web y (2) la manipulacion
automatica de estos signi cados [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. En el caso del primero, intervienen conceptos
como la semantica, que es el estudio y signi cado de los terminos lingu sticos
procesables por las maquinas; los metadatos como contenedores de informacion
semantica sobre los datos; y las Ontolog as para de nir conceptos y relaciones de
un dominio espec co. Los metadatos y las Ontolog as forman parte del campo de
la representacion del conocimiento. Para describir la semantica se requiere de un
lenguaje apropiado llamado lenguaje de representacion. Los lenguajes de
representacion como RDF(S)(Resource Description Framework Schema) y OWL(Web
Ontology Language) proporcionan un estandar adecuado para la web [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        En el caso de RDF se de ne como un lenguaje para representar la
informacion acerca de los recursos en la web. Esta destinado especialmente para la
representacion de metadatos sobre recursos web, como el t tulo, autor y fecha de
modi cacion, entre otros, as como la disponibilidad para algunos recursos
compartidos. RDF se encuentra recogido en 6 recomendaciones del W3C: Primer,
Concepts, Syntax, Semantics, Test Cases y Vocabulary (Schema), usado para
describir las propiedades y las clases de los recursos RDF con una semantica
para establecer jerarqu as de generalizacion entre dichas propiedades y clases
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Para [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] RDF es un modelo de datos en forma de grafo dirigido y
etiquetado que permite de nir relaciones semanticas entre distintas URIs como recursos,
asociandoles un conjunto de propiedades y valores con el n de representar
informacion sobre recursos en la web. Por su parte [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] lo de ne como un marco
para expresar la informacion acerca de los recursos. Los recursos pueden ser
documentos, personas, objetos f sicos, y los conceptos abstractos.
      </p>
      <p>
        RDF esta basado en la idea de que los recursos (sujeto) a describir, poseen
propiedades (predicado) que a su vez tienen valores (objeto). Estos recursos
pueden ser descritos formulando \declaraciones" que especi can estas propiedades
y valores, en forma de grafo de nodos y arcos que representan los recursos, y sus
propiedades y valores [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. RDF y el lenguaje RDF Schema se fundamentaron
en investigaciones sobre metadatos realizadas por comunidades de Bibliotecas
Digitales, pudiendo considerarse RDF como una implementacion del Warwick
Framework donde RDF es una evolucion de este ultimo, que permite que cada
vocabulario de metadatos posea una sintaxis distinta. Para [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] en RDF es
fundamental utilizar palabras que transmitan un signi cado inequ voco con el n
de que las aplicaciones entiendan el enunciado para un procesamiento correcto.
      </p>
      <p>
        Asociado a RDF se de ne la estandarizacion del lenguaje de consultas SPARQL.
Este lenguaje se puede utilizar para expresar consultas a traves de diversas
fuentes de datos, ya sea que los datos se almacenen de forma nativa como RDF o
se visualicen como RDF a traves de un middleware. SPARQL contiene
capacidades para consultar patrones sobre grafos obligatorios y opcionales junto con
sus conjunciones y disyunciones. SPARQL tambien admite agregacion,
subconsultas, negacion, creacion de valores por expresiones y consultas restrictivas por
grafo RDF. Los resultados de las consultas SPARQL pueden ser conjuntos de
resultados o grafos RDF [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        La evolucion de RDF y SPARQL, en el contexto de la web semantica, ha
propiciado el surgimiento de muchos sistemas capaces de almacenar, consultar y
actualizar RDF, tales como Ontotext GraphDB 1 , Virtuoso 2, Jena 3 ,etc. Cada
uno de estos sistemas provee de un SPARQL Endpoint. Un SPARQL Endpoint
es el principal modo para acceder a los datos porque es una forma exible de
interactuar con la Web de los datos. Ademas, devuelve respuestas a consultas
en varios formatos, como XML y JSON, que son ampliamente utilizados como
estandares de intercambio de datos en diversas aplicaciones [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Con el
crecimiento de la Web de los datos el numero de SPARQL Endpoints que construyen
consultas SPARQL sobre ella usando HTTP tambien crece rapidamente. Esto
ha permitido que las instituciones agreguen datos de multiples SPARQL
Endpoints similares a las bases de datos distribuidas convencionales. Sin embargo,
la escalabilidad de estos sistemas se ve afectada por el aumento del taman~o de
los grafos RDF. Esto ha supuesto un desaf o para la comunidad cient ca dado
que la nube de datos enlazados crece constantemente.
      </p>
      <p>
        En [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] se realizan varios experimentos para analizar el tiempo de respuestas
a diferentes tipos de consultas realizadas sobre diferentes SPARQL Endpoints
para obtener grandes conjuntos de respuestas. Los resultados obtenidos en
tiempo de respuesta var an desde los 5.5 hasta los 723.8 segundos con una media de
50.7 segundos, como se muestra en la gura 1. Las consultas realizadas, utilizan
diferentes l mites para la obtencion de los resultados con la ejecucion de la
consulta. En cuanto a los tiempos de respuesta durante la ejecucion de consultas
por los usuarios al SPARQL Endpoint desde el punto de vista de la interaccion
humano-computadora, se de nen tres l mites de tiempos para las aplicaciones
web [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]:
1. 0.1 segundos l mite para los usuarios que sienten que estan manipulando
objetos directamente en la interfaz de usuario.
2. 1 segundo l mite para los usuarios que sienten que estan navegando
libremente por el espacio de comandos sin tener que esperar indebidamente la
computadora. Un retraso de 0.2-1.0 segundos signi ca que los usuarios
notan el retraso y sienten que la computadora esta \trabajando"en el comando,
en lugar de tener el comando como un efecto directo de las acciones de los
usuarios.
1 http://graphdb.ontotext.com/
2 https://virtuoso.openlinksw.com/
3 https://jena.apache.org/
3. 10 segundos l mite para los usuarios que mantienen su atencion en la tarea.
      </p>
      <p>Todo lo que sea inferior a 10 segundos necesita un indicador de porcentaje de
realizacion y una forma claramente sen~alizada para que el usuario interrumpa
la operacion.</p>
      <p>
        Figura 1. Comparacion del tiempo de respuesta con diferentes l mites en una consulta
SPARQL. Fuente: [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Cuando se realiza la comparacion entre los tiempos obtenido por [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] para la
obtencion de los resultados de las consultas realizadas a un SPARQL Endpoint y
los l mites que se establece en [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] para los tiempos de respuestas a las
interacciones (consultas, en este caso) entre el usuario y el sistema (SPARQL Endpoint)
se puede comprobar que en muchos casos los usuarios abandonar an la espera
de los resultados de dichas consultas. Esto afecta notablemente el uso extendido
de estos sistemas, al no proveer de un tiempo de respuesta razonable a
consultas realizadas por los usuarios. En este sentido el uso de estructuras de datos
optimizadas ha supuesto una alternativa e ciente para crear aplicaciones
utilizando grafos RDF en la que las consultas realizadas por los usuarios sin perder
la interoperabilidad que este modelo brinda.
      </p>
      <p>
        Los principales enfoques [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] se centran en usos de esquemas NoSQL tipo
clave-valor o con el uso de MapReduce framework [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] y su implementacion open
source Hadoop4. En el caso de las implementaciones NoSQL aunque comparten
los elementos basicos de sus interfaces, estos sistemas di eren con respecto a su
arquitectura interna (cliente-servidor vs. basado en P2P), pol ticas de control
de acceso, autenticacion y consistencia. Una diferencia que afecta el disen~o de
un almacen de tripletas que depende en tales plataformas es si el ndice ofrecido
4 http://hadoop.apache.org/
en la clave es basado en hash (permitiendo solo busquedas directas) u ordenado
(lo que ademas permite busquedas de pre jos) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Por su parte, MapReduce
se enfoca en tareas para el analisis de los datos y no para su explotacion en
entornos donde es necesario consultas complejas sobres los datos, ya que no
admite directamente operaciones mas complejas como las uniones.
      </p>
      <p>En este art culo se propone un metodo para la indizacion de grafos RDF
desde un SPARQL Endpoint. El metodo propuesto soporta la indizacion de las
tripletas almacenadas en un almacen de tripletas hacia un servidor de indizacion.
La indizacion de estas tripletas permite la reduccion del tiempo de respuesta de
consultas realizadas por los usuarios sobre el conjunto de datos RDF
almacenados en el almacen de tripletas.
2</p>
    </sec>
    <sec id="sec-3">
      <title>Trabajos relacionados</title>
      <p>
        Los ndices son estructuras de datos optimizadas que permiten transformar el
texto en un formato donde la busqueda sea mas rapida, eliminando el proceso
de exploracion lento a consultas formuladas por los usuarios. Este proceso de
conversion es llamado indizacion mientras al archivo resultante se le llama ndice
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. La indizacion es un requisito necesario para un adecuado almacenamiento
y recuperacion de la informacion contenida en un fondo documental. En [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] se
asume la indizacion como una lista de informacion bibliogra ca o citas hacia un
cuerpo literario, usualmente arreglados en orden alfabetico y basado en algunos
datos espec cos, tales como autor, tema o palabras claves. Si bien ambas ideas
poseen similar l nea de pensamiento, en la investigacion se asume la de nicion
dada en [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] por ser la que mas se ajusta en el marco de la investigacion.
      </p>
      <p>
        La indizacion, segun [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], es una de las etapas del procesamiento anal tico
sintetico de la informacion. Se de ne como la enumeracion sucesiva de los
diferentes encabezamientos (terminos) que expresan el(los) tema(s) contenido(s) en
un documento, y que requiere de la aplicacion de criterios uniformes; as como
del establecimiento previo de una lista de terminos en la cual se basa dicha
indizacion. Su importancia radica esencialmente en la necesidad de habilitar un
sistema de busqueda y recuperacion de la literatura cient ca existente en los
fondos documentales de las entidades informativas. El producto nal de este
proceso es generalmente un ndice bibliogra co, una base de datos automatizada
o simplemente un catalogo alfabetico de materias, indispensables para asegurar
el acceso y consulta de la informacion a los usuarios.
      </p>
      <p>Para lograr la indizacion correcta de un documento o solicitud de
busqueda es necesario utilizar los lenguajes de indizacion existentes. Estos lenguajes
arti ciales, llamados lenguajes de busqueda informativa, lenguajes de
indizacion, lenguajes documentales, lenguajes de almacenamiento y recuperacion,
entre otras denominaciones, son herramientas auxiliares, creadas por el hombre
con el proposito de expresar el contenido semantico fundamental de los
documentos o solicitudes de informacion y localizar la informacion que responda a
las necesidades de los usuarios.</p>
      <p>
        Para considerar que un documento se indizo correctamente es necesario
considerar dos aspectos fundamentales en la indizacion: (1) la exhaustividad y (2)
la especi cidad. La exhaustividad se de ne como la cantidad de conceptos
considerados que son representativos del contenido ntegro de un documento. La
especi cidad es el nivel de detalle y exactitud de la representacion de un
concepto particular. Indica [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] que en la indizacion automatica, la maquina separa
cadenas de caracteres ya sea en el t tulo, en el resumen, descartando unicamente
las llamadas palabras vac as o reconociendo en el texto completo los sintagmas
nominales.
      </p>
      <p>Como parte de las herramientas de indizacion examinadas destacan:
Solr: Un ndice en Solr posibilita llevar a cabo de manera optima: la busqueda
de texto completo, agregados y ltrado. Solr acepta documentos JSON, pudiendo
transformar su documento RDF en un documento JSON-LD (que es un formato
de serializacion RDF). Por otra parte SolrRDF (entiendase Solr + RDF) es
un conjunto de extensiones para la gestion de Solr ( ndice y busqueda) de datos
RDF siendo posible indizar triples al cluster y realizar consultas SPARQL (ASK,
CONSTRUCT, SELECT y DESCRIBE) y actualizaciones (como INSERT y
DELETE) a cualquier nodo del cluster obteniendo como respuesta un XML,
siendo compatible con SPARQL Endpoint 1.1.</p>
      <p>Elasticsearch5: Basado en Lucene proporciona capacidades distribuidas.
Distribuido, con busqueda RESTful y analisis capaz de resolver un numero
creciente de casos de uso.</p>
      <p>Jena ARQ: es un motor de busqueda de Jena que soporta el lenguaje de
consultas SPARQL. En Jena, toda la informacion de estado proporcionada por
un conjunto de tripletas RDF esta contenida en una estructura de datos
llamada modelo. El modelo representa un grafo RDF, llamado as porque contiene
una coleccion de nodos RDF, unidos entre s por relaciones marcadas. Entre las
capacidades de Jena ARQ destacan: busqueda de texto libre a traves de
Lucene; actualizacion, acceso y la extension del algebra de SPARQL; apoyo a las
funciones de ltro personalizados; funciones de propiedad para un tratamiento
personalizado de relaciones semanticas; y apoyo al cliente para el acceso remoto
a cualquier SPARQL Endpoint.</p>
      <p>Apache Lucene6: es el principal motor de busqueda de codigo abierto y se
utiliza en muchas empresas, proyectos y productos, originalmente implementada
en Java. Es util para cualquier aplicacion que requiera indexado y busqueda a
texto completo. En esencia, el ndice se compone de documentos que se componen
de campos. Las consultas de Lucene tienen que pasar a traves de los mismos
analizadores que se utilizaron durante la indexacion, de lo contrario terminos
identicos podr a no coincidir. Se puede usar Lucene en Grails, como es el caso
de los plugins para la integracion de Solr y ElasticSearch con Grails.</p>
      <p>
        Muchos sistemas de almacenamiento y consulta de RDF se basan en sistemas
de bases de datos relacionales [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. La mayor a de estos sistemas asocian tablas
relacionales con RDF, tripletas, propiedades o instancias de clase. RDFBroker
5 https://www.elastic.co/
6 https://lucene.apache.org/
calcula los conjuntos espec cos de propiedades utilizadas en cada recurso, y
almacena los datos RDF en tablas organizadas [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. RDFSuite adopta una tecnica
de almacenamiento \controlada por esquema"; realizando la optimizacion de
consultas mediante el sistema de gestion de base de datos subyacente [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. El
acoplamiento del disen~o de la tabla al esquema de los datos RDF permite tener
en cuenta las caracter sticas espec cas de las clases y propiedades empleadas
y explotar las relaciones de esquema expl citas. Por otro lado, limitar el
numero de tablas creadas, especialmente cuando se enfrenta a la reestructuracion de
esquemas dinamicos, se convierte en un problema crucial. En [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] se propone
una tecnica basada en aprendizaje automatico aplicada a datos y consultas para
calcular disen~os adecuados de tablas relacionales.
3
      </p>
    </sec>
    <sec id="sec-4">
      <title>Metodo propuesto</title>
      <p>El metodo propuesto consta de tres etapas fundamentales (1) seleccion del
SPARQL Endpoint, (2) generacion de consultas en el lenguaje de consultas
SPARQL y (3) sincronizacion de los datos con el ndice invertido, ver
Figura 2. Este metodo sigue un enfoque basado en tuber as o ltros donde la salida
de una etapa constituye la entrada a la proxima, siguiendo un enfoque iterativo.
Su utilizacion garantiza la sincronizacion de los datos almacenados en el almacen
de tripletas RDF hacia el ndice invertido.</p>
      <p>Figura 2. Etapas del metodo de solucion propuesto. Fuente: elaboracion propia.
a) Seleccion del SPARQL Endpoint: el metodo propuesto utiliza un
almacen de triplestas donde son almacenados metadatos bibliogra cos que han
sido transformados al estandar RDF utilizando el modelo de datos que se de ne
en la Figura 3, a partir de una base de datos relacional (RDB). En este paso se
veri ca la valides de la URL del SPARQL Endpoint.
Figura 3. Modelacion de los datos con las ontolog as de dominio. Fuente: elaboracion
propia.</p>
      <p>b) Generacion de consultas SPARQL: a partir del modelo de datos
anterior, se de nen las consultas para obtener los datos desde el almacen de
tripletas que van a ser indizados. En esta etapa se establece la(s) consulta(s) para
obtener los datos de acuerdo al modelo RDF. Es necesario conocer a priori las
relaciones que se van a obtener a partir de las consultas. Las relaciones obtenidas
a partir de los resultados de las consultas permiten establecer un esquema de
alineacion con el cual van a ser guardados los datos en el motor de indizacion. La
siguiente consulta SPARQL muestra la relacion entre un recurso art culo dentro
del grafo y sus datos correspondientes, tales como autor, resumen, url, an~o de
publicacion, entre otros.</p>
      <p>SELECT DISTINCT ?s ?author ?title ?name
?affiliation ?abstract ?uri ?year
WHERE {
?s a fabio:JournalArticle.
?s vocab:record_title ?title.
?s fabio:abstract ?abstract.
?s bibo:uri ?uri.
?s fabio:hasPublicationYear ?year.
?author vocab:author_record ?s.
?author foaf:name ?name.
?author swrc:affiliation ?affiliation.}</p>
      <p>
        c) Sincronizacion de los datos con el ndice invertido: en esta etapa
se de ne, a partir de los resultados obtenidos en la(s) consulta(s) en la etapa
anterior, utilizando el formato JSON, la estructura que va a tener la informacion
obtenida dentro del ndice. Una vez de nida, se comprueban los parametros en
el motor de busqueda y se procede a la carga de los datos hacia el ndice. Este
proceso de carga se realiza inicialmente a todo el conjunto de datos obtenidos
a traves de la(s) consulta(s) realizadas sobre el grafo RDF. Despues de la carga
inicial de datos hacia el ndice se utiliza el enfoque propuesto por [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] para la
actualizacion de los grafos RDF almacenados en el almacen de tripletas y para
la actualizacion del ndice en el motor de indizacion.
      </p>
      <p>Para comprobar la aplicabilidad del metodo propuesto, se implemento una
herramienta informatica basada en el mismo. La herramienta implementada
utiliza una arquitectura de tuber a y ltros basandose en la descripcion del metodo
antes detallado, ver gura 4. La herramienta consta de dos componentes
fundamentales: el almacen de tripletas Apache Jena Fuseki (como punto de acceso
a consultas SPARQL) y el servidor de indizacion Elasticsearch (como motor de
busqueda).</p>
      <p>Figura 4. Arquitectura del componente implementado. Fuente: elaboracion propia.</p>
      <p>Apache Jena Fuseki almacena los grafos RDF generados a priori. Como se
indica en (b) se realizan consultas utilizando el lenguaje de consultas SPARQL
para obtener dichos grafos RDF e indizarlos en el servidor de indizacion. Estos
grafos una vez incorporados a Elasticsearch se encuentran en formato JSON.
La tarea de obtencion de grafos RDF se acomete en primera instancia, ya que
seguidamente basta con sincronizar los grafos RDF del almacen de tripletas
con los del ndice en el motor de busqueda. El proposito de esta actividad es
consultar el almacen de tripletas para veri car los ultimos cambios e indizar solo
esos grafos RDF al ndice del motor de busqueda de Elasticsearch. Este proceso
es ventajoso en el sentido de que no se precisa el almacenamiento repetido de
los grafos RDF existentes en el almacen de tripletas.</p>
      <p>Para validar la propuesta de solucion se realiza un experimento. Consta de
realizar un conjunto de consultas sobre el grafo RDF. Las consultas ejecutadas
se muestran en la tabla 1.</p>
      <p>El grafo RDF utilizado en el experimento contiene aproximadamente 52000
tripletas. En la tabla 1 se muestran las diferentes consultas ejecutadas sobre el
ID Consulta
Q1 Seleccionar el autor X que mas ha publicado con el autor Y en el an~o</p>
      <p>A y en la a liacion F.</p>
      <p>Q2 Encontrar los art culos del autor X que pertenecen a la a liacion F.
Q3 Encontrar la a liacion F que mas art culos haya publicado en el an~o A.
Q4 Encontrar las dos a liaciones que mas art culos hayan publicado.</p>
      <p>Cuadro 1. Consultas ejecutadas en el experimento realizado.
grafo RDF. Los tiempos de respuesta obtenidos se muestran en la Figura 5. La
comparativa hecha a partir de los resultados obtenido muestran que los tiempos
de respuesta disminuyen en un 50 por ciento para cada una de estas consultas.
Los tiempos obtenidos son tiempos promedios calculados a partir de la ejecucion
por diferentes usuarios de la misma consulta en diferentes momentos durante el
experimento.</p>
      <p>Figura 5. Tiempo de respuesta promedio obtenido. Fuente: elaboracion propia.
4</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusiones</title>
      <p>En este art culo se ha propuesto un metodo dividido en tres etapas para la
indizacion de grafos RDF desde un SPARQL Endpoint. En la propuesta de solucion
se hace uso de un motor de indizacion para almacenar el grafo RDF que se
encuentra en un almacen de tripletas. El proceso de indizacion posee un
enfoque incremental para la actualizacion del ndice en el motor de indizacion si
ocurren actualizaciones en el grafo RDF. Con la indizacion del grafo RDF se
logro disminuir el tiempo de respuesta a las consultas formuladas por los
usuarios directamente sobre el almacen de tripletas. La disminucion de los tiempos
de respuesta fue de un 50 por ciento en relacion a los tiempos de respuesta
obtenidos en consultas realizadas directamente sobre el almacen de tripletas. Se
ha identi cado como principal problema la generacion de facetas dinamicas a
partir de los datos almacenados en el motor de indizacion. La estructura de los
datos del grafo almacenado en el ndice di culta la generacion de estas facetas.
En trabajos futuros se trabajara para resolver este problema.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Blin</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cure</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Faye</surname>
          </string-name>
          , D.C.
          <article-title>: A survey of RDF storage approaches</article-title>
          .
          <string-name>
            <surname>REVUE AFRICAINE DE LA RECHERCHE EN INFORMATIQUE ET MATHEMATIQUES APPLIQUEES</surname>
          </string-name>
          <article-title>15 (</article-title>
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Brickley</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guha</surname>
            ,
            <given-names>R.V.</given-names>
          </string-name>
          :
          <article-title>RDF vocabulary description language 1.0: RDF schema (</article-title>
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Buil-Aranda</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hogan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Umbrich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vandenbussche</surname>
          </string-name>
          , P.Y.:
          <article-title>Sparql webquerying infrastructure: Ready for action</article-title>
          ? In: International Semantic Web Conference. pp.
          <volume>277</volume>
          {
          <fpage>293</fpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Buil-Aranda</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hogan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Umbrich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vandenbussche</surname>
          </string-name>
          , P.Y.:
          <article-title>Sparql webquerying infrastructure: Ready for action</article-title>
          ? In: Alani,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Kagal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Fokoue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Groth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Biemann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Parreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.X.</given-names>
            ,
            <surname>Aroyo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Noy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Welty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Janowicz</surname>
          </string-name>
          ,
          <string-name>
            <surname>K</surname>
          </string-name>
          . (eds.)
          <source>The Semantic Web { ISWC 2013</source>
          . pp.
          <volume>277</volume>
          {
          <fpage>293</fpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Chavez</surname>
            ,
            <given-names>M.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cardenas</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benito</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>La web semantica</article-title>
          . Revista de investigacion de
          <source>Sistemas e Informatica</source>
          <volume>2</volume>
          (
          <issue>3</issue>
          ),
          <volume>43</volume>
          {
          <fpage>54</fpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Cleveland</surname>
            ,
            <given-names>A.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cleveland</surname>
            ,
            <given-names>D.B.</given-names>
          </string-name>
          :
          <article-title>Introduction to indexing and abstracting</article-title>
          .
          <source>ABCCLIO</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Cure</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blin</surname>
          </string-name>
          , G.:
          <article-title>RDF database systems: triples storage and SPARQL query processing (</article-title>
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Dean</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghemawat</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>MapReduce: simpli ed data processing on large clusters</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>51</volume>
          (
          <issue>1</issue>
          ),
          <volume>107</volume>
          {
          <fpage>113</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Frank</given-names>
            <surname>Manola</surname>
          </string-name>
          ,
          <source>Eric Miller: RDF Primer</source>
          (
          <year>2004</year>
          ), https://www.w3.org/TR/2004/ REC-rdf-primer-
          <volume>20040210</volume>
          /#intro
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Harris</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seaborne</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>SPARQL 1.1 Query Language (</article-title>
          <year>2013</year>
          ), https://www.w3. org/TR/sparql11-query/
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hayes</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McBride</surname>
            ,
            <given-names>B.: RDF</given-names>
          </string-name>
          <string-name>
            <surname>Semantics. W3C Recommendation</surname>
          </string-name>
          ,
          <year>February 2004</year>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <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>
          .
          <source>Synthesis Lectures on the Semantic Web: Theory and Technology</source>
          <volume>1</volume>
          (
          <issue>1</issue>
          ),
          <volume>1</volume>
          {
          <fpage>136</fpage>
          (Feb
          <year>2011</year>
          ), http://www.morganclaypool.com/doi/abs/10.2200/ S00334ED1V01Y201102WBE001
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Hernandez</surname>
            ,
            <given-names>J.P.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hernandez</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          :
          <article-title>Indizacion y Busqueda a traves de Lucene</article-title>
          . Veracruz,
          <string-name>
            <surname>Sinaloa</surname>
          </string-name>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kaoudi</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manolescu</surname>
            ,
            <given-names>I.:</given-names>
          </string-name>
          <article-title>RDF in the clouds: a survey</article-title>
          .
          <source>The VLDB Journal</source>
          <volume>24</volume>
          (
          <issue>1</issue>
          ),
          <volume>67</volume>
          {
          <fpage>91</fpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Liudmila</surname>
          </string-name>
          Reyes-Alvarez, Yusniel Hidalgo-Delgado,
          <source>Katerin Martinez-Rojas, Maria del Mar Roldan</source>
          , Jose F.
          <article-title>Aldana-Montes: Actualizacion incremental de grafos RDF a partir de bases de datos relacionales</article-title>
          .
          <source>In: Proceedings of Jornadas de Ingenier a del Software</source>
          y Bases de Datos.
          <source>JISBD 2014</source>
          .
          <article-title>Espan~a (</article-title>
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ma</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yan</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>A Review of RDF Storage in NoSQL Databases</article-title>
          .
          <source>In: Managing Big Data in Cloud Computing Environments</source>
          , pp.
          <volume>210</volume>
          {
          <fpage>229</fpage>
          .
          <string-name>
            <given-names>IGI</given-names>
            <surname>Global</surname>
          </string-name>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>Moreno</given-names>
            <surname>Agudelo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.A.</given-names>
            ,
            <surname>Sanchez Reyes</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y.</surname>
          </string-name>
          :
          <article-title>Prototipo de buscador semantico aplicado a la busqueda de libros de ingenier a de sistemas y computacion en la biblioteca Jorge Roa Mart nez</article-title>
          de la Universidad Tecnologica de Pereira.
          <source>Ph.D. thesis</source>
          , Universidad Tecnologica de Pereira (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Nielsen</surname>
          </string-name>
          , J.:
          <article-title>Web-based application response time (</article-title>
          <year>2014</year>
          ), https://www.nngroup. com/articles/response-times-3
          <string-name>
            <surname>-</surname>
          </string-name>
          important-limits/
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Pen~a,
          <string-name>
            <surname>C.N.</surname>
          </string-name>
          :
          <article-title>Indizacion y clasi cacion: Un problema conceptual y terminologico Indexation and classi cation: A conceptual and terminologic problem</article-title>
          .
          <source>Documentacion de las Ciencias de la Informacion</source>
          <volume>26</volume>
          ,
          <issue>23</issue>
          {
          <fpage>40</fpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Rakhmawati</surname>
            ,
            <given-names>N.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Umbrich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karnstedt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hasnain</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hausenblas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Querying over Federated SPARQL Endpoints|A State of the Art Survey</article-title>
          .
          <source>arXiv preprint arXiv:1306.1723</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Rodr guez Suarez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bermello</surname>
            <given-names>Navarrete</given-names>
          </string-name>
          ,
          <string-name>
            <surname>R.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Pinillo</given-names>
            <surname>Leon</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.L.</surname>
          </string-name>
          :
          <article-title>Indizacion en l nea:&gt; capricho o necesidad?</article-title>
          <source>Acimed</source>
          <volume>15</volume>
          (
          <issue>1</issue>
          ), 0{
          <issue>0</issue>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Schreiber</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raimond</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <source>: RDF 1.1 Primer. W3C Working Group Note</source>
          <volume>25</volume>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Tello</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>La Web Semantica y el lenguaje RDF (</article-title>
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Theoharis</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Christophides</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karvounarakis</surname>
          </string-name>
          , G.:
          <article-title>Benchmarking database representations of RDF/S stores</article-title>
          . In: International Semantic Web Conference. vol.
          <volume>3729</volume>
          , pp.
          <volume>685</volume>
          {
          <fpage>701</fpage>
          . Springer (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>Tim</given-names>
            <surname>Berners-Lee: Linked Data - Design Issues</surname>
          </string-name>
          (
          <year>2006</year>
          ), https://www.w3.org/ DesignIssues/LinkedData.html
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>