2017-08-01 103 views
1

我试图使用这个http://landregistry.data.gov.uk/app/qonsole,我特意试图使用'邮政编码中的交易'选项。这是我的JS的电话。如何格式化我的SPARQL for JS?

var query =[ 
"prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>", 
"prefix skos: <http://www.w3.org/2004/02/skos/core#>", 
"prefix lrcommon: <http://landregistry.data.gov.uk/def/common/>", 
"prefix lrppi: <http://landregistry.data.gov.uk/def/ppi/>", 
"prefix xsd: <http://www.w3.org/2001/XMLSchema#>", 
"SELECT ?paon ?saon ?street ?town ?county ?postcode ?amount ?date ?category", 
"WHERE {", 
    "VALUES ?postcode {'PL6 8RU'^^xsd:string}", 

    "?addr lrcommon:postcode ?postcode.", 

    "?transx lrppi:propertyAddress ?addr ;", 
      "lrppi:pricePaid ?amount ;", 
      "lrppi:transactionDate ?date ;", 
      "lrppi:transactionCategory/skos:prefLabel ?category.", 

    "OPTIONAL {?addr lrcommon:county ?county}", 
    "OPTIONAL {?addr lrcommon:paon ?paon}", 
    "OPTIONAL {?addr lrcommon:saon ?saon}", 
    "OPTIONAL {?addr lrcommon:street ?street}", 
    "OPTIONAL {?addr lrcommon:town ?town}", 
"}", 
"ORDER BY ?amount"].join(" "); 

var endpoint = 'http://landregistry.data.gov.uk/app/root/qonsole/query'; 

var queryUrl = encodeURI(endpoint+"?query="+query); 

var fet = fetch(queryUrl) 
.then((resp) => resp.json()) // Transform the data into json 
    .then(function(data) { 
    console.log(data) 
    }); 

但我不断收到:

"Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0"

.then((resp) => resp.json()) // Transform the data into json 

.then(function(data) { //This line is the culprit according to console 

    console.log(data) 
    }); 

环视,似乎它与尝试使用以.json()方法来做。

我相信“<”来自查询中的前缀URL。我该如何解决?

+1

什么是你得到的原始响应?我的赌注是XML,而不是JSON。 – DarthJDG

+1

问题出在响应而不是请求,看来。所以检查一下,实际返回的是什么。它可能是一个HTML错误页面。 – Sirko

+1

是的 - 它似乎是响应中的一个完整的HTML页面。它看起来就像您点击我帖子顶部的网址时看到的页面。所以现在我有一种感觉我正在使用错误的查询URL。如何找到哪一个是正确的? – ProEvilz

回答

2

Web UI screenshot


var endpoint = 'http://landregistry.data.gov.uk/landregistry/query'; 
var queryUrl = endpoint + '?query=' + encodeURIComponent(query); 

Firefox console screenshot

+1

我会通过他们的反馈页面与他们联系,希望他们能够更多地扩展解释并定义合适的URL而不必猜测它。 – ProEvilz

+1

如果您熟悉链接开放数据并不难,但是,并不是所有人都熟悉链接开放数据(尚未)。他们写道:“这是一项新服务 - 您的反馈将帮助我们改进它”,因此,欢迎您:-)。 –