Av Alf Christophersen (M00919) Söndagen den 9 december, 2007 - 18:56: |
Å lage en XML-eksport bare for å ha XML-eksport løser overhodet intet etter min mening.
Først må det i såfall skapes en grammatikk for eksporten (DTD) før man kan lage noen eksportenhet.
Som Gedcom 6 har det vært arbeidet i flere år med å skape en grammatikk, men det synes å ha rent helt ut i sanden.
Unnskyld at jeg sier det, men det virker som det spørres etter buzzword-funksjoner som i seg selv løser intet, hvis det ikke settes inn i en spesifikk relasjon, som f.eks. løsrevet å forlange Microsoft SQL-server. Til å løse hva ?? Eller for å ekskludere eldre mennesker som ikke er nerder ?? i å bruke Disgen? (Man må ha sære interesser for å sette opp en SQL-server på ens maskin og samtidig få det til å virke.)
Av Gunnar Öhrn (M11916) Söndagen den 9 december, 2007 - 18:59: |
En sista fråga innan jag lägger ner min del i diskussionen:
vad kan man använda XML-filen till, är det något som fler DISGEN-användare kan ha glädje av?
Av Kristian Jerméus Söndagen den 9 december, 2007 - 22:20: |
Dis forum verkar inte vara till för att ha diskussioner. När jag har försökt några gånger så har allt hamnat i glömska. Numera skriver jag inget eget i forumet eftersom det är slöseri med tid, detta eftersom det oftast inte får något svar. Bättre att svara någon enstaka gång när någon annan startar en tråd.
Är det så att det är för få användare som hittar hit?
XML tycker jag kan vara bra att göra ett utdrag till. Är ju många andra program man kan använda för att att läsa av en xml-fil.
Däremot så är jag fullständigt emot att använda Microsoft SQL server. Blir bara en massa problem för dom som inte kör med Windows.
Dessutom så är det nog lättare att konvertera till Mac/Linux i framtiden om man INTE kör med Microsoft produkter.
Slutligen så är jag inte emot Microsoft. Dom gör oftast bra produkter. Nackdelen är att dom inte tänker det minsta på användare av Mac/Linux.
Av Alf Christophersen (M00919) Söndagen den 9 december, 2007 - 23:05: |
Gunnar
XML kan som Kristian Jerméus nevner brukes til å gi data til andre programmer.
Men, uten en DTD har det ingen hensikt. Å bare se masse data i XML-struktur er langt mindre oversiktlig enn til og med Gedcom etter min mening (men det krever også noe trening også med å lese gedcom-filer hvis man trenger det.
Uten et program som forstår en xml-fil fra et slektsprogram så er man like langt, for ikke å si kortere enn uten :-)
Av Nils-Åke Bjäresten Måndagen den 10 december, 2007 - 11:34: |
Gunnar,
XML är ett standardiserat format för datakommunikation. Gedcom är också ett format för datakommunikation men det används endast i släktforskarvärlden. De som en gång skapade Gedcom har själva i princip dödförklarat Gedcom som en datakommunikationsstandard. Bakom kulisserna används XML ofta i system som har med Internet och Web-publicering att göra. Något som därför kunde vara av intresse för alla Disgen-användare kunde vara möjligheten att lämna ett Disbyt-utdrag i form av en XML-fil. Självfallet måste XML-filen vara kombinerad med en beskivning av filens data, t ex ett schema av typ DTD eller XSD. Att skapa ett sådant schema är inget stort problem. XML är inte på något sätt begränsat till Windows-världen. Det används säkert lika mycket i Linux- och Mac-världarna.
I mitt inlägg den 3 mars 2007 finns 3 länkar till www.ancestry.com. Jag har kontrollerat att dessa länkar fortfarande fungerar. Jag föreslår att du prövar dessa länkar och själv bildar dig en uppfattning om hur skaparna av Gedcom-standarden ser på den framtida användningen av Gedcom och XML.
Det blir något enklare för mig att utvärdera viss ny teknik om Disgen kompletteras med XML-export. Det kan tänkas att det finns andra som vill utvärdera annan teknik och dessa skulle förmodligen också kunna ha nytta av XML-exporten. Om beskedet är att Disgen inte kommer att kompletteras med XML-export inom den närmaste framtiden blir det nog så att jag kommer att utgå från en exporterad rålista och konvertera den till XML.
Jag håller med dig om att vi nu bör kunna avveckla denna diskussion. Jag tycker emellertid att det vore bra att man tittar på mitt förslag om en översyn av strukturen på diskuterandet i DIS Forum. Det borde vara möjligt att under ordnade former diskutera tekniska spörsmål i detta forum.
Av Daniel Berglund Måndagen den 10 december, 2007 - 12:53: |
Att jämföra XML med GEDCOM är att jämföra äpplen och apelsiner. GEDCOM-standarden innehåller en färdig, mer eller mindre genomtänkt datamodell. XML är en skäligen enkel syntax som egentligen inte ger mer än att man på ett entydigt sätt kan skicka data och metadata (data om datat) i samma paket.
XML måste kompletteras med en datamodell för att bli användbart i sammanhanget, men någon sådan allmänt vedertagen datamodell för genealogiska data finns inte. Det är datamodellen som är det svåra - anledningen till att det ofta blir fel i GEDCOM-filerna är att utvecklarna har missförstått innebörden av de olika taggarna, men det är mindre ofta enkla syntaktiska fel.
För DISGENs del har jag funderat på att göra en XML-export med dagens rålista om bas. Datamodellen skulle därmed bli samma som idag används internt i DISGEN. Jag tror att detta kan vara nyttigt i DISGEN-utvecklingen för tester av olika slag. Om detta blir av kan ju intresserade medlemmar använda det för egna ändamål, men det kommer inte förrän 8.2 och den är tyvärr ett år bort. Ingen idé att hålla andan alltså, Nils-Åke, utan du får nog "rulla din egen".
Av Alf Christophersen (M00919) Måndagen den 10 december, 2007 - 13:39: |
Også tekst-eksportfilene fra Disgen burde vel kunne danne et utgangspunkt for en XML-eksport ?
For øvrig, allerede rundt v. 7 av Disgen ble det lekt med tankene på XML-eksport.
Av Daniel Berglund Måndagen den 10 december, 2007 - 14:51: |
Ja, om man begriper vad de innehåller (mycket går ju att gissa, och annars kan man fråga här på forumet så får vi reda ut vad det kan vara fråga om) så är det nog det snabbaste sättet att komma fram för den som vill ha XML i någon form.
Av Nils-Åke Bjäresten Måndagen den 10 december, 2007 - 17:38: |
Hej Daniel!
Tack för ditt klargörande inlägg! Det var roligt att se att vi i grunden tänker i samma banor. Om man talar om XML-export från Disgen är det just den dagsaktuella datamodellen man är ute efter.
Av Nils-Åke Bjäresten Fredagen den 21 december, 2007 - 06:54: |
Styrkoder i Disgens flock-filer.
( Avslutas med önskemål om Disgen-verktyg för underhåll av flock-filerna. )
-------------------------------------------------------------------------------------------------
I hjälpprogrammet som ingår i Disgen 8.1e finns ett dokument med titeln: "Vilka filer använder DISGEN?" Jag citerar några rader från detta domument:
"DDnnn.DG8 och DXnnn.DG8 innehåller personuppgifterna, nnn är flocknumret. DX-filen är index in i DD-filen, därför är DX-filen ofta mycket mindre än DD-filen. Filerna hör samman och båda behövs för att kunna hämta fram personuppgifterna. Filerna kan inte betraktas i en text-editor. Dessa filers storlek är alltid en multipel av 2048 bytes."
Det är riktigt att innehållet i dessa filer inte kan läsas i en vanlig text-editor. Men det finns speciella text-editorer som brukar benämnas hex-editorer. Har man en bra hex-editor kan man både läsa och söka i de flesta datafiler. Jag har en hex-editor och jag tänkte att jag skulle pröva att söka med den i de datafiler jag har i Disgen 8.1e. Sökningen fungerade hjälpligt men jag fann ganska snart att textmaterialet var uppblandat med många styrkoder som jag var tvungen att lära mig mer om för att kunna genomföra effektiva sökningar. Därför skapade jag ett nytt arkiv med namnet D-test där jag lade in mina föräldrar, deras gifte och mig själv.
Med 3 personer och ett gifte registrerat i arkivet D-test har jag gjort ett försök att tolka informationen i filen DD0.dg8. Informationen är organiserad i bytes där innehållet i varje byte kan representeras med ett heltal i intervallet från 0 till 255. Informationen kan också representeras i ett talsystem med annan bas än 10, t ex det hexadecimala systemet med basen 16. I detta system behöver man 16 siffror och vanligen gör man så att man använder de vanliga siffrorna 0 - 9 med tillägg av bokstäverna A, B, C, D, E och F, där A = 10 och F = 15. I detta system kan innehållet i varje byte representeras med ett tvåsiffrigt tal i intervallet från 00 till FF. För att markera att det är ett hexadecimalt tal kan man t ex lägga till bokstaven h. Långt innan persondatorernas tillkomst använde man ett teckenkodningssystem som kallades ASCII. I detta system representeras bokstaven A med heltalet 65 eller det hexadecimala talet 41h ( 4*16 + 1 = 65 ).
Den hex-editor jag har tillgång till presenterar filens innehåll i ett delat fönster. Till vänster visas byte-innehållet i hex-kodad form. Till höger kan man pröva olika teckenkodningar och man väljer den teckenkodning som ger så få konstiga tecken som möjligt. Jag fann ganska snart att ASCII-kodningen fungerade bäst. Information om ASCII-kodningen hittar man t ex på
http://www.jimprice.com/jim-asc.shtml
Där kan man läsa att ASCII är en standard som fastställdes redan 1968. Denna kodning gäller endast byte-värden i intervallet från 0 till 127. Värdena från 0 till 31 är speciella och ger inga synliga tecken. I stället används de som styrtecken. Dessa styrtecken har fått särskilda namn som jag kommer att använda i det följande. En byte med ett innehåll i heltalsintervallet från 32 till 127 blir i hex-editorns högra fönsterdel representerad med ett synligt tecken. En byte med ett innehåll utanför detta intervall blir representerad med en punkt. Ett avsnitt av presentationen ser t ex ut så här:
..0M4.Bj.resten f Nilsson.Nils .ke alias Nils-.ke...F.19311015..
Här ser man t ex att bokstaven Å på två ställen har representerats med en punkt. Tittar man i fönstrets vänstra halva finner man att motsvarande byte har det hexadecimala innehållet C5. Microsoft Windows har använt ett speciellt tillägg till ASCII-koden där även heltalsintervallet från 128 till 255 utnyttjas. I detta tillägg representeras bokstaven Å med det hexadecimala värdet C5. Att jag inte valde ASCII med detta tillägg beror på att det då dök upp en del ovanliga tecken. För att slippa detta valde jag ren ASCII. För bytes med innehåll i intervallet från 128 till 255 har jag gjort en manuell översättning i de fall jag funnit det motiverat. I övriga fall har jag lämnat den hexadecimala koden oförändrad. Med hjälp av min hex-editor och med nu nämnda förutsättningar har jag funnit att innehållet i filen DD0.dg8 kan tolkas så här:
-------------------------------------------------------------------------------------------------
DA ((ETX 5NUL F9h EOT))
^ ((NUL D2h NUL 8Ah SOH 2NUL EFh NUL))
} ((STX DC4 STX 186NUL))
PE ((DC3 NUL DC3 5NUL))
B ((DCh DC3 NUL SOH NUL LF 3NUL BS))
BasflockPE ((91h NUL 91h 5NUL))
M ((ACh 91h NUL BEL NUL))
" ((3NUL))
5 ((3NUL))
G ((3NUL))
^ ((3NUL))
s ((3NUL))
y ((3NUL 8Dh 3NUL DC2))
M1 ((EOT))
Nilsson ((EOT))
Artur ((EOT BS DC1))
ULantbrukare ((4EOT BS SYN))
F ((EOT))
19000102 ((EOT ENQ))
A100001 ((2EOT BS DC4))
D ((EOT))
19760320 ((EOT ENQ))
A5783 ((2EOT BS ENQ))
J ((EOT))
2 ((EOT BS DC3))
52007-12-15 11:35 ((EOT BS ETX))
Z ((EOT BS))
PE ((80h NUL 80h 5NUL))
K ((CFh 80h NUL ACK NUL RS 3NUL))
6 ((3NUL))
M ((3NUL))
b ((3NUL))
h ((3NUL))
| ((3NUL ETB))
K3 ((EOT))
Åkesson ((EOT))
Anna Sofia ((EOT BS SYN))
F ((EOT))
19030706 ((EOT ENQ))
A100003 ((2EOT BS DC4))
D ((EOT))
19880426 ((EOT ENQ))
A5783 ((2EOT BS ENQ))
J ((EOT))
2 ((EOT BS DC3))
52007-12-15 11:35 ((EOT BS ETX))
Z ((EOT BS))
PE_ ((NUL))
_ ((5NUL))
N ((D6h))
_ ((NUL ACK NUL RS 3NUL))
5 ((3NUL))
; ((3NUL))
A ((3NUL))
G ((3NUL))
[ ((3NUL SYN))
N2 ((2EOT))
19290330 ((EOT ENQ))
A5779 ((2EOT BS ENQ))
P ((EOT))
1 ((EOT BS ENQ))
Q ((EOT))
3 ((EOT BS ENQ))
B ((EOT))
4 ((EOT BS DC3))
52007-12-15 11:39 ((EOT BS ETX))
Z ((EOT BS))
PE ((80h NUL 80h 5NUL))
M ((D6h 80h NUL ENQ NUL SUB 3NUL))
K ((3NUL))
b ((3NUL))
h ((3NUL))
| ((3NUL))
0M4 ((EOT))
Bjäresten f Nilsson ((EOT))
Nils Åke alias Nils-Åke ((EOT BS SYN))
F ((EOT))
19311015 ((EOT ENQ))
A100001 ((2EOT BS ENQ))
W ((EOT))
2 ((EOT BS DC3))
52007-12-15 11:39 ((EOT BS ETX))
Z ((EOT BS))
M ((D6h 80h NUL ENQ NUL SUB 3NUL))
K ((3NUL))
b ((3NUL))
h ((3NUL))
| ((3NUL))
0M4 ((EOT))
Bjäresten f Nilsson ((EOT))
Nils Åke alias Nils-Åke ((EOT BS SYN))
F ((EOT))
19311015 ((EOT ENQ))
A100001 ((2EOT BS ENQ))
W ((EOT))
2 ((EOT BS DC3))
52007-12-15 11:39 ((EOT BS ETX))
Z ((EOT BS))
-------------------------------------------------------------------------------------------------
I filen ligger tecknen i en enda följd. För att det skall bli lättare att läsa har jag delat in denna följd i rader där jag placerat de synliga tecknen i inledningen av varje rad. De följs av ett mellanslag som inte finns i filen. Styrkoder och oöversatta hex-koder ( med tillägget h ) finns inom dubbla parenteser. Dessa koder är åtskilda av mellanslag som inte finns i filen. Koden NUL motsvaras av hex-koden 00 och bör tolkas som att motsvarande byte inte utnyttjas. 5NUL motsvaras av 5 konsekutiva outnyttjade bytes.
Man kan se att inlagda personer och giften blir representerade med poster som identifieras med en särskild kod, t ex ´M1 ((EOT)´. I denna kod ingår ett heltal som visar sig stämma överens med det individnummer som används i Disgen och t ex visas i en utskriven rålista. Varje post avslutas med koden ´Z ((EOT))´. Informationen strax före denna kod anger tiden då posten skrevs in eller ändrades.
Vid sökning i DDnnn-filer fungerar det bäst om man använder följder av hex-koder. För att söka på en man med individnumret 16 utgår man från koden ´M16 ((EOT))´ och omvandlar den till en följd av hex-koder. Resultatet blir ´4D 31 36 04´ och denna följd använder man alltså då man söker med hex-editorn. Om man vill söka på en kvinna med individnumret 108 omvandlar man koden ´K108 ((EOT))´ till den hexadecimala följden ´4B 31 30 38 04´ och söker sedan på denna följd. För giftet med numret 377 använder man koden ´N377 ((EOT))´ som ger sökföljden ´4E 33 37 37 04´. Jag har testat på mitt material i arkivet D-Stand och funnit att det fungerar.
Min far, Artur Nilsson, föddes på gården Bjäresjö 15 i församlingen Bjäresjö (M). Denna ortangivelse förekommer inte i min tolkning av DD0.dg8. Där hittar man i stället ´A100001´ som måste uppfattas som en referens till en datastruktur utanför DD0.dg8. Man kan undra om ersättningen av ortangivelser med referenser till en ortdatabas är ett sätt att modernisera Disgen. Svaret får man om man söker på ´Bjäresjö 15´ i det forskningsmaterial jag har i arkivet D-Stand. Den hexadecimala sökföljden blir ´42 6A E4 72 65 73 6A F6 20 31 35´. En sökning i DD0.dg8 gav 3 napp varav 2 gäller min fars farmor Else Nilsdotter:
-------------------------------------------------------------------------------------------------
52006-09-28 10:24 ((EOT BS ETX))
Z ((EOT BS))
D ((EOT))
18890503 ((EOT))
Bjäresjö 15, Bjäresjö (M) ((EOT ACK))
288 ((ACK EOT 2BS))
J0 ((EOT))
328 ((EOT 2 BS))
W0 ((EOT))
571 ((EOT BS DC3))
52006-03-22 08:42 ((EOT BS BEL))
HAEHR ((EOT BS ETX))
Z ((EOT BS))
-------------------------------------------------------------------------------------------------
K38 ((EOT))
Nilsdotter ((EOT))
Else ((EOT BS RS))
F ((EOT))
18210212 ((EOT))
Bjäresjö (M) ((EOT ACK))
38 ((ACK EOT BS))
,D ((EOT))
18890503 ((EOT))
Bjäresjö 15, Bjäresjö (M) ((EOT ACK))
288 ((ACK EOT 2BS))
J0 ((EOT))
328 ((EOT 2BS))
W0 ((EOT))
571 ((EOT BS DC3))
52006-03-22 09:56 ((EOT BS ACK))
HAEH ((EOT BS ETX))
Z ((EOT BS))
-------------------------------------------------------------------------------------------------
Dessa båda poster måste avse samma person. Den första posten är inte komplett utan början på posten tycks ha blivit överskriven av en annan post 2006-09-28. Innehållet i posterna är ganska kryptiskt men det klarnar litet om man tittar på uppgifterna om Else Nilsdotter i en utskriven rålista. Där står det att hon var partner i gifte 328 och barn i gifte 571. Där står också att flaggor AEH var satta.
Det är uppenbarligen så att metoden med referenser till en ortdatabas inte har funnits i Disgen 8 från början så detta måste vara något nytt som införts i samband med den pågående uppdateringsverksamheten. I mitt släktforskningsmaterial används både det gamla och det nya sättet att ange orter. Jag har också sett att det finns mycket skräp av samma typ som den första posten ovan.
I D-Stands basflock har jag sökt på 3 församlingar och fått följande antal napp:
Bjäresjö (M): 52 napp
Bromma (M): 56 napp
Skårby (M): 51 napp
Datumangivelsen på berörda poster ger ingen uppfattning om när man införde metoden med referenser till en ortdatabas. Detta beror på att jag i början på 2006 flyttade alla personerna i basflocken till en annan flock. Tanken var att jag skulle samla noggrant kontrollerade personer i basflocken för att senare kunna vidarebefordra uppgifterna till Disbyt. Detta innebar att jag skulle kontrollera alla uppgifer i de källor jag använt och dessutom komplettera med källhänvisningar i de fall sådana saknades. Efter en tid insåg jag att detta var en ganska omöjlig uppgift. Bland annat berodde det på att Disgens sätt att hantera källhänvisningar var dåligt anpassat till mina krav och de källor jag använder. Dessutom förstod jag att detta omfattande arbete måste göras en gång till när Disgen någon gång i framtiden får en användbar källhantering. Men jag höll på ett tag med detta projekt och en utskriven rålista visar att 1421 poster så småningom hamnade i basflocken. Långtifrån alla dessa poster blev försedda med källhänvisningar. Något material blev inte heller lämnat till Disbyt. Till en början gjorde jag så att när jag ansåg mig kunna godkänna uppgifterna för en viss person satte jag flagga R för den personen. När jag sedan hade godkänt ett antal personer utnyttjade jag denna flagga till att göra en kollektiv överföring av dessa personer till basflocken. Efter överföringen nollställdes flagga R för de överförda personerna. Else Nilsdotter var bland de första som överfördes och hon fick det låga id-numret 38. Enligt den första ( ofullständiga ) posten skedde överföringen 2006-03-22 08:42. Posten visar att flagga R var satt. Den andra posten visar att flagga R blev nollställd kl 09:56 samma dag. Från denna tidpunkt var det denna post som gällde och den första posten låg kvar som skräp.
-------------------------------------------------------------------------------------------------
Önskemål om Disgen-verktyg för underhåll av flockfilerna.
Nu finns det en ortdatabas som utnyttjas vid inmatning av nya poster i flockfilerna. Denna databas borde också kunna utnyttjas av de poster som redan var inlagda när denna nymodighet infördes. För detta behövs ett underhållsverktyg i form av ett program som även borde kunna användas till att rensa bort kvarlämnat skräp. Lämpligen identifierar programmet först vilka flockar som finns och ber användaren välja den flock som skall underhållas samt ange underhållets omfattning, dvs uppdatering av ortangivelser och/eller skräprensning. Om båda åtgärderna väljes går programmet igenom flockfilen, identifierar ortangivelser enligt det gamla systemet och ersätter dem med referenser till ortdatabasen. Likaså identifierar programmet allt kvarlämnat skräp och rensar bort detta. Slutligen packas filen ihop så att den blir så kompakt som möjligt.