编程语言
首页 > 编程语言> > 如何在Javascript中查询Dbpedia

如何在Javascript中查询Dbpedia

作者:互联网

我想在Javascript中从Dbdepdia获得英国土木工程文章的摘要.这是我尝试但它失败了.

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<style type="text/css">

</style>
</head>
    <script type="text/javascript">
    var url = "http://dbpedia.org/sparql";
    var query = "\
     PREFIX dbpedia2: <http://dbpedia.org/resource/>\
     PREFIX Abs: <http://dbpedia.org/ontology/>\
    SELECT ?abstract\
   WHERE {\
            ?s dbpedia2:Civil_engineeringe\"@en;\ Abs:abstract ?abstract\ 
    }";

这是我如何编码url将其传递给ajaxx

 var queryUrl = encodeURI( url+"?query="+query+"&format=json" );
    $.ajax({
        dataType: "jsonp",  
        url: queryUrl,
        success: function( _data ) {
            var results = _data.results.bindings;
            for ( var i in results ) {
                var res = results[i].abstract.value;
                alert(res);
            }
        }
    });
</script>
    <body></body>

</html>

解决方法:

我对多行字符串使用不同的方法,并且我直接使用它来针对DBPedia进行SPARQL查询编写.

var query = [
 "PREFIX dbpedia2: <http://dbpedia.org/resource/>",
 "PREFIX Abs: <http://dbpedia.org/ontology/>",
 "SELECT ?abstract",
 "WHERE {",
    "?s dbpedia2:Civil_engineeringe\"@en;",
    "Abs:abstract ?abstract",
 "}"
].join(" ");

我是这样做的,因为这可以让我在出现编码问题时调整行分隔符,并且还允许我在必要时轻松地注释掉行.

现在,一旦我需要运行查询,我对查询本身进行编码并将其附加到URL.

请注意如何包装整个查询字符串,因为它可能将键,值和等号编码为转义字符.

我是这样做的:

var queryUrl = url+"?query="+ encodeURIComponent(query) +"&format=json";

标签:javascript,sparql,dbpedia,semantic-web,spotlight-dbpedia
来源: https://codeday.me/bug/20190830/1771701.html