Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 27 additions & 14 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,15 @@ since the rows differ in the image cell.
confirm — still linked (the office data is incomplete: officials come from Wikidata, and
people change roles), marked weaker. Namesakes the office cannot separate stay unlinked;
nothing is fuzzy. VTEK lists every unconfirmed match in `cache/person-matches-to-review.csv`.
**Lifetime guard**: a person whose `schema:deathDate` (Wikidata P570, carried by
`seimas/alignments.trig` and loaded by every matcher) precedes the source's date is no
candidate at all — so a 2020 candidate cannot match a namesake who died in 2011; the living
namesake, if unique, still resolves. Persons the exact-label reconciliation cannot align
(LRS and Wikidata spell the name differently, e.g. the Polish "Jaroslaw Narkiewicz" vs
"Jaroslav Narkevič") are aligned by hand in `etl/seimas/data/wikidata-alignments.csv`
(asmens_id → QID), so the officials pipeline reuses the Seimas person instead of minting
a duplicate; the Lithuanian spelling then goes into `etl/declarations/data/aliases.csv`
(shared by VMI and VTEK) and `etl/elections/data/person-aliases.csv`.
The SHACL shapes require the method on these links (campaign participants: optional until
the next VRK harvest rebuilds campaign-finance.trig). Investigative queries that name people
should filter to `name-and-office` or check the `exact-name` rows by hand. Their precision
Expand Down Expand Up @@ -583,11 +592,11 @@ bills of which 799 member-initiated, 9 stages, every agenda/bill/vote link resol
from the 2026-10-19 VMI harvest: 84 queries / 2 761 published rows -> 2 213 declarations of 455
persons (1 953 of 360 without the officials), 23 asset categories, amounts LTL for reporting years
<= 2014 (1 533) and EUR since (9 649), group-506 unmatched rows only for declarants absent from persons/ plus Mažylis 2025, 548 unmatched rows
in all — 320 of them vice-ministers (group 519, no source); officials: 350 persons (161 reusing a
Seimas person, 189 new) with 492 offices since 1990-03-11 — 7 President, 263 Government, 134 mayor,
in all — 320 of them vice-ministers (group 519, no source); officials: 350 persons (162 reusing a
Seimas person, 188 new) with 492 offices since 1990-03-11 — 7 President, 263 Government, 134 mayor,
88 MEP; elections: 2 elections
(2020, 2024) / 142 constituency contests / 273 contest rounds / 1 719 candidate results, 680 resolved to
persons/ — every winner, else the build fails — / 2 272 party-list results / 140 boundaries, the diaspora
(2020, 2024) / 142 constituency contests / 273 contest rounds / 1 719 candidate results, 678 resolved to
persons/ (2 namesakes of dead members refused by the lifetime guard) — every winner, else the build fails — / 2 272 party-list results / 140 boundaries, the diaspora
constituency Nr. 71 has none; campaign finance from the 2026-10-20 VRK harvest, Seimas campaigns: 1 883
participants of 15 campaigns (5 general elections 2008–2024 + by-elections) — 98 → parties/, 1 616 VRK
candidates, 725 → persons/, 485 → election-results/ (the VRK candidate id = the ArcGIS photo id, 1 719/1 719),
Expand All @@ -607,11 +616,12 @@ restate the whole value), every one with a buyer and a contractor; 2 077 of 2 80
0 dangling calendar days; VTEK from the
2026-10-21 harvest: 427 lobbyists (422 listed + 5 UNLISTED stubs; 230 with a JAR code, 5 natural ones
-> persons/), 2 271 lobbying declarations (1 833 transparency + 438 influence; 388 cite 181 Seimas bills;
3 103 contacts, 1 076 -> persons/ (1 015 name-and-office, 61 exact-name), 2 509 -> an institution),
3 103 contacts, 1 076 -> persons/ (1 015 name-and-office, 59 exact-name, 2 alias), 2 509 -> an institution),
PINREG complete: 244 of 244 declarations (229 declarants -> persons/: 223 name-and-office,
6 exact-name), 865 ties incl. workplaces (596 legal-entity ties); 67 VTEK person matches to review;
5 exact-name, 1 alias), 865 ties incl. workplaces (596 legal-entity ties); 64 VTEK person matches to review;
declarants matched 2 005 name-and-office / 195 exact-name / 13 alias; VRK candidate results
439 / 234 / 7; 19 officials' offices attributed to a Seimas person by exact-name; legal-entities/ links dangle until the full JAR
439 / 232 / 7; 13 officials' offices attributed to a Seimas person by exact-name; Seimas persons
aligned to Wikidata: 758 of 831 (73 unmatched in `cache/unmatched-persons.csv`), 148 with a death date; legal-entities/ links dangle until the full JAR
is loaded, bills/ links until `make -C etl/seimas bills`; NŽT land acquisitions
(2026-10-20 feed): 139 711 applications -> 17 842 legal-entity application documents (applicant
checks: 15 387 atitinka / 14 neaisku / 96 neatitinka / 1 370 nepatikrinama / 245 nerasta-registre /
Expand All @@ -628,29 +638,32 @@ With SODRA_CUBE=1 the overlay adds 12 chunks (1 254 110 monthly observations, ~7
employer until the full JAR register is loaded — expected, not an error.
`python3 queries/render-examples.py` re-runs all example queries end-to-end.
Name-based person links, audited 2026-10-21 (`make -C etl/audit score` over the 400-link sample in
`etl/audit/reviews/`, verdicts filled; 0 wrong in 50 means precision >= 92.9 %):
`etl/audit/reviews/`, verdicts filled; 0 wrong in 50 means precision >= 92.9 %; the `links` column is the
population after the fixes below, `reviewed` the sample as drawn before them):

| link type | method | links | reviewed | wrong | unsure | precision | 95 % interval |
|---|---|---:|---:|---:|---:|---:|---|
| lobbying-contacts | exact-name | 61 | 50 | 0 | 0 | 100.0% | 92.9% – 100.0% |
| lobbying-contacts | exact-name | 59 | 50 | 0 | 0 | 100.0% | 92.9% – 100.0% |
| lobbying-contacts | name-and-office | 1015 | 50 | 0 | 0 | 100.0% | 92.9% – 100.0% |
| lobbyists | exact-name | 5 | 5 | 0 | 1 | 100.0% | 51.0% – 100.0% |
| officials-offices | exact-name | 19 | 19 | 0 | 0 | 100.0% | 83.2% – 100.0% |
| pinreg-declarants | exact-name | 6 | 6 | 0 | 0 | 100.0% | 61.0% – 100.0% |
| officials-offices | exact-name | 13 | 19 | 0 | 0 | 100.0% | 83.2% – 100.0% |
| pinreg-declarants | exact-name | 5 | 6 | 0 | 0 | 100.0% | 61.0% – 100.0% |
| pinreg-declarants | name-and-office | 223 | 50 | 0 | 0 | 100.0% | 92.9% – 100.0% |
| vmi-declarants | alias | 13 | 13 | 0 | 0 | 100.0% | 77.2% – 100.0% |
| vmi-declarants | exact-name | 195 | 50 | 0 | 0 | 100.0% | 92.9% – 100.0% |
| vmi-declarants | name-and-office | 2005 | 50 | 0 | 0 | 100.0% | 92.9% – 100.0% |
| vrk-candidates | alias | 7 | 7 | 0 | 0 | 100.0% | 64.6% – 100.0% |
| vrk-candidates | exact-name | 234 | 50 | 1 | 0 | 98.0% | 89.5% – 99.6% |
| vrk-candidates | exact-name | 232 | 50 | 1 | 0 | 98.0% | 89.5% – 99.6% |
| vrk-candidates | name-and-office | 439 | 50 | 0 | 0 | 100.0% | 92.9% – 100.0% |

The one wrong link: the 2020 LSDDP candidate "Jonas KUBILIUS" -> `persons/122/`, the mathematician
(Seimas 1992–1996, died 2011) — `exact-name` has no date check against a person's lifetime or last
seat, so a candidate can match a long-dead namesake. The audit also surfaced a duplicate person:
the officials pipeline minted `persons/Q1282407/` "Jaroslav Narkevič" beside the Seimas
`persons/12253/` "Jaroslaw Narkiewicz" (the feed's Polish spelling), so his PINREG declaration and a
lobbying contact link to the duplicate. Both are open data fixes (an alias for the Polish spelling,
a lifetime/last-seat guard for `exact-name`), not audit errors.
lobbying contact link to the duplicate. Both were fixed after the audit (the curated Wikidata alignment + aliases for the Polish
spelling; the lifetime guard above, which also refused a second unsampled link: the Greens' 2020
candidate "Algirdas GRICIUS" -> the member who died in 2013) — the committed review files keep
the links as sampled.
SHACL shapes describe *current* data — if `make` fails the shapes check after a
mapping change, update `etl/shapes/<domain>.ttl` in the same commit.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ kalba (kaip SQL reliacinėms DB). Pavyzdžiai — [žemiau](#ką-jau-galima-atsa
|---|---|---|
| [`admin-units`](datasets/current/admin-units/) | 10 apskričių, 60 savivaldybių, 584 seniūnijos, 26 229 gyvenamosios vietovės ir 61 149 gatvės (`streets`) | Adresų registras per [get.data.gov.lt](https://get.data.gov.lt/) |
| [`seimas`](datasets/current/seimas/) | 831 visų kadencijų nuo 1990 m. Seimo narys (148 — dabartinėje) su ~21 000 kadencijų, pareigų ir narysčių (galiojimo intervalai), 394 padaliniai (frakcijos, komitetai, komisijos, parlamentinės grupės), 66 partijos, 771 vienmandatė apygarda (pagal kadenciją); Seimo kalendorius nuo 1990 m.: 10 kadencijų, 131 sesija ir 4 771 plenarinis posėdis su protokolais ir stenogramomis; pasirinktinai (`make -C etl/seimas votes`, numatytai — dabartinė kadencija) plenarinių posėdžių balsavimai: 10-ojoje kadencijoje 5 633 balsavimai su ~336 000 Seimo narių individualių balsų (už / prieš / susilaikė); pasirinktinai (`make -C etl/seimas bills`, ta pati kadencija) teisės aktų projektai ir svarstyti klausimai: 10-ojoje kadencijoje 2 086 projektai (799 — Seimo narių inicijuoti, su iniciatoriais) ir 4 766 plenariniuose posėdžiuose svarstyti klausimai su stadija, svarstytais projektais, kalbėjusiais Seimo nariais ir e-seimas dokumentu; balsavimai susieti su klausimu, kuriuo balsuota | [apps.lrs.lt](https://www.lrs.lt/) XML API |
| [`officials`](datasets/current/officials/) | viešųjų pareigų ėjimas nuo 1990-03-11: 7 Respublikos Prezidento kadencijos (su laikinai einančiais pareigas), 263 Ministro Pirmininko ir ministrų pareigų laikotarpiai, 134 merų kadencijos ir 88 Lietuvoje išrinktų EP narių mandatai — iš viso 350 asmenų: 161 jau yra Seimo narių rinkinyje (jų pareigos prijungiamos prie to paties asmens), 189 nauji | [Wikidata](https://www.wikidata.org/) (Prezidentas, Vyriausybė, merai; CC0) + [Europos Parlamento atvirieji duomenys](https://data.europarl.europa.eu/) (EP nariai; CC BY 4.0) |
| [`officials`](datasets/current/officials/) | viešųjų pareigų ėjimas nuo 1990-03-11: 7 Respublikos Prezidento kadencijos (su laikinai einančiais pareigas), 263 Ministro Pirmininko ir ministrų pareigų laikotarpiai, 134 merų kadencijos ir 88 Lietuvoje išrinktų EP narių mandatai — iš viso 350 asmenų: 162 jau yra Seimo narių rinkinyje (jų pareigos prijungiamos prie to paties asmens), 188 nauji | [Wikidata](https://www.wikidata.org/) (Prezidentas, Vyriausybė, merai; CC0) + [Europos Parlamento atvirieji duomenys](https://data.europarl.europa.eu/) (EP nariai; CC BY 4.0) |
| [`declarations`](datasets/current/declarations/) | 2 213 metinių turto deklaracijų (2012–2025 ataskaitiniai metai) — 455 asmenys: Seimo nariai, ministrai, merai, EP nariai ir Prezidentas; deklaruotos sumos pagal 23 turto rūšis (iki 2014 m. — litais, nuo 2015 m. — eurais); deklaracijos, pateiktos einant Seimo nario, ministro, viceministro, EP nario, Prezidento ar mero pareigas (viceministrų kol kas nesusiejama — jų sąrašo atviruose šaltiniuose nėra) | [VMI](https://www.vmi.lt/evmi/metines-gyventojo-seimos-turto-deklaracijos-duomenu-israsai) viešai skelbiami turto deklaracijų duomenų išrašai (renkama naršyklėje kartą per metus — žr. [`.claude/skills/harvest-declarations/`](.claude/skills/harvest-declarations/SKILL.md)) |
| [`elections`](datasets/current/elections/) | 2020 ir 2024 m. Seimo rinkimai (abu turai susieti su kalendoriaus dienomis ir išrinkta kadencija); rezultatai visose 71 vienmandatėje apygardoje — 142 apygardų rinkimai, 273 turai su rinkėjų aktyvumu, 1 719 kandidatų rezultatų (680 susieti su Seimo nariais, laimėtojai — visi), 2 272 partijų sąrašų rezultatai apygardose (sąrašų balsai, suskaičiuoti toje apygardoje); vienmandačių apygardų ribos žemėlapyje (`constituencies-geo.trig`) | [VRK](https://www.vrk.lt/) rinkimų rezultatų žemėlapio atviri ArcGIS sluoksniai ([rinkimai-vrk.opendata.arcgis.com](https://rinkimai-vrk.opendata.arcgis.com/)) |
| [`elections`](datasets/current/elections/) | 2020 ir 2024 m. Seimo rinkimai (abu turai susieti su kalendoriaus dienomis ir išrinkta kadencija); rezultatai visose 71 vienmandatėje apygardoje — 142 apygardų rinkimai, 273 turai su rinkėjų aktyvumu, 1 719 kandidatų rezultatų (678 susieti su Seimo nariais, laimėtojai — visi), 2 272 partijų sąrašų rezultatai apygardose (sąrašų balsai, suskaičiuoti toje apygardoje); vienmandačių apygardų ribos žemėlapyje (`constituencies-geo.trig`) | [VRK](https://www.vrk.lt/) rinkimų rezultatų žemėlapio atviri ArcGIS sluoksniai ([rinkimai-vrk.opendata.arcgis.com](https://rinkimai-vrk.opendata.arcgis.com/)) |
| [`elections`](datasets/current/elections/) — politinių kampanijų finansai | Seimo rinkimų (2008–2024 ir naujų bei pakartotinių rinkimų) politinių kampanijų finansai: 1 883 kampanijų dalyviai (kandidatai, partijos, sąrašai), susieti su rinkimais, Seimo nariais (725), partijomis ir kandidatų rezultatais apygardose (485); 5 492 juridinių asmenų įnašai ir 32 269 apmokėtos juridinių asmenų paslaugos (kiekviena atskirai, su JAR kodu ir data kalendoriuje; išlaidų failas `campaign-expenses.trig` — neįtraukiamas į git, ~21 MB); fizinių asmenų aukos ir paslaugos — tik sumos pagal lėšų šaltinį ar išlaidų paskirtį (25 641 aukų įrašas → 3 741 suma) | VRK atvirieji duomenys ([data.gov.lt 2016](https://data.gov.lt/datasets/2016/), [2017](https://data.gov.lt/datasets/2017/)), renkami naršyklėje — VRK API saugo Cloudflare (žr. [`.claude/skills/harvest-vrk/`](.claude/skills/harvest-vrk/SKILL.md)) |
| [`legal-entities`](datasets/current/legal-entities/) | visas Juridinių asmenų registras — 547 382 juridiniai asmenys, iš jų 314 788 jau išregistruoti: teisinė forma, statusas, įregistravimo ir išregistravimo dienos kalendoriuje, registruota buveinė (savivaldybė, gyvenamoji vietovė, gatvė, pašto kodas, Adresų registro kodas — 217 987 iš 229 645 registruotų buveinių). Į git įtraukiamos tik 6 028 valstybės ir savivaldybių biudžetinės įstaigos (`institutions.trig`); likusieji (`entities.trig`, ~14,4 mln. ketvertų, ~1 GB) sugeneruojami `make -C etl/legal-entities entities` | JAR ir Adresų registras per get.data.gov.lt |
| [`facilities`](datasets/current/facilities/) (`heritage.trig` neįtraukiamas į git — sugeneruojamas `make -C etl/facilities`) | 10 032 švietimo ir mokslo institucijos (5 767 veikiančios, su koordinatėmis; ir uždarytos — su išregistravimo data), 4 130 licencijuotų asmens sveikatos priežiūros įstaigų su ~8 300 veiklos adresų ir 26 058 nekilnojamosios kultūros vertybės; visos susietos su savivaldybe (švietimo įstaigos — ir su seniūnija bei gyvenamąja vietove, paveldas — su seniūnija), įstaigos — su jas valdančiu juridiniu asmeniu (`ltlod:legalEntity`), registravimo ir licencijavimo datos — su kalendoriumi | ŠVIS ir VASPVT per get.data.gov.lt; Kultūros vertybių registras — [data.gov.lt](https://data.gov.lt/datasets/2192/) XLSX (KPD, CC BY 4.0; 2023-02-01 momentinė kopija) |
Expand Down Expand Up @@ -476,7 +476,9 @@ Kiekvienas pagal vardą (be bendro kodo) padarytas susiejimas su asmeniu pažym
pareigas** (vardas sutampa, o šaltinyje nurodytos pareigos ar institucija atitinka tuo metu eitas
pareigas), **pagal tikslų vardą** (vardas vienareikšmis, bet šaltinis to nepatvirtina — silpnesnis
susiejimas, peržiūrėtinas) arba **pagal sinonimų sąrašą**. Susiejimai pagal kodą (JAR, Seimo asmens ID)
nežymimi — jie tikslūs. Tyrimams, kuriuose minimi asmenys, rinkitės „pagal vardą ir pareigas“ arba
nežymimi — jie tikslūs. Asmuo, kurio mirties data (iš Wikidata, `schema:deathDate`) ankstesnė už
šaltinio datą, nesiejamas apskritai — bendravardis negali būti kandidatas ar deklarantas po mirties.
Tyrimams, kuriuose minimi asmenys, rinkitės „pagal vardą ir pareigas“ arba
patikrinkite „pagal tikslų vardą“ eilutes rankiniu būdu. Susiejimų tikslumas matuojamas auditu:
`make -C etl/audit sample` atrenka pavyzdžius peržiūrai (`etl/audit/reviews/`), o `make -C etl/audit score`
apskaičiuoja tikslumą pagal susiejimo rūšį ir būdą (su 95 % pasikliautinuoju intervalu).
Expand Down
Loading
Loading