2

DBpedia で SPARQL クエリを Prolog プロジェクトに使用していますが、疑問があります。単語がおそらく人の名前(ジョン、マリオなど)なのか、場所(都市など、ローマ、ロンドン、ニューヨーク)なのかがわかります。

次の 2 つのクエリを実装しました。1 つ目は特定の名前を持つ人の数を取得し、2 つ目は特定の名前を持つ場所の数を取得します。

1) PERSON NAME のクエリ:

select COUNT(?person) where {
  ?person a dbpedia-owl:Person .
  { ?person foaf:givenName "John"@en }
  UNION 
  { ?person foaf:surname "John"@en }
}

Johnという名前については、callret-0: 7313 という出力が得られるので、John という固有名に対して 7313 個のインスタンスが見つかったと思います。そうですか?

2) PLACE NAME のクエリ:

select COUNT(?place) where {
   ?place a dbpedia-owl:Place .
   { ?x rdfs:label "John"@en }
}

問題は、前の「場所」クエリでわかるように、Johnをパラメーターとして挿入したことです。これは地名ではなく人の固有名ですが、次のような奇妙な結果が得られます: callret-0: 81900104

問題は、このように前の 2 つのクエリの出力を比較すると、John は人の名前ではなく場所のように見えることです。これは私のスコープには適していません。私は他の個人名で試してみましたが、場所のクエリが名前のクエリよりも大きな出力を与えることが常に起こります.

なんで?私は何が欠けていますか?クエリにエラーはありますか? 正しい結果を得るにはどうすれば解決できますか?

4

1 に答える 1