簡體   English   中英

dbpedia SPARQL查詢以獲取給定城市的特定值

[英]dbpedia SPARQL query to get certain value's for a given city

我確信我想做的事情很簡單,但我似乎無法正確查詢。 我在數據集中有記錄,其中包含城市名稱,例如“紐約”,以及相應的國家/地區代碼,例如“美國”。 我還可以訪問完整的國家/地區名稱和國家ISO代碼。

我想通過使用where子句來獲取這些城市的人口和抽象價值,例如:

Get population where name = "New York" and isoCountryCode = "US"

我在這方面尋求幫助無濟於事。

到目前為止,我已經得到了@rohk對此查詢的良好幫助,該查詢並不能完全適用於所有位置:

SELECT DISTINCT ?city ?abstract ?pop
WHERE {
   ?city rdf:type schema:City ;
     rdfs:label ?label ;
     dbpedia-owl:abstract ?abstract ;
     dbpedia-owl:country ?country ;
     dbpedia-owl:populationTotal ?pop .
   ?country dbpprop:countryCode "USA"@en .
   FILTER ( lang(?abstract) = 'en' and regex(?label, "New York City"))
 }

以上適用於紐約,但是當我將其更改為:

SELECT DISTINCT ?city ?abstract ?pop
WHERE {
   ?city rdf:type schema:City ;
         rdfs:label ?label ;
         dbpedia-owl:abstract ?abstract ;
         dbpedia-owl:country ?country ;
         dbpedia-owl:populationTotal ?pop .
   ?country dbpprop:countryCode "THA"@en .
   FILTER ( lang(?abstract) = 'en' and regex(?label, "Bangkok"))
}

它沒有返回曼谷,泰國的結果。

我似乎無法使SPARQL查詢正確,我確信我對我的查詢很愚蠢。 如果有任何大師可以給我提供幫助,我會很感激。 謝謝!

我想你想要這樣的東西:

SELECT * WHERE {
  ?x rdfs:label "New York City"@en.
  ?x dbpedia-owl:populationTotal ?pop.
  ?x dbpedia-owl:abstract ?abstract.
}

要僅獲取英文摘要,請添加FILTER

SELECT * WHERE {
  ?x rdfs:label "New York City"@en.
  ?x dbpedia-owl:populationTotal ?pop.
  ?x dbpedia-owl:abstract ?abstract.
  FILTER (LANG(?abstract) = 'en')
}

“紐約”是州,並沒有populationTotal “紐約市”就是這座城市。

此查詢正在運行

SELECT DISTINCT *
WHERE {
   ?city rdf:type schema:City ;
         rdfs:label ?label ;
         dbpedia-owl:abstract ?abstract ;
         dbpedia-owl:country ?country ;
         dbpprop:website ?website ;
         dbpedia-owl:populationTotal ?pop .
   ?country dbpprop:countryCode "USA"@en .
   FILTER ( lang(?abstract) = 'en' and regex(?label, "New York City"))
}

編輯:對曼谷來說,有兩個問題:

  • 沒有泰國的國家代碼:您可以使用rdfs:label "Thailand"@en代替。
  • rdf:type曼谷的rdf:type不是schema:City而是dbpedia-owl:Settlement

這是曼谷的工作查詢

SELECT DISTINCT *
WHERE {
   ?city rdf:type dbpedia-owl:Settlement ;
         rdfs:label "Bangkok"@en ;
         dbpedia-owl:abstract ?abstract ;
         dbpedia-owl:populationTotal ?pop ;
         dbpedia-owl:country ?country ;
         dbpprop:website ?website .
   ?country rdfs:label "Thailand"@en .
   FILTER ( lang(?abstract) = 'en' )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM