Editor Access to the Pedigree Database

Von Thomas Bez am 12.03.2016

Weblog PedigreeAdmin <https://www.tedesca.net/PedigreeAdmin>

 

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.

Definitions

Database

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>.

Database Record

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.

Administrator

The Administrator is allowed to do any kind of change to the Database.

Editor

The Editor is allowed to add and modify records.

Batch Language

The format of Batch Language scripts and commands is described below in the section "Batch Language".

Logging In

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.

Database Records

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:

Commands and Scripts

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.

References to Database Records

Existing Database Records can be referred to by

  • the name of the dog or kennel
  • the Database index
  • the registration (stud book) number – of course only for dogs, not for kennels

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

Data integrity is one of the most important features of any database, if not the most important at all. Data integrity has two aspects:

  • referential integrity
  • data consistency

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

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

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.

Batch Language

General Tags

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)

Pedigree Tags

* 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:

  • frei, free, excellent, good, ua = A
  • Verdacht, fair, tc = B
  • leicht = C
  • mittel = D
  • schwer = E

* 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:

  • frei, free, sans, neg(ativ/e), o(.)B(.), ohne Befund = negative
  • Abw = anomaly
  • pos(itiv/e), m(.)B(.), mit Befund = positive

* 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

Kennel Tags

* 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:

Renaming Dogs and Kennels

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.