0

SPARQL クエリを使用して DBpedia から米国内の場所のリストを取得できますか? 次のクエリを試してみましたが、(設計上) 英語の要約のみが表示されます。アメリカの地名が知りたいです。どうすればこれを達成できますか?

SELECT ?abstract
FROM NAMED <http://dbpedia.org>
WHERE { <http://dbpedia.org/resource/Lists_of_populated_places_in_the_United_States> <http://dbpedia.org/ontology/abstract> ?abstract.
FILTER langMatches( lang(?abstract), 'en') }
4

1 に答える 1

2

通常、これらのクエリのいくつかを反復的に記述し、データを調べていくのが最も簡単です。たとえば、この場合、次のように開始できます。

select ?place where {
  ?place a dbpedia-owl:PopulatedPlace
}
limit 100

SPARQL の結果

これは米国内の場所だけではありませんが、該当する場所が見つかるまで検索結果を閲覧できます。次に、それを調べて、そのような場所を特定する方法を確認できます。この場合、Furnace, West Virginiaが見つかり、プロパティdbpedia-owl:countryの値dbpedia:United_Statesであることに注意してください。したがって、クエリを絞り込むことができます。

select ?place where {
  ?place a dbpedia-owl:PopulatedPlace ;
         dbpedia-owl:country dbpedia:United_States 
}
limit 100

SPARQL の結果

それははるかに良く見えますが、場所を識別する実際の IRI ではなく、場所の名前が必要だと言いました。フィルターに基づくと、英語の名前だけが必要なようです。次に、さらに絞り込みます。

select ?label where {
  ?place a dbpedia-owl:PopulatedPlace ;
         dbpedia-owl:country dbpedia:United_States ;
         rdfs:label ?label
  filter langMatches( lang(?label), 'en' )
}
limit 100

SPARQL の結果

これらの名前は、言語タグ付きリテラルです。文字列部分のみが必要な場合は、変数射影でそれを行うことができます。

select (str(?label) as ?strLabel) where {
  ?place a dbpedia-owl:PopulatedPlace ;
         dbpedia-owl:country dbpedia:United_States ;
         rdfs:label ?label
  filter langMatches( lang(?label), 'en' )
}
limit 100

SPARQL の結果

于 2014-09-13T03:37:05.260 に答える