We can offer you consultancy to:
For further information contact the Customer Service Help Desk, explaining in detail how you would like us to help you.
Pedserve is a powerful pedigree database system for the web.
It has many advanced features, such as full-text and similarity searching, rapid online computation of inbreeding and relationship coefficients (for trial pedigrees), highlighting of common/repeat ancestors, rapid navigation between related records e.g. to list an individuals offspring, grandchildren, litters, common ancestors, ancestors blood%, etc. For the site administrator the system provides a full complement of admin tools including online management of user logins and viewing + searching of history logs.
Pedserve can run as an 'open system', where there are no user access controls, or it can implement access controls on a user by user basis, with full recording of all activity. Individual user access can be restricted by expiry date, login IP address, and by the number of accesses over any given period, including any combination of these. The system also includes security measures to attempt to detect automated 'harvesting' of pedigree data and can automatically suspend 'users' who do this.
Pedserve runs as part of your Linux-hosted web site. It is written mainly in Perl and uses the well respected MySQL database system. It is easy to integrate it into your existing website, as long as it is hosted on a web host supporting the LAMP platform (as most are these days).
The system is highly configurable. It can be customized in various ways ranging from simply adding user defined fields (fully searchable, of course), or user defined records (also fully searchable), or changing the visual appearance using the stylesheet, through to advanced customizations such as adding custom record and/or field highlighting and customizing Perl code through predefined hooks in the scripts.
Pedserve is not free software. For the terms of the Pedserve license, please see the License. It is available in several different editions to suit different needs and budgets. In addition to selling software licenses we offer consultancy - to help you install and configure the system to suit your own specific needs (contact the Customer Service Help Desk).
An example real world site that uses Pedserve is the Standfast Data Golden Retriever Database. This site contains in excess of half a million Golden Retriever pedigrees going right back to the origins of the breed.
NOTE: The Standard and Professional editions of Pedserve do not include all the features listed. See Editions.
|Pedserve uses the MySQL database system to store and manage your pedigree data. For this reason searches are often incredibly fast, and there is, effectively, no significant limit to the size of your database. The system scales well to handle databases with millions of pedigrees.|
|It is straightforward to host multiple pedigree databases (e.g. for separate breeds).|
|The system is not specific to dogs, cats, horses, or any single animal type. You can customize the terminology used to tailor it to your animal type. I.e. 'Animals' may be 'Dogs'. 'Children' may be 'Puppies', etc.|
|In its simplest form each pedigree database comprises a single table containing one record per animal. By default each animal record include name, sex, date of birth, sire & dam, and, optionally, photo, thumbnail, front and after title fields. There may be additional tables containing litter, family and inbreeding information.|
|It is very easy to add user-defined fields to any of these tables.|
|The system directly supports text, date, numeric and boolean fields, all of which can be made searchable, and all can be used for ordering records, and (of course) displayed. This applies to both the pre-defined fields, and any user-defined fields you add.|
|You can also add user-defined records - tables containing information related to the animals - such as show records, or health records. As you would expect, all these tables are fully searchable, just like the animals table.|
|We provide a conversion program for preparing your data for loading into the database. This takes your data, in the form of comma or tab separated text files (.CSV or .TXT) and generates files suitable for direct loading into the database. It also handles user defined fields and user defined tables. It can also automatically generate data for the optional litter and family tables, and can pre-compute inbreeding coefficients, relationship coefficients, and related data for the inbreeding tables. Inbreeding and related data may be generated for varying (i.e., multiple) depths of ancestry (#generations). Currently, this program is supplied as an executable for Windows. Click here for further information about data preparation.|
|Search on any field, not just by name. This includes non-text fields - such as numeric, date and boolean fields.|
|Text field searches can be against the whole field (exact matching), or can use wildcards to match any single character (?) or group of characters (*).|
|Text fields can also provide full text searching. This lets you search by whole words - to search for records where a given field contains any one or more of a given list or words, or all words, or a phrase. E.g. you might want to search for all animals whose name include the word 'Bonzo'.|
|Two types of similarity search for text fields are also provided. The 'Double Metaphone' search provides phonetic, or 'sounds like' searches - to search for records where a given field 'sounds like' something. Separately, we provide a 'Levenshtein distance' search to search for similar spellings, which can be used to find misspellings of a name.|
|Text fields can be searched using regular expressions - a powerful pattern matching 'language'.|
|Date fields can be searched for dates relative to the current date. E.g. this lets you search for animals born, say, within the past 12 months.|
|Numeric fields can be searched in the obvious way - e.g. to search for animals with more than 20 offspring, or, say, to search for animals with a 16G inbreeding coefficient greater than 20%.|
|The system can provide both a basic and an advanced search screen, separately for each record type.|
|With the basic search screen, the user is presented with a single search box (like this) where he/she enters text that is matched against one or more specific fields. E.g. you might configure this to search against name and registration number.|
|With the advanced search screen, the user can enter multiple searches against specific fields, using specific search methods - like this. When multiple searches are entered he/she can choose whether all conditions must apply or just any one ('AND' or 'OR').|
With the advanced search screen users can search on criteria applied to records given by 'foreign' fields.
A 'foreign field' means a field in a record that is indirectly referenced by the records you want to locate.
E.g. to search for all animals born to sires whose name starts with 'Arripay'.
The 'foreign field' in this case is the name field - the system is searching for records where the name field starts with 'Arripay'.
But, instead of returning those records, what it then does is locate animals whose sire is one of the matching records.
In database pseudo-code, this is like saying |
|You can customize the query screens by adding 'shortcut query' buttons - like this. These allow common searches to be done by a single click of a button. E.g. to view all animals, or to view all champions, or to view all animals born in the last 6 months, etc.|
|Search results are, by default, displayed in the way you'd expect - as a table with one row per record and separate columns for the hits - like this. Search results are 'paged', with a max. number of records shown per page. You can customize the page size, or disable it, and this can be done separately for each different record type. Above the hit list the #pages of results is displayed along with links to the first, last, next, previous etc page.|
|Search results are ordered in a completely customizable way. They can be left unordered, or they can be ordered by any number of different fields at a time - you can have secondary and tertiary ordering if you want. E.g. animals can be ordered by name, or by DOB & name, by inbreeding coefficient, by the number of offspring they have had, etc. The different orderings available for each record type are selected through a pull-down menu above the record list like this. You may also add custom orderings.|
|The columns (fields) that are displayed are user selectable via a pull-down menu like this. Each entry in the list is the name of a preconfigured set of fields, typically ranging from the most basic fields to all available fields. You can customize the entries in this list by adding custom display fields definitions.|
|Records can be highlighted according to various criteria. There are inbuilt highlighting methods that will 'heat code' animals according to their inbreeding or relationship coefficients. Within the ancestors report (where ancestors of a given animal are tabulated - like this), you can highlight according to blood% of each ancestor (like this). Within pedigrees you can also highlight repeated and common ancestors. You can also extend the system to add your own highlighting methods. E.g. if you have a user-defined field that gives the carrier status for a given genetic defect, it would be a simple step to add a highlighting method to emphasize animals with the carrier status. This highlighting would then be available in animal reports such as animal search results, pedigrees, etc. Several different visual forms of highlighting are provided - background coloring, addition of coloured tiles (icons), emphasized text, inclusion of custom HTML, etc.|
|Each search result can also be combined with records related to that search result. E.g., in a search for animal records, the matings for each located animal can be listed along with the animal itself. Or, when viewing litter records, the offspring for each litter can be included - like this. If you add user-defined record types, these can also be merged in. E.g., if you extend the system to include show records, or health records etc, users can then display these alongside animal search results by selecting from a pull-down menu above the search results, like this.|
|Search results can also be displayed in a grid with one cell per hit, rather than 1 row per hit. This can be more useful when there you're many fields that would otherwise make the normal results table too wide for the screen. It's also useful for displaying photos - like this.|
|Clicking an animal's name (e.g. directly from search results, or as an ancestor in a pedigree), displays the animal details page for that animal. This contains a menu of options along the top of the screen and, typically, the animal's pedigree displayed below. Options that are unavailable are greyed out e.g. the 'Photo' option if no photo is stored.|
|The animal details page is highly configurable. E.g. it is easy to remove any of the display options you do not want, and customize many aspects of the individual options. E.g. the #'s of generations of ancestors that are available in the pedigree / ancestors display, the depth to which inbreeding is computed in trial matings, etc. Customization is achieved by altering settings in the system configuration file, and possibly also by reimplementing special hook functions.|
Pedigree option: this displays the animals pedigree, with configurable #generations, typically from 2 to 7.
|Details option: displays the bare record details for the animal in a simple table - like this.|
|Photo option: if the animal has a photo stored, this will display the photo at full size - like this.|
Inbreeding Data option: displays all inbreeding data that has been stored for the animal - like this.
Pedserve allows such data to be stored for varying depths of ancestry - so you can have the data for 4G, 8G, 12G, etc. For each ancestry depth this can include:
|Trial Mating option: this lets the user first search for a mate for the displayed animal (like this), select a potential mate (like this), and then shows the trial pedigree (like this), with all the same options as normal pedigrees. Note that, with Pedserve Advanced Edition, Trial mating pedigrees can include inbreeding and relationship coefficients, quickly calculated by the server 'on-the-fly'.|
|Ancestors option: lists the ancestors of the select animal in various ways. There are pull-down menus to choose the depth (#generations) and type of ancestors shown (All, or Repeat Ancestors only, or Common Ancestors only). For each ancestor, its %blood contribution to the subject animal is given (both separately its sire and dam side components, and in total), and various other statistics such as the #occurrences and the closest/furthest generation numbers in which the ancestor was seen. The list can be ordered by any of these columns like this (in addition to orderings available for normal search results, and any custom orderings). The ancestors are displayed using the same user interface as the main search results - so there are also paging controls, highlighting (including %blood, like this), display field selector, etc.|
|Tail option: displays the sire/dam tail like this - i.e. the sire/dam, the sire/dam of the sire/dam etc. This can be capped at a set depth of ancestry, or can go as far back as you have the data for. Again this has similar display, ordering and highlighting options as the search results.|
|Sire Sibs, Dam Sibs, All Sibs, Full Sibs, and Litter Mates options: these are quick links to rapidly display different categories of siblings of the subject animal, e.g. like this and this. Pedserve can also display the sibling counts as part of the menu - so it is immediately obvious from the animal's record how many relations of the various types it has.|
|Children and Grandchildren options: use these to list the 1st and 2nd generation descendants of the subject animal, like this.|
|Families option: this will tabulate the families for which this animal is one of the parents, like this. The listing can include the offspring in the family. A 'family' is defined as all those animals that share the same 2 parents.|
|Litters option: this will tabulate the litters for which this animal is one of the parents, like this. The listing can include the litter mates - i.e. the system will produce a detailed listing of the animal's breeding at a single click. A 'litter' is defined as all those animals that share the same 2 parents AND date of birth.|
|User-Defined Records options: for each user-defined record type you add, a link is automatically included in the animal details page to tabulate those user-defined records that are associated with the subject animal - like this.|
|Family option: this is a link to the family record for the subject animal - i.e. the family of which the subject animal is one of the offspring.|
|Litter option: this is a link to the litter record for the subject animal - i.e. the litter of which the subject animal is one of the litter mates.|
|Entire Record option: this is a 'merging' of most of the various display options for the animal. So it includes the pedigree, record details, inbreeding data, etc. It can be useful to enable this if you want your users to be able to print out a 'record' of an animal with all reports merged into a single page.|
|Each animal can have a photo (image) 'stored' with it. The photo is 'stored' as a filename within the database; typically the actual image files themselves are stored on the same web server as the Pedserve system itself, but they need not be; they can be mounted anywhere on the web.|
|Photos can be displayed in pedigrees and as a thumbnail image in search results, like this, and this, and this.|
|Pedserve has inbuilt support for thumbnail images, which it will display in preference when only a small image is required. E.g. when displaying images as part of the search results. You can store a separate thumbnail image for each animal as part of its record. Or, you can use the same image filename but have the thumbnails served from a separate directory on the server (or remote server). You can also have the system automatically test for the existence of the either image file (full or thumbnail) in the local filesystem, and have it return the one that is most suited to the display purpose but only if it exists, otherwise defaulting to the other.|
|Thumbnail photos are automatically linked to their full sized equivalent. E.g. clicking a thumbnail in the search results, or a photo pedigree, will take the user to the Photo option of the animal details page.|
|Pedserve can optionally organize the animals into 'families' and 'litters'. A 'family' is defined as all those animals that share the same 2 parents. A 'litter' is defined as all those animals that share the same 2 parents AND date of birth. So families comprise 1 or more litters.|
|When family and/or litter records are present they can be searched in similar ways to the animals themselves. And you can view them, like this. E.g. you can search for families based on attributes of either parent, or on the inbreeding coefficient of the family.|
|Family and litter records have similar display options to animals. For any family/litter, the Pedigree (e.g. like this), Inbreeding Data (like this), Ancestors, Tail, Offspring, etc. can be displayed.|
|Our pdsmakedata tool can optionally create the data for the family and/or litter tables.|
|Pedserve is best thought of as a 'read only' database. It is not intended to be a system where records are continually updated, added and deleted in an interactive way. So it is, in effect, a very smart 'viewer' of a set of pedigree data, with the whole data set updated from time to time.|
|That being said, we know that some Pedserve customers like to offer their user the means to 'add a pedigree'. To support this, we include a 'Submit Animal' form (like this) that users can fill in, giving all the details for new animals to be added. These details are then emailed to the site administrator (you), and its then up to you to decide whether to add it to your master database. This way you get to moderate the additions to your database.|
|We may extend the system to allow real online pedigree submission - direct to the database - at some point. Please contact the Customer Service Help Desk if you need this.|
|Pedserve can operate as either an open system, or as a strictly access controlled system based on user logins.|
|When running as an open system, there is no access control, or monitoring, of user activity. This is suited to situations where it does not matter who can access the data, or it has no value, or where the website is running on a private network (intranet).|
|When running as an access controlled system, users have individual password controlled logins, and the system can only be accessed by password. All user activity is tracked, and you, the site administrator, can view and search the history records to monitor how the system is being used, including on a per-user basis. You can control individual user's access to the system in various ways. You can assign an expiry date to a user, so their access is automatically suspended on a given date; this is suited if you wish to run a system where you charge for database access e.g. an annual subscription (though please note that the License does not permit commercial use; if you wish to make commercial use of Pedserve, please contact the Customer Service Help Desk for further details). You can also limit individual users access by setting a limits on the number of 'data pages' they may display per day/week/month etc. Each user can be assigned 2 separate limits, to operate over given periods. Thus you might limit a user to, say, 1000 accesses per day, but with an additional monthly limit of 5000/month. This is designed to let genuine users use the system in a 'bursty' way, whilst at the same time retaining reasonable controls to reduce the risk of 'harvesting' of your database. You can also restrict individual user accounts so they can only login from a specific IP address. E.g. you might use this to restrict the administrator login to a specific IP, further protecting the administrative access to the system.|
|The system includes a page for new users to request a login account, and a separate page for existing users to update their existing account e.g. to change their password or their registered email address.|
|The system uses various techniques to detect suspicious access to the system, such as might be used by a 'web harvesting robot', and will automatically suspend user logins where such activity is detected.|
|You, the site administrator, have password controlled access to many administrative facilities.|
|When logged in as administrator, the web pages can be set to have a different background color, to remind you that you are logged in with administrator rights. This is a pink colour by default, but of course you can change that through the stylesheet.|
|You can search and list user logins, in various ways. E.g. search by the number of suspicious accesses detected, or search by the total number of accesses, etc. You can also order the user logins in many ways, like this.|
|Each user login account is marked as 'pending', 'member' or 'banned'. When a new user first requests an account (like this), it is added to the user login table, marked as pending, and an email is sent to the administrator. The user cannot login at this stage. It is up to the administrator to approve or deny the login request. To do this the administrator logs in (using the special administrator account), and sets a daily/weekly/monthly usage limit, as appropriate, or, he/she denies the request. He/she can also optionally set an expiry date for the account, and/or restrict the IP address from which this account may be accessed. At this point the Pedserve system emails back the user with the outcome. Assuming he/she has been approved, they can then log in with their password.|
|The administrator has access to a system summary page, that gives overall statistics about the databases and users of the system. These statistics support 'drill down' so it is easy to navigate from here to the lists of users, the history records, etc.|
|The administrator can search and list the history records - to view and track the activity of users both as a whole, and individually.|
|Create and change user login accounts online using user friendly screens, like this.|
|The history analysis screen summarizes the system usage all users by giving a count for the number of each different type of access by each user. This can be ordered by any of the stat counts, and you can 'drill down' to view the summarized activity by clicking the summary counts.|
|The administrator can email users, both individually and as a group, using a form like this. E.g. if you update the database you might want to email all users in a single operation. All emails sent by the system can be bcc'd to you, the administrator, automatically if you wish.|
|The administrator can set and change a 'Message of the Day' - a text message that is shown to every user when he/she logs in, using a form like this. E.g. to give details of database changes.|
|The administrator can also suspend all database access to all users (except the administrator) easily using a web page. This is useful during database updates, when the database will be in an inconsistent state for normal usage.|
|One of the design goals of the Pedserve system was to provide a great deal of customization options - if you want them.|
|This does not mean that setting up a Pedserve system requires a lot of work. But it does - of course - require you to set up some very basic site configuration details - such as the site URL, email addresses, database login details etc. But there are many other customizable options you can change, all of which have sensible defaults (hundreds, in fact). So, you can tailor the system to your very specific needs, but only if you want to. All the customizable site variables are contained in a single configuration file.|
|E.g. Terminology. You can change the terms used for certain common words. E.g. you can set the animal type, both singular and plural, (e.g. 'Dog' and 'Dogs', or 'Cat' and Cats'. Likewise the term for offspring ('Puppies'/'Kittens', etc.), and various other terms.|
|Web interface - fonts, colors, etc. Pedserve uses consistent CSS styles throughout for control of most aspects of the visual style of the generated HTML pages. This means that you, the site operator, can change much of the visual appearance of the site by editing your site's stylesheet, and not by having to change the Pedserve scripts. This makes it easier for you to customize the appearance the site, but also means that updating your system when new versions of Pedserve are released will not wipe out your user interface customizations.|
|You can add custom fields and record types.|
|Pedserve provides various 'hook functions', which allow you to hook in your own specialist code in various places.|
|Pedserve is not, at this time, fully customizable to handle a non-English web interface.|
Pedserve is a product of Tenset Technologies Ltd, © 2007-14 All Rights Reserved