Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

A new data platform for Parliament

Samu Lang at the 4th Parliament, data and democracy meetup

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

  • Be the first to like this

A new data platform for Parliament

  1. 1. A new data platform for Parliament
  2. 2. Cloud hosting – Azure
  3. 3. Database – Triplestore (GraphDB)
  4. 4. Orchestration – Workflow: Logic Apps
  5. 5. Orchestration – Transformation: Functions
  6. 6. Release – Managed with VSTS
  7. 7. Infrastructure as code – ARM templates and PowerShell scripts
  8. 8. Modelling – OWL Ontology in Turtle and visualized
  9. 9. Constituencies on beta.parliament.uk
  10. 10. PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX admingeo: <http://data.ordnancesurvey.co.uk/ontology/admingeo/> PREFIX : @schemaUri CONSTRUCT { ?constituencyGroup a :ConstituencyGroup ; :constituencyGroupEndDate ?endDate ; :constituencyGroupStartDate ?startDate ; :constituencyGroupName ?name ; :constituencyGroupOnsCode ?onsCode ; :constituencyGroupHasConstituencyArea ?constituencyArea ; admingeo:inEuropeanRegion ?region . ?region a admingeo:EuropeanRegion ; admingeo:gssCode ?regionCode ; skos:prefLabel ?regionName . ?constituencyGroup :constituencyGroupHasHouseSeat ?houseSeat . ?houseSeat a :HouseSeat ; :houseSeatHasSeatIncumbency ?seatIncumbency . ?seatIncumbency a :SeatIncumbency ; :incumbencyHasMember ?member ; :incumbencyEndDate ?seatIncumbencyEndDate ; :incumbencyStartDate ?seatIncumbencyStartDate . ?member a :Person ; :personGivenName ?givenName ; :personFamilyName ?familyName ; :memberHasMemberImage ?image ; <http://example.com/F31CBD81AD8343898B49DC65743F0BDF> ?displayAs ; :partyMemberHasPartyMembership ?partyMembership . ?image a :MemberImage . ?partyMembership a :PartyMembership ; :partyMembershipHasParty ?party . ?party a :Party ; :partyName ?partyName . } WHERE { BIND(@constituency_id AS ?constituencyGroup) SERVICE <http://data.ordnancesurvey.co.uk/datasets/os-linked-data/apis/sparql> { ?ordnanceSurveyConstituency admingeo:gssCode ?onsCode ; admingeo:inEuropeanRegion ?region . ?region a admingeo:EuropeanRegion ; admingeo:gssCode ?regionCode ; skos:prefLabel ?regionName . } ?constituencyGroup :constituencyGroupName ?name ; :constituencyGroupOnsCode ?onsCode ; :constituencyGroupStartDate ?startDate . OPTIONAL { ?constituencyGroup :constituencyGroupEndDate ?endDate . } OPTIONAL { ?constituencyGroup :constituencyGroupHasHouseSeat ?houseSeat . ?houseSeat :houseSeatHasSeatIncumbency ?seatIncumbency . ?seatIncumbency a :SeatIncumbency ; OPTIONAL { ?seatIncumbency :incumbencyEndDate ?seatIncumbencyEndDate . } OPTIONAL { ?seatIncumbency :incumbencyStartDate ?seatIncumbencyStartDate . } OPTIONAL { ?seatIncumbency :incumbencyHasMember ?member . OPTIONAL { ?member :personGivenName ?givenName . } OPTIONAL { ?member :personOtherName ?personOtherName . } OPTIONAL { ?member <http://example.com/F31CBD81AD8343898B49DC65743F0BDF> ?displayAs } . OPTIONAL { ?member :memberHasMemberImage ?image . } OPTIONAL { ?member :partyMemberHasPartyMembership ?partyMembership . FILTER NOT EXISTS { ?partyMembership a :PastPartyMembership . } OPTIONAL { ?partyMembership :partyMembershipHasParty ?party . OPTIONAL { ?party :partyName ?partyName . } } } } } } SPARQL query for the constituencies page
  11. 11. Collaboration – organizational VSTS and public GitHub
  12. 12. Constituency data on the API – Content-negotiation
  13. 13. Telemetry – Application Insights
  14. 14. Performance reporting – PowerBI
  15. 15. R&D – Photo background removal for member portraits
  16. 16. R&D – Data Toolkit (Power Apps)
  17. 17. People • Chris Alcock – developer • Matthieu Bosquet – automation engineer • Raphael Leung – developer • Mike Marcus – operations engineer • Kunal Patel – operations engineer • Wojciech Stawiarski – developer • Jianhan Zhu – developer

×