2016-07-02 6 views
0

Я пытаюсь получить заголовки книг для атрибутов dbpedia, предшествующихBy и followBy, используя поиск sparql. Например. http://dbpedia.org/page/Harry_Potter_and_the_Goblet_of_Fire - Запрос, который вернет предыдущие и следующие названия книг. Так что, если бы я записал в книгу название «Тайная комната», я бы получил книги до и после этого.dbpedia SPARQL book search query

Ive попробовал посмотреть пару видео про sparql и просмотрел примеры здесь https://km.aifb.kit.edu/projects/spartiqulator/examples.htm, но не может создать рабочий запрос.

Я пробовал следующее, но он вызывает ошибки синтаксиса. Я не уверен, как связать атрибуты Я пытаюсь фильтровать в правильном пути, например, РФР: и ДАД и т.д.

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 


SELECT DISTINCT ?uri 
WHERE { 
    ?uri rdf:type dbo:Book . 
    ?uri dbp:precededBy res:'Harry Potter and the Chamber of Secrets' . 

} 

Следующие работает, но без результатов.

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 


SELECT DISTINCT ?uri 
WHERE { 
    ?uri rdf:type dbo:Book . 
    ?uri dbp:followedBy 'Harry Potter and the Order of the Phoenix' . 

} 
+0

Прошу вас, пожалуйста, что вы уже пробовали – lokusking

ответ

0

Если вы хотите знать, как precededBy и followedBy для Тайны, вы можете использовать этот запрос:

SELECT * 
WHERE { 
    dbr:Harry_Potter_and_the_Chamber_of_Secrets 
    dbp:precededBy ?precededBy; 
    dbp:followedBy ?followedBy. 
} 

Обратите внимание, как имя, если отформатированным так же, как в Википедии URL, с подчеркиванием вместо пространства.

Также обратите внимание, что если книга не имеет одного из двух, это ничего не вернет. Вы можете использовать OPTIONAL, чтобы обойти это.

+0

Спасибо, это то, что я был после. – ms18