3

SPARQLを介してDBPedia.orgでクエリを実行しようとしています。基本的に、これが私がやりたいことです:

  • DBPediaリソースリンクのリストを取得する

どこ

  • foaf:name(http://xmlns.com/foaf/0.1/name)はPARAMETER1と同じです
  • または、dbpprop:companyName(http://dbpedia.org/property/companyName)がPARAMETER1と等しい
  • または、dbpprop:name(http://dbpedia.org/property/name)がPARAMETER1と等しい

  • rdf:type(http://www.w3.org/1999/02/22-rdf-syntax-ns#type)はPARAMETER2と同じです
  • または、dbpedia-owl:type(http://dbpedia.org/ontology/type)がPARAMETER2と等しい

私はこれを自分でやろうとしましたが、成功する結果を得ることができませんでした。

どんな助けでもありがたいです-ありがとう!

編集:これが私が取り組んできたクエリです:

SELECT ?s
WHERE {
    {
      ?s <http://xmlns.com/foaf/0.1/name> "Google Inc." .
    } UNION {
      ?s <http://dbpedia.org/property/companyName> "Google Inc." .
    } UNION {
      ?s <http://dbpedia.org/property/name> "Google Inc." .
    }

    {
      ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Company> .
    } UNION {
      ?s <http://dbpedia.org/ontology/type> <http://dbpedia.org/resource/Public_company> .
    }
}
4

2 に答える 2

4

ほとんど問題はありませんでしたが、唯一の問題は、DBPedia のプロパティ値が言語タグを使用し、クエリが単純なリテラル値を持つ名前を検索することです。このクエリは私にとってはうまくいきます:

SELECT DISTINCT ?s
WHERE {
    {
      ?s <http://xmlns.com/foaf/0.1/name> "Google Inc."@en .
    } UNION {
      ?s <http://dbpedia.org/property/companyName> "Google Inc."@en .
    } UNION {
      ?s <http://dbpedia.org/property/name> "Google Inc."@en .
    }

    {
      ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Company> .
    } UNION {
      ?s <http://dbpedia.org/ontology/type> <http://dbpedia.org/resource/Public_company> .
    }
}

DISTINCTと など、リソースに複数の値がある場合に発生する重複した回答を排除するためfoaf:nameにを追加したことに注意してくださいdbpprop:companyName

于 2012-06-20T17:32:18.987 に答える