Interaktivna karta i katalog neolitskog Balkana. Jedno nalazište je jedan marker na karti; pojedinačni predmeti — figurine, prozopomorfni poklopci, žrtvenici, modeli kuća, pločice sa znacima, posude, nakit, oruđe i grobni inventar — stoje unutar zapisa o nalazištu, sa slikom gde je slika slobodna i sa vezom ka izvoru gde nije.
Trenutno stanje baze: 686 nalazišta i 15 muzejskih zbirki u 13 država, 8 kultura, 448 predmeta u katalogu, od toga 436 sa slobodnom slikom, sve slike na lokalnom hostingu. Tačni brojevi posle svake izmene stoje u IZVESTAJ.md, koji se generiše iz baze.
Aplikacija je statična — nema build koraka, nema servera, nema zavisnosti u
prikazu osim Leafleta sa CDN-a. Dovoljno je otvoriti index.html. Za lokalni
server:
npm start # http://localhost:4173
Provera cele baze i prikaza:
npm install # samo jsdom, za smoke test
npm run check # lint + manifest slika + provera integriteta + smoke test
| Putanja | Šta radi |
|---|---|
index.html |
Skelet stranice: gornja traka, filteri, četiri prikaza, panel detalja, lightbox |
css/styles.css |
Cela tema; oblici markera, mreža galerije, tabele kao kartice na telefonu |
js/core.js |
Shema zapisa i sva metapodatkovna definicija: kulture, tipovi nalazišta, tipovi predmeta, opsezi obima zbirke, licence |
js/data-*.js |
Baza, po kulturama i regionima; svaki fajl samo dopisuje u window.VINCA.sites |
js/data-zbirke.js |
Muzejske zbirke bez dokumentovanog nalazišta, na koordinati muzeja |
js/data-images.js |
Generisano. Manifest lokalnih slika iz img/; ne uređivati ručno |
js/app.js |
Karta, filteri, galerija, tabele, panel detalja, lightbox, izvoz |
js/translit.js |
Ćirilica/latinica sa tri sloja zaštite stranih oblika |
tools/build-report.js |
Provera integriteta baze i generator IZVESTAJ.md |
tools/scan-images.js |
Čita img/, piše js/data-images.js |
tools/check-commons.js |
Proverava da nazivi fajlova sa Commons-a stvarno postoje (traži internet) |
tools/harvest.py |
Preuzima slike sa Commons-a po kuracionom spisku, seče vitrine na pojedinačne predmete i dopisuje IZVORI.txt — v. tools/ZETVA.txt |
tools/smoke-test.js |
Pokreće app.js u jsdom-u sa Leaflet stubom i proverava prikaz |
img/ |
Lokalne slike, po folderima nazvanim identifikatorom nalazišta — v. img/UPUTSTVO.txt |
Osam kultura. Vinčanska je jezgro; ostale su tu zato što se vinčanska plastika ne može čitati sama — ono što je na njoj posebno vidi se jedino u poređenju.
| Ključ | Kultura | Trajanje | Prostor |
|---|---|---|---|
vin |
Vinča–Turdaș | 5400–4500. p.n.e. | Srbija, Banat, Erdelj, Kosovo, sever Makedonije, istočna Bosna |
sta |
Starčevo–Körös–Criș | 6200–5300. p.n.e. | Srbija, Vojvodina, Mađarska, Rumunija, Bosna, Hrvatska, Makedonija |
lep |
Lepenski Vir i đerdapski krug | 9500–5500. p.n.e. | Đerdap, srpska i rumunska obala |
but |
Butmir | 5100–4500. p.n.e. | centralna Bosna, Neretva |
ham |
Hamangia | 5250–4500. p.n.e. | Dobrudža, Rumunija i Bugarska |
cuc |
Cucuteni–Tripolje | 5050–3500. p.n.e. | Rumunija, Moldavija, Ukrajina |
kar |
Karanovo–Gumelnița–Kodžadermen | 4700–3900. p.n.e. | Bugarska, južna Rumunija |
vuc |
Vučedol | 3000–2200. p.n.e. | Slavonija, Srem, zapadna Panonija, središnja Bosna, istočne Alpe |
Puna dokumentacija polja stoji u komentaru na početku
js/core.js. Skraćeno:
{
id: 'vin-001', // jedinstveno; prefiks je ključ kulture
name: 'Vinča — Belo Brdo', // oblik uobičajen u literaturi
local: 'Винча — Бело брдо', // izvorni oblik (opciono)
culture: 'vin', // vin | sta | lep | but | ham | cuc | kar | vuc
phase: 'Vinča A–D', // lokalna periodizacija
from: -5400, to: -4500, // apsolutni okvir, NEGATIVNE godine
country: 'Srbija',
region: 'Grad Beograd, Grocka, desna obala Dunava',
lat: 44.7561, lon: 20.6156,
conf: 'visoka', // pouzdanost UBIKACIJE, ne datovanja
sitetype: 'naselje', // naselje | tel | nekropola | pecina | svetiliste | ostava | zbirka
digs: 'Miloje Vasić 1908–1934; …',
museum: ['Narodni muzej u Beogradu', '…'],
nfig: 1200, // približan broj objavljenih figurina; 0 = nepoznato
desc: 'Opis zbirke i konteksta nalaza…',
finds: [ // pojedinačni predmeti; OPCIONO
{
fid: 'vin-001-a', // mora počinjati identifikatorom nalazišta
title: 'Antropomorfna figurina sa maskom',
type: 'antropomorfna', // ključ iz META.findtypes
material: 'pečena zemlja',
h: 15.5, // visina u cm (opciono)
dating: 'Vinča B2, oko 4800. p.n.e.',
museum: 'Narodni muzej u Beogradu',
inv: 'inv. 1234', // opciono
img: 'img/vin-001/figurina-01.jpg', // lokalna putanja
srcUrl: 'https://commons.wikimedia.org/wiki/File:…', // odakle je slika
credit: 'Wikimedia Commons', // OBAVEZNO
license: 'CC BY-SA' // OBAVEZNO, ključ iz META.licenses
}
],
src: ['Vasić, M. 1932–1936. Preistoriska Vinča I–IV', '…'],
wiki: 'https://sr.wikipedia.org/wiki/…' // opciono
}finds je opciono i to je namerno. Figurina iz evropskog neolita ima na desetine
hiljada, a fotografija pod slobodnom licencom ima nekoliko stotina. Da je predmet
bio jedinica zapisa, karta bi prikazivala ne rasprostiranje plastike nego
rasprostiranje fotografa. Zato nalazište ulazi u bazu i sa samim opisom zbirke,
brojem objavljenih figurina i literaturom.
Predmeti požnjeveni sa Commons-a (v. niže) ne pišu se u finds uopšte — oni
ulaze kroz IZVORI.txt u svom folderu i aplikacija ih pridružuje nalazištu iz
manifesta. Rukom se u finds upisuje samo predmet kome se dodaje ono što na
fotografiji ne stoji: visina, faza, literatura, unakrsna referenca.
Za veliki deo najlepših predmeta ovog kruga zna se samo u kojoj su vitrini.
Stara iskopavanja nisu vodila terenske dnevnike, a stariji muzejski inventari
upisuju kulturu bez lokaliteta. Takav predmet ima dva puta pred sobom: da bude
pripisan „najverovatnijem" nalazištu, i tada karta tvrdi položaj koji nije
dokumentovan, ili da stoji na koordinati muzeja koji ga čuva, gde je tvrdnja
tačna. Katalog bira drugo — zapis sa sitetype: 'zbirka' u
js/data-zbirke.js, na koordinati zgrade muzeja, sa
isprekidanim markerom drugačijeg oblika i sa nfig: 0, jer zbirka nije
nalazište. tools/build-report.js ih prebrojava odvojeno od nalazišta, pa
naslov nikad ne kaže „145 nalazišta" kada je petnaest zapisa muzej.
Zato je marker u Klivlendu i Beču na karti neolitskog Balkana ispravan, a ne greška: to je jedino dokumentovano mesto tih predmeta.
Pravilo je jedno i sprovodi se automatski: nijedna slika bez polja credit i
license. tools/build-report.js prekida rad i vraća izlazni kod 1 ako slika
nema autora, ako licenca nije jedan od ključeva iz META.licenses, ili ako
predmet sa zaštićenom licencom ipak nosi sliku.
Dva kanala:
- Lokalna slika u
img/<id-zapisa>/, uzIZVORI.txtu istom folderu inpm run images. Ovo je pravilo — sve slike u bazi stoje lokalno, pa aplikacija radi i bez interneta i ne zavisi od preimenovanja fajlova na Commons-u.IZVORI.txtuz svaku sliku nosi autora, licencu i adresu izvora, tako da je poreklo vidljivo u lightboxu. Postupak je opisan u img/UPUTSTVO.txt, a masovno preuzimanje u tools/ZETVA.txt. - Samo veza ka izvoru, za predmete čija je fotografija pod punom
autorskopravnom zaštitom:
license: 'zaštićeno'isrcUrlka muzejskoj stranici, bez poljaimg. Kartica u galeriji ostaje — nosi opis, mere, inventarski broj i vezu — jer bi baza inače prikazivala samo ono što je slučajno slobodno.
Polje commons sa nazivom fajla i daljinskim prikazom shema još razume, i
npm run commons proverava da takvi fajlovi postoje, ali se više ne koristi:
prvobitnih osamdeset jedna daljinska veza preseljena je u img/.
Da je predmet star sedam hiljada godina ne znači da je fotografija tog predmeta slobodna. Predmet je javno dobro, fotografija je delo sa sopstvenim autorom i sopstvenim rokom zaštite.
- Otvori odgovarajući
js/data-*.js— po kulturi i regionu — ili napravi novi i dopiši ga uindex.htmlprejs/data-images.js. - Dodaj zapis po shemi iznad. Identifikator ide u nastavku niza; blokovi po
stotinama razdvajaju regione unutar kulture (
vin-0xxSrbija,vin-1xxRumunija,vin-2xxjug i zapad). Blokvin-0xxje popunjen, pa dopunski popis srpskih nalazišta ide odvin-500naviše, po slivovima:vin-5xxPodunavlje, Braničevo, Beograd i severna Šumadija;vin-6xxVelika i Zapadna Morava;vin-7xxVojvodina;vin-8xxPodrinje i Kolubara;vin-9xxJužna Morava, Timok, istočna Srbija i Kosovo. Postojeći identifikatori se ne pomeraju. - Ako se u opisu poziva na drugo nalazište, navedi ga kao
(v. vin-101)—build-report.jsproverava da takav identifikator postoji. - Pokreni
npm run check. Alat proverava jedinstvenost identifikatora, poznate ključeve kulture, tipa nalazišta i pouzdanosti, brojnost i opseg koordinata, redfrom<tounutar hronološkog obuhvata izcore.js, neprazna obavezna polja, licence svih slika i unakrsne reference — pa onda pokreće i prikaz u jsdom-u. - Ako predmet dobija sliku, ona ide u
img/<id>/uz red uIZVORI.txt, panpm run images. Ako se zna samo muzej a ne nalazište, zapis ide ujs/data-zbirke.jssasitetype: 'zbirka', a ne u nalazište.
Baza je pisana latinicom i puna je stranih latiničnih oblika koje
preslovljavanje ne sme da pokvari. Zato prikaz ima tri sloja zaštite, opisana u
komentaru na početku js/translit.js:
- Citatna polja ostaju latinicom u celosti — naziv nalazišta, izvorni oblik,
faza, iskopavanja, naziv predmeta, muzej, inventarski broj, datovanje, autor
fotografije, licenca i bibliografija nose u DOM-u atribut
data-lat. To je i uobičajena praksa srpskih naučnih izdanja. - Reč koju srpska azbuka ne može da zapiše ostaje latinicom — svaka reč sa
q w x yili sa dijakritikom vanč ć đ š ž: Turdaș, Parța, Cernavodă, Tărtăria. - Imenovani izuzeci za strane reči pisane samo srpskim slovima — Cucuteni,
Hamangia, Durankulak. Spisak
STRANE_REČIse dopunjuje po potrebi i sam se dopunjuje iz poljalocalu bazi.
Uz to, rimski brojevi (Karanovo V–VI, Butmir I–III) ostaju latinicom, jer bi inače postali „Караново В–ВИ".
Izvoz podataka u CSV, JSON i GeoJSON uvek daje latinicu, jer čita iz baze a ne iz prikaza.
Ovo je istraživački alat, ne konačan naučni katalog. Broj figurina po nalazištu
je približan i preuzet iz objavljenih izveštaja, koji su međusobno neuporedivi po
kriterijumima — Vasić je početkom XX veka beležio plastiku zajedno sa tegovima i
kalemovima, savremene objave razdvajaju kategorije. Koordinate nisu merene na
terenu; polje conf kaže koliko su pouzdane. Pripisivanje predmeta fazi unutar
kulture prati objavu i nije proveravano nezavisno. Puna metodološka napomena je u
prikazu Metodologija u samoj aplikaciji.
Većina nalazišta u dopunskom popisu (vin-5xx i naviše) poznata je isključivo iz
rekognosciranja: bez iskopavanja, bez objavljene plastike i, što je za kartu
najvažnije, bez objavljene koordinate. Za njih je uzeta koordinata sela, conf
je niska, a u opisu izričito stoji da tačka nije položaj nalazišta. Takav zapis
kaže „ovde negde u ovom ataru", ne „ovde". Kandidati za koje ni selo nije bilo
moguće jednoznačno odrediti nisu unošeni. Polje museum nosi vrednost
„nije objavljeno" tamo gde izvor ne kaže gde je prikupljena građa deponovana —
i to je podatak, ne popuna.
Oko četvrtine predmeta nema ni datovanje ni inventarski broj, jer je fotografija sve što o njima postoji. Ušli su namerno, pošto je alternativa bila izostaviti ih, ali IZVESTAJ.md ih prebrojava u sažetku pa se veličina te praznine vidi. Naslov takvog predmeta opisuje šta se na slici vidi i ne tvrdi ništa više.
Tekst i podaci: CC BY 4.0. Slike: svaka pod svojom licencom, navedenom kod predmeta i u IZVESTAJ.md.