forked from pjcj/Gedcom.pm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
86 lines (67 loc) · 4.1 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
NAME
Gedcom - a module to manipulate Gedcom genealogy files
Version 1.16 - 24th April 2009
DESCRIPTION
Copyright 1998-2009, Paul Johnson ([email protected])
This software is free. It is licensed under the same terms as Perl
itself.
The latest version of this software should be available from my
homepage: http://www.pjcj.net
This module provides for manipulation of Gedcom files. Gedcom is a
format for storing genealogical information designed by The Church of
Jesus Christ of Latter-Day Saints (http://www.lds.org). Information
about Gedcom is available as a zip file at
ftp://gedcom.org/pub/genealogy/gedcom/gedcom55.zip. Unfortunately, this
is only usable if you can access a PC running Windows of some
description. Part of the reason I wrote this module is because I don't
do that. Well, I didn't. I can now although I prefer not to...
Requirements:
Perl 5.005 or later
ActivePerl5 Build Number 520 or later has been reported to work
Optional Modules:
Date::Manip.pm to work with dates
Text::Soundex.pm to use soundex
Parse::RecDescent.pm to use lines2perl
Roman.pm to use the LifeLines function roman from lines2perl
The Gedcom format is specified in a grammar file (gedcom-5.5.grammar).
Gedcom.pm parses the grammar which is then used to validate and allow
manipulation of the Gedcom file. I have only used Gedcom.pm with
version 5.5 of the Gedcom grammar, which I had to modify slightly to
correct a few errors. The advantage of this approach is that Gedcom.pm
should be useful if the Gedcom grammar is ever updated. It also made
the software easier to write, and probably more dependable too. I
suppose this is the virtue of laziness shining through.
The vice of laziness is also shining brightly - I need to document how
to use this module in much greater detail. This is happening - this
release has more documentation than the previous ones - but if you would
like information feel free to send me mail or better still, ask on the
mailing list.
This module provides some functions which work over the entire Gedcom
file, such as reformatting dates, renumbering entries and ordering the
entries. It also allows access to individuals, and then to relations of
individuals, for example sons, siblings, spouse, parents and so forth.
The distribution includes a lines2perl program to convert LifeLines
programs to Perl. The program works, but it has a few rough edges, and
some missing functionality. I'll be working on it when it hits the top
of my TODO list.
There is now an option for read only access to the gedcom file.
Actually, this doesn't stop you changing or writing the file, but it
does parse the gedcom file lazily, meaning that only those portions of
the gedcom file which are needed will be read. This can provide a
substantial saving of time and memory providing that not too much of the
gedcom file is read. If you are going to read the whole gedcom file,
this mode is less efficient unless you do some manual housekeeping.
Note that this is still considered beta software - caveat emptor.
Should you find this software useful, or if you make changes to it, or
if you would like me to make changes to it, please send me mail. I
would like to have some sort of an idea of the use this software is
getting. Apart from being of interest to me, this will guide my
decisions when I feel the need to make changes to the interface.
There is a low volume mailing list available for discussing the use of
Perl in conjunction with genealogical work. This is an appropriate
forum for discussing Gedcom.pm and if you use or are interested in this
module I would encourage you to join the list. To subscribe send an
empty message to [email protected].
To store my genealogy I wrote a syntax file (gedcom.vim) and used vim
(http://www.vim.org) to enter the data, and Gedcom.pm to validate and
manipulate it. I find this to be a nice solution.