2017-03-10 2 views
-1

En utilisant SPARQL, j'essaie d'obtenir la liste de tous les romans anglais et leurs propriétés.Comment obtenir les films qui sont basés sur des romans en anglais en utilisant SPARQL dans DBPEDIA

Je voudrais également savoir si un film a été pris en fonction de ce roman et obtenir le nom du film et son directeur, Si une relation de film existe.

code:

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

Ok, et qu'est-ce qui n'a pas fonctionné sur ce que vous avez essayé? –

+0

ressemble remarquablement comme http://stackoverflow.com/questions/41770201/fetching-a-list-of-books-adapted-into-films-from-dbpedia – TallTed

+0

Je ne pouvais pas obtenir de résultats une fois que j'ai ajouté la partie de film à la requête ... Probablement, je faisais une erreur dans la catégorie: partie de films .. – VKB

Répondre

1

Vous pouvez obtenir beaucoup de résultats corrects, si vous modifiez votre requête comme ça ...

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 

... mais gardez à l'esprit qu'il ya beaucoup de les films qui ne sont pas classés dbpedia-owl:Film. Alors bien sûr, vous faites un union avec quelques autres classifications populaires, mais cela ne garantit toujours pas qu'il n'y aura pas de film basé sur un livre, qui ne sera pas omis. Et en passant, comment appelez-vous les «romans anglais» - ceux écrits à l'origine en anglais ou ceux écrits par des auteurs anglais?

+0

Je voulais dire ces romans écrits à l'origine en anglais – VKB