2015-10-11 4 views
2

Я пытаюсь получить названия фильмов из викидаты с запросом.Невозможно получить названия фильмов из wikidata

Я уже попытался это:

PREFIX wikibase: <http://wikiba.se/ontology#> 
PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX p: <http://www.wikidata.org/prop/> 
PREFIX v: <http://www.wikidata.org/prop/statement/> 

SELECT ?q ?film_title ?actor ?genre WHERE { 
    ?q wdt:P31 wd:Q11424. 
} 

LIMIT 10 

Выход из этого, как это: WD: Q372

однако мы пытаемся получить MOVIE_TITLE этого числа, а не этот номер.

+0

вещь, как «сторожевые: P31: Wd Q11424», похоже, * действительно * неудобное использование, и это не очевидно из их названий, что они имеют ничего общего с кино. Что-то с данными DBpedia, такими как 'select? Movie? Title { ? Movie a dbo: Film; foaf: name? title} 'просто похоже, что было бы намного проще. –

ответ

5

Каждый экземпляр экземпляра (например, wd: Q372) имеет тип, который имеет некоторые литературные свойства, такие как метка (или название фильма в этом случае) и некоторые отношения с другими объектами, такими как актер. Чтобы получить литеральные значения (например, название и т. Д.), Вам необходимо запросить их. Например, вот запрос, который получает все названия фильмов, их жанры и их участников (я предполагал, что вы хотите только английские ярлыки, и я ограничил результаты до 10).

PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/> 
PREFIX wikibase: <http://wikiba.se/ontology#> 
PREFIX p: <http://www.wikidata.org/prop/> 
PREFIX v: <http://www.wikidata.org/prop/statement/> 
PREFIX q: <http://www.wikidata.org/prop/qualifier/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 

SELECT ?q ?film_title ?actor ?genre WHERE { 
    ?q wdt:P31 wd:Q11424. 
    ?q rdfs:label ?film_title filter (lang(?film_title) = "en"). 
    ?q wdt:P136 ?genreID. 
    ?genreID rdfs:label ?genre filter (lang(?genre) = "en"). 
    ?q wdt:P161 ?actorID. 
    ?actorID rdfs:label ?actor filter (lang(?actor) = "en"). 
}limit 10 
+0

Спасибо !!! <3 <3 <3 – Webdb

Смежные вопросы