2017-03-10 81 views
-1

使用SPARQL,我試圖獲取所有英語小說及其屬性的列表。如何使用DBPEDIA中的SPARQL獲取基於英語小說的電影

我還想找一部電影是基於那部小說拍攝的,並獲得電影名稱及其導演,如果存在電影關係。

代碼:

SELECT ?movie ?director ?book ?author ?publisher ?illustrator 
WHERE { 
?movie dcterms:subject <http://dbpedia.org/resource/Category:films> ; 
     dbpedia-owl:basedOn  ?book . 
?movie dbp:director ?director . 

?book a dbpedia-owl:Book . 
?book dbp:author ?author . 
?book dbp:publisher ?publisher . 
?book dbp:illustrator ?illustrator . 

} 
limit 200 
+0

好的,什麼沒有工作,你試圖什麼? –

+0

看起來非常像http://stackoverflow.com/questions/41770201/fetching-a-list-of-books-adapted-into-films-from-dbpedia – TallTed

+0

我無法得到任何結果,一旦我將電影部分添加到查詢...可能是,我在類別中犯了一些錯誤:電影部分.. – VKB

回答

1

你可以得到很多正確的結果,如果您修改您的查詢像這樣...

PREFIX  dcterms: <http://purl.org/dc/terms/> 
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
PREFIX   dbp: <http://dbpedia.org/property/> 

SELECT ?book ?author ?movie ?director ?publisher ?illustrator 
WHERE { 
?book a dbpedia-owl:Book . 
    OPTIONAL {?book dbp:author ?author .} 
    OPTIONAL {?book dbp:publisher ?publisher .} 
    OPTIONAL {?book dbp:illustrator ?illustrator .} 
    OPTIONAL {?book ^dbpedia-owl:basedOn ?movie . ?movie a dbpedia-owl:Film } 
    OPTIONAL {?movie dbp:director ?director .} 
} 
LIMIT 200 

...但是請記住,有很多未歸類爲dbpedia-owl:Film的電影。那麼當然你也可以製作union以及其他一些流行的分類,但是這仍然不能保證不會有基於書籍的電影,這不會被省略。

順便說一句,你稱之爲「英文小說」 - 那些最初用英文寫的還是英文作者寫的?

+0

我的意思是那些原本用英文寫成的小說 – VKB