我想用 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 - 如何在 Javascript 中查询 Dbpedia,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22769701/