2017-09-19 7 views
0

私はWikidataクエリーサービス(https://query.wikidata.org)を使用して、映画やテレビ番組の詳細を取得しています。Wikidata:SPARQLアイテムで検索するには?

映画のインスタンス(以下の質問)のすべての項目のジャンルをクエリできますが、特定の映画のみを検索したいと思っています。

SELECT ?item ?itemLabel ?genreLabel 
WHERE 
{ 
    ?item wdt:P31 wd:Q11424 . 
    OPTIONAL { 
     ?item wdt:P136 ?genre 
    } 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" } 
} LIMIT 10 

私は映画のためにウィキデータ項目番号(Q ###)のリストを持っているし、テレビは、私がに関するプロパティを取得したいということを示しています。私はこれらの特定の映画やテレビ番組を照会する必要があります。たとえば、WikidataのStar Wars Episode IV:A New HopeがQ17738であることが分かっている場合、どのようにしてその特定のプロパティをクエリできますか?

答えて

0

はい、QIDを使用してプロパティを取得できます(answer to my similar questionを参照)。あなたの項目Q17738ため

例:

SELECT DISTINCT ?item ?itemLabel ?itemDescription (SAMPLE(?article) AS ?articleSample) 
WHERE 
    { ?article schema:about  ?item ; 
       schema:inLanguage "en" ; 
       schema:isPartOf <https://en.wikipedia.org/> 
    FILTER (?item = <http://www.wikidata.org/entity/Q17738>)  
    SERVICE wikibase:label 
     { bd:serviceParam 
        wikibase:language "en" 
     } 
    } 
GROUP BY ?item ?itemLabel ?itemDescription 

このquery in WikiDataを参照してください。

answer on Open Data siteも参照してください。

1

SPARQLに複数の項目を指定するには、少なくとも2つの方法があります。

FILTER (?item IN (...list...))SPARQL definition

SELECT ?item ?itemLabel ?genreLabel 
WHERE 
{ 
    ?item wdt:P31 wd:Q11424 . 

    FILTER (?item IN (wd:Q17738, wd:Q181795)) 

    OPTIONAL { 
     ?item wdt:P136 ?genre 
    } 
    SERVICE wikibase:label { bd:serviceParam wikibase:language 
           "[AUTO_LANGUAGE],en" } 
} LIMIT 10 

VALUES ?item { ...list... }SPARQL definition

SELECT ?item ?itemLabel ?genreLabel 
WHERE 
{ 
    ?item wdt:P31 wd:Q11424 . 

    VALUES ?item { wd:Q17738 wd:Q181795 } 

    OPTIONAL { 
     ?item wdt:P136 ?genre 
    } 
    SERVICE wikibase:label { bd:serviceParam wikibase:language 
           "[AUTO_LANGUAGE],en" } 
} LIMIT 10 

違いはINは、単に関数であることである:引数がこのリストに含まれていますか?

VALUESは、データをクエリに渡す方法です。

VALUES (?x ?y) { 
    (:uri1 1) 
    (:uri2 UNDEF) 
} 

構文は一つの変数のための特別なケースを持っているので、私はVALUES ?item { (wd:Q17738) (wd:Q181795) }を書く必要はありませんでした。私たちは簡単なフォームを使用しましたが、あなたは完全な、表形式のデータを提供することができます。

関連する問題