API de búsqueda (LFASparql)

Anuncio
API de búsqueda (LFASparql) [02/2015]
API de búsqueda
(LFASparql)
LFASparql es un repositorio JavaScript para buscar fuentes en LOD4ALL. Utilizando LFASparql, serás capaz de
cruzar búsquedas de las fuentes de datos registradas en LOD4ALL, así como Subject ?S, Predicate ?P, o
Object ?O. En esta página, encontrarás la siguiente información:
1. Cómo utilizar LOD4all API?
2. Código ejemplo
1. ¿Cómo utilizar LOD4all API?
Puede utilizar nuestra API siguiendo estos pasos:

1.Importar jQuery y LFASparql
LFASparql usa el jQuery internamente. Importar jQuery cuando se utilice LFASparql. La version de jQuery debe ser 1.5 o superior. Para
LFASparql, puede descargarla en http://54.72.110.113/lodc/api/lfasparql-1.0.1.js
A continuación se muestra un código de ejemplo de cómo importar:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src=" http://54.72.110.113/lodc/api/lfasparql-1.0.1.js"></script>

2.Crear una categoría de LFASparql
var lfasparql = new LFASparql ();

3. Enviar solicitudes de búsqueda
Puede enviar una solicitud a LOD4ALL utilizando el método execute. Los parámetros del método son appID (application ID), claves de
búsqueda (subject:S, predicate:P y object:O) y nombres de devolución de llamada “callback” cuando la petición aún no ha sido
satisfactoria o fallida. Para la clave de búsqueda, necesitará especificar al menos un tema u objeto. Esto significa que puede realizar las
4 ediciones de patrones siguientes; {S? P? O}, {S P? O}, {? S P O} or {? S? P O}. Además, solo la fuente puede ser S, P y O.
Page 1 of 7
http://fujitsu.com/es/linked-open-data-2015
API de búsqueda (LFASparql) [02/2015]
// FPlease specify the "xawsaykmcb" for the application ID in a request
// {S ?p ?o}
lfasparql.execute({
AppID: "xawsaykmcb" ,
subject: "http://es.dbpedia.org/resource/Curro_Romero",
success: getResult,
error: getError
});
// {S P ?o}
lfasparql.execute({
AppID: "xawsaykmcb" ,
subject: "http://es.dbpedia.org/resource/Curro_Romero",
predicate: "http://dbpedia.org/ontology/abstract",
success: getResult,
error: getError
});
// {?s P O}
lfasparql.execute({
AppID: "xawsaykmcb" ,
predicate: "http://www.w3.org/2002/07/owl#sameAs",
object: "http://es.dbpedia.org/resource/Curro_Romero",
success: getResult,
error: getError
});
// {?s ?p O}
lfasparql.execute({
AppID: "xawsaykmcb" ,
object: "http://es.dbpedia.org/resource/Curro_Romero",
success: getResult,
error: getError
});
Si desea realizar varias solicitudes a la vez, ejecute el método múltiple “executeMultiple”
var queries = [];
// {S ?p ?o}
queries.push(["http://es.dbpedia.org/resource/Curro_Romero", "", ""]);
// {S P ?o}
queries.push(["http://es.dbpedia.org/resource/Curro_Romero", "http://dbpedia.org/ontology/abstract", ""]);
// {?s P O}
queries.push(["", "http://www.w3.org/2002/07/owl#sameAs", "http://es.dbpedia.org/resource/Curro_Romero"]);
// {?s ?p O}
queries.push(["", "", "http://es.dbpedia.org/resource/Curro_Romero"]);
lfasparql.executeMultiple ({
AppID: "xawsaykmcb" ,
queries: queries,
success: getResult,
error: getError
});
Page 2 of 7
http://fujitsu.com/es/linked-open-data-2015
API de búsqueda (LFASparql) [02/2015]

4.Obtener resultados de búsqueda
Como ha sido descrito anteriormente, cuando un resultado es devuelto desde LOD4All, un método específico de parámetros éxito o
error será reportado, tal como:
a)
Si una solicitud es correcta un objeto JavaScript es determinado como un parámetro. El objeto es generado desde JSON
(consultar el ejemplo siguiente).
b)
Si la solicitud resulta fallida, objeto jqXHR, una cadena sobre el estado del error y el estado HTTP es devuelta. Este es la misma
función de error que el método ajax en jQuery.
Un ejemplo de respuesta es de la siguiente manera:
function getResult(data) {
for(var i = 0; i < data.length; i++) {
console.log("Subject: " + data[i]["s"] + ", Predicate: " + data[i]["p"] + ", Object: " + data[i]["o"])
}
}
function getError(jqXHR, textStatus, errorThrown) {
console.log("textStatus");
}
El siguiente formato es JSON de respuesta. En solicitudes múltiples, una lista es descrita encima del resultado.
{
"p": {
"type": "uri",
"value": "http://dbpedia.org/ontology/alias"
},
"s": {
"type": "uri",
"value": ""http://es.dbpedia.org/resource/Curro_Romero"
},
"o": {
"type": "literal",
"value": "El Faraón de Camas"
}
},
{
"p": {
"type": "uri",
"value": "http://es.dbpedia.org/property/alternativa"
},
"s": {
"type": "uri",
"value": "http://es.dbpedia.org/resource/Curro_Romero"
},
"o": {
"type": "literal",
"Value" : "18”
}
},
….
]
Page 3 of 7
http://fujitsu.com/es/linked-open-data-2015
API de búsqueda (LFASparql) [02/2015]
2. Código ejemplo
Código de una única solicitud:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src=" http://54.72.110.113/lodc/api/lfasparql-1.0.1.js"></script>
<script type="text/javascript">
var lfasparql = new LFASparql();
$(document).ready( function() {
test();
});
function test() {
// {S, ?p, ?o}
lfasparql.execute({
appID: "xawsaykmcb",
subject: "http://es.dbpedia.org/resource/Curro_Romero",
success: getResult,
error: getError
});
// {S, P, ?o}
/*lfasparql.execute({
appID: "xawsaykmcb",
subject: "http://es.dbpedia.org/resource/Curro_Romero",
predicate: "http://dbpedia.org/ontology/abstract",
success: getResult,
error: getError
});*/
// {?s, P, O}
/*lfasparql.execute({
appID: "xawsaykmcb",
predicate: "http://www.w3.org/2002/07/owl#sameAs",
object: "http://es.dbpedia.org/resource/Curro_Romero",
success: getResult,
error: getError
});*/
// {?s ?p O}
/*lfasparql.execute({
appID: "xawsaykmcb",
object: "http://es.dbpedia.org/resource/Curro_Romero",
success: getResult,
error: getError
});*/
}
function getResult(data) {
for (var i = 0; i < data.length; i++) {
triple = data[i];
$("#result")
.append(
"<li>" +
Page 4 of 7
http://fujitsu.com/es/linked-open-data-2015
API de búsqueda (LFASparql) [02/2015]
triple["s"]["type"] + ": " + triple["s"]["value"] + ", " +
triple["p"]["type"] + ": " + triple["p"]["value"] + ", " +
triple["o"]["type"] + ": " + triple["o"]["value"] +
"</li>"
);
}
}
function getError(jqXHR, textStatus, errorThrown) {
console.log(textStatus)
}
</script>
<title>API Test</title>
</head>
<body>
<h3>API Test</h3>
<ol id="result">
</ol>
</body>
</html>
Código Múltiple solicitud:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src=" http://54.72.110.113/lodc/api/lfasparql-1.0.1.js"></script>
<script type="text/javascript">
var lfasparql = new LFASparql();
$(document).ready( function() {
test();
});
function test() {
var queries = [];
queries.push(["http://es.dbpedia.org/resource/Curro_Romero", "", ""]);
queries.push(["http://es.dbpedia.org/resource/Curro_Romero", "http://dbpedia.org/ontology/abstract", ""]);
queries.push(["", "http://www.w3.org/2002/07/owl#sameAs", "http://es.dbpedia.org/resource/Curro_Romero"]);
queries.push(["", "", "http://es.dbpedia.org/resource/Curro_Romero"]);
lfasparql.executeMultiple({
appID: "xawsaykmcb",
queries: queries,
success: getResult,
error: getError
});
}
function getResult(data) {
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data[i].length; j++) {
triple = data[i][j];
Page 5 of 7
http://fujitsu.com/es/linked-open-data-2015
API de búsqueda (LFASparql) [02/2015]
$("#result")
.append(
"<li>" +
triple["s"]["type"] + ": " + triple["s"]["value"] + ", " +
triple["p"]["type"] + ": " + triple["p"]["value"] + ", " +
triple["o"]["type"] + ": " + triple["o"]["value"] +
"</li>"
);
}
}
}
function getError(jqXHR, textStatus, errorThrown) {
console.log(textStatus)
}
</script>
<title>API Test</title>
</head>
<body>
<h3>API Test</h3>
<ol id="result">
</ol>
</body>
</html>
Código de solicitud de dos saltos:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src=" http://54.72.110.113/lodc/api/lfasparql-1.0.1.js"></script>
<script type="text/javascript">
var lfasparql = new LFASparql();
// {
//
http://es.dbpedia.org/resource/Curro_Romero http://dbpedia.org/ontology/wikiPageWikiLink
//
?x http://dbpedia.org/ontology/abstract ?y .
// }
$(document).ready( function() {
first_hop();
});
?x .
function first_hop() {
lfasparql.execute({
appID: "xawsaykmcb",
subject: "http://es.dbpedia.org/resource/Curro_Romero",
predicate: "http://dbpedia.org/ontology/wikiPageWikiLink",
success: second_hop,
error: getError
});
}
function second_hop(data) {
var queries = [];
Page 6 of 7
http://fujitsu.com/es/linked-open-data-2015
API de búsqueda (LFASparql) [02/2015]
for(var i = 0; i < data.length; i++){
triple = data[i];
if(triple["o"]["type"] == "uri"){
queries.push([triple["o"]["value"],
"http://dbpedia.org/ontology/abstract",
""]);
}
}
lfasparql.executeMultiple({
appID: "xawsaykmcb",
queries: queries,
success: getResult,
error: getError
});
}
function getResult(data) {
for (var i = 0; i < data.length; i++) {
for (var j = 0; j < data[i].length; j++) {
triple = data[i][j];
$("#result")
.append(
"<li>" +
triple["s"]["type"] + ": " + triple["s"]["value"] + ", " +
triple["p"]["type"] + ": " + triple["p"]["value"] + ", " +
triple["o"]["type"] + ": " + triple["o"]["value"] +
"</li>"
);
}
}
}
function getError(jqXHR, textStatus, errorThrown) {
console.log(textStatus)
}
</script>
<title>API Test</title>
</head>
<body>
<h3>API Test</h3>
<ol id="result">
</ol>
</body>
</html>
Contacto
FUJITSU
Camino Cerro de los Gamos, 1
28224 Pozuelo de Alarcón
Madrid (España)
Copyright: © Fujitsu
Contacto: +34 91 784 90 00
Page 7 of 7
Todos los derechos reservados, especialmente para patentes, patentes de utilidad y patentes de
diseño. Se esperan cambios técnicos y de disponibilidad. En este documento pueden aparecer
términos de marca registrada, cuyo uso por terceras partes para fines propios podría infringir los
derechos de propiedad de marca registrada.
http://fujitsu.com/es/linked-open-data-2015
Descargar