Welcome to Historical Phonology Workplace. This is an analysis tool for analyzing historical phonology data. The motivation for such a tool is two-fold. First, it is an implementation of a database structure for recording analytical decisions made in the course of doing historical phonology. Second, it is a workspace that makes many of the tasks of historical phonological analysis easier. You can expect this program to:

Conversely, it will not:

The overarching goal is to enable a researcher to produce an analysis, along with a database to describe the analysis. It's one thing to say that *t existed in Proto Indo-European, but another to say that *t existed, is attested by so many correspondence sets, so many cognate sets, and so many words from so many languages, etc., and then to provide the data for everyone to see.

The design idea behind Historical Phonology Workplace is to force no more structure on your analysis than the logic of historical reconstruction requires. For instance, you are required to identify cognate sets before you can create a correspondence set. But you aren't limited, say, to reconstructing only single segments. Your correspondence sets can be long strings (say, for analyzing the development of consonant clusters).

Fundamental concepts

Historical Phonology Workplace should prove fairly straightforward to people familiar with historical phonological analysis. The concepts employed are not complex: one has a dataset (wordlists from putatively related languages), and one can have several approaches (theories, hypotheses) for the historical analysis of that language. In Historical Phonology Workplace, this is the distinction between projects and approaches.

What are the data? A set of lexicons. In Historical Phonology Workplace a datum is a string of phonetic segments and a lemma. The lemma is any label—you can make it a simple word (‘apple’), indicate an inflectional form (‘apple gen.’), or write in some notation to represent an affix (‘SUPERLATIVE’). The phonetic segment can be any Unicode string, which ought to include just about everything.

What is included in an approach? Historical Phonology Workplace is based on the analytical abstractions that are employed in historical phonological analysis.

More important are the links between these two levels. Historical Phonology Workplace will remember, not just that a cognate set exists, but from which data it as composed. It doesn't just keep track of correspondences, but also what cognate sets illustrate those correspondences. It doesn't just keep track of reconstructions, but also of what correspondence relations and what cognate sets those reconstructions are based upon.

This guide

This guide occupies sort of middle ground between a “getting started” manual and a “reference manual.” While there are a few sequential procedures to introduce, Historical Phonology Workplace largely reflects the non-linear nature of phonological analysis: always jumping between levels of abstraction. It therefore doesn't make sense to have a lot of sequential instruction in a manual.

That said, the guide sort of assumes a loose sequential order for you to explore the interface. From there, feel free to explore. To make it easier to browse through, some key phrases have been highlighted.

In the initial installation of Historical Phonology Workplace there is an example project and two example approaches, for a non-sensical data set. You can use these to understand the features of the software, and to understand what a final product might look like.

First steps

When Historical Phonology Workplace is first loaded, there is no default project or approach. To select a project and approach, click on “Change project/approach” from the left menu. From the “Project” drop-down, select “K'iche” and from “Approach” select “Take 1.”

Most of the work in Historical Phonology Workplace takes place in the Workplace view. To see the workspace, click on “Workspace” on the left menu.

Initially, the Workplace shows four windows: Data, Cognate Sets, Correspondences, and Reconstructions. These represent four levels of abstraction in historical phonology. Every window depends on the window above it.

Each window contains a table of data, along with various buttons for performing the analysis. Take a look at teach table. The Data window simply contains a data table, showing the data as they have been entered. The Cognate Sets window looks much the same: in this case, all of the data have been entered as cognate sets, so this level looks redundant; in other analyses, however, cognate sets may involve words from non-identical lemmas. The Correspondences window has a table of correspondence sets. Finally, the Reconstruction window has a table with reconstructed forms in proto-languages.

At the top of most columns of these tables, there is a “Sort” button. You may click on this button to sort the rows of the table by the values in that column.

Viewing cross-references

In the Cognate Sets, Correspondences, and Reconstruction window, there are orange buttons on each row that allow you to view links between the various levels of analysis.

From the Cognate Sets window, click on the orange “Data” button for one of the rows. Immediately, the source data for the cognate set are highlighted in the Data window.

Four windows is a bit much, and we will not be looking at the Data window for a while yet. On the titlebar for the “Data” window, click the “hide” button. The Data window is no longer shown, leaving more room the the remaining three windows. (If you accidentally hide more windows than that, see the section entitled “Controlling the appearance of the Workspace” below.)

Now again from the Cognate Sets window, look for the orange button that reads “Corr (X)”—where X is some number. “Corr” here stands for “Correspondence.” When you click this button, all of the correspondence sets associated with this cognate set will be highlighted in the Correspondences window. The number in parentheses in the button indicates how many correspondence sets are associated with the cognate set.

Finally in the Cognate Sets window, the orange “Recon” (=Reconstructions) button will show all of the reconstructions associated with the cognate set in the Reconstructions window. It will also highlight the correspondences in the Correspondences window.

Things work similarly in the Correspondences window. Clicking the orange “Cog” button will highlight all of the cognate sets associated with the reconstruction. Clicking the orange “Recon” button will highlight associated reconstructions.

And again, the Reconstruction window works the same way. Click the orange “Cor” button to view all of the correspondences associated with a particular reconstruction, or the orange “Cog” button to view all of the associated correspondence sets and cognate sets.

Controlling the appearance of the Workspace

The appearance of the Workspace can be modified. From the left menu, click on “Display Settings.” The “Workplace Display Settings” screen is brought up.

Under the “Select which windows are visible” header, select with checkboxes the windows you wish to be visible.

Under “Display abbreviations...” you can opt to display abbreviated language names rather than full ones; this can save on screen space.

The “Visibility of languages” section allows you choose which languages (=columns of the table) should be displayed.

Finally under “Order of Languages” you can change the display order of the columns by selecting a language, and using the “Move Up” and “Move Down” buttons to change its position in the list. The topmost item in the list is the leftmost in the table.

Upon returning to the Workspace, changes in the display settings are reflected in the appearance of the tables.

You can also associate colors with languages, so that the columns in the Workspace are colored rather than being gray. From the left menu, choose “Languages.” You can enter in a color into the “Color” field. After you click the “Make Changes” button, you can see the result in the Workspace. What is an acceptable thing to put in that box? Anything that is an acceptable CSS color. These are things that look like

A suggestion: use pastels, and indicate subgroups with colors of the same hue.

Making changes

This section will introduce basic steps in analysis.

Making, modifying, and deleting cognate sets

Change the display settings of the workspace so that only the Data and Cognate Set windows are showing.

Our goal is to create a new cognate set. To create a set, we highlight the words we want to include in the set. In the Data window, click on a word: it changes color to indicate that it has been selected. Click it again to deselect it. You can also clear the selection from a column by clicking the gray “clear” button at the top of the column. You can select multiple words from the same language for a cognate set, if you believe that they are cognate (say, in the sense of internal reconstruction).

Once you have selected all of the words you want to include in the cognate set, scroll down to the bottom of the Data window to find the “Create a cognate set” form. You need to enter in a name for the set (i.e., some reconstructed meaning), and you can include a note about the cognate set if you wish. When you click the “Create” button a new cognate set appears in the Cognate Sets window (possibly far down the page, depending on how the table is sorted).

In cases where all of the words you want to put into the cognate set are from the same lemma (=row), then you can simply click the blue “Q.C.S.” (=Quick Cognate Set) button. This will create a cognate set with all the words from the same row with the lemma label as the name of the set.

Altering a cognate set. First, change the selections in the Data window to reflect the elements of the new set. Then in the Cognate Sets window click the blue “alter” button to change that cognate set to reflect the new selection.

To delete a cognate set, in the Cognate Sets window, click the blue “X” button. The program will confirm your decision, and then delete the set.

To make a note about a cognate set, click on the green “Note” button. A small form appears with space for a note and a “save” button to save the note.

The green “Proto” button is discussed below.

Making, modifying, and deleting correspondence sets

Change the display settings of the workspace so that only the Cognate Set and Correspondences windows are showing.

To create a correspondence set from a cognate set, in the Cognate Set window click on the green “Corr” (=Correspondence) button of cognate set from which you wish to make a correspondence. A small form appears beneath the row. You can enter corresponding segments (or strings of segments—it makes no difference to the program) into the text box in each column. Then click “Create” to add the correspondence. The new correspondence appears in the Correspondences window.

As a convenience, the above form has a “copy from first” button that will copy the value from the leftmost text box to the remaining text boxes—which saves time when all the elements of the correspondence set are identical. There is also a “clear” button to clear all values from the box.

You can associate a cognate set with a correspondence set. Select a correspondence in the Correspondence window by clicking the checkbox to the left (the row changes color to indicate your selection). Then back in the Cognate Sets window click the “associate this set with the selected correspondence set” for the appropriate cognate set (using the green “Corr” button).

Conversely, you can disassociate a cognate set from a correspondence set. To do this, select the cognate set in the Cognate Sets window (with the checkbox at the left of each row), and in the Correspondences window click the blue “Rm Sel Cog” (=Remove Selected Cognate Set) button.

To edit a correspondence set, in the Correspondences window click the green “Edit” button. A form appears from which you can change anything about the correspondence set, and then click “Save.”

To delete a correspondence set, in the Correspondences window, click the blue “X” button. The program will confirm your decision, and then delete the set.

To make a note about a correspondence set, click on the green “Note” button. A small form appears with space for a note and a “save” button to save the note.

Making, modifying, and deleting reconstructions

Change the display settings of the workspace so that only the Correspondence Set and Reconstruction windows are showing. Within the Reconstruction window, check that the “Reconstructions” tab is active (default).

To reconstruct a segment from a correspondence set, in the Correspondences window click the blue “Recon” (=Reconstruction) button, which will reveal a small form. You can enter in a reconstructed segment (or string of segments), select the proto-language you wish to reconstruct in, and click “Add Reconstruction.” The new reconstruction appears in the Reconstruction window.

Or, you can associate a correspondence set with a reconstruction that has already been created. After clicking the green “Recon” button in the Correspondences window, select a reconstruction in the Reconstruction window by clicking the checkbox at the left end of the row. Then back in the Correspondences window click the “associate this set with the selected reconstruction” link.

Conversely, to disassociate a correspondence set from a reconstruction, select that correspondence set in the Correspondences window (by clicking the checkbox at the left end of the row). Then click “Rm Sel Corr” (=Remove Selected Correspondence) on the row of the reconstruction in the Reconstruction window.

To modify a reconstruction you have already made, in the Reconstruction window click the green “Edit” button, which will reveal a small form. You can edit the reconstructed segment (or string of segments), and then click “Save” to save the change.

To delete a reconstruction, in the Reconstruction window, click the blue “X” button. The program will confirm your decision, and then delete the set.

To make a note about a reconstruction, click on the green “Note” button. A small form appears with space for a note and a “save” button to save the note.

For each reconstruction you can see a quick summary of the amount of data that went into each reconstruction.

Reconstructing whole words

You can reconstruct whole words in the proto-language that you have posited. From the Cognate Sets window, click the green “Proto” button. A form appears. Beneath each reconstructed language there is a space to write in a proto-form, and a “save” button to save the form.

Historical Phonology Workplace doesn't constrain what you write in this box, at all.

Why is the place for entering a reconstructed word in the Cognate Sets window? Because:

  1. Reconstructed words are associated in a one-to-one way with cognates.
  2. When determining the reconstructed form it is helpful to have the Correspondences and Reconstructions windows free, so you can see what you're doing.
  3. It fit nicely there.

Making, modifying, and deleting sound changes

Change the display settings of the workspace so that only the Cognate Set and Reconstruction windows are showing. Within the Reconstruction window, check that the “Sound Changes” tab is active (default).

To create a sound change, in the Reconstructions window fill out the form under the heading “Sound Changes” window. Select a proto-segment from the drop-down box, and fill in the rest of the rule as if it were an SPE-style phonological rule. Select the language for which the rule applies. If you wish, you can specify that this rule occurs after another rule that you have already created.

To associate a cognate set (=protoform) with a sound change that has already been created, select a cognate set in the Cognate Set window by clicking the checkbox at the left end of the row. Then back in the Reconstructions window (Sound Changes tab), click the “Associate” link.

Conversely, to disassociate a cognate set (=protoform) from a sound change, select that cognate set in the Cognate Set window (by clicking the checkbox at the left end of the row). Then click “Disassociate” on the row of the sound change in the Sound Changes window.

To modify a sound change you have already made, in the Reconstruction window (Sound Changes tab) click the green “Edit” button, which will reveal a small form. You can edit the sound change, and then click “Save” to save the change.

To delete a sound change, in the Reconstruction window (Sound Changes tab), click the blue “X” button. The program will confirm your decision, and then delete the sound change.

To make a note about a sound change, click on the green “Note” button. A small form appears with space for a note and a “save” button to save the note.

General interface tips

Step-by-step for creating a new project

  1. From the left menu click “Manage... Projects”
  2. Under “Add a project” enter a name and description, the latter being optional.
  3. From the left menu click “Manage... Approaches”
  4. Add an approach, entering the name and description (optional), and selecting the appropriate project from the drop-down.
  5. Currently the only way to import data is through a CSV file. (See the section “CSV File Format” below.) From the left menu click “Import CSV Data.”
  6. Upload your file; if no error messages appear everything is fine.
  7. From the left menu click “Change project/approach”
  8. Select your project and approach and click “Change.”
  9. Optionally...
    • From the left menu click “Display Settings” to customize how your workspace is displayed.
    • From the left menu click “Languages” to edit the details of your languages—such as adding an abbreviated name.
  10. Click “Workspace” to begin work.

Other features

If you are want to create an additional approach for a project, it may be that you want to copy elements of an existing approach. You can create a new approach based on an existing approach by going to “Manage... Approaches” and filling out for the form under “Create new approach based on an existing approach.”

Export and backup

You can export your data and analysis in XML format. From the left menu choose “Export XML Data” and then fill out the form. If you are at a loss for the options, I suggest exporting both strings and indices.

You can backup your data by backing up the “database.db” file, which is a standalone database file containing everything. See “Under the hood” below.

CSV File Format

At this point, Historical Phonology Workplace only supports entering data by importing a CSV file. CSV-format files can be generated manually, or by any spreadsheet program (Microsoft Excel, OpenOffice Calc). The requirements are these:

Here is a sample data table, including data for the Balaqa and Bakala languages:

GlossBalaqaBakala
beautifulugauka
bloodbugabuka
breadmemi
bringtarzantarsan

The appropriate corresponding CSV file is:

"Gloss","Balaqa","Bakala"
"beautiful","uga","uka"
"blood","buga","buka"
"bread","me","mi"
"bring","tarzan","tarsan"

Under the hood

This is a short section describing some technical aspects of Historical Phonology Workplace, which are not of interest to the general user.

Historical Phonology Workplace started off as a web-based program, which is why it feels like a web page. It was a blend of PHP and JavaScript. Just about as it was finished, I realized what a dumb system that was: working with it over the Internet was very slow, and the alterative of having users install a server on their machine seemed a bit excessive. So, I decided to make it a standalone program instead. I used Qt's QtWebKit module to create a browser that displays a single local web site. This involved ditching PHP and moving the database logic to Qt. (Although it wasn't great to have to rewrite the code, I actually found the Qt APIs for SQL and XML easier to work with than the PHP ones).)

The database is a SQLite (sqlite3) database. All of the project and approach data reside in the single “database.db” file in the application directory. This is just a standalone SQL database, which you could explore with the SQLite command line utility. You can back up this file (if you use webmail, email it to yourself) and restore it by copying it back in to the application directory. If something really goes wrong, a clever geek should be able to recover your information, given the “database.db” file alone.

All contents copyright © 2017 Adam Baker, except where otherwise noted.