www.sijohansson.com

Hem -> Programmering -> Johan -> Bakgrund

Johan - Bakgrund

Databasen kom först

Först konstruerades databasen.

Därefter skrevs program för att visa databasinnehåll, för att lägga in data och ändra data i databasen.


När jag på 1990-talet började släktforska fick jag tillgång till de handskrivna anteckningarna efter en trettio år tidigare bortgången forskare i släkten. De kunde jag läsa och de gav min forskning en flygande start.

Jag hoppas, att om någon, långt efter min död, kommer att bli intresserad av mina forskningsresultat, så ska jag ha gjort vad som står i min makt att göra lättillgängligt även innehållet i det digitala materialet - om det då finns kvar.

Jag vill således undvika beroende av något visst operativsystem eller någon viss datorleverantör.

Jag vill inte använda något databasprogram från en programvaruleverantör som då kan komma att ha krävt regelbundna uppdateringar och inköp av nya programversioner och sedan upphört med sin verksamhet.

Tidigare knappade jag in mina uppgifteri olika rutor i programmet Holger 6, som sedan packade in dem i en Paradox-databas från Borland. Där låg de i det närmaste oåtkomliga för vanligt folk utan tillgång till Holger 6. För datatekniskt initierade är det möjligt att också komma in i databasen med hjälp av dåtida verktygsprogram från Borland eller från de företag som övertog Paradox från Borland.

Nu använder jag programmet Johan, som lägger inknappade uppgifter som rena textsträngar avgränsade av XML-etiketter (-taggar). Det finns inga längdbegränsningar för någon textsträng. För varje person i databasen finns en sådan textfil och för varje par i databasen finns också en motsvarande textfil. Textfilerna knyts till varandra genom att deras filnamn innehåller det unika numret för respektive person eller par och genom att de innehåller korsvisa länkar mellan personfil för barn och parfil för föräldrapar och mellan personfiler för föräldrar och parfil för föräldrapar,

Personfilerna och parfilerna lagras i mappar och undermappar i ett konventionellt filsystem. Man kan säga att det är filsystemet som är databasen. Person- och parfilerna är tämligen små. De innehåller den specifika genealogiska informationen såsom relationerna mellan föräldrar och barn, anor och ättlingar, tillsammans med tid och plats för personers födelse och död, för pars ingående och upplösning samt referenser till motsvarande arkivhandlingar.

I samma filsystem kan för varje person och varje par också sparas en mängd andra filer med knytning till personen eller paret. Sådana filer, det kan vara ordbehandlingsdokument, bildfiler, ljudfiler, filmfiler eller annat, hanteras var för sig av program som är gjorda för sitt ändamål och inte har med Johan att göra. De kan vara mer eller mindre framtidssäkra. Johan kan lägga märke till förekomsten av sådana filer och hjälpa till att starta program för att handskas med dem.

För ordbehandlingsdokument har jag valt att använda program från http://www.libreoffice.org/ eller http://www.openoffice.org/. Även här är texten, efter uppackning från zip-formatet, tillgänglig som klartext innanför en mängd XML-taggar. Specifikationen för ODF, Open Document Format, är helt öppen, väl publicerad, fri att användas. Det kommer alltid att vara tillåtet och möjligt att skriva program som använder formatet. Se http://sv.wikipedia.org/wiki/OpenDocument och http://en.wikipedia.org/wiki/OpenDocument.

Program

Sedan databasen tagit form kom program för att visa upp databasens innehåll och därefter program för att hantera databasens innehåll.

Visning av databasen

Att titta i databasen, men inte kunna ändra i den, erbjuds av ett program som skrevs i språket PHP. Detta program används t.ex. vid www.sijohansson.com. Webbserverprogrammet Apache tar emot förfrågan om en webbsida från en webbläsare. Apache startar PHP-programmet, som hämtar de uppgifter som behövs ur databasen och genererar en HTML-sida som Apache sänder till webbläsaren för visning.
Se www.apache.org och www.php.net

Man behöver således inte ur sin databas generera en särskild uppsättning html-sidor för visning på internet. Däremot kan man behöva göra ett särskilt utdrag ur databasen för att uppfylla PUL-reglerna vid publicering på internet.

Arbete i databasen

Programgruppen Johan togs fram för i första hand de behov jag själv kände av snabb och enkel navigering i databasen med valbart antal nivåer i antavlor och ättlinglistor, hög informationstäthet på datorskärmen, få fönster som måste stängas för att ett annat ska få öppnas. Programmen ska inte vara begränsande utan tillåta utnyttjande av datorresurser efter personlig smak och färdighet.

I en grupp av drygt tio fristående program har varje program sin uppgift. Ett program visar antavlor, ett annat ättlinglistor. Flera antavlor t.ex. kan visas samtidigt genom att programmet för antavlor startas flera gånger. En låsfunktion hindrar försök till uppdatering från två håll samtidigt av en och samma par- eller personfil, men olika par- och personfiler kan vara öppna för uppdatering samtidigt. Även samtidigt arbete i flera databaser är tillåtet.

Johan-programmen är skrivna i språket Python. Det finns idag två versioner av språket, den äldre Python 2 och den nyare Python 3. De är snarlika men inte helt kompatibla. Python 2.7 anges som den sista versionen i 2-serien. Fortfarande är de flesta program skrivna för Python 2, men Python 3 avses så småningom ta över.

Johan-programmen skrevs 2008 i Python 2 och översattes 2010 till Python 3. Jag använder själv i stort sett bara Johan_py3 men har försökt att föra tillbaka ändringar och tillägg till Johan_py2. Båda versionerna av Johan hanterar databasen på exakt samma sätt.

Johan-programmen finns bara i källkodsform. Vid körning tolkas de av programmet Python, vilket finns i versioner för både Linux och Windows och Mac. En och samma databas kan hanteras från både Linux- och Windows-system. Förmodligen fungerar även Mac, men det har jag inte provat.



Besökare sedan 2011-02-13:

Sidan senast ändrad 2011-03-03