Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOSJE

Ovo je kostur projekta. Ništa u ovom repozitoriju ne dohvaća podatke: nema nijednog mrežnog poziva i nijednog parsera stvarnog dokumenta. Provjereno pretragom nad izvornim kodom 7.8.2026.: grep za requests, urllib, httpx, socket, playwright i za bilo koji http:// ili https:// u jezgra/, dohvat/ i testovi/ vraća nula pogodaka. U docs/ stoje nazivi poslužitelja kojima je izvidnica pristupala, bez putanja i bez naziva parametara.

Postoji jezgra koja opisuje oblik izlaza i brani ga od dvije poznate greške, razrješivač veze katastarske čestice i zemljišnoknjižnog uloška, tablica od 13 determinističkih pravila, 191 test, skica sloja dohvata bez ijednog poziva, i spisi u docs/. Sve tvrdnje o dohvatljivosti pojedinog servisa potječu iz izvidnice provedene 7.8.2026., iz jednog ranijeg predmeta i iz mjerenja spojivosti od 7.8.2026., dakle iz ručnih poziva i skripte izvan ovog koda, a ne iz koda koji ovdje stoji.

Namjera: usporedba dviju evidencija o istoj katastarskoj čestici, sa zabilježenim izvorom, doslovnim upitom i datumom uz svaki redak.

Autor: Hrvoje Matej, hrvoje.matej.l@gmail.com

Sve brojke u ovim datotekama su iz jednog snimka stanja. Registri se mijenjaju i servisi padaju; brojka bez nadnevka ovdje ne vrijedi ništa.

In English. Skeleton of a project that compares two Croatian public registries about the same cadastral parcel: the land registry (ownership, encumbrances, annotations) and the cadastre (possession, land use, area). Output is a list of claims, each carrying its source, the literal query, the retrieval timestamp and one of three states: finding, no finding, not checked. Nothing here retrieves data: the repository contains no network call. A manual measurement on 2026-08-07 (100 parcels, four cadastral municipalities) linked land-registry and cadastre records for 86 of 100 parcels; the measuring script and the fetched data are not part of this repository, only the resulting resolver is (jezgra/razrjesivac.py). Owner names never reach the output; only a one-way digest does. Legal boundary and the reasons the output carries no risk score are in docs/pravna_granica.md.


Što je ovdje, a što nije

Snimak stanja 7.8.2026.

Datoteka Sadrži Stanje
docs/arhitektura.md lanac od upita do dosjea, s mjestom na kojem danas staje zapis namjere
docs/izvori.md 18 izvora sa stupcem je li provjeren otvaranjem, uz dva isključena odlukom ručna provjera 7.8.2026.
docs/pravna_granica.md što izlaz ne smije sadržavati i po kojem članku pravna revizija 7.8.2026.
PLAN.md prva četiri tjedna, sa pragom i uvjetom prekida po tjednu plan, nijedan tjedan nije proveden
jezgra/model.py oblik nalaza i dosjea; nalaz bez izvora ili bez datuma podiže iznimku pri konstrukciji, ne pri ispisu radi, pod testom
jezgra/prazno.py četiri stanja odgovora izvora, tako da se "nije pronađeno" ne može pomiješati s "potvrđeno nema" radi, pod testom
jezgra/pravila.py 13 determinističkih pravila P01 do P13, svako s težinom, pravnom osnovom i objavljenim pragom radi, pod testom; bez izmjerene bazične stope
jezgra/razrjesivac.py kanonizacija oznake čestice iz prakse (ZEM, ZGR, G-sufiks, zvjezdica) i kaskada triju strategija spajanja čestice s uloškom, s pouzdanostima iz mjerenja 7.8.2026. radi, pod testom nad lažiranim izvorima; mjerna skripta nije u repozitoriju
jezgra/geometrija.py površina po formuli vezice, točka u poligonu, udaljenost i dodir dvaju poligona, bez vanjskih biblioteka radi, pod testom
testovi/ 191 test, uključujući skupinu koja pokušava zaobići četiri stanja prolaze; pokrivaju jezgru, ne dohvat
dohvat/skica_izvora.py oblik sloja dohvata: ograničavanje ritma, vrijeme uz svaki odgovor, zabrana povratka None skica, prijenos se ubacuje izvana; nema nijedan test
primjeri/dosje_primjer.md kako izgleda izlaz izmišljeni podaci, označeno u zaglavlju; pisan rukom, kod koji bi ga proizveo ne postoji

Nema: skrapera, parsera zemljišnoknjižnog izvatka ni posjedovnog lista, baze, uzorka. Jedno mjerenje nad stvarnim podacima postoji, spojivost dviju evidencija iz sljedećeg odjeljka, ali skripta koja ga je izvela i dohvaćeni podaci nisu u repozitoriju; u kodu je ostala samo kaskada koja je iz mjerenja proizašla.

Pokretanje testova:

cd DOSJE && python3 -m unittest discover -s testovi

Stanje 7.8.2026.: Ran 191 tests, OK. Bez vanjskih ovisnosti izvan standardne biblioteke.


Mjerenje: spojivost zemljišne knjige i katastra

Jedino mjerenje nad stvarnim podacima u ovom projektu, izvedeno 7.8.2026. Pitanje: za koliko se katastarskih čestica automatski nađe njihov zemljišnoknjižni uložak.

Uzorak: 100 čestica, po 25 iz četiri katastarske općine (Split, Krk, Osijek, Vinkovci I), sjeme odabira 20260807 zapisano prije prvog dohvata. Prag uspjeha postavljen prije mjerenja: 0,80.

k.o. naivno podudaranje kaskada
Split 0,12 (3/25) 0,52 (13/25)
Krk 0,32 (8/25) 1,00 (25/25)
Osijek 1,00 (25/25) 1,00 (25/25)
Vinkovci I 0,96 (24/25) 0,92 (23/25)
ukupno 0,60 (60/100) 0,86 (86/100)

Preciznost: proizvedeno je 87 spojeva, priznato 86, jedan oboren u ručnoj provjeri (Split 115/3, uložak s praznim A1). Od 86 priznatih, 83 imaju identičnu površinu u oba zapisa; tri odstupanja su objašnjena, nijedan spoj nije proturječan. U k.o. Vinkovci I kaskada je priznala jedan spoj manje od naivnog podudaranja; pravilo mjerenja je da se nepotvrdiva veza ne priznaje, jer je pogrešan spoj gori od izostanka spoja.

Trošak: dva javna zahtjeva i oko pola sekunde mrežnog vremena po čestici (izmjereni prosjek strategije K1 je 0,54 s).

Po strategijama, kako stoji i u docstringovima jezgra/razrjesivac.py: K1 (državna tablica veza parcelLinks) spojila 85/100 uz 0 pogrešnih u ručnim provjerama; K2 (goli broj uz strogu potvrdu parcelId ili identične površine) 1/100 povrh K1; K3 (identifikacijski sloj) 0 priznatih, 1 proizveden pa oboren. Redoslijed kaskade je redoslijed iz mjerenja.

Ograde, obvezne uz gornje brojke.

  • "Nijedan pogrešan spoj" znači "nijedno proturječje raspoloživih signala" (oznaka, parcelId, površina), a ne neovisnu potvrdu svakog spoja uvidom u isprave.
  • Uzorak je zamjenski: izvorna stotina čestica nije bila dostupna, pa je izvučena nova sa zapisanim sjemenom.
  • Okvir odabira su bazeni od oko 300 čestica po općini, ne cijele općine, pa se brojke ne smiju čitati kao svojstvo cijele katastarske općine.
  • Mjerenje se iz ovog repozitorija ne može ponoviti: mjerna skripta i dohvaćeni podaci nisu u njemu, u skladu s pravilom da dohvaćeni sadržaj ne ulazi u repozitorij. U kodu su ostale kaskada, kanonizacija i brojke u docstringovima.

Ranija tvrdnja "ključ spajanja ne postoji" bila je netočna

U ranijoj verziji ovih zapisa stajala je tvrdnja da upotrebljiv ključ spajanja zemljišne knjige i katastra ne postoji, izvedena iz spojivosti od 0,60.

Ta je tvrdnja bila pogrešna, i uzrok je poučniji od same brojke: mjerna skripta priznavala je spoj samo pri znakovnoj jednakosti oznaka čestice. Stara izmjera (Split, Krk) vodi građevinske i zemljišne čestice u odvojenim brojevnim nizovima, s oblicima ZEM 22/3, 43/G, 22/1G, *710, koje znakovna jednakost nikad ne spoji s oblikom iz druge evidencije. Skripta je dakle mjerila pad vlastite usporedbe, a ne stanje registara. Kanonizacija oznake i kaskada strategija podigle su spojivost sa 0,60 na 0,86 na istom uzorku, iznad praga od 0,80.

Greška se objavljuje s uzrokom jer objavljena greška s uzrokom vrijedi više od prešućene, i jer je isti oblik greške, čitanje pada vlastitog upita kao činjenice o registru, već jednom proizveo lažan negativan nalaz (vidi jezgra/prazno.py).


Nalaz protiv vlastite teze, prvi

Polazna teza je bila: unesi česticu ili adresu, dobij pravni dosje s nalazima poredanim po težini, koji odgovara na osam pitanja. Provjera je od nje oduzela sljedeće.

Tri od osam stavki nemaju izvor. Uporabna dozvola nema nacionalni registar s upitom po čestici. Ostavinski postupak ima jedini praktičan izvor u e-Oglasnoj ploči sudova, koja je isključena odlukom (razlog u docs/izvori.md). Pomorsko dobro se ne može odgovoriti jer je granica rješenje, a ne prostorni sloj, i jer sloj ps:ProtectedSite na obalnom pravokutniku vraća nula zapisa ondje gdje katastarski sloj vraća 195. Dvije stavke su djelomične: šuma i neuknjižena zgrada. Potpuno pokrivene su tri: tereti i služnosti, kulturno dobro kroz zabilježbu, neusklađenost zemljišne knjige i katastra. Puna tablica je u docs/izvori.md.

Adresa kao ulaz ne radi. Nijedan provjeren izvor ne daje deterministički put adresa u česticu. INSPIRE filtar po nationalCadastralReference pao je s procurjelom Oracle greškom ORA-01000 (provjereno 7.8.2026.), pa radi samo upit po pravokutniku. Ulaz je k.o. i broj čestice. Kupac stana zna adresu.

Poredak po težini ne smije biti slobodna ocjena. Ako težinu dodjeljuje jezični model nad konkretnim predmetom, to je pravno mišljenje po čl. 3. Zakona o odvjetništvu. Poredak ostaje samo po objavljenoj determinističkoj tablici.

Niša nije prazna. Katastor.hr prodaje "Provjeru nekretnine" za 120 EUR s isporukom 48 do 72 sata i tvrdi 1500+ klijenata (cjenik otvoren 7.8.2026.).

Bazična stopa neslaganja nije poznata. U jednom ranijem predmetu, na osam čestica, na šest je barem jedna usporedba pokazala razliku. Taj je predmet odabran zato što je bio sporan, pa se iz njega bazična stopa ne smije čitati. Mjerenje na slučajnom uzorku od 200 čestica nije provedeno. Posljedica je da nijedno od 13 napisanih pravila zasad nije isporučivo, jer se po vlastitoj odluci nalaz bez bazične stope ne isporučuje.

Jedina brojka koja je izgledala kao neovisna provjera servisa nije to bila. Površina jedne zgrade iz prostornog servisa poklapala se s ranije prikupljenom vrijednošću i s posjedovnim listom. Tri iste brojke bile su tri prijepisa iste atributne vrijednosti. Kad se ista površina usporedi s geometrijom iz istog zapisa, izračun odstupa oko 20 %. Nijedan servis iz izvidnice, dakle, nije neovisno provjeren na točnost. Zapis je u testovi/test_geometrija.py.

Prva verzija koda kršila je vlastitu pravnu granicu. Pravila P01 i P11 upisivala su normalizirano ime vlasnika u dokaz uz nalaz, odakle je ime ulazilo i u JSON izlaz. To je izravno proturječilo odjeljku 4. dokumenta docs/pravna_granica.md. Ispravljeno u reviziji 7.8.2026.; u izlaz sada ulazi samo skraćeni jednosmjerni sažetak, a test pada ako se ime vrati.


Tehnički problem, razložen

Pet stvari čini ga težim nego što izgleda.

Ulaz nije jedan broj. Broj čestice nosi zvjezdicu za zgradu i kosu crtu za poddiobu: *678, 1234/5, 1234, a stara izmjera dodaje i oblike ZEM 22/3, 43/G, 22/1G. U jednom ranijem predmetu upit bez zvjezdice, nad oznakom koja je nosi, proizveo je zaključak da zgrada u katastru ne postoji, a postoji. Jedan znak razlike proizveo je lažan negativan nalaz. Kanonizacija tih oblika stoji u jezgra/razrjesivac.py (kanoniziraj), pod testom; izvorni zapis se pritom nikad ne gubi. Katastarska općina se uz to pojavljuje u tri oblika koja se ne izvode jedan iz drugoga: naziv, šesteroznamenkasta šifra i broj glavne knjige, a nijedan servis ne prima sva tri.

Glavni izvor nema sučelja za strojni pristup. Javna pretraga zemljišnoknjižnog izvatka i posjedovnog lista je Angular aplikacija bez stabilnih imena polja. Dohvat se izvodi vođenjem preglednika. Koliko je to krhko je izmjereno: u jednom kasnijem prolazu postojećeg alata svih sedam upita palo je s porukom "ne nalazim polje za broj čestice". Sedam od sedam. Strojno čitljivi SOAP servisi postoje, ali traže token i odobrenje tijela.

Polje koje nosi najvrjedniju usporedbu nije dohvaćeno. Površina u zemljišnoknjižnom izvatku stoji iza kontrole Manje... u sučelju. U 14 ranije dohvaćenih izvadaka to polje nema vrijednost. Bez razvijanja te kontrole usporedba površina ne postoji.

Prazan odgovor mora ostati prazan odgovor. Izlaz treba tri stanja, ne dva: nalaz, nema nalaza, nije provjereno. Razlika je konkretna. "Nema tereta!" u teretovnici je graničnik i znači nema nalaza. Površina koja se nije pročitala nije nema nalaza nego nije provjereno. Proizvod koji drugo prikaže kao prvo radi grešku pred kojom upozorava ranije zapisano pravilo: prazan odgovor je hipoteza, ne nalaz. Ista se greška u jednom predmetu pojavila dvaput nezavisno.

U kodu se ta razlika drži u jezgra/prazno.py, koje četiri stanja odgovora razdvaja tako da se ne mogu tiho pomiješati: if ishod: podiže iznimku, čitanje vrijednosti iz nepoznanice podiže iznimku, a objekt je zapečaćen pa se stanje ne može prepisati. testovi/test_zaobilazenje.py te zapreke pokušava srušiti i zapisuje i ono što od pokušaja prolazi.

Nalaz bez bazične stope nije nalaz. Razlika između vlasnika iz zemljišne knjige i osobe iz posjedovnog lista često nije pogreška nego ustroj: zemljišna knjiga upisuje vlasnika, katastar posjednika. Pravilo koje označi svaku takvu razliku označit će normalno stanje. Zato uz svaki nalaz mora stajati koliko se često okida. To je izravan prijenos discipline iz projekta HINT, gdje uz svaki rezultat modela stoji trivijalna osnovica, i gdje se pokazalo da rezultat od 0,8631 na jednoj mjeri odgovara bacanju kocke na drugoj.


Arhitektura

Lanac je opisan u docs/arhitektura.md, s dijagramom i tablicom prohodnosti po koracima.

Danas lanac staje na dohvatu: nijedan izvor se ne poziva iz ovog koda. Napisano je ono što stoji iznad i ispod dohvata, dakle kanonski oblik oznake čestice, kaskada spajanja čestice s uloškom, geometrijski račun, tablica pravila i oblik izlaza. Nije napisano ono što bi ih hranilo. To nije zastoj zbog pogreške nego stanje kostura.

Praktična posljedica koju treba reći izravno: 13 pravila i 191 test pokazuju da se jezgra ponaša kako je opisana, a ne da sustav radi. Nijedno pravilo dosad nije pokrenuto nad stvarno dohvaćenim podatkom. Djelomična iznimka je razrješivač: njegova je kaskada oblikovana prema mjerenju nad stvarnim podacima od 7.8.2026., ali je u ovom repozitoriju pokrenuta samo nad lažiranim izvorima u testovima.

Prvi korak koji se piše je dohvat zemljišnoknjižnog izvatka s razvijenom kontrolom Manje..., jer bez tog polja najvrjednija usporedba ne postoji.

Arhitektura je preuzeta iz HINT-a i nije nova: prikupljanje, ekstrakcija polja, determinističko spajanje po ključu. Ključ je ovdje par (katastarska općina, broj čestice) umjesto OIB-a. Isječci koji pokazuju kako to izgleda u radnom kodu stoje u projektu HINT, u primjeri/entity_matcher_isjecak.py i primjeri/db_upsert_isjecak.py. Nisu dio ovog repozitorija.


Što još nije dovršeno

Navedeno jer nedovršeno koje je priznato vrijedi više od prešućenog. Popis je ažuriran nakon revizije 7.8.2026.; ranija verzija tvrdila je da je napisano 0 pravila i da testova nema, što je u međuvremenu prestalo biti točno, pa je bio netočan u vlastitu korist obrnutog smjera.

Nije napisano uopće:

  • dohvat i parsiranje, dakle sve što bi jezgru uopće hranilo podacima
  • dohvat polja "Površina" iz zemljišnoknjižnog izvatka, bez kojeg pravilo P03 uvijek završava u skupini D
  • čitanje GML-a; geometrijski račun postoji, ulaz u njega ne
  • tablica preslika triju oblika oznake katastarske općine
  • ijedan test nad dohvat/skica_izvora.py; taj je modul napisan i neproviren
  • mjerna skripta spojivosti; mjerenje iz gornjeg odjeljka izvedeno je kodom koji nije u repozitoriju i iz ovog se koda ne može ponoviti

Napisano, ali neisporučivo:

  • 13 pravila od procijenjenih 40 do 60. Nijedno nema izmjerenu bazičnu stopu, a bez nje se po vlastitoj odluci ne isporučuje. Isporučivih pravila je dakle 0
  • kaskada u jezgra/razrjesivac.py: strategije su pod testom nad lažiranim izvorima (PodaciSpajanja se lažira), a kroz stvaran sloj dohvata nisu pokrenute nijednom, jer taj sloj ne postoji
  • brojevi članaka uz pravila nisu neovisno provjereni u Narodnim novinama; to stoji i u zaglavlju jezgra/pravila.py
  • primjeri/dosje_primjer.md je pisan rukom. Kod daje isti sadržaj u drugom obliku, ali pripovjedne odjeljke "Što to znači za kupca" ne piše nitko

Nije izmjereno:

  • mjerenje na slučajnom uzorku od 200 čestica iz plana, s pragovima upisanima prije mjerenja (nacrt testa je u docs/arhitektura.md); izmjerena spojivost od 0,86 pokriva samo korak spajanja, ne prohodnost čitanja izvadaka ni stopu neslaganja
  • stopa lažnih negativa izlučivača oznaka iz slobodnog teksta očevidnika
  • prohodnost dohvata izvadaka; ranija mjera je 7 od 7 palih upita, ali iz drugog alata
  • neovisna potvrda spojeva iz mjerenja spojivosti uvidom u isprave; "0 pogrešnih" znači samo da nijedan raspoloživi signal nije proturječan

Nije obavljeno izvan koda:

  • zahtjev po čl. 29. Zakona o pravu na pristup informacijama nadležnom ministarstvu; mora biti podnesen prije prvog sustavnog dohvata, rok tijela je 15 dana
  • provjera naziva u sudskom registru i registru žigova, ne pretragom weba

Pravna granica

Sažetak s člancima je u docs/pravna_granica.md. Ukratko, iz njega slijedi četvero što izlaz ne smije sadržavati:

  1. Ocjenu rizika i preporuku o postupanju, jer je pravno mišljenje rezervirana djelatnost po čl. 5. st. 1. Zakona o odvjetništvu, a čl. 313. Kaznenog zakona obilježje veže uz naplatu.
  2. Vrijednosnu brojku, po čl. 66. Zakona o procjeni vrijednosti nekretnina. Ako izlaz preuzme oblik procjembenog elaborata, po sadržaju postaje elaborat bez obzira na naslov.
  3. Ime vlasnika, ni prikazano ni pohranjeno. Zemljišna knjiga jest javna (ZZK čl. 7. st. 1.), ali je pretraga po imenu i OIB-u po ZZK čl. 28. st. 1. do 3. rezervirana. Baza pretraživa po vlasniku ne smije nastati. Proizvod ne odgovara na pitanje tko je vlasnik, nego samo podudaraju li se upisi. U kodu to provodi jezgra/pravila.py funkcijom oznaka_osobe, a čuva test test_ime_vlasnika_ne_izlazi_u_dosje.
  4. Obećanje da hvata sve. Slučaj objavljen 2021. u emisiji Provjereno pokazuje kupca s čistom zemljišnom knjigom koji je nakon sedam godina parnice izgubio stan zbog srodstva koje nije stajalo ni u jednoj evidenciji. Ovakav proizvod taj slučaj ne hvata.

Ako tekst dosjea generira jezični model, to mora biti označeno po čl. 50. Uredbe (EU) 2024/1689, koji se primjenjuje od 2.8.2026.

Dohvaćeni sadržaj, spisi i osobni podaci nisu i neće biti dio ovog repozitorija.

Prava korištenja

Copyright (c) 2026 Hrvoje Matej.

Objavljeno pod licencom Apache License 2.0. Puni tekst je u LICENSE.

About

Kostur alata za usporedbu katastarske i zemljisnoknjizne evidencije o istoj cestici; bez mreznih poziva, 191 test.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages