Как использовать Apache Marmotta SPARQL веб-сервис API с AngularJS?

0

Я хочу выполнить образец запроса SPARQL для apache marmotta от контроллера AngularJS через веб-сервис SPARQLs marmotta. Образец кода:

var url = "http://localhost:8080/marmotta/";
var query = "SELECT * WHERE { ?subject ?property ?object }"
$http.post(url+"sparql/select",{
     'output': "json",
     'query': query
 } ).then(function(data){
        $scope.hello = data;
 }).catch(function(error){
        alert(error);
 });

Я получаю "запрос не поддерживается", а затем 500 SyntaxError:

SyntaxError: Неожиданный токен q в Object.parse(native) at fromJson (http://localhost: 63342/ws/app/script/angular.js: 1075: 14) по умолчаниюHttpResponseTransform (http://localhost: 63342/ws/app/script/angular.js: 8650: 16) по адресу http://localhost: 63342/ws/app/script/angular.js: 8735: 12 at forEach (http://localhost: 63342/ws/app/script/angular.js:326:20) at transformData (http://localhost: 63342/ws/app/script/angular.js: 8734: 3) at transformResponse (http://localhost: 63342/ws/app/script/angular.js:9464:23) в processQueue (http://localhost: 63342/ws/app/script/angular.js: 13292: 27) по адресу http://localhost: 63342/ws/app/script/angular.js: 13308: 27 at Scope. $ get.Scope. $ eval (http://localhost: 63342/ws/app/script/angular.js: 14547: 28)

Или когда я использую такой код:

var url = "http://localhost:8080/marmotta/";
var query = "SELECT * WHERE { ?subject ?property ?object }";
$http.get(url+"sparql/select/query="+query+"&output='json'")
.then(function(data){
     $scope.hello = data;
}).catch(function(error){
        $scope.hello = error.stack;
});

Я получаю 404. Любые идеи о том, как правильно использовать API SPARQL WS?

Теги:
sparql
semantic-web
rdf
apache-marmotta

3 ответа

0

В meteor plataform он работает, используя пакет "http" и вызывает веб-сервис Apache Marmotta.

HTTP.call("GET", "http://IP:8080/sparql/select", {
    params: {
        "query": "select * where {?s ?p ?o } limit 10",
        "output": "xml"
    }
}, function(error, result) {
    console.log(result);
});
0

Раньше у меня была такая же проблема. Но на самом деле я нашел решение, проверив запрос ajax, созданный веб-приложением apache marrmotta. Здесь образец запроса, который работает для меня

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://localhost:8080/marmotta/sparql/select",
  "method": "POST",
  "headers": {
    "content-type": "application/sparql-query;charset=UTF-8",
    "accept": "application/sparql-results+json"
  },
  "data": "SELECT * WHERE { ?s ?p ?o } LIMIT 10"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

Я думаю, что главная проблема заключается в заголовках.

0

Поскольку конечная точка SPARQL фактически расположена по адресу http://localhost:8080/marmotta/sparql/select.

У вас должна быть эта документация в модуле SPARQL в Marmotta.

Ещё вопросы

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