GOV/Qualitätskontrolle: Unterschied zwischen den Versionen
Zeile 147: | Zeile 147: | ||
=== Objekte, die einem gleichnamigen Objekt zugeordnet sind === | === Objekte, die einem gleichnamigen Objekt zugeordnet sind === | ||
Das | Das müssen nicht unbedingt Fehler sein, aber an einigen Stellen kann man so Probleme finden. | ||
SELECT p1.content, i1.textualId, tn1.value, i2.textualId, tn2.value | SELECT p1.content, i1.textualId, tn1.value, i2.textualId, tn2.value | ||
FROM GovItem i1, GovItem i2, Property p1, Property p2, | FROM GovItem i1, GovItem i2, Property p1, Property p2, | ||
Zeile 154: | Zeile 154: | ||
AND p2.type=1 AND i1.id= p1.gov_object AND p1.type=1 AND p1.content=p2.content | AND p2.type=1 AND i1.id= p1.gov_object AND p1.type=1 AND p1.content=p2.content | ||
AND t1.gov_object=i1.id and t2.gov_object=i2.id AND t1.type=2 and t2.type=2 | AND t1.gov_object=i1.id and t2.gov_object=i2.id AND t1.type=2 and t2.type=2 | ||
AND t1.typeObject=tn1.type_id and tn1.language='deu' and t2.typeObject=tn2.type_id | AND t1.typeObject=tn1.type_id and tn1.language='deu' | ||
and t2.typeObject=tn2.type_id and tn2.language='deu' | |||
AND t2.typeObject NOT IN (29,103, 94, 36, 25, 5, 53) limit 10; | |||
== Kennzahlen == | == Kennzahlen == |
Version vom 21. Juni 2006, 11:43 Uhr
Fehlersuche mit Taxo 2 Map
Das Programm Taxo 2 Map erlaubt eine sehr schnelle und effiziente grafische Kontrolle aller Orte, bei denen geografische Koordinaten angegeben wurden. Das Programm zeigt alle Orte auf Karten an. Dabei können aus einer Liste verschiedene Landkreise oder Regierungsbezirke aktiviert werden.
Eine Erläuterung der Vorgehensweise ist im PDF-Dokument zu finden.
Taxo 2 Map ist keine kostenlose Software, eine Lizenz kann aber über den Verein für Computergenealogie für GOV-Mitarbeiter erworben werden.
Anwendungsbeispiel für Taxo 2 Map:
Exemplarisch wurde eine Auswertung für den Regierungsbezirk Tübingen erstellt. Links ist die Verteilung der Daten auf die administrativen Bereiche zu sehen, rechts die Visualisierung aller Orte.
Über den Link Datenanzeige wird eine separate htm-Seite geöffnet, welche die Grafik erneut anzeigt, jedoch wird dort beim Überfahren eines Punktes mit der Maus der entsprechende Ort als Quickinfo angezeigt.
Datenanzeige |
Für die einzelnen Landkreise ergeben sich folgende Auswertungen:
Es sind ca. 23-25 Orte erkennbar, die nicht direkt der üblichen "Haufenbildung" einer administrativen Einheit folgen. Diese Orte bedürfen eventuell einer Korrektur der geographischen Koordinaten oder der administrativen Zuordnung.
Fehlersuche in Datenbank
Objekte ohne Namen
Vielfach werden in GOV Kindobjekte aufgelistet, die keinen Namen haben und die damit auch nicht als Objekt editierbar oder löschbar sind. Diese Objekte sollten über einen Suchmechanismus gefunden werden können und dann gelöscht werden.
SELECT o.textualId FROM GovItem o LEFT JOIN Property n ON n.gov_object=o.id AND n.type=1 WHERE o.deleted=0 AND o.itemClass='o' AND n.id IS NULL;
Objekte ohne Typ
SELECT o.textualId FROM GovItem o LEFT JOIN Property t ON tt.gov_object=o.id AND t.type=2 WHERE o.deleted=0 AND o.itemClass='o' AND tt.id IS NULL;
Kirchen ohne Standort
SELECT o.textualId FROM Property t, GovItem o LEFT JOIN Relation r ON r.child=t.gov_object AND r.type=2 WHERE t.type=2 AND t.typeObject=26 AND o.id=t.gov_object AND r.parent IS NULL;
Kirchspiele ohne Kirche
Relevante Objekt-Typen:
- 29 (Kirchspiel)
- 42 (Pfarrei)
- 81 (Kloster)
- 92 (Kirchengemeinde)
SELECT o.textualId from Property t, GovItem o LEFT JOIN Relation r ON r.parent=t.gov_object AND r.type=3 WHERE t.type=2 and t.typeObject IN (29,92,42,81) AND o.id=t.gov_object and r.child IS NULL;
Religiöse Objekte ohne Konfession
Relevante Objekt-Typen:
- 26 (Kirche)
- 29 (Kirchspiel)
- 42 (Pfarrei)
- 81 (Kloster)
- 92 (Kirchengemeinde)
SELECT o.textualId from Property t, GovItem o LEFT JOIN Property k ON k.gov_object=t.gov_object AND k.type=7 WHERE t.type=2 and t.typeObject IN (26,29,92,42,81) AND o.id=t.gov_object AND k.id IS NULL;
Orte und Ortsteile mit falscher PLZ
- Länge der PLZ = 1 (z.B. nur "O" oder "W")
- kein Jahr bis bei PLZ die mit "O" oder "W" beginnt
- in DE: Länge PLZ = 4
Orte und Koordinaten im übergeordneten Objekt
- Orte in einem Bundesland/Regierungsbezirk, die keine Koordinaten haben
SELECT distinct ri.ende, textualId FROM GovItem i JOIN Property p ON i.id=p.gov_object AND p.type=2 JOIN Type t ON t.id=typeObject JOIN p ri ON ri.anfang=i.id AND ri.ende in (1312, 1315, 1322, 1324, 1325, 1326, 1331, 1332, 1338, 1342, 1346, 1351, 1359, 1360, 1363, 1364, 1365, 1369, 1373, 191050, 211667, 213750) WHERE itemClass='o' AND deleted=0 AND (latitude is null or latitude=0) AND position=1
- Orte die identische Koordinaten in einem Bundesland/Regierungsbezirk haben
Orte ohne Koordinate
Gelöschte Objekte und solche mit einem Typ, der keine Position zuläßt, dürfen nicht mitgezählt werden.
SELECT count(distinct textualId) FROM GovItem i JOIN Property p ON i.id=p.gov_object AND p.type=2 JOIN Type t ON t.id=typeObject WHERE itemClass='o' deleted=0 and latitude is null or latitude=0 and position=1;
Gelöschte Objekte mit Kindern
Ein gelöschtes Objekt darf nie als Elternobjekt eingetragen sein.
SELECT DISTINCT textualId FROM GovItem p, Relation r WHERE p.deleted =1 AND parent =p.id;
Orte an den Rändern von Einheiten
im Norden:
SELECT c.* FROM GovItem i JOIN p ON p.ende=i.id JOIN GovItem c ON p.anfang=c.id WHERE i.textualId='OBJEKTKENNUNG' ORDER BY c.latitude DESC LIMIT 1;
im Süden:
SELECT c.* FROM GovItem i JOIN p ON p.ende=i.id JOIN GovItem c ON p.anfang=c.id WHERE i.textualId='OBJEKTKENNUNG' ORDER BY c.latitude ASC LIMIT 1;
im Westen:
SELECT c.* FROM GovItem i JOIN p ON p.ende=i.id JOIN GovItem c ON p.anfang=c.id WHERE i.textualId='OBJEKTKENNUNG' ORDER BY c.longitude ASC LIMIT 1;
im Osten:
SELECT c.* FROM GovItem i JOIN p ON p.ende=i.id JOIN GovItem c ON p.anfang=c.id WHERE i.textualId='OBJEKTKENNUNG' ORDER BY c.longitude DESC LIMIT 1;
Objekte, die einem gleichnamigen Objekt zugeordnet sind
Das müssen nicht unbedingt Fehler sein, aber an einigen Stellen kann man so Probleme finden.
SELECT p1.content, i1.textualId, tn1.value, i2.textualId, tn2.value FROM GovItem i1, GovItem i2, Property p1, Property p2, Property t1, Property t2, p, type_names tn1, type_names tn2 WHERE p.anfang=i1.id and p.ende=i2.id AND i2.id=p2.gov_object AND p2.type=1 AND i1.id= p1.gov_object AND p1.type=1 AND p1.content=p2.content AND t1.gov_object=i1.id and t2.gov_object=i2.id AND t1.type=2 and t2.type=2 AND t1.typeObject=tn1.type_id and tn1.language='deu' and t2.typeObject=tn2.type_id and tn2.language='deu' AND t2.typeObject NOT IN (29,103, 94, 36, 25, 5, 53) limit 10;
Kennzahlen
Manche Kennzahlen geben Auskunft über die Entwicklung der Qualität der im GOV enthaltenen Daten.
Anzahl Orte mit Position
SELECT count(*) FROM GovItem WHERE itemClass ='o' AND latitude >0;
Anzahl Orte ohne Position
SELECT count( distinct textualId) FROM GovItem i , Property p, Type t WHERE (latitude =0 or latitude is null) and itemClass='o' AND gov_object=i.id AND propertyClass='t' and typeObject=t.id and t.locatedIn=1 ;
- Anzahl Orte ohne Elternobjekt
- Anzahl Werte mit Quellenangaben
- Verteilung Anzahl Elternobjekte
- Verteilung Verschachtelungstiefe
- Verteilung Anzahl Kindobjekte
- Objekte mit vielen Kindobjekte