【发布时间】:2016-09-21 22:09:30
【问题描述】:
我尝试从 JavaScript 进行此查询
var subject = document.getElementById("inputUri").value;
var property = "?p";
var object = "?o";
var query = "\
PREFIX dbpedia2: <http://dbpedia.org/property/>\
PREFIX foaf: <http://xmlns.com/foaf/0.1/>\
PREFIX : <http://dbpedia.org/resource/>\
SELECT * \
WHERE {\
"+ subject + property + object +".\
}LIMIT 10";
我从输入表单中接收到变量 ?s,但是当我编写另一个变量名时,它不起作用。 结果代码如下:
$.ajax({
dataType: "jsonp",
url: queryUrl,
success: function( _data ) {
var results = _data.results.bindings;
var subject = document.getElementById("inputUri").value;
for ( var i in results ) {
var subjectResult = results[i].s.value;
var objectResult = results[i].o.value;
var propertyResult = results[i].p.value;
}
}
});
在
var subjectResult = results[i].s.value;
是错误,但我不知道将输入文本中的值接收到 subjectResult 分配中。
我通过这种方式定义了从输入文本中接收任何变量名的变量:
var str = subject;
var res = str.replace("?", "");
然后在for循环中:
var subjectResult = results[i][res].value;
【问题讨论】:
-
照常复制和粘贴错误。您从某个地方进行了查询,并从其他地方获取了代码而没有理解它。您的主题不是变量
?s,而是绑定到特定的资源 URI - 正如您的问题标题所暗示的那样。
标签: javascript sparql semantic-web dbpedia