GOV/Datenmodell

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen

GOV-Hauptseite > GOV/Projekt > GOV Datenmodell

Projekt GOV
hier: GOV/Datenmodell

GOV-Datenbankabfrage:

Infoseiten zum Projekt:

Datenerfassung:

Kontakt:

Kategorien:


Das zentrale Element mit Modell ist das GOV-Objekt. Ein GOV-Objekt hat

  • Eigenschaften
  • Beziehungen zu anderen GOV-Objekten

Eigenschaften

Ein GOV-Objekt hat eine Menge von Eigenschaften, z.B. Namen

 Objekt O1 hat (zu einer gewissen Zeit) die Eigenschaft E1 (Quellenangabe),

Liste von Eigenschaften

Beziehungen

Beziehungen zwischen zwei GOV-Objekten haben die Form

 Objekt O1 steht (zu einer gewissen Zeit) in Beziehung zu Objekt O2 (Quellenangabe),

Liste von Beziehungen

Zeitangabe

Sowohl Eigenschaften als auch Beziehungen können mit Zeitangaben versehen werden. Es können angegeben werden

  • Zeitpunkte
 Objekt01 steht JJJJ-MM-TT in Beziehung zu Objekt02 (sagt Quelle),
  • Zeiträume
 Objekt01 steht ab JJJJ-MM-TT bis JJJJ-MM-TT in Beziehung zu Objekt02 (sagt Quelle),

Zeiträume können auch teilweise (nur ab oder nur bis) angegeben werden. Weitere Informationen zu Zeitangaben im GOV stehen hier.

Quellenangaben

Sowohl Eigenschaften als auch Beziehungen können mit Quellenangaben versehen werden. Die Quelle, zB. ein Buch, wird im GOV als eigenes Objekt hinterlegt.

Nähere Angaben - zB. bei Büchern Seitenangaben oder bei Periodika Jahrgang, Nr. der Ausgabe und Seite - werden in Klammern gesetzt.

 ... sagt Quelle (Nähere Angaben),

Bei mehreren Quellenangaben - zB bei Zeiträumen - werden die Quellenangaben hintereinander gesetzt.

 ... sagt Quelle (Nähere Angaben) sagt Quelle (Nähere Angaben),

Das ganze als Graph

Man kann sich die Daten auch als gerichteten, zyklenfreien Graph vorstellen, in dem die GOV-Objekte Knoten und die Beziehungen Kanten zwischen diesen Knoten sind. Eine Kante kann mit einer Zeitangabe und Quellenangaben versehen werden.

Wichtig: Der Graph darf keine Zyklen haben, da sonst die Suche nach den Kind-Elementen nicht aufhört.

  • Kirchen stehen in Orten
  • Orte gehören zu Kirchspielen
  • Kirchen gehören zu Kirchspielen (nicht Kirchspiele -> Kirche)

Relationale Darstellung

Alle Ausprägungen der Quicktext-Elemente eines Eintrags (GOV-ID) werden intern als eine XML-Zeichenkette gespeichert. Diese kann man mit einem Webservice auslesen und in eine relationale Tabelle umwandeln. Je GOV-ID kann es viele Ausprägungen geben. Sie werden je GOV-ID in lfd_id gezählt.

Der Zugriff auf die XML-Zeichenkette kann mit XPath-Funktionen einer Programmiersprache erfolgen. Im Kommentar sind Beispiele für den Pfadzugriff und die Attribute angegeben. Details ergeben sich aus der WSDL-Definition. Beispiel für Datumsumrechnung siehe Name mit Datum.

create table gov_rel (
govid     varchar(40),       -- GOV-ID (Primary Key)
lfd_id    number (10),       -- laufende Satznummer je GOV-ID (Primary Key)
-- [1] letzte Änderung ----- //out
last_modification date,      -- @last-modification z.B. "2007-08-11T19:37:21.000+02:00"
dep_govid  varchar(40),      -- @deprecated = Eintrag wurde verschmolzen mit dep_govid
id         varchar(40),      -- GOV-ID aus XML (Kontrolle)
--     position ------------ //out
postyp    varchar(1),        -- ns2:position/@type
lat       number(18,14),     -- ns2:position/@lat = Breite
lon       number(18,14),     -- ns2:position/@lon = Länge
height    number(8),         -- ns2:position/@height
-- [2] external-reference -- //out/ns2:external-reference
ext     varchar(100),        -- @value
-- [3] url ----------------- //out/ns2:url
url     varchar(100),        -- @value = URL der Webseite
-- [4] name ---------------- //out/ns2:name
name      varchar(100),      -- @value = Name (z.B. Ortsname)
name_z    varchar(25),       -- Datum von/bis - ist zu berechnen aus name_b* und name_e* und name_y
name_b    date,              -- Datum von - zu berechnen aus name_b* ...
name_e    date,              -- Datum bis - zu berechnen aus name_e* ...
-- mögliche Felder vor der Berechnung könnten sein:
--name_by   varchar(4),      -- begin year @begin-year
--name_ey   varchar(4),      -- end year   @end-year
--name_y    varchar(4),      -- year       @year
--name_bc   varchar(8),      -- begin      ns2:timespan/ns2:begin/@jd
--name_bp   varchar(1),      -- precision  ns2:timespan/ns2:begin/@precision
--name_ec   varchar(8),      -- end        ns2:timespan/ns2:end/@jd
--name_ep   varchar(1),     -- precision  ns2:timespan/ns2:end/@precision
-- [5] type ---------------- //out/ns2:type
type    number (5),          -- @value GOV-Objekttyp
type_z  varchar(25),
type_b  date,
type_e  date,
type_c  varchar(100),        -- Typ-Beschreibung aus Beschreibungstabelle (s.u.)
-- [6] population ---------- //out/ns2:population
einw    number (15),         -- @value = Einwohnerzahl
einw_z  varchar(25),
einw_b  date,
einw_e  date,
-- [7] postal-code --------- //out/ns2:postal-code
plz     varchar(20),         -- @value = Postleitzahl
plz_z   varchar(25),
plz_b   date,
plz_e   date,
-- [8] w-number ------------ //out/ns2:w-number
wnr     varchar(10),         -- @value = W-Nummer
-- [9] denomination -------- //out/ns2:denomination
konf    varchar(6),          -- @value = Konfession (z.B. ev, rk, lu)
konf_z  varchar(25),
konf_b  date,
konf_e  date,
-- [10] municipal-id ------- //out/ns2:municipal-id
gkz     varchar(10),         -- @value = Gemeindekennziffer (=AGS)
gkz_z   varchar(25),
gkz_b   date,
gkz_e   date,
-- [11] area --------------- //out/ns2:area
area    number (18,5),       -- @value = Fläche (ersetzen . -> ,)
area_z  varchar(25),
area_b  date,
area_e  date,
-- [12] households --------- //out/ns2:households
hh      number(8),           -- @value = Haushalte
hh_z    varchar(25),
hh_b    date,
hh_e    date,
-- [13] part-of ------------ //out/ns2:part-of
part    varchar(40),         -- @value = gehört zu GOV-ID
part_z  varchar(25),
part_b  date,
part_e  date,
-- [14] located-in --------- //out/ns2:located-in
loc_govid varchar (40),      -- @value = (z.B. Kirche) steht in GOV-ID
-- [15] represents --------- //out/ns2:represents
repre   varchar(40),         -- @value = (z.B. Pfarrei) repräsentiert GOV-ID
repre_z varchar(25),
repre_b date,
repre_e date,
-- [16] note --------------- //out/ns2:note
txt     varchar(1000)       -- '.' = TEXT: ... :TEXT = Anmerkungen
);
create unique index pk_f_gov_rel on f_gov_rel (govid, lfd_id);
alter table f_gov_rel add primary key (govid, lfd_id) using index pk_f_gov_rel;

Die Beschreibung der Objekttypen kann man per Webservice mit der WSDL-Operation getTypeDescription abholen und in einer Tabelle ablegen.

-- Objekttypen-Tabelle
CREATE TABLE gov_type (
type_id number(3),
type_c  varchar(100)
lang    varchar(3),
);

Beispiel für die zwei Einträge AARRSTJO72WT und object_262995.

GOVID LFD_IDLAST_MODIFICATION ID POSTYP LAT LONNAME NAME_Z NAME_B TYPETYPE_Z TYPE_B TYPE_E TYPE_C EINWEINW_Z EINW_B EINW_E PLZ PLZ_ZPLZ_B WNR GKZ
AARRSTJO72WT 105.12.2014 21:59:38AARRSTJO72WT p 52,8219 15,891Tuczępy 1945 - 01.01.1945 85 - 1935-03-31 31.03.1935Landgemeinde 3161885 01.01.188531.12.1885 52335
AARRSTJO72WT 205.12.2014 21:59:38 Aarhorst 181935-04-01 - 01.04.1935 Gemeinde 2091939 01.01.193931.12.1939
AARRSTJO72WT 305.12.2014 21:59:38 2481910-12-01 - 1910-12-0101.12.191001.12.1910
AARRSTJO72WT 405.12.2014 21:59:38 3131895-12-02 - 1895-12-0202.12.189502.12.1895
AARRSTJO72WT 505.12.2014 21:59:38 2151933 01.01.193331.12.1933
AARRSTJO72WT 605.12.2014 21:59:38 2401925 01.01.192531.12.1925
object_262995 124.11.2014 21:33:28object_262995c 52,785448613,9423364Falkenberg2001-12-31 -31.12.2001 182001-12-31 - 31.12.2001 Gemeinde 25182001 01.01.200131.12.2001162592002 01.01.2002 12064125
object_262995 224.11.2014 21:33:28 24792005 01.01.200531.12.2005
object_262995 324.11.2014 21:33:28 24812004 01.01.200431.12.2004
object_262995 424.11.2014 21:33:28 24472006 01.01.200631.12.2006
object_262995 524.11.2014 21:33:28 24862003 01.01.200331.12.2003
object_262995 624.11.2014 21:33:28 25102002 01.01.200231.12.2002