Member 8840306 Ответов: 1

Поиск по ключевым словам из dbpedia с помощью nodejs


Я новичок в node.js.я скачал и выполнил проект с GitHub из этого ссылка...Вот на этом ссылка существует живая демонстрация этого приложения. Он запускает поиск rdf с использованием Викиданных. Это та функция, которую я нашел для поиска ключевого слова из Викиданных, написанного в файле public/scripts/controllers/main.js.

function search () {
        //TODO: fix when null;
        if (vm.searchInput != vm.lastSearch) {
          var input = vm.searchInput;
          vm.lastSearch = input;
          vm.searchWait = true;
          vm.noResults  = false;
          //$http.get('https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&language=en&limit=20&uselang=en&type=item&continue=0&search='+input).then(
          $http({
            method: 'GET',
            url: 'https://www.wikidata.org/w/api.php',
            params: {
              action: 'wbsearchentities',
              format: 'json',
              language: 'en',
              uselang: 'en',
              type: 'item',
              continue: '0',
              limit: '20',
              search: input,
              origin: '*',
            }
          }).then(
            function onSuccess (response) {
              onSearch(response.data.search);
            },
            function onError (response) { onSearchErr(); console.log('Error: ' + response.data); }
          );
          //request.execQuery(query.search(input), onSearch, onSearchErr);
        }
        vm.searchActive = true;
      }


Что я уже пробовал:

Я изменил вышеприведенную функцию для DBpedia, но она не ищет ключевое слово из DBpedia

function search2 () {
        //TODO: fix when null;
        if (vm.searchInput != vm.lastSearch) {
          var input = vm.searchInput;
          vm.lastSearch = input;
          vm.searchWait = true;
          vm.noResults  = false;
          //$http.get('https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&language=en&limit=20&uselang=en&type=item&continue=0&search='+input).then(
          $http({
            method: 'GET',
            url: 'http://dbpedia.org/sparql',
            params: {
              action: 'wbsearchentities',
              format: 'json',
              language: 'en',
              uselang: 'en',
              type: 'item',
              continue: '0',
              limit: '20',
              search: input,
              origin: '*',
            }
          }).then(
            function onSuccess (response) {
              onSearch(response.data.search);
            },
            function onError (response) { onSearchErr(); console.log('Error: ' + response.data); }
          );
          //request.execQuery(query.search(input), onSearch, onSearchErr);
        }
        vm.searchActive = true;
      }


как я могу изменить эту вышеописанную функцию для поиска в DBpedia?что является JavaScript API в языке SPARQL к DB-педия?Пожалуйста помочь

1 Ответов

Рейтинг:
1

Pete O'Hanlon

URL, который вы ищете, использует ?query= чтобы указать запрос. Тем не менее, вы будете иметь, чтобы справиться с тем, что формат запроса на языке SPARQL является довольно странным. Это место пример[^].


Member 8840306

вот запрос SPARQL для этой ситуации для dbpedia :select distinct ?s { ?s rdfs:label ?l . FILTER(langmatches(lang(?l), 'en')) ?l bif:содержит "here_your_input_token" } limit 20

Member 8840306

как я могу использовать этот запрос в коде javascript .Поскольку я новичок в javascript и node.js.