Как запросить конечную точку SPARQL, такую ​​как DBPedia, с Sesame?

Я использую тройной магазин Sesame для хранения своих данных. Когда я пытаюсь использовать интерфейс запроса Sesame с внешними ресурсами, такими как dbpedia, я не получаю никаких результатов. Этот запрос возвращает результаты с snorql, но не с Sesame после добавления всех необходимых префиксов:

select ?routes where {
  dbpedia:Polio_vaccine dbpprop:routesOfAdministration ?routes
}

Что мне нужно изменить?


person kurious    schedule 28.05.2015    source источник
comment
Ваш вопрос неполный. Вы говорите, что добавили все необходимые префиксы, но не показываете их. Вы также не показали, как вы на самом деле создали соединение с конечной точкой DBPedia. Я дал общий обзор того, как вы создаете такое соединение, а затем используете его для запроса в качестве ответа, но, не зная более подробной информации о вашей настройке, невозможно сказать, в чем проблема на вашем конце.   -  person Jeen Broekstra    schedule 28.05.2015


Ответы (1)


Вы можете запросить любую конечную точку SPARQL, включая DBPedia, различными способами с помощью Sesame, либо программно, либо вручную через Sesame Workbench.

Использование верстака

Используя инструмент Sesame Workbench, вы можете запросить DBPedia (или любую общедоступную конечную точку SPARQL), создав прокси-сервер репозитория для этой конечной точки следующим образом:

  1. выберите «Новый репозиторий», а в меню типа репозитория выберите «Прокси конечной точки SPARQL». Дайте прокси идентификатор и, возможно, название и нажмите «Далее». создание прокси конечной точки sparql

  2. введите URL-адрес конечной точки SPARQL для конечной точки запроса. Для общедоступного сервера DBPedia это должно быть http://dbpedia.org/sparql. введите здесь описание изображения

  3. Завершите, нажав «Создать».

После того, как вы настроите это, вы можете запросить его из меню «Запрос»:

Sesame Workbench Редактор запросов SPARQL

Результат:

введите здесь описание изображения

Программный доступ

Вы можете просто создать объект SPARQLRepository, который подключается к конечной точке DBPedia:

Repository repo = new SPARQLRepository("http://dbpedia.org/sparql");
repo.initialize();

Получив это, вы можете использовать его для выполнения запроса SPARQL, как и в любом другом репозитории Sesame:

RepositoryConnection conn = repo.getConnection();
try {
    StringBuilder qb = new StringBuilder();
    qb.append("PREFIX dbpedia: <http://dbpedia.org/resource/> \n");    
    qb.append("PREFIX dbpprop: <http://dbpedia.org/property/> \n");
    qb.append("SELECT ?routes \n");
    qb.append("WHERE { dbpedia:Polio_vaccine dbpprop:routesOfAdministration ?routes } \n");

    TupleQueryResult result = 
         conn.prepareTupleQuery(QueryLanguage.SPARQL, qb.toString()).evaluate(); 

    while(result.hasNext()) {
         BindingSet bs = result.next();
         Value route = bs.getValue("routes");
         System.out.println("route = " + route.stringValue());
    }
 }
 finally {
    conn.close();
 }
person Jeen Broekstra    schedule 28.05.2015
comment
Последующий вопрос, опубликованный по адресу stackoverflow. ком/вопросы/30715079/ - person kurious; 08.06.2015