codeformunich / muenchen-transparent

Ein alternatives Ratsinformationssystem mit E-Mail-Benachrichtigungen, Volltextsuche und vielem mehr.
https://www.muenchen-transparent.de
GNU Affero General Public License v3.0
50 stars 8 forks source link

OParl: `originatorPerson` and `originatorOrganization` missing for `Paper` #160

Open darkdragon-001 opened 1 year ago

darkdragon-001 commented 1 year ago

See OParl specification for Paper.

CatoTH commented 1 year ago

Ok I added them where I easily could.

So where it works: https://www.muenchen-transparent.de/oparl/v1.0/paper/7212230

Where it does not: https://www.muenchen-transparent.de/oparl/v1.0/paper/7332508 Reason being that original RIS mixes persons and organizations here (https://risi.muenchen.de/risi/antrag/detail/7332508 vs. https://risi.muenchen.de/risi/antrag/detail/7212230 , which is why organizations have a rather ambiguous live in München Transparent, too. I never got to normalize that properly).

PS: I'm still curious to know what the API is actually used for :)

darkdragon-001 commented 1 year ago

Thanks a lot :heart_eyes:

You are missing the organization sub-type (usually fraktion/). For your linked paper https://www.muenchen-transparent.de/oparl/v1.0/paper/7212230, the originatorOrganization is shown as https://www.muenchen-transparent.de/oparl/v1.0/organization/7072308 but should be https://www.muenchen-transparent.de/oparl/v1.0/organization/fraktion/7072308.

Maybe in the parser we could for both "Initiative" and "Gestellt von" first search for the string in organizations' names and if they are not found, fallback to persons? For storage, we would probably need an additional relation between paper and organizations instead of the current only paper and people. In addition we should also keep the organization guessing as currently.

PS: I would like to create a motion (Antrag) search engine for the party Volt where we can search all motions created by its members in all over Germany. This is also a good reason to push implementation of OParl in cities which don't support OParl yet :wink: So far it is just an idea but if I/we find enough time to finish some working version, we will publish it as OpenSource. But so far it is just an idea. So keep your expectations low.

CatoTH commented 1 year ago

Okay, I fixed the link (hopefully), by adding fraktion.

darkdragon-001 commented 1 year ago

Thanks for the quick fix!

I think a more elaborate parser (e.g. as I outlined above) would be really helpful. Having no data even though something is published on the original RIS is very suboptimal and will cause too many misses when searching for all papers for some person or organization...

darkdragon-001 commented 1 year ago

I asked about the reason for the following three different implementation:

  1. Gestellt von Fraktion: https://risi.muenchen.de/risi/antrag/detail/7332508
  2. Gestellt von Personen: https://risi.muenchen.de/risi/antrag/detail/7212230
  3. Gestellt von Fraktion, Initiative Personen: https://risi.muenchen.de/risi/antrag/detail/7353552

and got a response outlining why they exist and therefore are meant to stay there in the foreseeable future:

hierbei handelt es sich [...] um die Abbildung der politischen Stadtratsarbeit in Form von unterschiedlichen Stadtratsanträgen bzw. -anfragen.

Die Stadträt*innen können in eigener Sache Anträge bzw. Anfragen an die Verwaltung stellen, wenn sie dies tun wollen, Fall 2.

Beschließt eine Fraktion bzw. eine Gruppierung die Antrags- bzw. Anfrageinitiative einiger Stadträte zu unterstützen, wird daraus ein Fraktionsantrag, der aus der Initiative dieser Stadträt*innen entstand, Fall 3.

Beschließen alle Stadträt*innen einer Fraktion bzw. Gruppierung in einer Sitzung einen Antrag bzw. eine Anfrage an die Verwaltung zu stellen, handelt es sich um einen reinen Fraktionsantrag. Fall 1.

darkdragon-001 commented 1 year ago

@CatoTH Do you think it would be possible to improve the parser as outlined above?

Maybe in the parser we could for both "Initiative" and "Gestellt von" first search for the string in organizations' names and if they are not found, fallback to persons? For storage, we would probably need an additional relation between paper and organizations instead of the current only paper and people. In addition we should also keep the organization guessing as currently.

This way, at least new entries would be saved appropriately. Once that's done, we need to apply the same logic to previous entries in the database to clean it up.

darkdragon-001 commented 1 year ago

@CatoTH any updates?

CatoTH commented 1 year ago

Sorry for not responding very timely these day, I'm really flooded with things to do these weeks, which will probably not get any better before December. So I will probably not be able to spend a lot of time into this project before then...

darkdragon-001 commented 1 year ago

@CatoTH Just read an article about OParl, München Transparent and you on netzpolitik.org 🎉

When you find some time to spend on this project again, please keep this issue in mind. This is the last remaining blocker before I can start using OParl with this project.