<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Método para la indexación de grafos RDF desde un SPARQL Endpoint</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Alejandro</forename><surname>Jesús Mariño-Molerio</surname></persName>
							<affiliation key="aff0">
								<orgName type="laboratory">Grupo de Web Semántica</orgName>
								<orgName type="institution">Universidad de las Ciencias Informáticas</orgName>
								<address>
									<country key="CU">Cuba</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Juan</forename><surname>Carlos Moreira De Lara</surname></persName>
							<affiliation key="aff0">
								<orgName type="laboratory">Grupo de Web Semántica</orgName>
								<orgName type="institution">Universidad de las Ciencias Informáticas</orgName>
								<address>
									<country key="CU">Cuba</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Leduan</forename><surname>Flores-Riera</surname></persName>
							<affiliation key="aff0">
								<orgName type="laboratory">Grupo de Web Semántica</orgName>
								<orgName type="institution">Universidad de las Ciencias Informáticas</orgName>
								<address>
									<country key="CU">Cuba</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Yusniel</forename><surname>Hidalgo-Delgado</surname></persName>
							<affiliation key="aff0">
								<orgName type="laboratory">Grupo de Web Semántica</orgName>
								<orgName type="institution">Universidad de las Ciencias Informáticas</orgName>
								<address>
									<country key="CU">Cuba</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Método para la indexación de grafos RDF desde un SPARQL Endpoint</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">5F7257284BC87B430645CC0805B6B791</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T00:49+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Inverted Index</term>
					<term>Linked Data</term>
					<term>RDF Graph</term>
					<term>Triplestore</term>
					<term>Semantic Web</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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 specific 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, affecting 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Resumen Los datos enlazados se refieren a un conjunto de principios y buenas prácticas para la publicación y enlazado de datos estructurados en la web. En los últimos años se han publicado datos bibliográficos utilizando el modelo de datos basado en grafos RDF. Los grafos RDF son almacenados en un tipo específico de base de datos conocidos como almacén de tripletas. Los almacenes de tripletas proporcionan un punto de acceso para la realización de consultas en el lenguaje SPARQL. Sin embargo, estos sistemas de almacenamiento no están optimizados para la ejecución 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 método basado en índices para la optimización del tiempo de respuesta a consultas realizadas en un punto de acceso SPARQL, mejorando los procesos de búsqueda y recuperación de datos en grandes grafos RDF. Para comprobar la aplicabilidad del método propuesto, se aplicó el mismo en una biblioteca digital basada en datos enlazados, obteniéndose una mejora en los tiempos de respuestas obtenidos en la experimentación.</p><p>Palabras claves: Índice Invertido, Datos Enlazados, Grafos RDF, Almacén de Tripletas, Web Semántica</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introducción</head><p>El tránsito hacia la Web Semántica requiere de una adecuada estructuración e integración de datos; esto propició que <ref type="bibr" target="#b24">[25]</ref> enunciara el concepto de Datos Enlazados: "Los datos enlazados se refieren a un conjunto de principios y buenas prácticas para la publicación 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 compartición de datos estructurados a escala global <ref type="bibr" target="#b11">[12]</ref>.</p><p>La Web Semántica se basa en dos conceptos fundamentales: (1) la descripción del significado que tiene los contenidos en la web y (2) la manipulación automática de estos significados <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b22">[23]</ref>. En el caso del primero, intervienen conceptos como la semántica, que es el estudio y significado de los términos lingüísticos procesables por las máquinas; los metadatos como contenedores de información semántica sobre los datos; y las Ontologías para definir conceptos y relaciones de un dominio específico. Los metadatos y las Ontologías forman parte del campo de la representación del conocimiento. Para describir la semántica se requiere de un lenguaje apropiado llamado lenguaje de representación. Los lenguajes de representación como RDF(S)(Resource Description Framework Schema) y OWL(Web Ontology Language) proporcionan un estándar adecuado para la web <ref type="bibr" target="#b10">[11]</ref>, <ref type="bibr" target="#b1">[2]</ref>.</p><p>En el caso de RDF se define como un lenguaje para representar la información acerca de los recursos en la web. Está destinado especialmente para la representación de metadatos sobre recursos web, como el título, autor y fecha de modificación, 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 semántica para establecer jerarquías de generalización entre dichas propiedades y clases <ref type="bibr" target="#b8">[9]</ref>.</p><p>Para <ref type="bibr" target="#b22">[23]</ref> RDF es un modelo de datos en forma de grafo dirigido y etiquetado que permite definir relaciones semánticas entre distintas URIs como recursos, asociándoles un conjunto de propiedades y valores con el fin de representar información sobre recursos en la web. Por su parte <ref type="bibr" target="#b21">[22]</ref> lo define como un marco para expresar la información acerca de los recursos. Los recursos pueden ser documentos, personas, objetos físicos, y los conceptos abstractos.</p><p>RDF está 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 especifican estas propiedades y valores, en forma de grafo de nodos y arcos que representan los recursos, y sus propiedades y valores <ref type="bibr" target="#b16">[17]</ref>. RDF y el lenguaje RDF Schema se fundamentaron en investigaciones sobre metadatos realizadas por comunidades de Bibliotecas Digitales, pudiendo considerarse RDF como una implementación del Warwick Framework donde RDF es una evolución de este último, que permite que cada vocabulario de metadatos posea una sintaxis distinta. Para <ref type="bibr" target="#b16">[17]</ref> en RDF es fundamental utilizar palabras que transmitan un significado inequívoco con el fin de que las aplicaciones entiendan el enunciado para un procesamiento correcto.</p><p>Asociado a RDF se define la estandarización del lenguaje de consultas SPARQL. Este lenguaje se puede utilizar para expresar consultas a través de diversas fuentes de datos, ya sea que los datos se almacenen de forma nativa como RDF o se visualicen como RDF a través de un middleware. SPARQL contiene capacidades para consultar patrones sobre grafos obligatorios y opcionales junto con sus conjunciones y disyunciones. SPARQL también admite agregación, subconsultas, negación, creación de valores por expresiones y consultas restrictivas por grafo RDF. Los resultados de las consultas SPARQL pueden ser conjuntos de resultados o grafos RDF <ref type="bibr" target="#b9">[10]</ref>.</p><p>La evolución de RDF y SPARQL, en el contexto de la web semántica, ha propiciado el surgimiento de muchos sistemas capaces de almacenar, consultar y actualizar RDF, tales como Ontotext GraphDB<ref type="foot" target="#foot_0">1</ref> , Virtuoso<ref type="foot" target="#foot_1">2</ref> , Jena<ref type="foot" target="#foot_2">3</ref> ,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 flexible de interactuar con la Web de los datos. Además, devuelve respuestas a consultas en varios formatos, como XML y JSON, que son ampliamente utilizados como estándares de intercambio de datos en diversas aplicaciones <ref type="bibr" target="#b19">[20]</ref>. Con el crecimiento de la Web de los datos el número de SPARQL Endpoints que construyen consultas SPARQL sobre ella usando HTTP también crece rápidamente. Esto ha permitido que las instituciones agreguen datos de múltiples SPARQL Endpoints similares a las bases de datos distribuidas convencionales. Sin embargo, la escalabilidad de estos sistemas se ve afectada por el aumento del tamaño de los grafos RDF. Esto ha supuesto un desafío para la comunidad científica dado que la nube de datos enlazados crece constantemente.</p><p>En <ref type="bibr" target="#b2">[3]</ref> 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 figura 1. Las consultas realizadas, utilizan diferentes límites para la obtención de los resultados con la ejecución de la consulta. En cuanto a los tiempos de respuesta durante la ejecución de consultas por los usuarios al SPARQL Endpoint desde el punto de vista de la interacción humano-computadora, se definen tres límites de tiempos para las aplicaciones web <ref type="bibr" target="#b17">[18]</ref>: 1. 0.1 segundos límite para los usuarios que sienten que están manipulando objetos directamente en la interfaz de usuario. 2. 1 segundo límite para los usuarios que sienten que están navegando libremente por el espacio de comandos sin tener que esperar indebidamente la computadora. Un retraso de 0.2-1.0 segundos significa que los usuarios notan el retraso y sienten que la computadora está "trabajando"en el comando, en lugar de tener el comando como un efecto directo de las acciones de los usuarios.</p><p>3. 10 segundos límite para los usuarios que mantienen su atención en la tarea. Todo lo que sea inferior a 10 segundos necesita un indicador de porcentaje de realización y una forma claramente señalizada para que el usuario interrumpa la operación.</p><p>Figura 1. Comparación del tiempo de respuesta con diferentes límites en una consulta SPARQL. Fuente: <ref type="bibr" target="#b3">[4]</ref>.</p><p>Cuando se realiza la comparación entre los tiempos obtenido por <ref type="bibr" target="#b2">[3]</ref> para la obtención de los resultados de las consultas realizadas a un SPARQL Endpoint y los límites que se establece en <ref type="bibr" target="#b17">[18]</ref> 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 eficiente para crear aplicaciones utilizando grafos RDF en la que las consultas realizadas por los usuarios sin perder la interoperabilidad que este modelo brinda. Los principales enfoques <ref type="bibr" target="#b13">[14]</ref> se centran en usos de esquemas NoSQL tipo clave-valor o con el uso de MapReduce framework <ref type="bibr" target="#b7">[8]</ref> y su implementación open source Hadoop 4 . En el caso de las implementaciones NoSQL aunque comparten los elementos básicos de sus interfaces, estos sistemas difieren con respecto a su arquitectura interna (cliente-servidor vs. basado en P2P), políticas de control de acceso, autenticación y consistencia. Una diferencia que afecta el diseño de un almacén de tripletas que depende en tales plataformas es si el índice ofrecido en la clave es basado en hash (permitiendo solo búsquedas directas) u ordenado (lo que además permite búsquedas de prefijos) <ref type="bibr" target="#b13">[14]</ref>. Por su parte, MapReduce se enfoca en tareas para el análisis de los datos y no para su explotación en entornos donde es necesario consultas complejas sobres los datos, ya que no admite directamente operaciones más complejas como las uniones.</p><p>En este artículo se propone un método para la indización de grafos RDF desde un SPARQL Endpoint. El método propuesto soporta la indización de las tripletas almacenadas en un almacén de tripletas hacia un servidor de indización. La indización de estas tripletas permite la reducción del tiempo de respuesta de consultas realizadas por los usuarios sobre el conjunto de datos RDF almacenados en el almacén de tripletas.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Trabajos relacionados</head><p>Los índices son estructuras de datos optimizadas que permiten transformar el texto en un formato donde la búsqueda sea más rápida, eliminando el proceso de exploración lento a consultas formuladas por los usuarios. Este proceso de conversión es llamado indización mientras al archivo resultante se le llama índice <ref type="bibr" target="#b12">[13]</ref>. La indización es un requisito necesario para un adecuado almacenamiento y recuperación de la información contenida en un fondo documental. En <ref type="bibr" target="#b5">[6]</ref> se asume la indización como una lista de información bibliográfica o citas hacia un cuerpo literario, usualmente arreglados en orden alfabético y basado en algunos datos específicos, tales como autor, tema o palabras claves. Si bien ambas ideas poseen similar línea de pensamiento, en la investigación se asume la definición dada en <ref type="bibr" target="#b12">[13]</ref> por ser la que más se ajusta en el marco de la investigación.</p><p>La indización, según <ref type="bibr" target="#b20">[21]</ref>, es una de las etapas del procesamiento analítico sintético de la información. Se define como la enumeración sucesiva de los diferentes encabezamientos (términos) que expresan el(los) tema(s) contenido(s) en un documento, y que requiere de la aplicación de criterios uniformes; así como del establecimiento previo de una lista de términos en la cual se basa dicha indización. Su importancia radica esencialmente en la necesidad de habilitar un sistema de búsqueda y recuperación de la literatura científica existente en los fondos documentales de las entidades informativas. El producto final de este proceso es generalmente un índice bibliográfico, una base de datos automatizada o simplemente un catálogo alfabético de materias, indispensables para asegurar el acceso y consulta de la información a los usuarios.</p><p>Para lograr la indización correcta de un documento o solicitud de búsqueda es necesario utilizar los lenguajes de indización existentes. Estos lenguajes artificiales, llamados lenguajes de búsqueda informativa, lenguajes de indización, lenguajes documentales, lenguajes de almacenamiento y recuperación, entre otras denominaciones, son herramientas auxiliares, creadas por el hombre con el propósito de expresar el contenido semántico fundamental de los documentos o solicitudes de información y localizar la información que responda a las necesidades de los usuarios.</p><p>Para considerar que un documento se indizó correctamente es necesario considerar dos aspectos fundamentales en la indización: (1) la exhaustividad y (2) la especificidad. La exhaustividad se define como la cantidad de conceptos considerados que son representativos del contenido íntegro de un documento. La especificidad es el nivel de detalle y exactitud de la representación de un concepto particular. Indica <ref type="bibr" target="#b18">[19]</ref> que en la indización automática, la máquina separa cadenas de caracteres ya sea en el título, en el resumen, descartando únicamente las llamadas palabras vacías o reconociendo en el texto completo los sintagmas nominales.</p><p>Como parte de las herramientas de indización examinadas destacan: Solr: Un índice en Solr posibilita llevar a cabo de manera óptima: la búsqueda de texto completo, agregados y filtrado. Solr acepta documentos JSON, pudiendo transformar su documento RDF en un documento JSON-LD (que es un formato de serialización RDF). Por otra parte SolrRDF (entiéndase Solr + RDF) es un conjunto de extensiones para la gestión de Solr (índice y búsqueda) de datos RDF siendo posible indizar triples al clúster y realizar consultas SPARQL (ASK, CONSTRUCT, SELECT y DESCRIBE) y actualizaciones (como INSERT y DELETE) a cualquier nodo del clúster obteniendo como respuesta un XML, siendo compatible con SPARQL Endpoint 1.1.</p><p>Elasticsearch<ref type="foot" target="#foot_4">5</ref> : Basado en Lucene proporciona capacidades distribuidas. Distribuido, con búsqueda RESTful y análisis capaz de resolver un número creciente de casos de uso.</p><p>Jena ARQ: es un motor de búsqueda de Jena que soporta el lenguaje de consultas SPARQL. En Jena, toda la información de estado proporcionada por un conjunto de tripletas RDF está contenida en una estructura de datos llamada modelo. El modelo representa un grafo RDF, llamado así porque contiene una colección de nodos RDF, unidos entre sí por relaciones marcadas. Entre las capacidades de Jena ARQ destacan: búsqueda de texto libre a través de Lucene; actualización, acceso y la extensión del álgebra de SPARQL; apoyo a las funciones de filtro personalizados; funciones de propiedad para un tratamiento personalizado de relaciones semánticas; y apoyo al cliente para el acceso remoto a cualquier SPARQL Endpoint.</p><p>Apache Lucene<ref type="foot" target="#foot_5">6</ref> : es el principal motor de búsqueda de código abierto y se utiliza en muchas empresas, proyectos y productos, originalmente implementada en Java. Es útil para cualquier aplicación que requiera indexado y búsqueda a texto completo. En esencia, el índice se compone de documentos que se componen de campos. Las consultas de Lucene tienen que pasar a través de los mismos analizadores que se utilizaron durante la indexación, de lo contrario términos idénticos podría no coincidir. Se puede usar Lucene en Grails, como es el caso de los plugins para la integración 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 <ref type="bibr" target="#b23">[24]</ref>. La mayoría de estos sistemas asocian tablas relacionales con RDF, tripletas, propiedades o instancias de clase. RDFBroker calcula los conjuntos específicos de propiedades utilizadas en cada recurso, y almacena los datos RDF en tablas organizadas <ref type="bibr" target="#b15">[16]</ref>. RDFSuite adopta una técnica de almacenamiento "controlada por esquema"; realizando la optimización de consultas mediante el sistema de gestión de base de datos subyacente <ref type="bibr" target="#b0">[1]</ref>. El acoplamiento del diseño de la tabla al esquema de los datos RDF permite tener en cuenta las características específicas de las clases y propiedades empleadas y explotar las relaciones de esquema explícitas. Por otro lado, limitar el número de tablas creadas, especialmente cuando se enfrenta a la reestructuración de esquemas dinámicos, se convierte en un problema crucial. En <ref type="bibr" target="#b6">[7]</ref> se propone una técnica basada en aprendizaje automático aplicada a datos y consultas para calcular diseños adecuados de tablas relacionales.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Método propuesto</head><p>El método propuesto consta de tres etapas fundamentales (1) selección del SPARQL Endpoint, (2) generación de consultas en el lenguaje de consultas SPARQL y (3) sincronización de los datos con el índice invertido, ver Figura 2. Este método sigue un enfoque basado en tuberías o filtros donde la salida de una etapa constituye la entrada a la próxima, siguiendo un enfoque iterativo. Su utilización garantiza la sincronización de los datos almacenados en el almacén de tripletas RDF hacia el índice invertido.  b) Generación de consultas SPARQL: a partir del modelo de datos anterior, se definen las consultas para obtener los datos desde el almacén 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 alineación con el cual van a ser guardados los datos en el motor de indización. La siguiente consulta SPARQL muestra la relación entre un recurso artículo dentro del grafo y sus datos correspondientes, tales como autor, resumen, url, año de publicación, entre otros. ?name. ?author swrc:affiliation ?affiliation.} c) Sincronización de los datos con el índice invertido: en esta etapa se define, 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 información obtenida dentro del índice. Una vez definida, se comprueban los parámetros en el motor de búsqueda 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 través de la(s) consulta(s) realizadas sobre el grafo RDF. Después de la carga inicial de datos hacia el índice se utiliza el enfoque propuesto por <ref type="bibr" target="#b14">[15]</ref> para la actualización de los grafos RDF almacenados en el almacén de tripletas y para la actualización del índice en el motor de indización.</p><p>Para comprobar la aplicabilidad del método propuesto, se implementó una herramienta informática basada en el mismo. La herramienta implementada utiliza una arquitectura de tubería y filtros basándose en la descripción del método antes detallado, ver figura 4. La herramienta consta de dos componentes fundamentales: el almacén de tripletas Apache Jena Fuseki (como punto de acceso a consultas SPARQL) y el servidor de indización Elasticsearch (como motor de búsqueda). 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 indización. Estos grafos una vez incorporados a Elasticsearch se encuentran en formato JSON. La tarea de obtención de grafos RDF se acomete en primera instancia, ya que seguidamente basta con sincronizar los grafos RDF del almacén de tripletas con los del índice en el motor de búsqueda. El propósito de esta actividad es consultar el almacén de tripletas para verificar los últimos cambios e indizar sólo esos grafos RDF al índice del motor de búsqueda de Elasticsearch. Este proceso es ventajoso en el sentido de que no se precisa el almacenamiento repetido de los grafos RDF existentes en el almacén de tripletas.</p><p>Para validar la propuesta de solución 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 más ha publicado con el autor Y en el año A y en la afiliación F. Q2 Encontrar los artículos del autor X que pertenecen a la afiliación F. Q3 Encontrar la afiliación F que más artículos haya publicado en el año A. Q4 Encontrar las dos afiliaciones que más artículos hayan publicado.</p><p>Cuadro 1. Consultas ejecutadas en el experimento realizado.</p><p>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 ejecución por diferentes usuarios de la misma consulta en diferentes momentos durante el experimento.</p><p>Figura 5. Tiempo de respuesta promedio obtenido. Fuente: elaboración propia.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Conclusiones</head><p>En este artículo se ha propuesto un método dividido en tres etapas para la indización de grafos RDF desde un SPARQL Endpoint. En la propuesta de solución se hace uso de un motor de indización para almacenar el grafo RDF que se encuentra en un almacén de tripletas. El proceso de indización posee un enfoque incremental para la actualización del índice en el motor de indización si ocurren actualizaciones en el grafo RDF. Con la indización del grafo RDF se logró disminuir el tiempo de respuesta a las consultas formuladas por los usuarios directamente sobre el almacén de tripletas. La disminución de los tiempos de respuesta fue de un 50 por ciento en relación a los tiempos de respuesta obtenidos en consultas realizadas directamente sobre el almacén de tripletas. Se ha identificado como principal problema la generación de facetas dinámicas a partir de los datos almacenados en el motor de indización. La estructura de los datos del grafo almacenado en el índice dificulta la generación de estas facetas.</p><p>En trabajos futuros se trabajará para resolver este problema.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figura 2 .</head><label>2</label><figDesc>Figura 2. Etapas del método de solución propuesto. Fuente: elaboración propia.</figDesc><graphic coords="7,174.04,402.56,267.27,155.91" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figura 3 .</head><label>3</label><figDesc>Figura 3. Modelación de los datos con las ontologías de dominio. Fuente: elaboración propia.</figDesc><graphic coords="8,161.43,115.83,292.49,155.91" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figura 4 .</head><label>4</label><figDesc>Figura 4. Arquitectura del componente implementado. Fuente: elaboración propia.</figDesc><graphic coords="9,173.06,271.39,269.25,155.92" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="4,170.55,191.72,274.25,184.26" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">http://graphdb.ontotext.com/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">https://virtuoso.openlinksw.com/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">https://jena.apache.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">http://hadoop.apache.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4">https://www.elastic.co/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">https://lucene.apache.org/</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A survey of RDF storage approaches</title>
		<author>
			<persName><forename type="first">G</forename><surname>Blin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Curé</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">C</forename><surname>Faye</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">REVUE AFRICAINE DE LA RECHERCHE EN INFORMATIQUE ET MATH ÉMATI-QUES APPLIQU ÉES</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">RDF vocabulary description language 1.0: RDF schema</title>
		<author>
			<persName><forename type="first">D</forename><surname>Brickley</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">V</forename><surname>Guha</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Sparql webquerying infrastructure: Ready for action?</title>
		<author>
			<persName><forename type="first">C</forename><surname>Buil-Aranda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hogan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Umbrich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">Y</forename><surname>Vandenbussche</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Semantic Web Conference</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="277" to="293" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Sparql webquerying infrastructure: Ready for action?</title>
		<author>
			<persName><forename type="first">C</forename><surname>Buil-Aranda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hogan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Umbrich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">Y</forename><surname>Vandenbussche</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Semantic Web -ISWC 2013</title>
				<editor>
			<persName><forename type="first">H</forename><surname>Alani</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">L</forename><surname>Kagal</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Fokoue</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><surname>Groth</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Biemann</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><forename type="middle">X</forename><surname>Parreira</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">L</forename><surname>Aroyo</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">N</forename><surname>Noy</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Welty</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">K</forename><surname>Janowicz</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin Heidelberg; Berlin, Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="277" to="293" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">La web semántica</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">E</forename><surname>Chávez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Cárdenas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Benito</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Revista de investigación de Sistemas e Informática</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="43" to="54" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Introduction to indexing and abstracting</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">D</forename><surname>Cleveland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">B</forename><surname>Cleveland</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2013">2013</date>
			<publisher>ABC-CLIO</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">RDF database systems: triples storage and SPARQL query processing</title>
		<author>
			<persName><forename type="first">O</forename><surname>Curé</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Blin</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">MapReduce: simplified data processing on large clusters</title>
		<author>
			<persName><forename type="first">J</forename><surname>Dean</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ghemawat</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Communications of the ACM</title>
		<imprint>
			<biblScope unit="volume">51</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="107" to="113" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">RDF Primer</title>
		<author>
			<persName><forename type="first">Frank</forename><surname>Manola</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Eric</forename><surname>Miller</surname></persName>
		</author>
		<ptr target="https://www.w3.org/TR/2004/REC-rdf-primer-20040210/#intro" />
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">SPARQL 1.1 Query Language</title>
		<author>
			<persName><forename type="first">S</forename><surname>Harris</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Seaborne</surname></persName>
		</author>
		<ptr target="https://www.w3.org/TR/sparql11-query/" />
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">RDF Semantics. W3C Recommendation</title>
		<author>
			<persName><forename type="first">P</forename><surname>Hayes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Mcbride</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004-02">February 2004. 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Linked Data: Evolving the Web into a Global Data Space</title>
		<author>
			<persName><forename type="first">T</forename><surname>Heath</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bizer</surname></persName>
		</author>
		<idno type="DOI">10.2200/S00334ED1V01Y201102WBE001</idno>
		<ptr target="http://www.morganclaypool.com/doi/abs/10.2200/S00334ED1V01Y201102WBE001" />
	</analytic>
	<monogr>
		<title level="j">Synthesis Lectures on the Semantic Web: Theory and Technology</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="1" to="136" />
			<date type="published" when="2011-02">Feb 2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Indización y Búsqueda a través de Lucene</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">P R</forename><surname>Hernández</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">A</forename><surname>Hernández</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
			<pubPlace>Veracruz, Sinaloa</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">RDF in the clouds: a survey</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Kaoudi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Manolescu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">The VLDB Journal</title>
		<imprint>
			<biblScope unit="volume">24</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="67" to="91" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Aldana-Montes: Actualización incremental de grafos RDF a partir de bases de datos relacionales</title>
		<author>
			<persName><forename type="first">Liudmila</forename><surname>Reyes-Álvarez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Yusniel</forename><surname>Hidalgo-Delgado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Katerin</forename><surname>Martinez-Rojas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Maria</forename><surname>Del Mar Roldan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>José</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of Jornadas de Ingeniería del Software y Bases de Datos. JISBD 2014</title>
				<meeting>Jornadas de Ingeniería del Software y Bases de Datos. JISBD 2014<address><addrLine>España</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">A Review of RDF Storage in NoSQL Databases</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Ma</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Yan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Managing Big Data in Cloud Computing Environments</title>
				<imprint>
			<publisher>IGI Global</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="210" to="229" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">de libros de ingeniería de sistemas y computación en la biblioteca Jorge Roa Martínez de la Universidad Tecnológica de Pereira</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">A</forename><surname>Moreno Agudelo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Sánchez Reyes</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Prototipo de buscador semántico aplicado a la búsqueda</title>
				<imprint>
			<date type="published" when="2012">2012</date>
		</imprint>
		<respStmt>
			<orgName>Universidad Tecnológica de Pereira</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Ph.D. thesis</note>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<author>
			<persName><forename type="first">J</forename><surname>Nielsen</surname></persName>
		</author>
		<ptr target="https://www.nngroup.com/articles/response-times-3-important-limits/" />
		<title level="m">Web-based application response time</title>
				<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Indización y clasificación: Un problema conceptual y terminológico Indexation and classification: A conceptual and terminologic problem</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">N</forename><surname>Peña</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Documentación de las Ciencias de la Información</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="page" from="23" to="40" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">Querying over Federated SPARQL Endpoints-A State of the Art Survey</title>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">A</forename><surname>Rakhmawati</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Umbrich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Karnstedt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hasnain</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hausenblas</surname></persName>
		</author>
		<idno type="arXiv">arXiv:1306.1723</idno>
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
	<note type="report_type">arXiv preprint</note>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Indización en línea:¿ capricho o necesidad?</title>
		<author>
			<persName><forename type="first">Rodríguez</forename><surname>Suárez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Bermello Navarrete</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Pinillo León</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">L</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Acimed</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="0" to="0" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">RDF 1.1 Primer</title>
		<author>
			<persName><forename type="first">G</forename><surname>Schreiber</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Raimond</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">W3C Working Group Note</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<monogr>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Tello</surname></persName>
		</author>
		<title level="m">La Web Semántica y el lenguaje RDF</title>
				<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Benchmarking database representations of RDF/S stores</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Theoharis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Christophides</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Karvounarakis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Semantic Web Conference</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">3729</biblScope>
			<biblScope unit="page" from="685" to="701" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<monogr>
		<author>
			<persName><forename type="first">Tim</forename><surname>Berners-Lee</surname></persName>
		</author>
		<ptr target="https://www.w3.org/DesignIssues/LinkedData.html" />
		<title level="m">Linked Data -Design Issues</title>
				<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
