JSON DESDE VIRTUOSO + SPARQL + AJAX

La comunicación con un TripleStore desde un aplicativo externo, en su mayoría web, suele ser un inconveniente en algunos casos. Esto por la variada forma de responder y el no existir un estándar para la comunicación.

El presente caso se muestra como extraer información desde un servidor Virtuoso (EndPoint) mediante una petición HTTP, y esperando el resultado en formato JSON, el cual es muy sencillo manejar desde JavaScript.

Virtuoso en su EndPoint (http://mi_servidor:8890/sparql) permite la realización de consultas tanto de forma directa como mediante peticiones HTTP. Pudiendo ser estas un GET (consultas pequeñas) o un POST(consultas mayores a 19000 bytes). Y una de sus principales ventajas es que podemos especificar el formato en que deseamos la respuesta, pudiendo soportar formatos como XML, RDF, JSON y muchos más.

A continuación se muestra una consulta sparql y el resultado de la misma. Este mismo resultado será extraído desde un ambiente web mediante una consulta HTTP realizada por AJAX mediante el framework JQuery.

consulta_sparql
Los archivos utilizados para la demostración son los siguientes:

estructura
Dónde:

peticionHTTP.php: Forma la dirección HTTP la cual se solicitará a Virtuoso.

procesoJS.js: Contiene la consulta SPARQL y la llamada mediante Ajax.

Index.html: Inicia el proceso de la consulta.

Para la realización de la petición HTTP a virtuoso la URL que se construye utiliza los parámetros que se detallan en la imagen. Para este caso estos son los básicos y necesarios.

parametros

Como se puede apreciar, se valida la información de la petición y respuesta recibida por parte del servidor en donde se observa el formato de respuesta.

tipo_respuesta

peticion_console

Y finalmente el resultado se puede visualizar en nuestra página.

resultado_json

Los archivos utilizados los pueden descargar del widget de la página o de este link.

Información adicional la pueden encontrar en el siguiente enlace: http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSSparqlProtocol

Saludos.

Anuncios

Pasar JSON desde PHP(MySql) a JavaScript

El trabajo con estructuras JSON para el intercambio de datos entre cliente y servidor es una tarea relativamente sencilla y potente que permite agilizar el desarrollo. En este caso si necesitamos enviar datos desde un servidor que utiliza PHP y recupera datos de una base MySql bastará con tener un archivo .php similar a este:

$sql = "SELECT ID, POBLACION, NUMVISITAS FROM VISITAS_CENTROS";

$resulset = mysql_query($sql, $_SESSION["idBD"])

$arr = array();
while ($obj = mysql_fetch_object($resulset)) {
	$arr[] = array('ID' => $obj->ID,
				   'P' => utf8_encode($obj->POBLACION),
				   'NV' => $obj->NUMVISITAS,
		);
}
echo '' . json_encode($arr) . '';

El tema de la conexión con MySql puede ser consultado acá.

Haciendo uso de la instrucción  mysql_fetch_object recorreremos cada unos de los resultados de la consulta y los introduciremos en un Array que será transaformado median la instrucción json_encode.

En nuestro cliente podemos llamar a este archivo mediante JQuery de la siguiente forma:

$.ajax({
        type: "POST",
        url:"getData.php",
        async: true,
        success: function(datos){
            var dataJson = eval(datos);
			
            for(var i in dataJson){
				alert(dataJson[i].ID + " _ " + dataJson[i].P + " _ " + dataJson[i].NV);
            }
			
        },
        error: function (obj, error, objError){
            //avisar que ocurrió un error
        }
});

Donde el mostrar la información será tan fácil como utilizar un for para el objeto Json. Utilizando la sintaxis dataJson[i].PROPIEDAD para acceder a la información.

Sencillo pero muy útil.

Saludos.