HM Land Registry SPARQL查询多个邮政编码

时间:2017-07-24 11:09:34

标签: sparql

我列出了英格兰和威尔士每个太阳能农场约900个邮政编码。我想找到每个邮政编码的房价,看看太阳能农场实施后房价如何变化。

我是SPARQL的新手,不知道如何对所有邮政编码进行单一查询。如果有人能提供帮助就会很棒。

这是通过邮政编码进行搜索的链接:http://landregistry.data.gov.uk/app/qonsole

非常感谢。

1 个答案:

答案 0 :(得分:2)

看起来同一个端点不包含房价指数和邮政编码。但是,看起来不同enpoints中的资源是链接的,因此我们可以使用联合查询来组合信息:

prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix sr: <http://data.ordnancesurvey.co.uk/ontology/spatialrelations/>
prefix pc: <http://data.ordnancesurvey.co.uk/ontology/postcode/>
prefix ukhpi: <http://landregistry.data.gov.uk/def/ukhpi/>
prefix lrppi: <http://landregistry.data.gov.uk/def/ppi/>
prefix skos: <http://www.w3.org/2004/02/skos/core#>
prefix lrcommon: <http://landregistry.data.gov.uk/def/common/>

SELECT DISTINCT ?regionName ?postcode ?date ?ukhpi ?volume {
  SERVICE <http://data.ordnancesurvey.co.uk/datasets/os-linked-data/apis/sparql> {
    VALUES ?postcode {
      # Insert postcodes here (two example postcodes below)
      "NP20 5AW"
      "SW1W 0NY"
    }
    ?postcodeUri rdfs:label ?postcode ;
        pc:district ?ordnanceSurveyRegion .
  }

  ?region owl:sameAs ?ordnanceSurveyRegion .
  ?region rdfs:label ?regionName .
  FILTER (langMatches(lang(?regionName), "EN"))

  ?report
    ukhpi:refRegion ?region;
    ukhpi:refMonth ?date;
    ukhpi:housePriceIndex ?ukhpi.

  OPTIONAL { 
    ?report ukhpi:salesVolume ?volume 
  }
} ORDER BY DESC(?date)

在这里,我们查询军械测量终点以使用邮政编码获取区域(区),然后使用这些区域获得房价指数。

请注意,一次插入所有900个邮政编码对于端点来说可能太多了。

Try the query in Yasgui