-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to best record number of seats in a Legislative Organization #99
Comments
The "full-fledged" approach is to create Posts, and to then count the number of Posts that are valid for a given date. Are you looking for a non-Post solution? |
Yes — many of the legislatures currently modelled with Popolo aren't using Posts, and I think it would be useful to get this sort of meta-information without switching to Posts becoming a requirement. Or, even if Posts are being used, you might want to note that the 17th Assembly had 115 seats, rather than the 110 there currently are, but not know what those extra seats were. |
Since the number of seats is more closely tied to the legislative period than to the organization, we might consider reflecting that in the model. What do you think of a legislative period having a {
... some other event properties ...
"post_counts": [
{
"organization_id": "house-of-commons",
"value": 338
},
{
"organization_id": "senate",
"value": 105
}
]
} |
At first glance I like the idea of having something similar to the I'm slightly confused, though, about what this looks like in a unicameral legislature, where it seems this would require duplicating the organization_id — for example with Greenland, below (which is a great example, as the number of seats changed in every term for almost 20 years...):
|
We could make the |
Would that be a more general extension of the implied-organization rule from "the ID of the containing document" to "the ID of the organization within the containing document"? That feels like it could have wider repercussions[1] if it's a general thing, but if it's a one-off thing for here, what about going even simpler, and having the basic case reduce to:
rather than
Or are you expecting that there would usually/often be other properties on the count too? [1] Not necessarily bad ones; it's just the sort of thing that gives me pause. |
Actually, thinking about that a little more, I suspect that might not really be a good idea. It would make it easier for humans to read and write, but would would make both creating and consuming more difficult for tools. (I don't actually know where Popolo aims to fall along that spectrum...) |
There shouldn't be two entirely different structures depending on whether it's bicameral or unicameral. Personally, I don't mind repeating Also, a PostCount, on its own outside the context of an Event, would have an |
Yes: though it's often a symptom that a concept is wrong or missing. Here it's not so much the repetition itself that concerns me as much as the reason for needing it: i.e. that for "Event X" with Presumably those would be restricted to Organizations that have "O" as a parent (perhaps through multiple levels), but there's still something about that seems a little odd. I've nothing better to add at the minute though, other than a gnawing sense that this isn't quite right. I'll think about it some more. |
A further thought on this: I used Greenland earlier as an example of somewhere that changed the number of seats fairly regularly for a while — but in most countries (including Greenland after that flurry of early changes), this is something that changes very infrequently, so having to repeat it for every legislative period is another bad smell. Is there the concept of things having a |
I'm also a little concerned about |
I think One way to avoid going down that rabbit hole is to allow for different kinds of counts, so it would again require a full object and look like a VoteCount, e.g. {
"role": "Member of Parliament",
"value": 308,
"valid_from": "2004-06-08",
"valid_until": "2015-10-18"
},
{
"role": "Member of Parliament",
"value": 338,
"valid_from": "2015-10-19"
},
{
"role": "Clerk",
"value": 1
}
} If we only ever expect to count one role per organization, then we shouldn't take this option. |
Just some inputs here: We use full fledged posts approach in Malaysia for MPs in Parliament: @tmtmtmtm point is valid here, Speaker may not be an MP. There is a Seat count and a Post count which mean different things for us. I like the role option. Interestingly we have a very different use case for our Senate. So we have a lot of Senators who are appointed for individual terms as they're not elected, and added/dropped quite often. A role count here would be very helpful for us: role: Senator There are a lot of different role counts, so we could check if any positions are missing at any time. |
What about adding a A use case that would benefit from that approach: There are 200 MPs in Czech parliament that are elected in 14 areas, about 15-25 MPs per area. The "full-fledged" model is to create 200 posts with the proper number of posts for each area. A simpler model is to create only 14 simultaneous posts. However, there is no information about cardinality of those simultaneous posts. The The total number of posts in an organization is available as sum of the posts' cardinalities. If you need to model only the total number of posts in an organization, you use a single post (e.g. "Member of parliament") with the proper total count. Changes in the number of posts in an organization over time would be modeled by creation of a new post for another period: Posts: {
"id": "mp-in-term/1979-05-01",
"name": "Member of Inatsisartut 1",
"organization_id": "inatsisartut",
"count": 21,
"start_date": "1979-05-01",
"end_date": "1983-04-11"
},
{
"id": "mp-in-term/1983-04-12",
"name": "Member of Inatsisartut 2",
"organization_id": "inatsisartut",
"count": 26,
"start_date": "1983-04-12",
"end_date": "1984-06-05"
} |
@girogiro Hmm, I considered that option in this message: https://groups.google.com/d/msg/poplus/FAAmhwOosns/tVtKqFRexC8J |
IMO, there is no need for a separate PostsSet class when simultaneous post is allowed. The optional |
The problem isn't limited to creating a new class. The post goes into detail on 5 or so use cases, for example, counting vacant seats, which requires new logic if |
Isn't the logic identical being Post a special case of PostSet with Actually, the above simultaneous post example contradicts with use case 4:
IMO, there is no need to distinguish between Post and PostsSet. No different logic is introduced with adding of the |
Yes, I was just thinking that after my last message. I need to revisit this issue when I have an opportunity to go through all the discussions and find the concensus. |
There are definitely advantages to @girogiro's suggestion here, but I'm not convinced that this approach really works that well in the case where the number of seats for an area can change over time — e.g. if Eastville had 7 seats in the 18th, 19th, and 21st Assembly, but 8 seats in the 20th. Having that be either 2 or 4 different Posts seems quite awkward, particularly when it comes to the sorts of queries to do with tracking membership of a Post over time. If we were taking this route, I'd like to see a solution that can leave "Member of Eastville" as a single post, with a way of tracking how many of those there were across different periods. |
A very common thing to want to know about a legislature/chamber is how many seats it has.
And whilst it would simple enough to shove a one-off property into the relevant Organization on a single-case basis, it would be nicer if there were a consistent way of doing this (especially as this is the sort of that can change over time, so really needs to be more than just a simple string to allow for dates, etc)
The text was updated successfully, but these errors were encountered: