
The SCA Ordinary and Armorial Database Search Engine is a utility designed to permit flexible searches of the registered names and armory of the Society for Creative Anachronism, Inc. It is unofficial software, and is neither endorsed nor authorized by the SCA College of Heralds; it was originally written for the author's personal use.
In addition to using this on-line version of the Database Search Engine, you can also download a Windows program which performs the same functions, but operates much more quickly (see this page for details).
Among the Search Engine's features are:
For further information:
The User Interface -- How to use the software. Simple Searches -- Just the facts, ma'am. Tagged Searches -- How to speed things up. Boolean Searches -- More complex queries. Regular Expressions -- More flexible queries. Code Lists -- Kingdom and Type abbreviations. Troubleshooting -- If things don't seem to be working. Acknowledgements
The following image shows the basic layout of the query fields, followed by an explanation of each control and entry field.
Query: -- This entry field is where you will type the search terms. Just keep typing; your query will wrap if the line becomes too long, and the field will automatically scroll once the box becomes filled.
Limit results to [ ] matches -- Places a restriction on the number of matches to be returned. Helpful if you're on a slower connection and don't want to wait for a lot of hits.
Return results as -- Chooses whether to return the results in a format which shows individual entries in database-record format (see below), with controls to move forwards and backwards in the list of returned records; or as a long page of text data. The "Database fields" format loads slightly more quickly, but the "Text" format permits easier selection and copying of text. "Text" is the default.
Begin Search: -- Press this button to begin the search (well, that was pretty obvious, wasn't it?)
Clear Query: -- Clears the Query entry field. The maximum limit of returned records is not reset by pressing this button.
Query Help: -- Displays a small window with a very terse explanation of the query language.
Status: -- Indicates the current status of search operations.
If you select the "Database Fields" button, the results will be displayed in a form, as in the following image:
Name: -- Displays the contents of the "Name" field for the currently displayed record.
Source: -- Displays the contents of the "Source" field for the currently displayed record. This is usually the date of action of the specified name or device; it may be a single date (usually followed by a letter code designating the kingdom of action), or two dates separated by a hyphen. The software will also display the name of the last kingdom of action, if known.
Type: -- Indicates the type of the particular item: N for a name, d for a device, D for both name and device, NC for name change, HN for household name, and so forth. The software will also attempt to display the meaning of the code (though some nonstandard combinations may cause it to display "Unknown").
Text: -- For armorial entries, this contains the blazon of the entry; other kinds of entries may have cross-reference data, or the name of the registrant (in the cases of order names, heraldic titles, alternate names, et cetera).
Notes: -- Various information regarding the item may be displayed here. If the source field contains two dates, the explanation of the second action will usually be found in this field
Desc: -- For armorial entries (badges, devices, seals, augmentations, et cetera), this field usually contains a set of terms describing the Ordinary categories into which the entry falls. Usually. There are some errors and omissions, however.
First Entry: -- When a search has found one or more hits, this button moves the display to the first record returned.
Previous Entry: -- This button moves the display to the previous record in the list. If the first record is being displayed, this button has no effect.
Go to Entry: -- Displays a dialog box which permits you to enter the number of the record you wish to see. Handy for quickly spot-checking large lists of records.
Next Entry: -- This button moves the display to the next record in the list. If the last record is being displayed, this button has no effect.
Last Entry: -- This button moves the display to the last record returned.
For the sake of convenience, the search engine ignores diacritical marks, and is capable of interpreting the digraphs æ and ß and the character þ as their two-character equivalents in the Roman alphabet; therefore, a search on Aarnimetsa will return hits for the Barony of Aarnimetsä; Aethelmearc will return hits for Æthelmearc, and so forth. The eth (ð) is treated as lexically equivalent to d, as in the spelling variant Ostgardr (for Østgarðr), even though (linguistically speaking) dh would be a more appropriate representation of the voiced dental fricative.
For simple searches, merely enter one or more search terms, and the search engine will return all entries containing all of those search terms, which may occur anywhere in the entry. For example, a search on dragon erased gules would return all entries that contain the text "dragon" (including "dragons" and "dragon's"), "erased" and "gules", regardless of the order or fields in which the terms appeared; as long as all three terms appeared somewhere within the entry.
To search for a particular phrase which incorporates multiple words, enclose the term in quotes. Thus, "bend sinister" (with quotes) would match anything containing "bend sinister", whereas a search for bend sinister (without quotes) would match anything containing both the terms "bend" and "sinister", regardless of whether or not they appeared together.
See also:
Tagged Searches
Boolean Searches
Regular Expressions
To search more efficiently, you can tag the searches, which restricts them to looking only in a particular field. For example, if you're interested in seeing who has the word "lion" in his SCA name, but don't wish to wade through hundreds of armorial entries which contain lions in the blazon, you can restrict the search to just the name field:
name=lion
This also speeds up the search, as the search engine only has to check one field for the search term, rather than searching every field. As with the simple searches, multiple-word terms should be enclosed in quotes:
text="per fess"
Please note that there should be no spaces between the field name, the equals sign, and the search term! There are six field names (corresponding to the six record display fields in the main window):
name= source= type= text= notes= desc=
The search terms for each field are case-insensitive (Lion is equivalent to lion), except for the Type field (where the code D [Device and Name] has a different meaning than d [Device only]) and the Source field (as W [West] has a different meaning than w [Lochac]). The field identifiers are also case-insensitive.
See the Code Lists section for the abbreviations used in the source and type fields.
See also:
Simple Searches
Boolean Searches
Regular Expressions
You can also build complex searches using the boolean operators and, or, and not. Anyone familiar with the more capable Internet search engines will be familiar with the use of these terms.
And requires that the terms on both sides of the conjunction be considered "true" for a match to be returned; or requires that either of the terms be true, and not negates the following term.
For example, the search text="bend sinister" and not text="per bend sinister" will return all entries where "bend sinister" occurs in the text field, but only if "per bend sinister" does not occur within the field.
Terms are evaluated from left to right, unless parentheses are used for grouping of search precedence. For instance, the search string:
name=John and text=lion or text=leopard
will return all entries which contain both "John" in the name field and "lion" in the text field, as well as all entries which contain "leopard" in the text field, whereas the search string:
name=John and (text=lion or text=leopard)
will return all entries which contain either "lion" or "leopard" in the text field, and which also contain "John" in the name field.
The heraldically savvy user will probably object that "or", being an heraldic term in its own right, may cause confusion. This is very true, but as the search engine returns terms occurring within other words, "or" by itself is not a very useful search term (as it would match "horse", "orb", and many other words). This can be remedied by prepending and appending a hash/pound symbol (#), the word-separator regular expression (q.v.).
Note that the more boolean terms are combined, the longer searches will take. If you wish to search for spelling variants (such as regardant and reguardant), a regular expression is more efficient.
See also:
Simple Searches
Boolean Searches
Regular Expressions
The search engine uses a regular expression (regexp) matching scheme, in order to make certain searches easier. For example, the SCA Ordinary and Armorial contains a number of charges marked "regardant", but a number of other charges spell it as "reguardant". By using a regular expression, one can use a single term which matches either.
The special characters used by the regexp parser are:
^ A circumflex at the beginning of a regular expression matches the beginning of any particular database field. As searches do not span multiple fields, a circumflex is fairly useless in any other position within a regular expression string. For example, to find all SCA names beginning with "Ginevra", but not names which contain "Ginevra" in other positions, you would use the search ^Ginevra.
The circumflex also matches the vertical stiles (|) in the armorial description field.$ A dollar sign, similarly, matches the end of a database field. Again, this is more or less pointless in any position save the end. For example, to find all entries for names ending with "smith", you would search on name=smith$ # The pound sign or hash mark indicates any non-alphabetic character, and thus works well as a word separator. It matches spaces, digits, tabs, line beginnings or endings, and punctuation characters. To search for any armory descriptions containing the complete word "Or", you could search for text=#or# . A period matches any single character. This is most useful in conjunction with one of the frequency modifiers (*, + or -). * The asterisk indicates that the previous expression may occur any number of times, including zero. The expression .* is roughly equivalent to the plain asterisk in MS-DOS and similar operating systems. To search for a blazon which begins with "per pale" and contains a single dragon, you could search for text="^per pale.*#dragon#" rather than searching for text="^per pale" and text=#dragon#, which would take slightly longer. + The plus sign indicates that the previous expression must occur at least once. For example, if you wished to search for either "Olafson" or "Olafsson", you could search for name=olafs+on - The minus sign indicates that the previous expression is optional. This can be extremely useful in searching for variant spellings such as "regardant" and "reguardant"; the term regu-ardant will match either. [] A string of characters within brackets will match any character which is contained within the string. For instance, to search for either "Olafson" or "Olafsen", you would use the term Olafs[eo]n (and to search for double-s spellings, you could use either Olafs+[eo]n or Olafss-[eo]n). You can include a range of characters by separating the two endpoints with a hyphen ([a-e] will match any character from 'a' to 'e' inclusive).
You can also exclude a string of characters by beginning the string with a caret (^). For example, [^a-e] will match any character which is not within the range of 'a' to 'e' inclusive; [^ei] will match any character which is neither an 'e' nor an 'i', and so forth.
For searches on the type field, which is case-sensitive, brackets may be quite useful; for instance, type=[Dd] will match both device-only and device-and-name entries. Brackets, especially in conjunction with hyphens, are quite helpful in finding heraldic terms with alternate spellings; for example, the search strings text=contourn[ey][ey]- or text=contourn[ey]+ will find all instances of "contourné", "contourne", "contournee", "contourny" and "contourney", all of which occur in the database.@ The 'at' symbol indicates a class of characters, and is followed by a modifier which describes the class. "@a" matches any alphabetic character; "@d" matches any numeric digit; "@n" matches any alphanumeric character, and "@ " ('at' followed by 'space') matches any spaces or tabs. To find all first names which begin in "Ælf" and end in "d", you can search for the term name=^aelf@a*d# \ The backslash tells the parser to treat the next character as a literal, which is to say, the special characters aboveshown are treated as plain text rather than regular expression indicators. For example, to find someone with "al-Rashid" in his or her name, use the term name=al\-rashid (as the expression al-rashid would be interpreted as matching either "alrashid" or "arashid").
See also:
Simple Searches
Tagged Searches
Boolean Searches
Kingdom codes (from the source field):
A Atenveldt C Caid D Drachenwald E East H Æthelmearc K Calontir L Laurel or SCA M Middle m Ealdormere N An Tir O Outlands Q Atlantia R Artemisia S Meridies T Trimaris W West w West X Ansteorra
Type codes (from the type field):
a Augmentation of arms AN Alternate Name ANC Alternate Name Change B name and Badge, combined b Badge only (also used for misc. armory -- see "notes" field) C Comment (database identification and version control data) D name and Device d Device only D? uncertain type of armory (could be A, B, D, or S) g Regalia? HN Household Name HNC Household Name Change j Joint badge cross-reference N primary personal or branch Name (and there is no armory yet) NC Name Change Nc Name Correction O award or Order name OC award or Order name Change R cross-Reference S name and Seal, combined s Seal only t heraldic Title u branch designator Update (not an official Laurel action) v uncorrected spelling Variant (probably an error) vc spelling Variant Correction
If you encounter a problem, and cannot resolve it from the information you find here, please email the author at <godfrey@shipbrook.com>. Because this is a port of software originally written for OS/2 Warp, there may be incompatibilities in the Web and/or Windows versions which I haven't encountered yet -- so please send in bug reports whenever something occurs. Please include information such as which operating system and browser you are using, what search string causes the problem, and anything else which you think might be useful in helping me assess the problem.
Q. -- I just tried to look up "fleur-de-lys", and it claimed that there weren't any matching records. What gives?
A. -- Remember, the hyphen is a regular expression token. In order to search for terms which contain hyphens, quotation marks, or any other regexp token, you need to precede the offending character with a backslash (\). Try searching again for fleur\-de\-lys (or fleurs-\-de\-lys if you want to get both singular and plural instances).
Q. -- How come the Search Engine doesn't have a feature I want?
A. -- Probably because I didn't think of adding it. I'm always happy to receive suggestions; my email address is at the top of this page.
The author of this software relied heavily upon the document Format of the SCA Armorial Database, by Iulstan Sigewealding (8 March 1998), retrieved from http://www.sca.org:80/heraldry/OandA/data_format.html.
The regular-expression matching routine is an enhanced version of one published by the Digital Equipment Corporation User Symposium (DECUS). Their copyright notice is as follows:
* Copyright (C) 1980, DECUS
*
* General permission to copy or modify, but not for profit, is
* hereby granted, provided that the above copyright notice is
* included and reference made to the fact that reproduction
* privileges were granted by DECUS.