Как мне отформатировать SPARQL для JS?

1

Я пытаюсь использовать этот http://landregistry.data.gov.uk/app/qonsole, и я специально пытаюсь использовать опцию "транзакции в почтовом индексе". Вот мой 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)
    });

Но я продолжаю получать:

"Неподготовлено (в обещании) SyntaxError: Неожиданный токен <в JSON в позиции 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.
  • 1
    Кажется, проблема в ответе, а не в запросе. Итак, проверьте, что на самом деле возвращается. Это может быть страница с ошибкой HTML.
Показать ещё 1 комментарий
Теги:
sparql

1 ответ

2
Лучший ответ

Изображение 174551


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

Изображение 174551

  • 1
    Я свяжусь с ними через их страницу обратной связи, чтобы, надеюсь, они немного расширили объяснения и определили правильный URL вместо того, чтобы угадывать его.
  • 1
    Нетрудно догадаться, если вы знакомы со связанными открытыми данными ... Однако не все знакомы со связанными открытыми данными (пока). Они пишут «Это новый сервис - ваш отзыв поможет нам улучшить его», поэтому, пожалуйста, :-).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню