using clojure to marry neo4j and open democracy
DESCRIPTION
A more technologically in-depth look at how we can use Clojure and Neocons to integrate with Neo4j and increase transparency in UK politics.TRANSCRIPT
![Page 1: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/1.jpg)
Election Resultswith Neo4j
![Page 2: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/2.jpg)
Who am I?
• David Simons
• @SwamWithTurtles
• Software Developer
• … for a bespoke solutions provider Softwire (hint: we’re recruiting)
• … for fun
![Page 3: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/3.jpg)
![Page 4: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/4.jpg)
ACADEMIC WEBSITE
CONTAINING POORLY
FORMATTED DATA
DATA SCRAPER(PYTHON)
NEO4J
REST ENDPOINT(CLOJURE)
![Page 5: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/5.jpg)
![Page 6: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/6.jpg)
![Page 7: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/7.jpg)
![Page 8: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/8.jpg)
![Page 9: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/9.jpg)
![Page 10: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/10.jpg)
ring-clojure
![Page 11: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/11.jpg)
![Page 12: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/12.jpg)
![Page 13: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/13.jpg)
(let [env (str (get (System/getenv) "GRAPHENEDB_URL") "/db/data")]
(defn connection-string [] (nr/connect! env)))
(defn run-query [query] (connection-string) (cy/tquery query))
![Page 14: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/14.jpg)
(defn wardResults [year, areaId] (run-query ("MATCH (pa:party)<-[member_of]-(p:politician)-[r:stood_in]->(e:election)-[held_in]->(a:area),(e:election)-[during]->(y:year)WHERE y.name=\"" year "\" AND id(a)=" areaId " RETURN id(p), pa.name AS partyName, SUM(r.votes) AS numVotes")))
![Page 15: Using Clojure to Marry Neo4j and Open Democracy](https://reader036.vdocuments.site/reader036/viewer/2022062404/554d5e05b4c90578428b4b0a/html5/thumbnails/15.jpg)
github.com/pimterry/national-hack-the-government-2014/