8

このクエリを使用して、国名でルーマニアの国を説明するリソースを取得しようとしています。

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX : <http://dbpedia.org/resource/>

SELECT DISTINCT ?x WHERE {
     ?x foaf:name 'Romania'
}

SPARQLの結果

ただし、何も取得しません。文字列でリソースhttp://dbpedia.org/resource/Romania( )を取得するにはどうすればよいですか。国のリソースで国の名前を取得する場合は、次のクエリを使用します。これは正常に機能します。:Romania'Romania'

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX : <http://dbpedia.org/resource/>

SELECT DISTINCT ?x WHERE {
     :Romania foaf:name ?x
}

SPARQLの結果

4

1 に答える 1

10

これはそれを行うべきです:

SELECT ?c
WHERE {
  ?c a dbo:Country ;
     foaf:name "Romania"@en .
  FILTER NOT EXISTS { ?c dbo:dissolutionYear ?y }
}

SPARQL の結果

ここでの重要な癖は、"Romania"言語タグがない場合と"Romania"@en. また、ルーマニアとも呼ばれる歴史的な州がたくさんあるため、何年にもわたって解散した州を除外します。DBpedia の解散から何年にもわたるデータの完全性はそれほど高くありませんが、少なくともルーマニアのデータはすべてマークされています。

于 2011-05-07T16:48:14.713 に答える