2017-08-01 99 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

如果您熟悉鏈接開放數據並不難,但是,並不是所有人都熟悉鏈接開放數據(尚未)。他們寫道:「這是一項新服務 - 您的反饋將幫助我們改進它」,因此,歡迎您:-)。 –