Product
Support
Everything Else
Helix 6.1: Keyword Indexing and the HKWT (Keyword Separator Table) Resource
About the Keyword Separator Table

In testing keywords in OS X Helix, a recurring problem was identified: the HKWT resource that defines the Keyword Separator Table is stored on the Helix application, not the collection. If a collection relies on a modified Keyword Separator Table, the user must remember to update the HKWT resource with every new version of Helix installed. Failure to maintain the HKWT resource results in inconsistent results in Keyword-based searches.

New in Helix 6.1

Starting in Helix 6.1 (and RADE 6.1.1): Each collection can now have its own HKWT resource, providing a customized Keyword Separator Table. Helix now checks for the HKWT resource inside the collection before loading the default HKWT from the application.

In addition to improved flexibility, many inconsistencies in the Keyword Separator Table have been corrected.

Note: the HKWT resource is not automatically added to new collections: it must be explicitly copied into the collection when collection-level specificity is desired. (See Keyword Management Utility below.)

This technote represents the official published specification for the Helix Keyword Separator Table.

Missing Characters & Inaccurate Information

In prior versions of Helix, many ‘High ASCII’ characters that are used frequently in European languages were being ignored as word characters. Consequently, words containing, characters such as Å and Ø were excluded from keyword searches.

It was also discovered that the previously published information, such as that found in Appendix A of The Helix Reference is inaccurate. For example: É is noted as being a word character, but in the actual HKWT resource, it was being treated as a separator. Many similar inconsistencies were found and corrected.

Also, the two ligatures included in the standard Macintosh font set — fi & fl — are now included in the word character set.

Non-Breaking Space

Curiously, even the non-breaking space (NBSP) character was not considered a word character before, even thought the very definition of the non-breaking space speaks for its inclusion.

Beginning in Helix 6.1 the non-breaking space — created by pressing option-space — is treated as a word character.

Important Note on Keyword Index Changes

When the HKWT resource is changed, Keyword Indexes in all affected collections must be rebuilt. Otherwise, existing index entries remain in the index, and the index will be unreliable. Currently there is no code in Helix to detect this situation and automatically rebuild Keyword Indexes. Helix Utility includes a Break All Indexes command, but that also breaks regular field indexes, which are not affected by this change.

If the Keyword Index is not rebuild, this problem can occur: when a keyword field is modified, the words in the field are added to the Keyword Index based on the new delimiters. However, the old entries for that field, based on the old HKWT, are not removed from the Keyword Index. (The keyword reindexing code searches for words to remove based on the current HKWT, not the one in effect when the data was previously entered.

In summary: when changing the HKWT, be sure to rebuild all existing Keyword Indexes in any affected collections.

Default HKWT Revisions in Helix 6.1

These tables compare the old and new Keyword Separator Tables. The third table highlights the changes made in Helix 6.1.

Keyword Management Utility

A new utility has been developed to help manage HKWT resources. The HKWT Resource Manager is an AppleScript that can:

  • Create a map of an existing HKWT
  • Copy an HKWT from one location to another
  • Modify an existing HKWT

Instructions are found in the Keyword Management Utility package, which will be available soon.

Direct Editing

You can also edit the HKWT resource directly using a resource editor. See our Resource Editing page for information on resource editors.

Changes In OS X Helix

Classic Helix allows you to specify any search string when specifying keyword-based restriction using the Word Starts With & Word Equals operators in Form and Power Queries, even logically impossible strings that contain Separator characters. OS X Helix checks the search term against the Keyword Separator Table and reports an error when Separator characters are included. (In Classic a query can be specified that can never produce results because keyword separator characters are included.)

Definitions

Terms Used In This Technote:

  • Keyword Field: A field with the Keyword checkbox turned on.
  • Keyword Index: An internal index built automatically when a field is designated as a Keyword Field. Unlike regular field indexes, keyword indexes are not visible in Design Mode. A keyword index enables Keyword-based searches.
  • Keyword-Based Searches: Searches that use the Word Starts With or Word Equals operator. These operators are available in Form and Power Queries and in abaci.
  • HKWT Resource: A Macintosh OS resource, stored in the resource fork of a Helix application or collection. THe HKWT resource must have ID#1.
  • Keyword Separator Table: The contents of the HKWT resource. A table that indicates whether each ASCII characters is to be treated as a Word Character or a Separator Character
  • Word Character: An ASCII character that is included in keywords. The default set includes all numbers, letters (including their high-ASCII variations), and the non-breaking space (NBSP) character.
  • Separator Character: An ASCII character that is excluded from in keywords. The default set excludes all punctuation, control characters, and non-letter, high-ASCII characters.
  • ASCII Character: The Standard Roman Character Set as defined in this Apple technote.
The Helix Reference

Keywords are described in the following sections of The Helix Reference:

  • 5.1.1.3: Keyword/Edit Keyword
  • 7.1.6: Keyword Option
  • Appendix A (obsolete)