1

私は、ウィキペディアのインフォボックスが、名字を与えられた (名またはクリスチャン) 名から分離するなど、人の名前のさまざまな部分を考慮に入れているとは思わない.

しかし、DBPedia はウィキペディアから直接取得したもの以外にも、いくつかのオントロジーを使用していると思います。

だから私が疑問に思っているのは、名前だけに基づいてウィキペディアから人を選択する SPARQL クエリを作成できるかどうかということです。

たとえば、クエリを実行できますAll knights of the British empire whose first name is "Tim"か?

4

2 に答える 2

3

必要なものに似たクエリを次に示します。

SELECT * 
    WHERE 
      {
         ?person rdf:type yago:BritishKnights  . 
         ?person foaf:givenName ?name.
         FILTER regex(?name, "Walter", "i")
      }  
LIMIT 100

「ウォルター」という名前のイギリスの騎士を選択します。DBPedia sparql エンドポイントで動作します。妥当な出発点だと思います。

次のリソースが役立ちます。

  • British Knights - 私のクエリ例で使用されている概念
  • 職業別の騎士- ここでは、BritishKnights 以外のリソースへのリンクを見つけることができます。たとえば、Musicians と Actors は上記のクエリでは返されませんが、別のカテゴリで見つけることができます。

  • 騎士- さらに一般的です。ここには、さまざまな国の騎士などを説明するリソースへのハイパーリンクがあります。

  • サー- 「サー」の概念
  • Friend Of A Friend - 人とその関係を記述するためのオントロジー。私の例ではそのgivenNameプロパティを使用しました
  • vCard RDF オントロジー- 名前プロパティを持つ別のオントロジー
  • SPARQL フィルターのチュートリアル

編集: Tim Berners-Lee も見つかります。英国の栄誉制度は決して単純ではないようです。検索頑張ってください。このクエリは、T. Berners-Lee が授与された騎士の種類を考慮に入れています。

SELECT * 
WHERE 
  {
     ?person dcterms:subject category:Knights_Commander_of_the_Order_of_the_British_Empire . 
     ?person foaf:givenName ?name.
     FILTER regex(?name, "Tim", "i")
  }  
LIMIT 100

適切なデータセットを理解することが重要です。

編集:

FILTER次のような適切な RDF リテラルを使用すると、a の使用を避けることもできます。

SELECT ?person
WHERE 
  {
     ?person rdf:type yago:BritishKnights  . 
     ?person foaf:givenName "Walter"@en .
  }  

詳細については、w3c 仕様を参照してください。

于 2012-07-29T11:22:28.177 に答える