2017-07-24 4 views
1

Ich habe eine Liste von etwa 900 Postleitzahlen für jeden Solarpark in England und Wales. Ich würde gerne die Hauspreise für jede Postleitzahl finden, um zu sehen, wie sich die Hauspreise nach der Implementierung der Solarparks verändert haben könnten.HM Land Registry SPARQL Abfrage für mehrere Postleitzahlen

Ich bin neu bei SPARQL und habe keine Ahnung, wie man eine einzige Abfrage für alle Postleitzahlen durchführt. Wenn jemand helfen kann, wäre es großartig.

Dies ist der Link zur Suche über die Postleitzahl: http://landregistry.data.gov.uk/app/qonsole.

Vielen Dank.

+0

Wahrscheinlich sollten Sie nur die Zeile auskommentieren, die mit 'values' beginnt (plazieren Sie' # 'vor dieser Zeile). –

+0

ok ich werde es versuchen, und wo gebe ich die Liste der Postleitzahlen ein? – rjo93

+0

Nun, haben Sie eine Idee, wie man auf eine einzige Abfrage für eine einzige Postleitzahl? –

Antwort

2

Es sieht nicht so aus, als ob derselbe Endpunkt sowohl den Hauspreisindex als auch die Postleitzahlen enthält. Allerdings sieht, wie die Ressourcen in verschiedenen enpoints verknüpft sind, so können wir eine föderierte Abfrage verwenden, um die Informationen zu kombinieren:

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) 

Hier fragen wir die Ordnance Survey Endpunkt der Regionen (Kreis) mit Postleitzahlen zu bekommen, und dann Holen Sie sich die Hauspreisindizes mit diesen Regionen.

Beachten Sie, dass das Einfügen aller 900 Postleitzahlen auf einmal zu viel für den Endpunkt sein kann.

Try the query in Yasgui.

+0

danke, dass es wirklich gut funktioniert hat, ich möchte auch jede einzelne Transaktion in jeder Postleitzahl abrufen, wie kann ich das tun? – rjo93

+0

Wenn Sie nur alle Transaktionen einschließen, sind nicht alle Transaktionen für jeden Wohnungsindexbericht relevant. Ich nehme an, Sie könnten den Transaktionen nach Datum beitreten, aber wie berichtet der Wohnungsindex Monate ('refMonth'), die sich auf die Transaktionsdaten beziehen? – evsheino

Verwandte Themen