Web*_*bdb 2 semantic-web sparql wikidata
我试图通过查询从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
Run Code Online (Sandbox Code Playgroud)
输出如下:wd:Q372
但是我们试图得到这个数字的movie_title而不是这个数字.
每个电影实例(如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
Run Code Online (Sandbox Code Playgroud)