John B. Lowe, University of California, Berkeley
Thilo C. Schadeberg, Rijksuniversiteit Leiden, The Netherlands
BMM is provided with two basic maps: a language map and a geographical map. The language map is based on the original "Tervuren Map" (1967). Multiple alterations (hopefully improvements) have been made to this map. We would like to acknowledge the help of the "Linguistic Service" of the Royal Museum for Central Africa at Tervuren, Belgium, for permission to use their map as well as for help and advice.
Please use and distribute BMM freely for research purposes; if you use BMM in preparing a publication, please cite it as follows:
John Lowe and Thilo Schadeberg. 1996. Bantu MapMaker (computer program). Berkeley and Leiden.
(and the authors would appreciate an offprint). Any commercial use of this program requires a written license.
BMM has an internal database (called "Main Inventory") with over 500 names of Bantu languages, dialects and language groups; about 450 of these have associated coordinates referring to mapped areas or to points. (Language names and coordinates may be changed and new languages may be added by the user.)
The user may copy one of the two basic maps and mark languages. There are two types of markings: Patterns and Symbols. Patterns are only appropriate for the basic map "Languages", and only for languages which have a designated area. Symbols can be used on either basic map, and for languages with and without and area. All marks added to a map are stored in a map-specific subinventory. The subinventory can be edited and manipulated. It is also possible to merge the subinventories of two maps and thus create composite maps.
BMM allows the user to import a database which contains the information to be represented. BMM also has a (simple) facility to create legends.
Maps and legends can be copied to the clipboard from where they can be imported into programmes such as Microsoft Word. Maps and legends can also be exported to (graphic) files or printed directly.
This short manual deals with the following subjects:
There are two miniature maps representing the two master maps called "Geography" and "Languages", and there is a field with the names of all maps in your copy of BMM. Click at any the name of a map to go to it. You can also click at the small maps to go to them.
An alternative way to move around in BMM is to use the GO menu. It contains commands for going to the basic maps and to return to the Title card. BMM also provides command keys as quick substitutes for many menu commands. Go to the basic map "Geography" by pressing Command-2 and to the basic map "Languages" by pressing Command-3. From any map which has an associated legend you can go to the legend by choosing "Legend" from the GO menu (or Cmd-4); when looking at a legend you can return to the associated map by choosing "Map" (also Cmd-4) from the GO menu.
You can see the Help card by choosing "Help" from the GO menu (Cmd-?). The Help card contains almost exactly the same text as this short manual.
Finally, there is an item "Scroll" on the GO menu. Choosing this command displays the Scroll windoid which you need if your screen is smaller than the size of the cards of BMM (448 x 512 pixels). The Scroll windoid is automatically displayed at start-up if you need it, but if you accidentally close it you will appreciate this command.
"Duplicate Map" (Cmd-D) creates an exact duplicate of the map you are presently looking at. The duplicate will have a different name (which you must supply), but it will have the same subinventory as the present map, and if the present map has an associated database the duplicate will have a copy of that database, too.
"Clear Map" (Cmd-Z for "zap") will restore the unmarked original map, but it will not clear the map-specific subinventory.
"Redraw Map" (Cmd-R) clears the map and then applies the same markings that have previously been added to the map, whether "free-hand" by simply clicking or through the command "Mark Language". "Redraw Map" is necessary in order to see corrections and changes that you have made during the editing of the map or its subinventory.
"Copy Map" (Cmd-C) works much like the standard Macintosh Copy command: it places a copy of the present map on the clipboard from where it can be copied into other applications such as a word processor. A special feature of the "Copy Map" command is that it allows you to copy a part of the map which you specify by dragging a rectangle around it.
+ After issuing the "Copy Map" command, you can't plot a symbol until you have chosen a new Symbol from the palette. The safest thing is to click at two different symbols, one after the other. However, choosing a symbol erases the map from the clipboard.
"Delete Map" (Cmd-X) deletes the present map and also its subinventory, a database if one has been imported, and an associated legend if one has been created.
There are two types of markings: fill-patterns and symbols. One of these two types is always "chosen" or active, and this is the kind of marking that will be applied when you click at the map or issue the command "Mark Language". You can see which one by looking at the last two items of the EDIT menu: there is a checkmark with either "Plot Symbol" or with "Plot Pattern". Change the active type of marking by choosing one of these commands (or Cmd-Y for sYmbol, Cmd-A for pAttern). On the Geography map, only symbols make sense, but on the Languages map you may choose either one.
BMM comes with 40 predefined symbols and 40 predefined patterns. You can see them by choosing "Show Symbols" (Cmd-S) and/or "Show Patterns" (Cmd-P). Each of these commands displays a palette. The symbols palette has 5 columns and 8 rows, the pattern palette has 4 columns with 10 rows. Occasionally you will have to know the numbers for individual symbols or patterns: They are numbered from top to bottom, and then from left to right. For example, the forth symbol in the second column (the big black square) has the number 12, and the second pattern in the third column (the plain gray fill pattern) has the number 22. The active symbol and pattern are highlighted on their palettes.
You can easily create a new pattern by editing one that you don't seem to need. Just double-click the pattern you want to change on the palette and work in the editing window that will appear. BMM has no facility to edit its symbols. (This may be a feature for future improvements.)
The EDIT menu has two further commands that may come in useful or may be just fun. The command "Show language" (Cmd-O) will flash a star symbol at the location of the language for which you asked. The command "Which language" (Cmd-W) asks you to click at the map and then tells you which language is located nearest to the point you indicated. For more precise clicking, the cursor changes to a hairline cross. When you use this command for the first time after start-up, BMM tells you what you are expected to do, later repetitions of this command skip this instruction.
The result of the command "Which language" is not a 100% accurate, and it may take a little time. The command normally only finds languages with an area, not languages which are just defined as a point. (See below for more on this distinction.) However, if you hold down the Option Key while clicking, BMM also looks for languages which are just points on the map. Try to click at the centre of the language area. (Also, if you define new coordinates for a language, always try to click at the centre of the area.)
The second way to mark a language is through the command "Mark Language" (Cmd-M) from the EDIT menu. If you mark a language "free-hand" by clicking at its location, BMM only remembers where the mark has gone but does not know which language has been marked. If you use the command "Mark Language" then the identity of the language is stored together with the mark. The difference can be significant for further steps in editing your map which make use of the map-specific subinventory (see below).
When you issue the command "Mark Language" you are asked which language it is that you want to mark. You may give its name or its code. (NB. BMM has stored some common variations in language names but not all. You may have to try several times. See also the section on the main inventory below.) Since language names are not unique, BMM checks whether the language found is the one you want to mark. If you agree, the marking is applied and you have a last chance to undo the marking.
BMM knows the locations of most Bantu languages. However, not all languages have a delimited area on the map "Languages". For example, "S10 Shona" has an area, but Korekore, Zezuru, Manyika, Karanga and Ndau are just points within Shona. On the other hand, "G42 Swahili" is but a point in the Indian Ocean whereas "G42d Unguja" does have an area -- if only a small one. If you issue the command "Mark Language" and specify a language which only has a point on the map AND the active kind of marking is "Plot Pattern", you are given a chance to plot a symbol instead. (You may overrule this option, which may be fine in the case of Korekore, but it may fill the oceans all around Africa if you tell to mark Swahili with a pattern.)
If you mark the same language several times by using the command "Mark Language", the latest marking replaces the earlier one. However, the immediate graphic effect is not fully predictable. Symbols are superimposed, but patterns will probably not fill the area in the expected way. However, the correct graphic effect will become installed if you use the command "Redraw Map" from the MAP menu. "Free-hand" markings produced by simply clicking will not correct each other, and if they result in superimposed patterns, the result is probably not what you want. (This is the main reason why the "Mark Language" command is superior to "free-hand" marking.
Each line in the subinventory represents one marking. The first word on each line represents either the language code (if the marking has been done through the command "Mark Language") or a question mark (if the marking has been done "free-hand" by clicking at the map). The next two items represent the coordinates of the marking, measured in pixels from the top-left corner of the card. (Areas are internally represented just a point chosen near the centre of the area.) The last word represents the kind of mark: the initial letter is either P (for pattern) or S (for symbol), and this letter is followed by a number between 1 and 40 representing the particular mark on the respective palette.
You may click at any line of the subiventory, and you may then edit or delete the line. Deleting the line is the only way to undo a "free-hand" marking, but if there are many "?" entries, it can be difficult to identify the right one. You should better not change the code of a language; it might have strange results. Editing the coordinates is tricky, but if you want to shift symbols around by small increments, you may try. Finally, you may change the type of marking for single languages (but see next command).
"Change marking" allows you to substitute one marking (a pattern or a symbol) by another marking throughout the subinventory. This may help you to improve the readability of the map, and it is essential if you want to represent the same data on the other basic map (see the TIP below). The new markings will appear on the map after "Redraw Map".
"Merge Subinventory" allows you to merge the subinventory of some other map with that of the present map. Since one particular language (as defined by the code) can only be marked once, any imported marking will replace the present marking of that language. You have to issue the command "Redraw Map" to see the combined effect.
+ The commands "Merge Subinventory" and "Change Marking" are powerful pair of tools. For example, if you have created a complex map of the type "Languages" and you now want to see how the data look on the "Geography" map, you can create a new map, merge it with the subinventory of the first map and then change pattern markings to symbols.
"Clear Subinventory" does just that, without changing the appearance of the map. Of course, after "Clear subinventory", the markings on the map can no longer be recovered.
The codes and names of the inventory started out as a faithful copy of the checklist in Guthrie's Comparative Bantu (volume 3). In this list, each unit has a code consisting of a single (capital) letter, a two-digit number, and sometimes a (lower case) letter. In BMM, neither spaces nor punctuation signs may separate these letters and digits.
The following kinds of amendments have been made to Guthrie's checklist:
Name changes: Guthrie's spelling of language names has been fully romanized, without phonetic symbols or diacritics. In some cases, unusual spelling variants were excluded and more commonly used variants were included.
Additions: More languages have been added. In particular, the inventory contains the codes, names and coordinates for all Bantu languages represented on the "Languages" map.
(i) Some languages were added which did not figure at all in Guthrie's checklist. Such languages had to be given new codes. New codes are distinguished from original Guthrie codes by having 3 rather than two digits. The new digit is added to the code of the unit to which the "new" languages appears to be most closely affiliated. For example, "Ilwana (Malakote)" has been given the code "E701" because it seems to be a member of Guthrie's group E70 which contains Pokomo and Mijikenda; "Koti" has beed coded as "P311" because it is closest to Guthrie's "P31 Makua".
(ii) In some cases, Guthrie uses the same code for several languages. BMM has often split such units into two different items. For example, Guthrie's "C35 Ntomba and Bolia" becomes "C35a Ntomba" and "C35b Bolia" in BMM. (The same method has been used by Guthrie himself in the body of his work.)
(iii) In other cases, Guthrie has a single code and language with alternative names added in parentheses. (He seems to have regarded these as either purely variations in name or else he lacked sufficient information.) BMM applies the "extra digit" convention. For example, Guthrie's "D28 Holoholo (Guha, Kalanga) appear in BMM as "D28 Holoholo" and "D281 Kalanga; Tumbwe"; Guthrie's "D53 Nyabungu (Tembo)" appear in BMM as "D53 Shi (Nyabungu)" and "D531 Tembo".
(iv) Finally, some languages have discontinuous areas on the map "Languages": BMM gives the minor area its own code which is the same as the code for the main entry except for an additional third digit zero. For example, there is "C41 Ngombe" and "C410 Ngombe", as well as "B22b Kele (Ngom)" and "B22b0 Kele (Ngom)".
Deletions: The only coded units that were deleted are most names of groups and zones. The only groups (code and name) that were retained are units which are commonly treated as single languages in the literature (e.g., "S10 Shona", "S50 Tsonga"), as well as groups which cover such a small region that it was impossible to represent each language as a separate area (e.g., "A20 Duala Group", "A50 Bafia Group", "A60 Sanaga Group").
NB. No code of any language has been changed under the guise of improving on Guthrie's "classification" which is taken by BMM as merely a referential system.
Language codes are "unique", i.e., BMM does not accept two lines with the same code. Language names are not unique. A language name may consist of several words, but it may not contain commas.
The last part of each line represents the location of the language on the map. It consists of two digits, the "longitude" (x-axis) and "latitude" (y-axis), measured in pixels (72 per inch) from the top-left corner. The two digits are followed by a letter, which is "A" for languages which have a defined area and "X" for languages which have just a point. Languages with an A-coordinate may be marked by a pattern (on the "Language" map) or by a symbol, languages with an X-coordinate are generally only suited for being marked with a symbol.
The coordinates "0,0,X" are conventionally assigned to languages for which BMM does not know the location.
Clicking a line of the inventory window gives you full power to delete or to edit the line: code, language name and coordinates. The same can be achieved by using the command "Edit Language" and "Delete Language". When a line is edited, BMM carries out some checking of "syntax", but there is no way of predicting what could go wrong if invalid entries are made. (However, if you closely follow the example of the other lines, there should be no problems.)
You can add languages to the inventory with the command "Add Language". You have to provide a code and a language name, and then you are asked to click at the location of the language.
The command "Add Coordinates" can be used to specify the location of a language which BMM does not know yet, or to change an existing location. You indicate the location by clicking at it. There is an point here to remember: If you hold down the Option Key while clicking, the coordinates will be of the X-type (point marking only), which you should do if the language does not have its own area on the map. BMM has one and only one set of coordinates of the typ "A" for each language area represented on the map. The suggestion is to keep it this way.
The command "Export Inventory" creates a text file which you can inspect, edit (careful!) and print with your word processor. "Import Inventory" is a dangerous command because it will replace the present main inventory with whatever file you import.
Think of the database as a table with rows and columns. The leftmost column contains the language codes, the other columns contain the values for the variables. There could be, for example, three variables: the number of vowels, the number of length contrasts, and tonal distinctiveness. The first row in the table should have (short) names for the colums. A small database could look like this:
(For more examples, export the DB-files from the maps in BMM.)
You can import a database into any map, even if it already contains markings. but you can import only one database per map.
During Database Import, several checks are carried out. If there are several entries for the same language (the same code), BMM can keep only one and will ask you which one. Also, if there are too many items in a particular line, BMM will ask you to edit this line. If there are too few items per line, BMM assumes that the missing items at the end of the line are empty. Finally, BMM tries to find the languages in the main inventory and then adds the coordinates.
+ If you write your database with MS Word, it is probably convenient to create a table. After entering your data, make sure that there are no commas (if there are, change them to something else). Then select the whole table and convert it by applying the command "Table to Text" from the Insert menu; choose the option "Comma delimited". At this stage, it may be a good idea to eliminate all the spaces which directly follow a comma. Finally, save the database as "Text only".
"Export Database": This command creates a textfile from the internal database. This may be useful if you want to enlarge or edit your database after having made changes to it within BMM.
"Show Database": This command hides the map and lets you look at the imported database. It also displays a field with the names of the variables.
Some lines in the database may be preceded by the bullet character "*". Such languages are not in the main inventory and cannot be represented on the map unless you specify the coordinates.
If you click at a line in the database field, you are presented with various options for editing.
-- You may delete a whole line.
-- You may change the code, which may be useful if your database follows a coding system which differs from the one used by BMM, for example, if your code for Ganda is J15 à la Tervuren instead of E15 as in BMM, or if the database has a language L31 which in BMM are two languages (L31a Luba-Kasai and L31b Lulua).
-- If the particular language has no coordinates, you may add them by indicating the position on the map. If you do, a bullet character appears before the line indicating that this information may now be added to the main inventory.
-- You may edit the values for each of the variables.
If you click at one of the names for the variables, a smaller field pops up showing all the values for this variable. If you then click at one of these values, you are asked to specify a type of marking (a pattern or a symbol). If you choose a pattern, you may also choose a symbol as an alternative in case the particular does not have an area which could be filled with a pattern. You can click the same value again to change the marking. You can always click at the name of another variable -- even if it is partially hidden -- to see its associated values and to specify markings for them.
"Hide Database": This command hides the fields with the database and the variables and takes you back to the map.
"Update Subinventory": This command links the appropriate languages with the specified markings and transfers all this to the map-specific subinventory. You can only use one variable for updating the subinventory at a time. (This is one of the areas of possible improvement; but see the TIP below.)
If there are already markings stored in the subinventory, you are given a choice of superimposing the new and the old markings or to clear the subinventory first. NB: If a particular language is already marked and then again receives a mark from the database, the database marking overrules the former marking.
After you have updated the subinventory, you may execute "Redraw Map" to see the results.
+ It is common to plot only one variable on one map, for example, all the reflexes of *ki-, but sometimes you may want to represent several things at once. For example, the sample map "7>5/Spir" depends on a database with two basic variables: "language has undergone the 7>5 vowel shift" and "language has undergone spirantization". However, there are four different markings on the map: one change, or the other, or both, or none. We have created this complex variable by using a simple "Find and Replace" action in my word processor after entering the data for the first two variables and before importing the database: Replace "+,-" by "+/-", Replace "+,+" by "+/+", etc.
"Update Main Inventory": This command allows you to add languages from the database to the main inventory. You are given the choice of doing so for each particular language preceded by a bullet character. (NB. It is generally not useful to add languages without coordinates.)
Givng the command "Edit Legend" hides the legend and brings up a list of the markings. For your convenience, the Symbols and Patterns windoids are also displayed. You may then enter your text for each symbol and pattern.
"Redraw Legend" implements changes that have been made to the contents of the legend, either by your editing the text, or by the command "Update Legend".
"Update Legend" has to be used after you have made changes to the map itself. Such changes are not automatically transferred to the legend.
"Copy Legend" places a copy of the legend on the clipboard for use in other programmes.
"Delete Legend" allows you to remove the legend; the associated map will not be affected.
"Export Map" and "Export Legend" can only be used when viewing a map or a legend. These commands produce a graphic file of the image of the card, or a part of it which you may specify by dragging a rectangle around it. Such graphic files can be imported by other programmes (including Microsoft Word).
"Print Map" and "Print Legend" will immediately produce output on your printer. (No experiments with different kinds of printers have been carried out -- let's hope all goes well.)
There is a slight difference in appearance between the result from the "Copy" commands which use the clipboard and the "Print" and "Export" commands on the FILE menu. The "Copy" commands just transfer the body of the map or the legend to the clipboard, the "Print" and the "Export" commands also catch the text of the title. You can, of course, add your own title to your work within your word processor, and you might even prefer this because it can produce a higher resolution.
"Print Help" prints the contents of the Help card. (The distribution disk also has a file with the manual (Microsoft Word 5.1).
"Page Setup..." brings up the standard Macintosh dialogue which tells BMM about your printer.
"Quit MapMaker" (Cmd-Q) regains unused space and returns you to your system.
The distribution disk contains the following files:
The programme itself comes with four sample maps:
"Guthrie's Zones" is a copy of the basic map "Languages" on which his zones are marked with different patterns. You can "Clear" the map and reapply different markings by clicking at the button "Mark a Zone". There is also a button "Mark a Range" which allows you to apply markings to specific ranges of languages.
The maps "Spirantization m" and "Spirantization o" both contain the same database (extracted from the "Inventory" in Guthrie's Comparative Bantu, volume 2). If you want to inspect the format of a database file use the command "Export Database". You may change the markings and redraw the map and the associated legends as much as you like.
The map "*-címbá" also contains a database. It has three variables: the meanings of the reconstructable root *-címbá, the meanings of the reconstructable root *-kóci, and the root used for `lion' (if it is one of these two). Only one map has been drawn. Again, it is instructive to experiment with this database and the various maps BMM can derive from it.
The various maps are meant to illustrate the difference in graphic impact between the two types of basic maps. It is generally true to say that the map "Languages" is best suited for large amount of data covering large continuous areas. The fewer languages you have, the smaller and patchier the picture gets, and in such cases the "Geography" tends to provide a much clearer impression of the geographical distribution of the chosen variable.