This document provides an overview of ontologies, URLs, and registers used by the UK Parliament Domain Model. It explains that the domain model defines all the entities and relationships that exist for parliament, and that ontologies are used to formally define these types, properties, and relationships. URLs for the website API are designed based on the domain model and ontologies rather than user journeys. Registers are also discussed as being important components that are defined in the domain model.
2. The Domain Model
All of Parliament’s things
And how they’re connected
3. The Domain Model
UK Parliament Domain Model
WhatWho
Holds seat
Houses
Groups
Houses
Members
Commisions Committees
APPGs
Government
departments
Focus areas
Financial
Interests
Seats
Seat types
Roles
Membership
People
Parties
Whippings
Members officer
Lords
appointments
Organisations
Interest types
Public sector
organisations
Time
Time
Time
Posts
Scrutinises
Bills
Statutory instruments
Submitted
Initiated
Supported
Laid Depositied
Tablings
Askings
Signings
Sponserships
Ballot
Library deposits
Green papers
White papers
Praying period
Decision
Voiced
DivisionDiffered
Division
EDMs and petitions
Explanatory
notes
Explanatory
memorandum
Impact
assessment
Select
committee
Report
Note
Motion
Negative SIAffirmative SI
Approval
motion
Annulment
motion
Consideration
motion
Prayer
EDM
Take note
Regret
Paper Petition
Amendments
Bill stage
Bill stage: 1st
reading
Bill stage: 2nd
reading
Bill stage:
committee
stage
Bill stage:
report stage
Bill stage: 3rd
reading Bill
Bill version
EDMs and petitions
Legislation EU directive
Enabling
legislation
Statutory
instruments
Act
Amends (crud)
legislation
Statutory
instrument
Topic
Contributed
Oral Written
Withdrawings Evidence
Motion
Calendar
Business item
Approval debate
Annulment
debate
Consideration
debate
Urgent
Business
questions
Topic
Committee
Meeting
Evidence
sessions
Site visits
Royal assent
Monarch
Inquiry
Amendment
Report
Select committee
Bill related committee
Special committee
Public enquiry
Scrutiny
committee
General
committee
(commons)
Delegated
legislation
committee
6. Ontologies
“In computer science and information science,
an ontology is a formal naming and definition of
the types, properties, and interrelationships of
the entities that really or fundamentally exist for
a particular domain of discourse.”
https://en.wikipedia.org/wiki/Ontology_(information_science)
7. Ontologies
A bit like a relational database schema
Almost nothing like a relational database
schema
11. Ontologies define
All the types of things (classes)
All the possible relationships (predicates)
The domains and ranges of those predicates
(things at the end of a relationship)
21. The Domain Model
All of Parliament’s things
And how they’re connected
22. MNIS
id
member_id
constituency_id
entry_type_id
end_type_id (what does this point to?)
election_id
swear_in_order
title_id
forename
middle_names
surname
start_date
end_date
notes
updated_by
updated_at
is_standing_down
representations
id
member_id
constituency_id
election_id
updated_by
updated_at
contested_elections
id
name
updated_by
updated_at
entry_types
id
election_type_id
name
election_date
updated_by
updated_at
elections
id
name
updated_by
updated_at
election_types
id
constituency_id
election_id
electorate
outcome
is_notional
turnout
majority
party_id
updated_by
updated_at
constituency_results
id
constituency_result_id
name
member_id (not populated)
party
party_id
votes
result_change
rank_order
vote_share
updated_by
updated_at
constituency_candidates
ELECTIONS
id
forename
middle_names
surname
date_of_birth
date_of_death
town_of_birth
birth_country_id
gender
display_name
sort_name
full_display_name
date_of_retirement
notes
locked_by
locked_at
updated_by
updated_at
members
id
member_id
address_type_id
line1
line2
line3
line4
line5
postcode
other_address (used once - broken link)
phone
fax
email
note
is_preferred (nonsense)
is_web (nonsense)
updated_by
updated_at
addresses
id
name
is_physical_address (only used for
migration)
updated_by
updated_at
address_types
id
member_id
link_type_id
url
note
reponse_code
links
id
name
link_types
mi
gra
ted
CONTACT POINTS
id
committee_id
house_id
committee_house_memberships
id
opposition_role_id
department_id
updated_by
updated_at
opposition_role_departments
id
name
sort_name
constituency_type_id
locata_id
previous_constituency_id (not id)
old_doss_id
old_dis_id
clerks_constituency_id
clerks_constituency_name
gis_id
pca_code
pcon_name
os_name
start_date
end_date
updated_by
updated_at
created_from_constituency_id
ons_code
geometry
constituencies
id
name
updated_by
updated_at
constituency_types
id
name
notes
ons_area_id
area_type_id
updated_by
updated_at
areas
id
constituency_id
area_id
start_date (nonsense)
end_date (nonsense)
updated_by
updated_at
constituency_areas
du
pli
ca
tes
ev
ery
wh
ere
CONSTITUENCIES
id
name
updated_by
updated_at
area_types
id
member_id
house_id
start_date
end_date
end_reason_id
end_notes
updated_by
updated_at
house_memberships
id
name
updated_by
updated_at
houses
id
name
updated_by
updated_at
end_during_session
is_commons
is_lords
end_reasons
id
member_id
lords_house_membership_type_id
start_date
end_date
updated_by
updated_at
lords_house_memberships
id
name
abbreviation
description
overview_display_order
updated_by
updated_at
lords_house_membership_types
id
member_id
membership_status_type_id
start_date
end_date
updated_by
updated_at
membership_statuses
id
name
is_suspension
is_leave
is_disqualification
is_active
change_party_to_id
updated_by
updated_at
membership_status_types
id
membership_status_id
disqualification_type_id
updated_by
updated_at
disqualifications
id
name
display_text_on_hol_overview
updated_by
updated_at
disqualification_types
HOUSE MEMBERSHIPS
id
membership_status_id
updated_by
updated_at
leave_of_absences
id
membership_status_id
note
is_sitting
reason_url
reason_text
hansard_url
hansard
sitting_days
calendar_days
updated_by
updated_at
suspensions
id
name
url (to old cms)
date_lords_appointed
date_commons_appointed
phone
start_date
end_date
is_commons (should be join)
is_lords (should be join)
committee_type_id
parent_committee_id
created_from_committee_id < null
updated_by
updated_at
committees
id
start_date
end_date
end_note
is_ex_officio
is_alternate
is_co_opted
commitee_id
member_id
updated_by
updated_when
committee_memberships
id
committee_id
url
response_code
committee_links
id
name
updated_by
updated_at
committee_types
id
name
abbreviation
initials
colour
text_colour
low_res_logo
high_res_logo
is_commons
is_lords
old_dis_id
hol_main_party
hol_order
high_res_mime_type
low_res_mime_type
hol_is_spiritual_side
updated_by
updated_at
parties
GROUPS AND MEMBERSHIPS
id
name
party_id
start_date
end_date
updated_by
updated_at
party_sub_types
id
member_id
party_id
party_sub_type_id
start_date
end_date
notes
sits_opposite_side_to_party
updated_by
updated_at
party_memberships
id
committee_membership_id
start_date
end_date
updated_by
updated_at
committee_chairships
id
committee_id
name
start_date
end_date
updated_by
updated_at
committee_clerks
id
member_id
parliamentary_role_id
start_date
end_date
end_note
is_unpaid
is_joint
email
note
laying_minister_name
updated_by
updated_at
parliamentary_posts
id
name
parliamentary_rank_id
is_excluded_from_count
is_promotion
start_date
end_date
is_commons
is_lords
hansard_name
is_laying_minister
capitalise_for_yellow_list
yellow_list_name
updated_by
updated_at
parliamentary_roles
id
name
is_promotion
updated_by
updated_at
parliamentary_ranks
id
member_id
opposition_role_id
start_date
end_date
end_note
is_unpaid
is_joint
email
note
updated_by
updated_at
opposition_postsid
name
description
cabinet_rank
is_promotion
start_date
end_date
cabinet_id
opposition_rank_id
hansard_name
capitalise_for_yellow_list
yellow_list_name
updated_by
updated_at
opposition_roles
id
name
ministerial_rank
stats_rank
clerks_rank
order_rank
updated_by
updated_at
opposition_ranks
id
name
ordinal
is_government
is_opposition
updated_by
updated_at
cabinets
id
member_id
government_role_id
start_date
end_date
end_note
is_unpaid
is_joint
email
note
laying_minister_name
department_id
updated_by
updated_at
government_posts
id
name
government_rank_id
is_promotion
cabinet_rank
cabinet_id
start_date
end_date
hansard_name
is_laying_minister
capitalise_for_yellow_list
yellow_list_name
updated_by
updated_at
government_roles
id
name
ministerial_rank
stats_rank
clerks_rank
order_rank
updated_by
updated_at
government_ranks
id
name
alpha_name
acronym
sort_order
line1
line2
line3
line4
line5
postcode
other_address
phone
email
url
has_minister
has_secretary
start_date
end_date
sort_order_opposition
updated_by
updated_at
departments
id
government_role_id
department_id
updated_by
updated_at
government_role_departments
id
name
sort_name
target
gender
oral_days_notice
is_answer_substantive
is_answer_topical
is_answer_ordinary
named_day
department_id
show_name
show_in_title
short_name
updated_by
updated_at
answering_bodies
id
name
parliament_type_id
notes
country_id
updated_by
updated_at
other_parliaments
id
name
updated_by
updated_at
parliament_types
id
member_id
other_parliament_id
note
start_date
end_date
updated_by
updated_at
member_other_parliaments
id
member_id
title_id
forename
middle_names
surname
note
added_when
removed_when
updated_by
updated_at
member_staffs
id
member_id
reference_type_id
reference
updated_by
updated_at
member_references
id
name
updated_by
updated_at
reference_types
EXTERNAL IDENTIFIERS
id
policy_interest_type_id
member_id
entry
updated_by
updated_at
policy_interests
id
type
sort_order
is_commons
is_lords
updated_by
updated_at
policy_interest_types
id
member_id
experience_type_id
title
organisation
start_date_day
start_date_month
start_date_year
end_date_day
end_date_month
end_date_year
updated_by
updated_at
experiences
id
name
updated_by
updated_at
experience_types
id
member_id
financial_interest_type_id
commons_register_publication_id
interest
interest_created
interest_amended
interest_deleted
registered_late
last_amendment
last_amendment_type
is_correction
notes
parent_member_interest_id
show_created_date
updated_by
updated_at
financial_interests
id
name
description
sort_order
is_commons
is_lords
start_date
end_date
can_have_children
updated_by
updated_at
financial_interest_types
id
publication_date
notes
updated_by
updated_at
commons_register_publications
INTERESTS
id
member_id
financial_interest_type_id
commons_register_publication_id
interest
interest_created
interest_amended
interest_deleted
registered_late
last_amendment
last_amendment_type
is_correction
notes
parent_pending_interest_id
show_created_date
is_new_interest
updated_by
updated_at
pending_financial_interests
id
interest
unique_policy_interests
id
member_id
unique_policy_interest_id
members_unique_policy_interests
id
policy_interet_type_id
house_id
policy_interest_type_house_membershi
ps
id
honorary_prefix_type_id
house_id
honorary_prefix_type_house_members
hips
id
party_id
house_id
party_house_memberships
id
parliamentary_role_id
house_id
parliamentary_role_house_membership
s
id
financial_interest_type_id
house_id
financial_interest_type_house_member
ships
id
member_id
title_id
forename
middle_names
surname
suffix
note
start_date
end_date
display_name
sort_name
full_display_name
address_as
updated_by
updated_at
preferred_names
id
preferred_name_id
honorary_prefix_type_id
updated_by
updated_at
honorary_prefixes
id
name
description
is_commons
is_lords
abbreviation
prefix_order
prefix_as_suffix
updated_by
updated_at
honorary_prefix_types
id
preferred_name_id
title
lords_rank_id
use_of
use_the
prenominal
cardinality
is_primary_title
is_known_as
is_by_virtue
sits_as
is_other_title
other_title
date_of_announcement
date_of_introduction
date_of_writ
is_writ_am
updated_by
updated_at
lords_preferred_names
name
abbreviation
updated_by
updated_at
lords_ranks
NAMES
id
member_id
honour_type_id
honour_list_id
other_honour
note
start_date
end_date
updated_by
updated_at
honours
id
name
abbreviation
honour_category_id
rank
is_promoted
updated_by
updated_at
honour_types
id
name
updated_by
updated_at
honour_categories
id
name
updated_by
updated_at
honour_lists
id
honorary_prefix_type_id
title_id
updated_by
updated_at
honorary_prefix_exclude_titles
id
name
updated_by
updated_at
titles
id
is_united_kingdom
name
updated_by
updated_at
countries
id
member_id
publication
url
updated_by
updated_at
obituaries
id
member_id
date
updated_by
updated_at
lords_oaths
RANDOM CRAP
id
dissolution_date
dissolutions
id
member_id
speech_date
hansard
subject
house_id
note
url
updated_by
updated_at
maiden_speeches
23. Parliament things?
id
member_id
constituency_id
entry_type_id
end_type_id (what does this point to?)
election_id
swear_in_order
title_id
forename
middle_names
surname
start_date
end_date
notes
updated_by
updated_at
is_standing_down
representations
id
member_id
constituency_id
election_id
updated_by
updated_at
contested_elections
id
name
updated_by
updated_at
entry_types
id
election_type_id
name
election_date
updated_by
updated_at
elections
id
name
updated_by
updated_at
election_types
id
constituency_id
election_id
electorate
outcome
is_notional
turnout
majority
party_id
updated_by
updated_at
constituency_results
id
constituency_result_id
name
member_id (not populated)
party
party_id
votes
result_change
rank_order
vote_share
updated_by
updated_at
constituency_candidates
ELECTIONS
id
opposition_role_id
department_id
updated_by
updated_at
opposition_role_departments
id
name
sort_name
constituency_type_id
locata_id
previous_constituency_id (not id)
old_dods_id
old_dis_id
clerks_constituency_id
clerks_constituency_name
gis_id
pca_code
pcon_name
os_name
start_date
end_date
updated_by
updated_at
created_from_constituency_id
ons_code
geometry
constituencies
id
name
updated_by
updated_at
constituency_types
id
name
notes
ons_area_id
area_type_id
updated_by
updated_at
areas
id
constituency_id
area_id
start_date (nonsense)
end_date (nonsense)
updated_by
updated_at
constituency_areas
duplic
ate
s
every
where
id
postcode
ons_constituency
os_ward
os_easting
os_northing
eer
outward_code
constituency_id
postcode_district_id
postcodes
id
district
postcode_districts
CONSTITUENCIES
id
name
updated_by
updated_at
area_types
id
name
url (to old cms)
date_lords_appointed
date_commons_appointed
phone
start_date
end_date
is_commons (should be join)
is_lords (should be join)
committee_type_id
parent_committee_id
created_from_committee_id < null
updated_by
updated_at
committees
id
start_date
end_date
end_note
is_ex_officio
is_alternate
is_co_opted
commitee_id
member_id
updated_by
updated_when
committee_memberships
id
committee_id
url
response_code
committee_links
id
name
updated_by
updated_at
committee_types
id
name
abbreviation
initials
colour
text_colour
low_res_logo
high_res_logo
is_commons
is_lords
old_dis_id
hol_main_party
hol_order
high_res_mime_type
low_res_mime_type
hol_is_spiritual_side
updated_by
updated_at
parties
GROUPS AND MEMBERSHIPS
id
name
party_id
start_date
end_date
updated_by
updated_at
party_sub_types
id
member_id
party_id
party_sub_type_id
start_date
end_date
notes
sits_opposite_side_to_party
updated_by
updated_at
party_memberships
id
committee_membership_id
start_date
end_date
updated_by
updated_at
committee_chairships
id
committee_id
name
start_date
end_date
updated_by
updated_at
committee_clerks
id
member_id
parliamentary_role_id
start_date
end_date
end_note
is_unpaid
is_joint
email
note
laying_minister_name
updated_by
updated_at
parliamentary_posts
id
name
parliamentary_rank_id
is_excluded_from_count
is_promotion
start_date
end_date
is_commons
is_lords
hansard_name
is_laying_minister
capitalise_for_yellow_list
yellow_list_name
updated_by
updated_at
parliamentary_roles
id
name
is_promotion
updated_by
updated_at
parliamentary_ranks
id
member_id
opposition_role_id
start_date
end_date
end_note
is_unpaid
is_joint
email
note
updated_by
updated_at
opposition_postsid
name
description
cabinet_rank
is_promotion
start_date
end_date
cabinet_id
opposition_rank_id
hansard_name
capitalise_for_yellow_list
yellow_list_name
updated_by
updated_at
opposition_roles
id
name
ministerial_rank
stats_rank
clerks_rank
order_rank
updated_by
updated_at
opposition_ranks
id
name
ordinal
is_government
is_opposition
updated_by
updated_at
cabinets
id
member_id
government_role_id
start_date
end_date
end_note
is_unpaid
is_joint
email
note
laying_minister_name
department_id
updated_by
updated_at
government_posts
id
name
government_rank_id
is_promotion
cabinet_rank
cabinet_id
start_date
end_date
hansard_name
is_laying_minister
capitalise_for_yellow_list
yellow_list_name
updated_by
updated_at
government_roles
id
name
ministerial_rank
stats_rank
clerks_rank
order_rank
updated_by
updated_at
government_ranks
id
name
alpha_name
acronym
sort_order
line1
line2
line3
line4
line5
postcode
other_address
phone
email
url
has_minister
has_secretary
start_date
end_date
sort_order_opposition
updated_by
updated_at
departments
id
government_role_id
department_id
updated_by
updated_at
government_role_departments
id
name
sort_name
target
gender
oral_days_notice
is_answer_substantive
is_answer_topical
is_answer_ordinary
named_day
department_id
show_name
show_in_title
short_name
updated_by
updated_at
answering_bodies
id
name
parliament_type_id
notes
country_id
updated_by
updated_at
other_parliaments
id
name
updated_by
updated_at
parliament_types
id
member_id
other_parliament_id
note
start_date
end_date
updated_by
updated_at
member_other_parliaments
24. Parliament things?
Political parties
Constituencies
Boundaries
Elections
Government departments, positions, roles
25. Registers
Canonical lists you can trust
Authority files
Distributed to where authority lives
Single source of truth
Cuts the costs of multiple data maintainers /
systems
26. Registers
How can we do less?
How can we do our bits better?
How can we collaborate?