|
|
Learning by Example |
Von Thomas Bez am 28.08.2016
Every visitor of the Pedigree Database is allowed to submit changes:
For example, a user navigates to the simple pedigree view <http://www.barnim.net/pedigree/show/66130.html> or the detail view <http://www.barnim.net/pedigree/details/66130.html>, does changes in the update form and presses the Update button.
The changes will not be performed immediately on the Database. Rather, an e-mail is generated and sent to one of the Editors of the Database. The Editor has to do a number of sanity and data integrity checks before he he finally enters the information in the Database.
Here is an example of such e-mail. It reflects the information entered in the update form plus some information automatically added:
start
mode : update
# name : Ciana Blonde de Lady Fontaine la Belle
index : 59036
# title :
title : Ch. France
# colour :
colour : Fauve
# regno :
regno : 1BBr 104277/15210
# sire :
sire : Twiny Blond de la Tour Saint Genin
# dam :
dam : Toya Blonde de Lady Fontaine la Belle
# breeder :
breeder : monique weber-lo giaco, saint-sauveur-sur-ecole, france
# birth : 0000-00-00
birth : 2007-06-19
# owner :
owner : poissonnet jacqueline, itteville, france
# hd :
hd : B/B
# csnb :
csnb : Sain OK
# note :
note : n° Identification : 250269700377544; CACS Nationale Elevage France 2011; Sélection France 2011; Pontoise - 15-05-2011 - CACS,CACIB,BOB - Juge M. Jacques MEDARD-RINGUET; Angers - 27-03-2011 -CACS,CACIB,BOB -Juge Mme Jeannette LARIVE; Paris Dog Show Vincennes - 09-01-2011 -CACS,CACIB,BOB - Juge M Guy MANSENCAL; Chalette-sur-Loing - 19-07-2009-CACS,BOB - Juge M Emmanuel YANNAKIS
# source : Propriétaire : Jacqueline POISSONNET
# email : jacqueline.poissonnet@orange.fr
# editor :
# modific : 2016-08-27
# remote : 82.121.29.3 20160827145654
end
We see:
Now we review and correct the update record. We omit any comment lines here for better readability, however, they do not disturb if we kept them in the final Batch Language script.
We do following corrections:
The rest is good.
start
mode : update
# name : Ciana Blonde de Lady Fontaine la Belle
index : 59036
title : Ch.
colour : fauve
regno : LOF 1.B.Br 104277/15210
sire : Twiny Blond de la Tour Saint Genin
dam : Toya Blonde de Lady Fontaine la Belle
breeder : Monique Weber-Lo Giaco, Saint-Sauveur-sur-Ecole, FR
birth : 2007-06-19
owner : Jacqueline Poissonnet, Itteville, FR
hd : B/B
csnb : Sain OK
note : n° Identification : 250269700377544; CACS Nationale Elevage France 2011; Sélection France 2011; Pontoise - 15-05-2011 - CACS,CACIB,BOB - Juge M. Jacques MEDARD-RINGUET; Angers - 27-03-2011 -CACS,CACIB,BOB -Juge Mme Jeannette LARIVE; Paris Dog Show Vincennes - 09-01-2011 -CACS,CACIB,BOB - Juge M Guy MANSENCAL; Chalette-sur-Loing - 19-07-2009-CACS,BOB - Juge M Emmanuel YANNAKIS
end
The next steps are:
Step 1: Paste your Batch Language sequence (one or more "begin ... end" statements) in the Batch Edit dialog box.
Step 2: Keep the LOAD checkbox clear and push the Send button.
The result listing will show the following:
# Ciana Blonde de Lady Fontaine la Belle = *
Name of the dog and its parents (still empty here) as clickable links.
# name = "Ciana Blonde de Lady Fontaine la Belle", givenname = "", belong = "", kennel = "922", title = "", color = "", sex = "f", callname = "", sire = "0", sirename = "", dam = "0", damname = "", regno = "", country = "", breeder = "", owner = "", birth = "0000-00-00", death = "0000-00-00", reason = "", health = "", hd = "", csnb = "", eu = "", picture = "", internet = "", language = "", editor = "JPoisonnet", hpname = "", hpmail = "", flag = "1"
The current record with almost no information yet available.
update pedigree set title = "Ch.", color = "fauve", sire = "49566", sirename = "Twiny Blond de la Tour Saint Genin", dam = "62963", damname = "Toya blonde de Lady Fontaine la Belle", regno = "LOF 1.B.Br 104277/15210", breeder = "Monique Weber-Lo Giaco, Saint-Sauveur-sur-Ecole, FR", owner = "Jacqueline Poissonnet, Itteville, FR", birth = "2007-06-19", hd = "B/B", csnb = "Sain OK", comment = "n° Identification : 250269700377544; CACS Nationale Elevage France 2011; Sélection France 2011; Pontoise - 15-05-2011 - CACS,CACIB,BOB - Juge M. Jacques MEDARD-RINGUET; Angers - 27-03-2011 -CACS,CACIB,BOB -Juge Mme Jeannette LARIVE; Paris Dog Show Vincennes - 09-01-2011 -CACS,CACIB,BOB - Juge M Guy MANSENCAL; Chalette-sur-Loing - 19-07-2009-CACS,BOB - Juge M Emmanuel YANNAKIS", flag = 1 where idx = 59036;
The update statement in SQL database language. To be digested by SQL experts, not important here.
If any errors were detected or warnings raised by the syntax test, they will be shown as # Boldface Comments.
Step 3: If no errors and no warnings (or acceptable warnings only) are flagged, tick the LOAD checkbox.
Step 4: Push the Send button. If the record has been entered successfully, the result listing says "#OKAY".
More examples with error messages and how to resolve them will follow.
In the next example, a picture has been uploaded. It is already on the server and can be referred to by its identification "20160827_pedigree_145745423463". By the following Batch Language sequence it is linked to a Database entry. There is not much that could be wrong with this kind of entry.
start
mode: update
index: 33923
picture: 20160827_pedigree_145745423463
# source: Brigitte Winterer
# email: brigitte.winterer@gmx.de
flag: 0x0001
modification: 2016-08-27
remote: 2.163.6.186 20160827145745
end
In the following example the comment (note) was changed. The special thing about comments is that they are accumulating. The old comment is not replaced by a new one but the new comment is appended at the end of the old comment.
start
mode : update
# name : Erudit Doré de la Claire Noir
index : 65376
# note : Slowakischer Champion; Kroatischer Show Champion; Deutsche Selektion 2015; Coation-H-3; voll zur Zucht zugelassen
note : Deutscher Champion (VDH); Slowakischer Champion; Kroatischer Show Champion; Deutsche Selektion 2015; Coation-H-3; voll zur Zucht zugelassen
# source : Sandra Hänßel
# email : sandra.haenssel@t-online.de
# editor :
# modific : 2016-08-27
# remote : 79.217.248.179 20160827172732
end
Therefore, we delete from the new comment everything that was already in the previous comment.
start
mode : update
index : 65376
# note : Slowakischer Champion; Kroatischer Show Champion; Deutsche Selektion 2015; Coation-H-3; voll zur Zucht zugelassen
note : Deutscher Champion (VDH)
end
Alternatively, and useful in particular if the old and the new comments are very different, we could clear the comment first and then supply the complete new comment. To clear the old comment, we prepend the Batch Language sequence by a new hand-written statement as shown below, containing a "note:#" line where instead of the comment a single hash sign appears.
start
mode : update
index : 65376
note: #
end
start
mode : update
index : 65376
note : Deutscher Champion (VDH); Slowakischer Champion; Kroatischer Show Champion; Deutsche Selektion 2015; Coation-H-3; voll zur Zucht zugelassen
end
In the next example we test two related changes.
start
mode : update
# name : Grace Hirsute Blonde de Lady Fontaine la Belle
index : 19386
# regno :
regno : LOF 1BBR 81770/12558
# sire :
sire : Antaeüs de la Tour Saint Genin
# dam :
dam : Chabanou da Djerba Brune de la Palomera
# breeder :
breeder : m mme jean-claude larive
# birth : 1991-00-00
birth : 1991-03-13
# owner :
owner : Mme M Bernard Weber, Saint-Sauveur-sur-Ecole, France
# source : Jacqueline Poissonnet
# email : jacqueline.poissonnet@orange.fr
# editor :
# modific : 2016-08-28
# remote : 82.121.29.3 20160828141428
end
start
name : Chabanou da Djerba de la Palomera
colour : noire
sex : f
regno : LOF 1BBr 65243/11132
sire : Trufo du Moulin d'Eau
dam : Volga Blonde de la Palomera
breeder : m mme jean-claude larive
birth : 1987-09-04
death : 0000-00-00
owner : M Mme Jean-Claude Larive
# source : Jacqueline Poissonnet
# email : JPoisonnet
# modific : 2016-08-28
# remote : 82.121.29.3 20160828142924
end
It shows that dam "Chabanou da Djerba Brune de la Palomera" is unknown. This is only a warning. The Database would accept it if we decided to enter it like this, however, the pedigree links would remain broken even if we entered Chabanou at a later time. Lesson: Always ensure that the parents are known to the Database before you enter a descendant.
The record of Chabanou is actually the next one but it should be entered first, before other records referring to it. Therefore, we change the sequence of both records.
We see that the name under which Chabanou shall be entered into the Database is "Chabanou da Djerba de la Palomera". However, the other record uses a longer form "Chabanou da Djerba Brune de la Palomera". Lesson: Never rely upon how users write or spell names – every detail could be wrong. We assume the longer form is the correct one and change the name for entry into the database accordingly.
And, again, we correct all appearances of the all-lowercase "m mme jean-claude larive" to "M Mme Jean-Claude Larive".
start
name : Chabanou da Djerba Brune de la Palomera
colour : noire
sex : f
regno : LOF 1BBr 65243/11132
sire : Trufo du Moulin d'Eau
dam : Volga Blonde de la Palomera
breeder : M Mme Jean-Claude Larive
birth : 1987-09-04
death : 0000-00-00
owner : M Mme Jean-Claude Larive
end
start
mode : update
# name : Grace Hirsute Blonde de Lady Fontaine la Belle
index : 19386
regno : LOF 1BBR 81770/12558
sire : Antaeüs de la Tour Saint Genin
dam : Chabanou da Djerba Brune de la Palomera
breeder : M Mme Jean-Claude Larive
# birth : 1991-00-00
birth : 1991-03-13
owner : Mme M Bernard Weber, Saint-Sauveur-sur-Ecole, France
end
The next test again raises a warning because it was only a test run and Chabanou was not actually stored in the Database yet. If we want to be on the safe side, we test and LOAD both records separately. In this case we double-checked that the sequence of records is good and the spelling of Chabanou's name is correct. We can LOAD both records in the same run.
We tick the LOAD checkbox and press the Send button again. The Database processes both records separately, one-by-one. Chabanou has been stored already and its name can be resolved when it is used in the second record.
Levels of Access to the Pedigree Database |
Von Thomas Bez am 28.08.2016
Everyone has read access. It is possible to search for names, view simple pedigrees <http://www.barnim.net/pedigree/show/66130.html> and navigate through simple pedigrees. Also search engines (Google, Bing etc.) are allowed to do this.
In the first 12 years of the Database, this function was reserved to registered and logged in users. In August 2016 we relaxed this policy and now every user (except search engines) has extended read access. In addition to normal read access, users can display the detail view <http://www.barnim.net/pedigree/details/66130.html>, use the What-if analysis <http://www.barnim.net/pedigree/whatif.php> and view the Reverse pedigree <http://www.barnim.net/pedigree/reverse.php?probe=46966&gen=2>.
This is the "Editor" function. Editors are allow to do direct changes to the database using the Batch Language.
The Administrator has full access to all database maintenance functions.
Editor Access to the Pedigree Database |
Von Thomas Bez am 12.03.2016
In an earlier article </weblog/1200659176:474925.html> of this Database administrator blog we explained the Administrator access. It is recommended reading for every Administrator and Editor of the Database who can read German.
The Briard Database can be found under http://www.barnim.net/pedigree <http://www.barnim.net/pedigree>. We provided the software platform also to other breeds. Their databases can be found under http://www.tedesca.org <http://www.tedesca.org>.
The Database consists of records (database entries). There are two different classes of Records: pedigree record and kennel record. In March 2016, the Database of Briards contained 2900 kennel records and 66,000 pedigree records.
The Administrator is allowed to do any kind of change to the Database.
The Editor is allowed to add and modify records.
The format of Batch Language scripts and commands is described below in the section "Batch Language".
Navigate to the Database portal page. This is http://www.barnim.net/pedigree <http://www.barnim.net/pedigree> for the Database of Briards. Click on "Login" and enter your access credentails (user name, password). After login, a headline "Batch Edit" (Stapeländerungen) with an empty form field appears on the portal page. This form field with its button "Send" (Absenden) and the flag "LOAD" (Laden) is all you will need to edit the Database.
There are two different classes of Records: pedigree record and kennel record.
Every dog in the database has its own pedigree record and every kennel its own kennel record.
The unique identification of any pedigree and kennel record is its index. Pedigree and kennel records have separate index spaces, i.e. both classes are numbered starting with 1. The Database indices show, for example, in the URLs of the Database deep links:
A command consists of a sequence of "tag: value" assignments, framed by the keywords "start" and "end":
start
mode: update
name: Garbo aus dem Barnimer Land
internet: http://www.barnim.net/garbo
end
One command adds or modifies exactly one Database Record. There are commands to add or modify pedigree records and other commands for kennel records.
The "start" keyword can be omitted but the "end" keyword is important.
A script is a sequence of commands, one after the other. The commands of a script are applied to the database immediately one by one, i.e. a command can make use of changes (e.g. addition of a kennel) which were made in an earlier command even of the same script.
Existing Database Records can be referred to by
The second and third format may be helpful in particular if you refer to a dog who is in the Database without a kennel name. In this case the Database algorithm refuses to match the Database entry by just the dog's callname.
See below examples to understand how this works. The next three commands have the same effect of setting the parents of Garbo:
start
mode: update
name: Garbo aus dem Barnimer Land
sire: Brian Badria's Darling
dam: Clarissa L. aus dem Barnimer Land
end
start
mode: update
index: 66130
sire: i=60518
dam: i=60239
end
start
mode: update
name: r=VDH-BCD Z6869
sire: r=CMKU/BRI/5227/07
dam: r=VDH-BCD U5360
end
The first occurence of one of the tags "name" or "index" identifies the Database Entry to be changed. Note that for security reasons in case of "mode: delete" it is always required to identify the Database Entry to be deleted by its index, not by the dog's name.
Of course, if Garbo was not in the Database yet we had to supply her full name:
start
mode: add
name: Garbo aus dem Barnimer Land
sire: i=60518
dam: r=VDH-BCD U5360
end
Data integrity is one of the most important features of any database, if not the most important at all. Data integrity has two aspects:
Administrators and Editors must be extremely careful to maintain both aspects of data integrity. You cannot rely on what other people send you. The spelling of names is often wrong. Many tend to supply ridiculously long titles instead of just "Ch." or "CIE". American habits of naming their dogs are close to anarchical, but at least confusing. And so on.
Referential integrity means that any reference in the database points exactly to what it should be expected to point. Following command snippet shall demonstrate what we mean:
start
mode: add
name: Garbo aus dem Barnimer Land
sire: Brian Badria's Darling
dam: Clarissa L. aus dem Barnimer Land
end
It says that the father of Garbo is Brian and the mother is Clarissa. At the point of time when Garbo's record is entered in the Database, there should already be unique records for Brian and Clarissa such that the Database can automatically link Garbo's record to those of her parents.
Explained in more technical terms: Garbo's record actually links to her parent records with indices 60518 and 60239. That can be expressed in the following way:
start
mode: add
name: Garbo aus dem Barnimer Land
sire: i=60518
dam: i=60239
end
However, to make our lives easier, the Database automatically determines the index for a given name and will establish the required references by index. But nothing is perfect:
1. There are twenty (20!) dogs in the Database just named "Igor". You must use the "i=22140" format to identify which Igor you mean.
2. While this is really not recommended, you are allowed to enter a dog into the Database even though its (or one of its) parents are not yet in the Database. The Database will warn and accept this record. Of course, the pedigree display will break in this case and no further ancestors are displayed.
Data consistency means that the same things are always denoted the same way and the formatting conventions are observed. We could say, for example:
start
mode: update
name: Garbo aus dem Barnimer Land
hd: A/DE
end
and the Database would even accept this. The convention used in this Database, however, is:
start
mode: update
name: Garbo aus dem Barnimer Land
hd: A (DE)
end
with the country code (which should be the two letter ISO country code and nothing else) in round parentheses.
More formatting conventions are explained in the Tags section of this article.
General tags for both pedigree and kennel commands:
* mode: Should be the first tag in a command and indicates the desired operation
This can be add, update or delete for pedigree records and kenneladd or kennelupdate for kennel records.
If the mode tag is omitted, update is assumed if a corresponding record exists for the name, otherwise add.
* name: Name of the dog or kennel to be added or updated
Note: An "e" is not an "é". Not even with fuzzy matching the Database algorithm finds a name with the wrong accents.
Avoid to enter all-uppercase names. French people and nations feeling close to France love to do this but it does not look good in pedigree displays.
* index: Numeric index of the database record to be updated (pedigree or kennel) or deleted (pedigree only)
* title: Titles and relevant/recognised testimonials
We like to see following titles: "Ch.", "Int.Ch.", "CIE". We do not accept titles like youth champions, selections, dog show results or other vanity stuff. This can be put in the comments section.
Testimonials are separated from champion titles by a comma: "Int.Ch., SchH I BH IPO 1". If there are no title, we start with a comma: ", SchH I BH IPO 1".
* callname: Callname, if different from the pedigree name
* kennel: Zwingername, wenn dieser aus dem Namen des Hundes nicht automatisch erkannt werden kann
When we add a new pedigree record, the Database algorithm tries to automatically determine the name and kennel name of the dog. This is not possible in some cases like Dior des Pierrailles as "Dior" as well as "des Pierrailles" are known kennel names. We had to write:
mode: add name: Dior des Pierrailles kennel: des Pierrailles ... end
* homekennel: supply the home kennel of stud bitches
Example:
name: Lilith des Corbeaux farouches homekennel: aus dem Barnimer Land ... end
* colour, color:
Any colour designation can be used but following colours are preferred: "fauve", "noir(e)", "gris(e)", "bleu", "gris(e) né(e) noir(e)". We only use the French colour designations and avoid "fawn" and "black".
* sex: "m" or "f"
* regno: Registration (stud book) number
For BCD we use the format "VDH-BCD Q4227", for CfH "VDH-CFH-BR XXIV/5831". If a dog has been transferred to another stud book, we encounter the stud book numbers in their historical sequence like "VDH-CFH-BR XXIV/5831, VDH-BCD Q4227".
* country: Two uppercase letter ISO country code of the country of birth (where the kennel resides)
Do not use the country where the dog lives.
* sire: Sire name
Note: An "e" is not an "é".
To avoid ambiguity use the "i=..." or "r=..." notation.
* dam: Dam name
The same remarks as for Sire apply here.
* breeder: Name of the breeder
In most cases this field is unnecessary and just bloats the pedigree display as the breeder is also noted in the corresponding kennel entry. Use a hash mark as the only character to delete the field (like in the example after comment).
* birth: Date of birth or 0000-00-00
Use the format "31.12.2007" "2007-12-31". Avoid any other format, in particular the american 12/31/07.
The Database internal code for "birth date unknown" is "0000-00-00" (year, month and day all zeros).
* death: Date of death or 0000-00-00
The Database internal code for "ist still alive" is "0000-00-00" (year, month and day all zeros). Sometimes people who see these all zeros complain that this should be empty as their dog is still alive. But it is just a stupid database...
* cause: Cause of death in free text
Use a hash mark as the only character to delete the field (like in the example after comment).
* owner: Name or name and address of the owner
Use a hash mark as the only character to delete the field (like in the example after comment).
* hd: HD result and country of assessment
Use the format "A (DE)" with ISO country code. You can add a comment after comma like "A (DE), nach Obergutachten Prof. Dr. Müller-Lüdenscheid".
Other examples of correctly recognised formats: "A/A (FR)" or catchwords:
* csnb: CSNB
Mostly "clear" or "- -".
* eu: eU
You can add a comment after comma like "ohne Befund, nach Obergutachten Prof. Dr. Müller-Lüdenscheid".
Correctly recognised catchwords:
* health, certificate: other certificates on health like PRA, genome tests etc. in free text
* internet: Internet link to the homepage of the dog or kennel
Format: "http://www.barnim.net/garbo <http://www.barnim.net/garbo>". Please add the "http://".
This should be the homepage of the dog or the homepage of the owner. We do not like if breeders spread their kennel homepage with all their breed.
* comment, note: Free text comment of arbitrary length
Semicolon will translate to a line break in the output.
Comments accumulate, i.e. if there was a comment already, the new comment is added (after a line break) to the previous one. Use a hash mark as the only character to delete a comment, for example:
name: Name of My Dog comment: # end
* alpha: Kennel name for alphabetical sorting
The kennel name without prepositions and articles ("von", "aus dem", "de l'", "de la", etc.).
* leftbound: "yes" if the kennel name is the first part of a dog's name or "no" otherwise
* country: Two letter ISO code of the country where the kennel resides
* breeder: Name of the breeder
* address: Address, phone, e-mail
* internet: Internet link to the kennel homepage
Format: "http://www.barnim.net"
* position: Geographic position
Format: "N 52.6428 E 13.5397".
* club:
We use "VDH-BCD" and "VDH-CfH" for the two German kennel clubs.
* comment, note: Free text comment of arbitrary length
Semicolon will translate to a line break in the output.
Comments accumulate, i.e. if there was a comment already, the new comment is added (after a line break) to the previous one. Use a hash mark as the only character to delete a comment, for example:
We have seen above that the tag "name" is used to select a Database Entry for update. When renaming a dog in the Database, the tag "name" is used twice and the second occurence sets the new name. The below example is the shortest form of a meaningful command:
name: Inndia de la Tour Saint Genin
name: Inndia Blonde de la Tour Saint Genin
end
The keyword "start" has been omitted. The "mode" tag as well as "mode: update" is the default.
Vom Administrator betreute Nutzer |
Von Thomas Bez am 18.01.2008, aktualisiert am 20.01.2008
Ein Administrator ist für bestimmte Datenbestände, sogenannte Ressourcen, verantwortlich. Zu diesen Ressourcen haben bestimmte Nutzer Zugang bzw. Expertenzugang. Zu den Pedigree-Datenbanken haben alle Nutzer Zugang, aber nur jene Expertenzugang, für welche dies explizit freigeschaltet wurde.
Für welche Ressourcen ein Administrator verantwortlich ist und welche Nutzer dort (Experten-) Zugang haben, kann man sehen, inden man auf seinen eigenen Nutzernamen in der Kopfzeile des Fensters klickt. Unter der Überschrift "Administratorrechte" sind die Ressourcen und die jeweiligen Nutzer aufgeführt. Durch Anklicken eines Nutzernamens erhält man weitere Informationen über diesen Nutzer.
Falls ein Nutzer in der Liste selbst ein weiterer Administrator für diese Ressource ist, folgt seinem Namen ein Schrägstrich und ein A (/A) Ist der Nutzer Mitglied der Zuchtkommission bzw. des Komitees, folgt seinem Namen ein /C.
Rechtliches |
Von Thomas Bez am 18.01.2008
Vorweg: Dies ist selbstverständlich keine Rechtsberatung. Im Zweifelsfall fragen Sie am besten Ihren Anwalt.
Die Datenbank der Briards steht unter einer freien Dokumentenlizenz (GNU Free Documentation License <http://www.barnim.net/pedigree/gnufdl.html>), die hier <http://www.barnim.net/pedigree/copyleft.html> genauer erläutert ist.
Der Content Provider ist frei in der Wahl seiner Nutzungsbedingungen. Wenn Sie mir Ihre Nutzungsbedingungen schicken, verknüpfe ich diese mit der Portalseite Ihrer Datenbank.
Für die Abfassung der Nutzungsbedingungen möchte ich folgends zu bedenken geben:
1. Das Internet ist deshalb als Medium so ungeheuer erfolgreich, weil es jedem die Möglichkeit gibt, sich frei zu informieren. (Und womöglich auch fehlinformiert zu werden; das ist Teil der Freiheit.)
2. Durch welche Randbedingungen werden andere Nutzer am meisten motiviert, zu einem lebenden Informationsangebot beizutragen?
3. Wenn der Umgang anderer mit den von mir bereitgestellten Informationen meinen Vorstellungen widerstrebt - bin ich auch in der Lage, dies festzustellen und Verstöße zu verfolgen?
Als Datenbankbetreiber wird man aber auch leicht Nutzer fremder Copyrights. Ein heikles Thema sind immer Bilder im Internet. Grundsätzlich sollte jeder Content Provider nur Bilder veröffentlichen, an denen er das Copyright hält oder für deren Veröffentlichung er die explizite Einwilligung des Copyrightinhabers hat.
In der Datenbank können zu den Einträgen auch Bilder hinterlegt werden. Man kann darüber streiten, ob die Bilder wirklich hohen Informationswert haben. Etliche der Bilder sind sogar grottenschlecht. Die Bilder tragen aber zum Unterhaltungswert der Datenbank bei, deshalb sind sie da.
Wer ein Bild hochlädt, erklärt dabei durch das Klicken auf "Hochladen", daß er das Copyright an dem Bild hält. Der Vorgang wird mit Emails sowohl an den Hochladenden als auch an den Administrator der Datenbank dokumentiert. Man sollte die Emails mit Betreff "Add Image: Bild hochgeladen / Picture uploaded" aufheben, um im Bedarfsfall feststellen zu können, von wem ein strittiges Bild stammte. Aber dennoch: Primär ist der Content Provider für Rechtsverstöße haftbar, ganz ohne Risiko kann man nichts veröffentlichen.
Die Datenbank ist ein moderiertes Informationsangebot. Der Administrator entscheidet, was gezeigt wird. Abgesehen von der ganz selbstverständlichen Prüfung, ob eine Eintragung orthographisch korrekt und inhaltlich zumindest plausibel ist (man kann nicht jede Eintragung vollständig auf sachliche Richtigkeit prüfen), sollte man insbesondere den freien Text (Kommentar) einmal überfliegen um zu prüfen, ob die Rechte Dritter verletzt werden könnten.
Ich hatte schon den Fall, daß ein Züchter alle möglichen Krankheiten und Fehler in Kommentarfeldern eintragen wollte - natürlich nur aus anderen Zuchten, nicht seiner eigenen. Solche Versuche läßt man am besten still unter den Tisch fallen.
Was in den Logfiles steht |
Von Thomas Bez am 18.01.2008, aktualisiert am 18.01.2008
Der Webserver der Datenbank zeichnet (wie jeder Webserver) eine Protokolldatei auf, ein sogenanntes Logfile. Darin sind die Seitenabrufe verzeichnet. Innerhalb eines Vierteljahres wächst das Logfile um etwa ein Gigabyte. Ich mache damit eine Statistik, wie viele Zugriffe jeden Monat auf die Datenbank erfolgen (es sind zwischen 30.000 und 40.000).
So sieht zum Beispiel ein Eintrag für einen einzelnen Seitenaufruf aus:
rajakyla-p1.suomi.net 213.216.199.6 - HTTP/1.1 GET - "13.01.2008 17:20:53"
"GET /pedigree/show.php?index=23581 HTTP/1.1" 200 47904 - "http://www.barnim.net/pedigree/details/23581.html"
"Mozilla/5.0 (Windows; U; Windows NT 5.1; fi; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"
Das ist sehr technisch und besagt:
Da Anmeldevorgänge auch immer mit einem Seitenaufruf verbunden sind, landen diese auch in der Protokolldatei. In diesem Fall (da eine mit https gesicherte Seite übertragen wird) ist auch der Nutzername zu sehen:
f051064069.adsl.alicedsl.de 78.51.64.69 - HTTP/1.1 GET PSpankus "12.01.2008 22:53:02"
"GET /auth/auth.php?o=381773d1bdc7a7971df76e6517f3e46e&d=.tedesca.org HTTP/1.1" 200 843 - "http://www.tedesca.org/gosdatura/pedigree/show/58328.html"
"Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
Da die eigentlichen Datenbankseiten aber nicht über https gesichert sind, ist dort auch kein Nutzername zu sehen.
Zugangspolitik |
Von Thomas Bez am 18.01.2008
Wer sich anmeldet und dabei den Wunsch angibt, auf die Expertenfunktionen einer bestimmten Datenbank zuzugreifen, wird nach einer Erläuterung dieses Wunsches gefragt. Wir gehen davon aus, daß die Anzeige der Stammbäume für die meisten Hundefreunde ausreicht. Ausführlichere Auswertungen sollten eigentlich nur für Züchter interessant sein oder Personen, die ein wissenschaftliches (oder auch pseudo-wissenschaftliches) Interesse verfolgen.
Jeder Administrator der Datenbank sollte seine "Zugangspolitik" genau abwägen. Nicht sinnvoll (und auch nicht fair) ist es, nur Personen seines eigenen Vereins den Expertenzugang zu gewähren. Bei den Briards halten wir es so, daß jeder Expertenzugang erhält, der ein Interesse plausibel macht. Also:
Übrigens bekommt ein Nutzer mit Expertenzugang nicht mehr Informationen zu sehen als ein nichtangemeldeter, sondern er bekommt nur komfortablere Auswertungen angezeigt. Die Grunddaten, auf denen diese Auswertungen basieren (wer stammt von wem ab, HD-Werte, Wurfdatum etc.) sind offen für alle. Einzige Ausnahme ist zur Zeit die Eigentümerschaft: Wenn bei einem Hund der Eigentümer eingetragen ist, wird dies nur Nutzern mit Expertenzugang angezeigt.
Einen Eintrag wieder löschen |
Von Thomas Bez am 18.01.2008, aktualisiert am 10.02.2008
Einen Eintrag wieder zu löschen ist nicht ganz einfach, denn dadurch kann die Konsistenz der Datenbank leiden. Wenn Eintrag A auf B verweist, zum Beispiel weil A von B abstammt, kann man B nicht ohne weiteres löschen, weil dann der Verweis von A auf diesen Eintrag zerstört würde. Gäbe es also einen Eintrag BB, der tatsächlich denselben Hund meinte, nur mit einer etwas anderen Schreibweise, und wollte man B oder BB löschen, so müßte man zuerst alle Verweise zum zu löschenden Eintrag auf den anderen Eintrag umstellen. Kompliziert.
Um einen überflüssigen Hundeeintrag zu löschen, sucht man den Datenbankindex heraus. Zum Beispiel hat http://www.tedesca.org/gosdatura/pedigree/show/296.html den Index 296. Unter den Stapeländerungen müßte man also eingeben:
start
mode: delete
index: 296
end
Hier ist kein Name erlaubt, sondern nur der numerische Index. Die Stapeländerung wird verweigert, wenn dadurch ein Verweis zerstört würde. In diesem Fall müssen zuerst die Nachkommen gesucht und auf den korrekten Vorfahreneintrag umgestellt werden.
Diesen Vorgang kann die Datenbank übernehmen, man muß aber sehr darauf achten, daß man dabei nicht durcheinanderkommt. Gibt man an
start
mode: delete
index: 296
transfer: 783
end
so wird dadurch erreicht, daß überall, wo bislang Index 296 als Vorfahr auftauchte, künftig Index 783 steht. Weiterhin werden Attribute wie Rufname, Zuchtbuchnummer, Geburtsdatum und viele andere vor dem Löschen von 296 nach 783 übernommen, falls sie für 783 noch nicht gesetzt sind.
Einen überflüssigen Zwingereintrag zu löschen ist in den Stapeländerungen nicht vorgesehen, denn das ist wirklich selten nötig. Falls doch, so muß ich <bez@tedesca.net> das machen.
Besser ist es also, beim Eintragen gut aufzupassen, um Dubletten von vornherein zu vermeiden.
Der Administratorzugang zur Datenbank |
Von Thomas Bez am 18.01.2008, aktualisiert am 18.01.2008
Die Portalseite der Datenbank wird über TEDESCA.ORG <http://www.tedesca.org> erreicht und zeigt für alle Nutzer die Überschriften
Der Administrator meldet sich durch Klicken auf Login! mit seinem Nutzernamen und seinem Paßwort an.
Die Bedienung der Datenbank ist für den Administrator in zwei wesentlichen Punkten geändert:
1. In der Stammbaumansicht <http://www.barnim.net/pedigree/show/46966.html> sowie in der Detailansicht <http://www.barnim.net/pedigree/details/46966.html> jedes Hundes ist die Funktion der Schaltfläche "Eintrag ändern" eine andere. Das Formular, das sich nach Druck auf diese Schaltfläche öffnet, wird nicht nach Fertigstellung an den Administrator per Email geschickt, sondern führt unmittelbar zu einer Änderung in der Datenbank.
2. Gleiches gilt für die Schaltfläche "Eintrag ändern" in der Zwingeransicht <http://www.barnim.net/pedigree/kennel/2005.html>.
(Um die Begriffe Stammbaumansicht, Detailansicht und Zwingeransicht zu erläutern, sind im vorigen Absatz Verknüpfungen zu entsprechenden Beispielseiten in der Briard-Datenbank hinterlegt.)
Auf diesem Weg sind Einzeländerungen schnell und effektiv möglich. Sollen aber viele Änderungen in kurzer Zeit erfolgen bzw. werden Informationen aus anderen Medien (z.B. Zuchtbüchern) zusammengestellt, ist die Methode der Einzeländerungen sehr zeitraubend. Dafür sind die sogenannten Stapeländerungen vorgesehen.
Nach Rückkehr auf die Portalseite sieht der Administrator zwei weitere Überschriften:
Das Textformat für Stapeländerungen ist auch deshalb besonders wichtig, weil jede Änderung, die ein Besucher der Datenbank macht, an den Administrator per Email in genau diesem Format geschickt wird. Hier ein Beispiel: Ein Hund wird in die Datenbank eingetragen, indem der Besucher das entsprechende Formular <http://www.barnim.net/pedigree/update.php?mode=add> ausfüllt. Nach Klicken auf die Schaltfläche "Eintragen" wird eine Email mit den daten an den Administrator geschickt.
Der Administrator kopiert den Inhalt der Email in das Feld unter der Überschrift "Stapeländerungen", überprüft ihn noch einmal auf offensichtliche Fehler und sendet ihn dann ab, indem er auf die Schaltfläche "Absenden" drückt. Es erscheinen in rotem Text unter dem Eingabefeld mehrere Zeilen mit Datenbankkommandos (sogenannte SQL-Kommandos), die das System aus der Eingabe gemacht hätte. Wichtig: Die Änderung ist noch nicht erfolgt. Das wird dadurch verdeutlicht, daß der Text in Rot erscheint. Und wichtig ist die Warnung, daß der Vater "Amadeus-Nox du Coeur Poilu" nicht gefunden werden konnte. Das sollten wir zuerst beheben.
Der Administrator hat den überflüssigen Bindestrich aus Amadeus Nox' Namen entfernt und drückt wieder auf "Absenden". Es erscheint wieder roter Text, aber diesmal ohne Warnmeldung. Das heißt, es ist noch immer keine Änderung an der Datenbank erfolgt, aber jetzt könnte er den Schritt vollenden. Dafür setzt er einen Haken in das kleine Feld hinter LOAD: und drückt nochmals auf "Absenden". Wir zeigen hier kein Bild dazu, aber es passiert folgendes: Der Text, den wir eben noch in Rot gesehen haben, wird jetzt in Schwarz gezeigt. Das heißt, die Änderung ist in der Datenbank eingetragen.
Bevor wir in den Erläuterungen fortfahren, fassen wir erst einmal einige Schlußfolgerungen zusammen:
1. Es sollte nur in die Datenbank eingetragen werden, was aufs Gründlichste geprüft wurde. Jeder Fehler macht nachher nur Ärger, denn Korrekturen sind mühselig. Die bei der Stapeländerung angezeigten Warnungen und Fehler sollten erst korrigiert werden, bevor die Änderung abgeschickt wird.
2. Bevor ein Hund in die Datenbank eingetragen wird, sollten seine Vorfahren schon eingetragen sein (und vorher deren Vorfahren u.s.f.). Auch der Zwinger, aus dem er stammt, sollte schon eingetragen sein. Nur dann werden die Einträge der Hunde untereinander sowie Hunde- und Zwingereinträge untereinander richtig verknüpft.
3. Schreibfehler und unterschiedliche Schreibweisen der Namen machen mit Abstand die meiste Arbeit. Man sollte in der Datenbank mit der Schreibweise genau sein. Mit Bindestrich ist etwas anderes als ohne Bindestrich, ein é ist kein e und ein einzelstehendes Akzentzeichen ist kein Apostroph.
4. Die Datenbank ist sehr fehlertolerant. Man kann auch Falsches eintragen, man kann auch Warnungen wie "can not find sire..." ignorieren und den Eintrag trotzdem vornehmen. Angezeigt wird nachher immer etwas möglichst Sinnvolles. Es läßt sich außerdem nachträglich alles noch einmal korrigieren.
Oft kommen mehrere Änderungen (also zum Beispiel mehrere Emails mit Änderungswünschen) zusammen, bevor der Administrator Zeit findet, die Änderungen durchzuführen. Der einfachste Weg ist folgender:
1. Den Inhalt aller Emails nacheinander in eine Textdatei kopieren.
2. Die Textdatei gründlich durchsehen und Fehler korrigieren.
3. Die gesamte Textdatei mit einem Mal (über die PC-Zwischenablage, also mit Ctrl-C/Ctrl-V) in das Feld "Stapeländerungen" kopieren und nach dem "Absenden" schauen, ob das System etwas auszusetzen findet.
4. Das tut es bestimmt. Die Korrekturen nimmt man in der Textdatei vor und kopiert wieder die ganze Textdatei über den alten Inhalt des Feldes "Stapeländerungen".
Also: Es ist möglich, mehrere (viele) Änderungen einfach hintereinander zu schreiben und alle Änderungen an vielen verschiedenen Einträgen mit einem Mal vorzunehmen - deshalb der Begriff "Stapeländerung".
Wir sehen uns jetzt einen Änderungssatz genauer an. Er beginnt mit dem Wort start auf einer Zeile für sich und endet mit dem Wort end auf einer Zeile für sich. Zwischen der Start- und End-Zeile stehen Zeilen der Form "Schlüsselwort : Inhaltstext".
Start und end und alle Schlüsselworte dazwischen können nach Belieben groß oder klein geschrieben werden. Beim Inhaltstext kommt es dagegen sehr wohl auf die Schreibung an. Vor und nach dem Doppelpunkt können Leerzeichen stehen oder auch nicht; beim Inhaltstext werden mehrfache Leerzeichen automatisch auf ein einzelnes reduziert.
Erstes Schlüsselwort nach start sollte mode sein. Es zeigt an, was für ein Änderungssatz folgt. Folgende Änderungssätze sind möglich:
- add zum Hinzufügen eines Hundes
- kenneladd oder kadd zum Hinzufügen eines Zwingers
- update zum Ändern eines Hundes
- kennelupdate oder kupdate zum Ändern eines Zwingers
- delete zum Löschen eines Hundes
Das Löschen eines Hundes ist erforderlich, um versehentliche Doppeleinträge zu beseitigen. Das Löschen eines Zwingers sollte kaum erforderlich sein, ein entsprechendes Kommando ist nicht vorgesehen.
Mit nichtangegebenen Schlüsselworten wird folgendermaßen umgegangen:
- Ist keine Zeile "mode:..." angegeben, wird "mode:update" angenommen.
- Nichtangegebene Werte bei "mode:add" oder "mode:kenneladd" bleiben leer.
- Nichtangegebene Werte bei "mode:update" oder "mode:kennelupdate" behalten ihren alten Wert.
Bei "mode:update" oder "mode:kennelupdate" werden angegebene Werte ersetzt außer comment. Kommentare werden an den alten Wert angefügt, mit einem Semikolon (das wird zu Zeilenwechsel) abgetrennt.
Je nachdem, ob es sich um einen Hunde- oder Zwingereintrag handelt, sind unterschiedliche Sätze von Schlüsselworten relevant. Zudem können die Schlüsselworte jeweils in Englisch oder Französisch angegeben werden.
Schlüsselworte für Hundeeinträge sind, jeweils in den wichtigsten Varianten (siehe auch das Bildbeispiel):
- name nom - Name des Hundes
- index - Datenbankindex des Hundes, ist z.B. erforderlich anstelle des namens bei "mode:delete"
- title titre - Titel und ggf. relevante/anerkannte Prüfungen, z.B. Ch. oder Int.Ch., SchH I BH IPO 1
- callname prenom - Rufname, wenn abweichend vom eingetragenen Namen
- kennel - Zwingername, wenn dieser aus dem Namen des Hundes nicht automatisch erkannt werden kann
- homekennel - Heimatzwinger (bei Zuchthündinnen)
- colour color couleur - Farbe
- sex gender sexe - Geschlecht
- regno enreg - Zuchtbuchnummer
- sire - Name des Vaters
- dam - Name der Mutter
- country pays - Land (Geburtsland)
- breeder eleveur - Züchter (Angabe wird aber auch aus dem Zwingereintrag übernommen)
- birth naissance - Geburtsdatum in der Form 31.12.2007 oder 2007-12-31
- owner proprietaire - Besitzer
- death mort - Todesdatum
- reason cause raison - Todesursache
- hdc hd - HD-Wert und Land, möglichst in der Form A (DE) mit ISO-Länderkennung
- csnb - CSNB
- health certificat - weitere Gesundheitszertifikate wie PRA
- internet - Internet-Link zur Homepage des Hundes, in der Form http://www.barnim.net/karenina
- comment note - Anmerkung, freier Text beliebiger Länge, ein Semikolon erzeugt in der Anzeige später einen Zeilenwechsel
- language langue - Sprache, in der die automatische Homepage des Hundes dargestellt werden soll
- hpname - symbolischer Name für die automatische Homepage (anstelle des Datenbankindex zu verwenden)
- hpmail - Email-Adresse zur Verwendung auf der automatischen Homepage des Hundes
- source - Quelle der Information, z.B. Zuchtbuch
- contact provider email - Lieferant der Information
- change modification - Änderungsdatum
- remote - IP-Adresse des ändernden Besuchers
Die Angabe der ersten vier Buchstaben des Schlüsselwortes reicht in der Regel aus.
Comment/Note wird angefügt
Neben den Einträgen für Hunde gibt es Zwingereinträge. Diese habe zwei Besonderheiten:
1. Neben dem Zwingernamen mit allen Zusätzen ("de la", "d'...', "von") wird ein Sortiername (alpha) in der datenbank geführt, der von allen Präpositionen und Zusätzen befreit ist und im Nominativ angegeben ist. Manchmal beschweren sich Züchter, daß ihr Zwingername so verunstaltet sei, aber für die Sortierung von Listen ist diese Form sehr nützlich.
2. Manche Zwingernamen folgen dem Namen des Hundes (üblich im romanischen und deutschen Sprachraum), manche sind vorangestellt (üblich im angelsächsischen Sprachraum und Skandinavien). Zur korrekten Anzeige wird die Stellung des Zwingernamens gespeichert.
Im hier gezeigten Beispiel muß unter alpha einfach "Barnimer Land" stehen bleiben und leftbound muß auf "no" gesetzt werden.
Es muß sicher nicht erwähnt werden, daß man solche Änderungssätze auch zum Eingeben von Zuchtbüchern in die Datenbank mit einem einfachen Textprogramm schreiben kann, wobei man sich durch Kopieren und Einfügen viel Arbeit sparen kann.
Listenabfragen werden zur Prüfung von Namen auf korrekte Schreibung, zur Ermittlung der Datenbankindizes zu einer Namensliste, zur Ermittlung der Zuchtbuchnummern und ähnlichen Zwecken verwendet. In das Formularfeld wird eine Liste von Hunde- bzw. Zwingernamen kopiert, ein Name pro Zeile. Die Auswahl Pedigree oder Kennel ist entsprechend zu treffen und die Art der Abfrage ist auszuwählen.
Wie lange wird es die Datenbank geben? |
Von Thomas Bez am 18.01.2008, aktualisiert am 14.05.2008
Die Datenbanken sind Teil des Internetauftritts von TEDESCA.NET, der unsere <http://www.tedesca.net/impressum.html> beruflichen, züchterischen und privaten Aktivitäten umfaßt und zu dem folgende Domänen und Informationsangebote gehören:
Im Rahmen dieses Internetauftritts werden die Datenbanken betrieben und weiterentwickelt. Mit TEDESCA.ORG sind wir dabei der technische Betreiber der Datenbankplattform (englisch "Service Provider") und für Inhalte soweit verantwortlich, wie es das Telemediengesetz vorgibt. Der Inhaltslieferant (englisch "Content Provider") ist im urheberrechtlichen Sinne der Autor der jeweiligen Datenbank und in Person durch den Datenbank-Administrator vertreten.
Wir beabsichtigen die Datenbankplattform auf Dauer weiterzuführen. Soweit wir die Datenbankplattform zur unbefristeten kostenlosen Nutzung anbieten, gehen wir aber selbstverständlich keine explizite Verpflichtung ein, was die laufende und die künftige Verfügbarkeit betrifft. Falls das in bestimmten Fällen nicht ausreicht, ist es erforderlich, einen Vertrag über entgeltliche Nutzung abzuschließen.
Wer die Datenbank kostenfrei nutzt, muß nicht befürchten, auf einmal zur Kasse gebeten zu werden. Für alle Content Provider, denen wir die Datenbankplattform zur kostenlosen Nutzung überlassen haben, bleibt der bestehende Umfang auch in Zukunft für die betreffenden Rassen stets kostenlos, solange die Datenbankplattform im ganzen weiterbetrieben wird.
Auch im Falle, daß die Datenbank eines Tages nicht mehr weiterbetrieben werden kann, bleibt der Content Provider selbstverständlich Eigentümer der Inhalte. Auf folgende zwei Arten sollten Sie auch in besonderen Situationen ausreichend vor einem Verlust Ihrer Daten geschützt sein.
Die Datenbank enthält eine Funktion "Datenbankabfrage" (hier <http://www.barnim.net/pedigree/query.php> im Beispiel der Datenbank der Briards), mit der Sie Datensätze nach beliebigen Suchkriterien abfragen können. Das Ergebnis wird in Microsoft Excel bereitgestellt. Diese Funktion ist in der Briard-Datenbank jedem angemeldeten Nutzer zugänglich. Entsprechend Ihren Lizenzbedingungen kann diese Abfragemöglichkeit auch eingeschränkt werden.
Excel-Daten können von zahllosen Programmen weiterverarbeitet werden. Üblicherweise haben andere Pedigree-Programme für den PC auch eine Importfunktion für Excel; eine Umsetzung der Feldnamen (Spaltennamen) wird erforderlich sein. Die Indexinformationen sind in der Abfrage enthalten und können für eine Neuverknüpfung genutzt werden. Mit der Datenbankabfrage haben Sie eine eigene Sicherungsfunktion zur Verfügung, die Sie beliebig oft einsetzen können.
Die Inhalte der Datenbanken auf dem Internetserver werden jede Nacht gesichert. Dabei wird ein sogenannter Dump der MySQL-Datenbank erstellt und auf einem anderen Rechner gespeichert. Wenn Sie wünschen, können Sie wöchentlich oder monatlich automatisch per Email einen Abzug Ihrer Daten im MySQL-Format erhalten. Ein Softwarespezialist könnte Ihnen diese Daten in andere Formate übertragen.