Commit Diff


commit - d0ac3414e395977a1878a4d0d795561494a99812
commit + 9c5889a96479f0c4965cb9d217911283f871244b
blob - 356111410e4b571eef0550ae1645b3428e06cae5
blob + cebace76541da2700cbc612558568338b6d14949
--- README.md
+++ README.md
@@ -86,5 +86,6 @@ EP106: child doesn't inherit father's surname
 - [gedcomq](https://godoc.org/github.com/elliotchance/gedcom/gedcomq)
 - [emperor](https://github.com/bencrowder/emperor)
 - [genealogytree](https://www.ctan.org/pkg/genealogytree)
+- [Using Prolog to Analyze your Family Tree](https://gramps-project.org/blog/2015/05/using-prolog-to-analyze-your-family-tree/)
 
 Copyright (c) 2017-2019, [Sergey Bronnikov](https://bronevichok.ru/)
blob - /dev/null
blob + abfd333976b35671b037df6835ce79ae02087198 (mode 644)
--- /dev/null
+++ cmd/gedcom2sql/gramps-db1.sql
@@ -0,0 +1,224 @@
+CREATE TABLE note (
+                  handle CHARACTER(25) PRIMARY KEY,
+                  gid    CHARACTER(25),
+                  text   TEXT,
+                  format INTEGER,
+                  note_type1   INTEGER,
+                  note_type2   TEXT,
+                  change INTEGER,
+                  private BOOLEAN);
+CREATE TABLE name (
+                  handle CHARACTER(25) PRIMARY KEY,
+                  primary_name BOOLEAN,
+                  private BOOLEAN, 
+                  first_name TEXT, 
+                  suffix TEXT, 
+                  title TEXT, 
+                  name_type0 INTEGER, 
+                  name_type1 TEXT, 
+                  group_as TEXT, 
+                  sort_as INTEGER,
+                  display_as INTEGER, 
+                  call TEXT,
+                  nick TEXT,
+                  famnick TEXT);
+CREATE TABLE surname (
+                  handle CHARACTER(25),
+                  surname TEXT, 
+                  prefix TEXT, 
+                  primary_surname BOOLEAN, 
+                  origin_type0 INTEGER,
+                  origin_type1 TEXT,
+                  connector TEXT);
+CREATE INDEX idx_surname_handle ON 
+                  surname(handle);
+CREATE TABLE date (
+                  handle CHARACTER(25) PRIMARY KEY,
+                  calendar INTEGER, 
+                  modifier INTEGER, 
+                  quality INTEGER,
+                  day1 INTEGER, 
+                  month1 INTEGER, 
+                  year1 INTEGER, 
+                  slash1 BOOLEAN,
+                  day2 INTEGER, 
+                  month2 INTEGER, 
+                  year2 INTEGER, 
+                  slash2 BOOLEAN,
+                  text TEXT, 
+                  sortval INTEGER, 
+                  newyear INTEGER);
+CREATE TABLE person (
+                  handle CHARACTER(25) PRIMARY KEY,
+                  gid CHARACTER(25), 
+                  gender INTEGER, 
+                  death_ref_handle TEXT, 
+                  birth_ref_handle TEXT, 
+                  change INTEGER, 
+                  private BOOLEAN);
+CREATE TABLE family (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 gid CHARACTER(25), 
+                 father_handle CHARACTER(25), 
+                 mother_handle CHARACTER(25), 
+                 the_type0 INTEGER, 
+                 the_type1 TEXT, 
+                 change INTEGER, 
+                 private BOOLEAN);
+CREATE TABLE place (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 gid CHARACTER(25), 
+                 title TEXT, 
+                 value TEXT, 
+                 the_type0 INTEGER,
+                 the_type1 TEXT,
+                 code TEXT,
+                 long TEXT, 
+                 lat TEXT, 
+                 lang TEXT, 
+                 change INTEGER, 
+                 private BOOLEAN);
+CREATE TABLE place_ref (
+                   handle             CHARACTER(25) PRIMARY KEY,
+                   from_place_handle  CHARACTER(25),
+                   to_place_handle    CHARACTER(25));
+CREATE TABLE place_name (
+                  handle        CHARACTER(25) PRIMARY KEY,
+                  from_handle   CHARACTER(25),
+                  value         CHARACTER(25),
+                  lang          CHARACTER(25));
+CREATE TABLE event (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 gid CHARACTER(25), 
+                 the_type0 INTEGER, 
+                 the_type1 TEXT, 
+                 description TEXT, 
+                 change INTEGER, 
+                 private BOOLEAN);
+CREATE TABLE citation (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 gid CHARACTER(25), 
+                 confidence INTEGER,
+                 page CHARACTER(25),
+                 source_handle CHARACTER(25),
+                 change INTEGER,
+                 private BOOLEAN);
+CREATE TABLE source (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 gid CHARACTER(25), 
+                 title TEXT, 
+                 author TEXT, 
+                 pubinfo TEXT, 
+                 abbrev TEXT, 
+                 change INTEGER,
+                 private BOOLEAN);
+CREATE TABLE media (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 gid CHARACTER(25), 
+                 path TEXT, 
+                 mime TEXT, 
+                 desc TEXT,
+                 checksum INTEGER,
+                 change INTEGER, 
+                 private BOOLEAN);
+CREATE TABLE repository_ref (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 ref CHARACTER(25), 
+                 call_number TEXT, 
+                 source_media_type0 INTEGER,
+                 source_media_type1 TEXT,
+                 private BOOLEAN);
+CREATE TABLE repository (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 gid CHARACTER(25), 
+                 the_type0 INTEGER, 
+                 the_type1 TEXT,
+                 name TEXT, 
+                 change INTEGER, 
+                 private BOOLEAN);
+CREATE TABLE link (
+                 from_type CHARACTER(25), 
+                 from_handle CHARACTER(25), 
+                 to_type CHARACTER(25), 
+                 to_handle CHARACTER(25));
+CREATE INDEX idx_link_to ON 
+                  link(from_type, from_handle, to_type);
+CREATE TABLE markup (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 markup0 INTEGER, 
+                 markup1 TEXT, 
+                 value INTEGER, 
+                 start_stop_list TEXT);
+CREATE TABLE event_ref (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 ref CHARACTER(25), 
+                 role0 INTEGER, 
+                 role1 TEXT, 
+                 private BOOLEAN);
+CREATE TABLE person_ref (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 description TEXT,
+                 private BOOLEAN);
+CREATE TABLE child_ref (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 ref CHARACTER(25), 
+                 frel0 INTEGER,
+                 frel1 CHARACTER(25),
+                 mrel0 INTEGER,
+                 mrel1 CHARACTER(25),
+                 private BOOLEAN);
+CREATE TABLE lds (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 type INTEGER, 
+                 place CHARACTER(25), 
+                 famc CHARACTER(25), 
+                 temple TEXT, 
+                 status INTEGER, 
+                 private BOOLEAN);
+CREATE TABLE media_ref (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 ref CHARACTER(25),
+                 role0 INTEGER,
+                 role1 INTEGER,
+                 role2 INTEGER,
+                 role3 INTEGER,
+                 private BOOLEAN);
+CREATE TABLE address (
+                handle CHARACTER(25) PRIMARY KEY,
+                private BOOLEAN);
+CREATE TABLE location (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 street TEXT, 
+                 locality TEXT,
+                 city TEXT, 
+                 county TEXT, 
+                 state TEXT, 
+                 country TEXT, 
+                 postal TEXT, 
+                 phone TEXT,
+                 parish TEXT);
+CREATE TABLE attribute (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 the_type0 INTEGER, 
+                 the_type1 TEXT, 
+                 value TEXT, 
+                 private BOOLEAN);
+CREATE TABLE url (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 path TEXT, 
+                 desc TXT, 
+                 type0 INTEGER,
+                 type1 TEXT,                  
+                 private BOOLEAN);
+CREATE TABLE datamap (
+                 from_handle CHARACTER(25),
+                 the_type0 INTEGER,
+                 the_type1 TEXT,
+                 value_field TXT,
+                 private BOOLEAN);
+CREATE TABLE tag (
+                 handle CHARACTER(25) PRIMARY KEY,
+                 name TEXT,
+                 color TEXT,
+                 priority INTEGER,
+                 change INTEGER);