popolo-project / popolo-spec

International legislative data specifications
http://www.popoloproject.com/
99 stars 18 forks source link

Attending event on somebody else's behalf #119

Open wfdd opened 8 years ago

wfdd commented 8 years ago

While parsing the Cypriot parliament's committee reports, I'd often find that non-members would attend committee meetings on a committee member's behalf, the latter - presumably - being away on official business. (The exact wording they use is "X, representing Y".) Seeing as attendees is a list of Persons, I don't suppose there's currently a way to express this relationship in Popolo. In general, it'd be useful to note when somebody attends an event in their capacity as a member of the organising organisation; as representing another member; or as a non-member.

jpmckinney commented 8 years ago

Yes, this happens in some US states as well. One option is to have an intermediate Attendance object between the Event and the Person - like how Membership is an intermediate object between Organization and Person. However, the case of people attending as themselves is so overwhelmingly common that I wouldn't want to make that common case more complicated.

Another option is to instead add a note on the event (instead of adding a note on an intermediate Attendance object) along the lines of "X is representing Y". This model is more complicated for the less common case where people attend on another's behalf.

What do you think?

wfdd commented 8 years ago

A free-form note? That sounds unideal; I'd rather be able to explicitly tie a Person to their attendance 'mode'. I mean - we'll have packaged the information, but we'll have failed to encode it.

jpmckinney commented 8 years ago

The note can be more structured. I don't mean using the note property that some classes have.

wfdd commented 8 years ago

Okay, so we'd basically be listing some people in two different places. That works I suppose.

jpmckinney commented 8 years ago

Yes, it would be a compromise between having a little more duplication in rare cases and having a lot more complexity in common cases.

wfdd commented 8 years ago

Something like this then?

attendance_details:
  - attendee_id: politician/a
    on_behalf_of_id: politician/b

... where items would be defined as:

properties:
  attendee_id:
    type: [string, 'null']
  attendee:
    $ref: http://www.popoloproject.com/schemas/person.json#
  on_behalf_of_id:
    type: [string, 'null']
  on_behalf_of:
    $ref: http://www.popoloproject.com/schemas/person.json#
  note:
    type: [string, 'null']

Thoughts?

jpmckinney commented 8 years ago

That looks good, though I'll try to think of a better term than attendance_details.

jpmckinney commented 7 years ago

ROLL UP

These are commonly referred to as substitutions in legislative contexts.

While the re-use of on_behalf_of is nice, the substitute doesn't necessarily have any obligation to the regular member. So, I prefer using a more neutral term.

Options are:

I think I would go with attendee and absentee, but would like some feedback on the terms. If we expect to re-use substitutions elsewhere, perhaps attendance terms are too specific.

Should add to documentation that the attendee list should have only attendees, not absentees.

wfdd commented 7 years ago

Could you provide an example of this?

jpmckinney commented 7 years ago

@wfdd

{
  "substitutions": [
    {
      "attendee_id": "person-that-is-attending",
      "absentee_id": "regular-member-who-cant-attend"
    }
  ]
}
wfdd commented 7 years ago

Thanks. Any suggestions on how to deal with non-members in attendance, where Membership information is otherwise unavailable?

jpmckinney commented 7 years ago

Can't such people simply be listed in an Event's attendees?