1

私は現在、DBPediaのリソースを使用して SPARQL で RDF データを照会する方法を学ぼうとしており、 Virtuoso SPARQL Query Editorで実験していますが、何か誤解しているようです。

たとえば、このリソース : を使用して、パルプ フィクションの監督名を見つけようとしている http://dbpedia.org/resource/Pulp_Fictionので、(単純な) クエリは次のとおりです。

SELECT ?dirName
FROM <http://dbpedia.org/resource/Pulp_Fiction>
WHERE 
{ 
     ?s <http://dbpedia.org/property/director> ?dirName.
}

動作しますが、結果は URI リソース :http://dbpedia.org/resource/Quentin_Tarantinoです。今、監督の出生名を取得したいので、試してみました

SELECT ?dirRes ?dirName 
FROM <http://dbpedia.org/resource/Pulp_Fiction>
WHERE 
{ 
    ?s      <http://dbpedia.org/property/director>  ?dirRes. 
    ?dirRes <http://dbpedia.org/ontology/birthDate> ?dirName.
}

成功しない場合、結果は空の配列になります...

誰かがこれで私を助けることができますか?

ありがとうございました !

4

1 に答える 1

5

このFROM部分は、エンティティではなく、照会するデータベースを選択します。

RDF は、主語-述語-目的語の構造を持つトリプルで構成されていることを思い出してください。あなたが探しています:

Pulp_Fiction director ?director

それでは、それを照会しましょう。

SELECT * {
  <http://dbpedia.org/resource/Pulp_Fiction> <http://dbpedia.org/property/director> ?director.
}

リソースのプロパティを取得するには?director、クエリにさらにトリプルを追加します。

SELECT * {
  <http://dbpedia.org/resource/Pulp_Fiction> <http://dbpedia.org/property/director> ?director.
  ?director <http://dbpedia.org/ontology/birthDate> ?birthdate.
}

<...>完全なURIの代わりに定義済みのプレフィックスを使用すると、クエリを短くすることができます。右上隅の「名前空間プレフィックス」をクリックすると、リストを取得できます。と のどちらを使用するかを選択できる場合は、常に後者を使用してください。これは、その名前空間のクラスとプロパティがより適切に管理されるためですdbppropdbpedia-owl結果:

SELECT * {
  dbpedia:Pulp_Fiction dbpedia-owl:director ?director.
  ?director dbpedia-owl:birthDate ?birthdate.
}
于 2012-04-08T13:05:55.230 に答える