Struktura upitnika u formatu vrijednosti odvojenih tabulatorom
From LimeSurvey Manual
Uvoz i izvoz strukture upitnika u formatu vrijednosti odvojenih tabulatorom
Ova je značajka osmišljena kako bi olakšala korištenje softvera za proračunske tablice, poput LibreOfficea, Excela ili Google Docsa, za izradu i uređivanje upitnika. Ovo u potpunosti eliminira ovisnost o SGQA kôdovima.
Ova značajka podržava uvoz iz datoteka s vrijednostima odvojenim tabulatorom (TSV) kodiranih u ASCII ili UTF-8 formatu, s ekstenzijom .txt.
Početak rada
Najjednostavniji način je uzeti postojeći upitnik i izvesti ga u formatu vrijednosti odvojenih tabulatorom. Koristite uobičajeni gumb za izvoz upitnika te umjesto formata .lss odaberite „Tab Separated Values format (*.txt)”. Upitnik će biti spremljen kao datoteka s vrijednostima odvojenim tabulatorom u ispravnom formatu (unicode datoteka odvojena tabulatorima), sa svim ispravnim naslovima stupaca.
Prikladan je bilo koji softver za proračunske tablice koji podržava vrijednosti odvojene tabulatorom (npr. OpenOffice ili LibreOffice). LimeSurvey zanemaruje sva oblikovanja unutar proračunske tablice, ali slobodno ih dodajte ako vam pomažu.
Postojat će jedan redak za svaku grupu, pitanje, potpitanje i odgovor. Također postoje retci za globalne varijable upitnika i za varijable upitnika specifične za jezik. Prvo će biti naveden osnovni jezik, a zatim svi dodatni jezici. Dakle, ako postoji više jezika, cijeli sadržaj osnovnog jezika pojavit će se prvi (npr. sve grupe, pitanja, potpitanja i odgovori). Nakon toga slijedi prevedena kopija za svaki dodatni jezik (s potpuno istim brojem i redoslijedom redaka za prevedeni skup).
Odnosi se zaključuju prema blizini. Dakle, pitanja koja slijede nakon grupe dio su te grupe; potpitanja koja slijede nakon pitanja dio su tog pitanja, a odgovori koji slijede nakon pitanja dio su tog pitanja. Stoga ne morate znati ID-ove (gid, qid, sqid) ni za jedno pitanje. Oni će se automatski izračunati prilikom uvoza. Zapravo, ovaj format uopće ne koristi gid, qid ili sqid (niti SGQA kôdove).
Savjeti
Cilj uvoza/izvoza u formatu vrijednosti odvojenih tabulatorom je da vam omogući brzo osmišljavanje upitnika pomoću proračunske tablice. Očekujemo da ćete često uvoziti tablicu, provjeravati njezinu ispravnost pomoću značajke „Prikaži logiku upitnika” i testirati je. Svaki put kad je uvezete, dobit ćete novi upitnik. Tako možete završiti s mnogo djelomično razvijenih upitnika, ali to je u redu. Samo steknite naviku pratiti koji je najnoviji ili izbrišite stari nakon što uvezete novi. Budući da u formatu vrijednosti odvojenih tabulatorom nikada ne koristite SGQA kôdove, ne trebate brinuti koje kôdove LimeSurvey dodjeljuje primarnim ključevima upitnika, grupe, pitanja i odgovora. Stoga slobodno uvozite i izvozite koliko god često želite.
Evo nekoliko praktičnih stvari koje možete učiniti ovim pristupom izradi instrumenata:
- Koristite iste odgovore za mnoga pitanja. Samo kopirajte retke 'A' i zalijepite ih nakon svakog pitanja koje treba imati isti skup.
- Koristite ista potpitanja za mnoga pitanja. Samo kopirajte retke 'SQ' i zalijepite ih nakon svakog pitanja kojem su potrebni.
- „Petlje” - koristite istu grupu više puta. Nakon što grupu uredite kako želite, kopirajte je onoliko puta koliko je potrebno. Koristite Excelovo filtriranje za prikaz samo redaka 'G' (za grupe) i koristite Excelovu značajku povlačenja stupca za ažuriranje jednadžbi relevantnosti za svaku grupu (npr. za popis stanovništva prva relevantnost može biti "numPeople > 1", sljedeća bi trebala biti "numPeople > 2". Značajka povlačenja automatski će ažurirati broj). Filtrirajte po recima 'Q' i osigurajte da svako pitanje ima jedinstvenu vrijednost (npr. ako varijable nazovete g1_q1, g1_q2, g1_qN, upotrijebite pronađi/zamijeni za pretvaranje g1 u g2 za drugu grupu; g3 za treću itd.).
- Promjena redoslijeda pitanja/grupa. Jednostavno promijenite redoslijed redaka u datoteci proračunske tablice.
- Testiranje modula upitnika. Za duge upitnike možda ćete htjeti podijeliti testiranje na module. Jednostavno izradite nove datoteke proračunskih tablica za svaki modul, brišući sve retke koji vam nisu potrebni. Time izbjegavate potrebu za unosom velike količine podataka kako biste testirali kasnije dijelove upitnika.
- Testiranje obaveznih pitanja. Česta primjedba nije potreba da se mnoga pitanja učine obaveznima, nego potreba da se obavezno isključi radi testiranja. Jednostavno izradite glavnu proračunsku tablicu s obaveznim postavljenim na konačne željene vrijednosti. Zatim, za testiranje, samo izbrišite stupac „mandatory” i spremite testnu verziju proračunske tablice. Kad uvezete tu verziju, nijedno pitanje neće biti obavezno. Nakon što završite testiranje, uvezite glavnu kopiju.
- Postavljanje zadanih vrijednosti. Umjesto korištenja grafičkog sučelja, možete unijeti sve željene zadane vrijednosti u stupac default. To je posebno korisno u slučajevima kada vam grafičko sučelje ne dopušta unos željene vrijednosti, poput izraza za postavljanje zadane vrijednosti stavki popisa (npr. popunjavanje popisa iz atributa ispitanika upitnika).
- Prijevod. Možete izraditi kopije svoje proračunske tablice - po jednu za svaki jezik. Uključite sve retke za osnovni jezik, zatim ih kopirajte i zalijepite ispod te povlačenjem promijenite polje jezika u ciljni jezik. Njih možete distribuirati prevoditeljima i ponovno ih integrirati u jednu datoteku proračunske tablice kad završe.
- Skupno postavljanje naprednih atributa pitanja. Možda želite da sve vaše jednadžbe na početku budu vidljive (kako biste mogli vidjeti njihove vrijednosti dok prikupljate podatke), a zatim ih sve sakriti prije puštanja u produkciju. Jednostavno filtrirajte proračunsku tablicu po class = 'Q' i vrsta pitanja = '*' (jednadžba) te postavite always_hide na 1 za svako od tih pitanja. Slično tome, recimo da nakon izrade upitnika odlučite koja bi se pitanja trebala pojaviti u javnim statistikama. Umjesto da svako pitanje uređujete putem grafičkog sučelja, filtrirajte po class = 'Q' i postavite public_statistics = 1 za sva pitanja koja bi trebala biti vidljiva u statistici.
- Pronađi i zamijeni. Recimo da odlučite promijeniti neku formulaciju u svim pitanjima; možete koristiti Excelovo pronađi i zamijeni za te promjene. Slično tome, ako odlučite skupno preimenovati varijable, pronađi i zamijeni može pomoći. Ako vam je potrebno pronalaženje i zamjena temeljeno na regularnim izrazima, možete odabrati željeni stupac, kopirati ga u uređivač teksta, obaviti pronalaženje i zamjenu te zalijepiti stupac natrag u proračunsku tablicu.
- Dobivanje odobrenja. Ako provodite istraživanje, možda imate etičko povjerenstvo koje inzistira na uvidu u tekst pitanja. Ovo može biti prikladan način za njegovo dijeljenje. Slično vrijedi i za razgovore s klijentom.
- Konsenzus tima. Ako pokušavate postići da se skupina složi oko formulacije ili izgleda pitanja ili grupe, možete brzo izraditi prototip / urediti proračunsku tablicu, uvesti je i timu pokazati (putem pregleda pitanja ili grupe) točno što će korisnici vidjeti. Na taj način možete dobiti odobrenje tima prije nego što napuste prostoriju, umjesto da morate dokumentirati zahtjeve, izraditi ih i dobiti odobrenje na budućim sastancima.
- Nadogradnja iz drugih formata upitnika. Ako je vaš upitnik u XML-u, Wordu ili drugom formatu, možete izraditi proces prevođenja kojim ćete ih preslikati u ovaj format. Iako biste mogli pokušati i preslikavanje u format .lss, prednost ovog formata je što ne zahtijeva praćenje odnosa stranih ključeva između grupa, pitanja, potpitanja, odgovora i zadanih vrijednosti.
Ograničenja
- Po dizajnu, ova značajka ispravno radi samo za upitnike koji koriste imenovanje qcode (a ne SGQA). Ova značajka pretpostavlja da su nazivi varijabli (identifikatori pitanja) jedinstveni u cijelom upitniku. Nazivi potpitanja mogu se ponavljati, sve dok su jedinstveni unutar opsega pojedinog pitanja.
Format datoteke
Općenito
Isti skup naslova stupaca koristimo u više svrha. Prvih 14 stupaca služi različitim svrhama ovisno o vrsti entiteta (npr. grupa, pitanje, odgovor). Preostali stupci abecedni su popis naziva polja baze podataka za napredne kodove pitanja. U nastavku je sintaksa za svaku vrstu entiteta
Prvih 14 stupaca su:
- id (New in 3.14.0 )
- related_id (New in 3.14.0 )
- class
- type/scale
- name
- relevance
- text
- help
- language
- validation
- mandatory
- other
- default
- same_default
Globalni parametri upitnika
Postoji jedan redak po parametru u tablici surveys.
- class => 'S'
- name => naziv polja baze podataka
- text => vrijednost
Parametri upitnika specifični za jezik
Postoji jedan redak po polju po jeziku u tablici surveys_languagesettings. Svi unosi za pojedini jezik prikupljaju se prije umetanja u tu tablicu.
- class => 'SL'
- name => naziv polja baze podataka
- text => vrijednost
- language => jezik
Grupe
Jedan redak grupe po jeziku upitnika (npr. bit će 3 retka grupe ako upitnik ima 3 jezika).
- id => jedinstveni numerički identifikator grupe, počevši od broja 1; koristite isti ID za dodatne jezike koji pripadaju trenutnoj grupi
- class => 'G'
- name => group_name -- jedinstveni identifikator grupe
- relevance => grelevance -- jednadžba relevantnosti na razini grupe, bez vitičastih zagrada
- text => description -- opis grupe specifičan za jezik
- language => language -- jezik grupe (npr. 'en')
Pitanja
Jedan redak pitanja po jeziku upitnika (npr. bit će 3 retka pitanja ako upitnik ima 3 jezika). Pretpostavlja se da pitanja pripadaju grupi koja im prethodi.
- id => jedinstveni numerički identifikator pitanja, počevši od broja 1; koristite isti ID za dodatne jezike koji pripadaju trenutnom pitanju
- class => 'Q'
- type/scale => type -- (obično jednoslovna) vrsta pitanja (npr. 'M' je višestruki izbor)
- name => title -- jedinstveni naziv pitanja (korijen sustava imenovanja qcode)
- relevance => relevance -- jednadžba relevantnosti za pitanje
- text => question -- tekst pitanja specifičan za jezik
- help => help -- tekst pomoći specifičan za jezik
- language => language -- jezik grupe (npr. 'en')
- validation => preg -- neobavezni kriterij provjere pitanja regularnim izrazom
- mandatory => mandatory -- 'Y' ako je obavezno
- other => other -- 'Y' ako opcija „Ostalo” treba biti dostupna (samo za neke vrste pitanja)
- default => default -- ako je postavljeno, ova se vrijednost umeće u tablicu defaultvalues za ovo pitanje
- same_default => same_default -- 'Y' za istinito, u kojem slučaju se svaka zadana vrijednost postavljena za osnovni jezik primjenjuje na ostale jezike
Potpitanja
Jedan redak potpitanja po jeziku upitnika. Pretpostavlja se da potpitanja pripadaju pitanju koje im prethodi.
- id => isti jedinstveni numerički identifikator koji se koristi za pitanja. Potpitanja trebaju koristiti sljedeću dostupnu vrijednost, a ID-jevi pitanja i potpitanja moraju biti različiti (npr. koristite ID 1 za pitanje, a ID-jeve 2, 3 i 4 za potpitanja koja pripadaju pitanju 1, ID sljedećeg pitanja trebao bi biti 5 i tako dalje). Koristite isti ID potpitanja za dodatne jezike koji pripadaju trenutnom potpitanju.
- class => 'SQ'
- type/scale => scale_id -- 0 ili 1, ovisno o vrsti pitanja (npr. tekstualni niz imat će dvije skale)
- name => title -- "ime" potpitanja, npr. ono koje se koristi za exclude_all_others
- relevance => relevance -- (Budućnost) za podršku relevantnosti na razini potpitanja
- text => question -- tekst potpitanja specifičan za jezik
- help => help -- (Budućnost) za podršku pomoći na razini potpitanja
- language => language -- jezik potpitanja
- validation => preg -- (Budućnost) za podršku provjere regularnim izrazom na razini potpitanja (npr. za dijelove adrese)
- mandatory => mandatory -- (Budućnost) za podršku obaveznosti na razini potpitanja (npr. da samo nekoliko potpitanja bude obavezno)
- default => default -- ako je postavljeno, ovo je zadana vrijednost potpitanja (upisuje se u tablicu defaultvalues)
- same_default => same_default -- ako je postavljeno, zadana vrijednost za primarni jezik koristi se za sve ostale jezike
Odgovori
Jedan redak odgovora po jeziku upitnika (npr. bila bi 3 retka odgovora ako upitnik ima 3 jezika). Pretpostavlja se da odgovori pripadaju pitanju koje im prethodi i da su u željenom redoslijedu sortiranja.
- id => koristite isti ID kao ID pitanja kojem odgovor pripada
- class => 'A'
- type/scale => scale_id -- 0 ili 1 (npr. za dvostruku skalu)
- name => code -- jedinstveni identifikator odgovora
- relevance => assessment_value -- ako se koristi opcija procjene, ovo je vrijednost procjene za odgovor
- text => answer -- tekst odgovora specifičan za jezik
- language => language -- jezik ovog odgovora (npr. 'en')
Procjene
Jedan redak procjene po jeziku upitnika (npr. bila bi 3 retka procjene ako upitnik ima 3 jezika). Procjene se zapisuju na kraju datoteke.
- id => jedinstveni numerički identifikator procjene, počevši od broja 1, koristite isti ID za dodatne jezike koji pripadaju trenutnoj procjeni
- related_id => ID grupe kojoj trenutna procjena pripada
- class => 'AS'
- type/scale => opseg procjene: T-Ukupno, G-grupa
- name => name
- text => message
- min_num_value => Minimum
- max_num_value => Maksimum
- language => language -- jezik ovog odgovora (npr. 'en')
Kvote
Jedan redak po kvoti. Kvote se zapisuju na kraju datoteke.
- id => jedinstveni numerički identifikator kvote, počevši od broja 1
- class => 'QTA'
- name => naziv kvote
- mandatory => limit
- other => akcija kvote
- default => aktivna
- same_default => URL za samoučitavanje
Postavke jezika za kvotu
Jedan redak kvote po jeziku upitnika. Pretpostavlja se da postavke jezika za kvotu pripadaju kvoti koja im prethodi.
- id => jedinstveni numerički identifikator postavki jezika za kvotu, počevši od broja 1. Svaki redak za različite jezike upitnika treba imati različit ID
- related_id => ID kvote kojoj ove postavke pripadaju
- class => 'QTALS'
- relevance => poruka
- text => URL
- help => opis URL-a
- language => language -- jezik ove kvote (npr. 'en')
Članovi kvote
Jedan redak po članu kvote, neovisno o jeziku. Redak člana kvote treba postaviti odmah nakon pitanja na koje se odnosi. Pretpostavlja se da članovi kvote pripadaju pitanju koje im prethodi.
- id => jedinstveni numerički identifikator članova kvote, počevši od broja 1
- related_id => ID kvote kojoj ovaj član pripada
- class => 'QTAM'
- name => kôd odgovora
Uvjeti
Jedan redak po uvjetu, neovisno o jeziku. Redak uvjeta treba postaviti odmah nakon pitanja na koje se odnosi. Pretpostavlja se da uvjeti pripadaju pitanju koje im prethodi.
- id => jedinstveni numerički identifikator uvjeta, počevši od broja 1.
- related_id => ID povezanog pitanja, ako je primjenjivo
- class => 'C'
- type/scale => scenarij
- name => naziv polja odgovora
- relevance => operator usporedbe
- text => očekivani odgovor