2017-01-20 22 views
0

Я пытаюсь получить список американских фильмов, адаптированных из книг из dbpedia. Это то, что у меня есть до сих пор:Извлечение списка книг, адаптированных к фильмам из dbpedia

PREFIX onto: <http://dbpedia.org/ontology/> 
PREFIX dcterms: <http://purl.org/dc/terms/> 

SELECT * WHERE { 

?movie dcterms:subject <http://dbpedia.org/resource/Category:American_films> . 
?movie dcterms:subject <http://dbpedia.org/resource/Category:Films_based_on_novels> . 
?movie onto:basedOn ?book . 
?book a onto:Book . 
} 

Я получаю только 4 результата назад. Есть ли другое свойство, которое я могу использовать, чтобы получить больше результатов?

ответ

2

Первое, попробуйте удалить вторую строку вашего шаблона -

?movie dcterms:subject <http://dbpedia.org/resource/Category:Films_based_on_novels> . 

Вы получите a great many more results от -

PREFIX onto: <http://dbpedia.org/ontology/> 
PREFIX dcterms: <http://purl.org/dc/terms/> 

SELECT * WHERE 
    { 
    ?movie dcterms:subject <http://dbpedia.org/resource/Category:American_films> ; 
      onto:basedOn  ?book . 
    ?book a     onto:Book . 
    } 

Вы смотрели на описание результатов, которые вы сделали получить? Это покажет вам свойства, которые вы можете использовать ...

Помните, что вы ограничены данными в DBpedia, у которых может не быть того, что, по вашему мнению, должно (например, не каждый фильм, основанный на романе, явно классифицируются как таковые, как вы можете видеть по разным результатам, которые я получил), а также может быть 6 или более месяцев от синхронизации с Википедией. Вы можете посмотреть DBpedia-live, для постоянно обновляемого приема.