显示sparql查询结果的问题

时间:2015-09-12 14:41:41

标签: javascript html web sparql

我正在尝试在html中进行sparql查询。我有这段代码:

    <script type="text/javascript">
        document.write("<strong>Hola!</strong>");
        var SPARQL_ENDPOINT = 'http://datos.zaragoza.es/sparql';
        var query = 'PREFIX pproc: <http://contsem.unizar.es/def/sector-publico/pproc#>\
        PREFIX dcterms: <http://purl.org/dc/terms/>\
        SELECT DISTINCT ?uri ?titulo ?servicioGestor WHERE {\
        ?uri a <http://contsem.unizar.es/def/sector-publico/pproc#Contract>;\
        dcterms:title ?titulo;\
        pproc:managingDepartment ?managingDepartment.\
        ?managingDepartment dcterms:title ?servicioGestor} ORDER BY ?titulo';

现在我必须完成它,以便在浏览器中打开文件时可以看到查询结果。

1 个答案:

答案 0 :(得分:1)

你需要:

使用该端点和查询为查询构建完整的URL。您可能希望以JSON格式请求结果,因为这将使结果更容易处理。查询和格式需要进行URL编码,例如:

var url = SPARQL_ENDPOINT
  + '?query=' + encodeURIComponent(query)
  + '&format=' + encodeURIComponent('application/sparql-results+json');

向该网址发出GET请求 - 在线提供大量代码。

然后,您可以解析并显示您获得的JSON结果,例如作为一个表:

function printTable(response){
    var results = JSON.parse(response);
    var table = '<table>';
    results.results.bindings.forEach(function (result){
        table += '<tr><td>' + result.uri.value + '</td><td>' + result.titulo.value
          + '</td><td>' + result.servicioGestor.value + '</td></tr>';
    })
    table += '</table>';
    document.write(table);
}

添加console.log(results);以在浏览器Javascript控制台窗口中查看整个结果,并确定要显示的内容。