Dictionary Columns

Dictionaries provide a mechanism for setting the attributes of each entry individually. The column set up command is:

#cols column1_def, column2_def, ...

One of the column definitions must be "text" (the entry text) and the others are attributes, of the form:

attribute:name

The entries following the #cols command have to have the number of columns specified in the #cols command:

attribute:namecolumn1_value, column2_value, ...

Both column definitions and dictionary entries are comma separated. If commas occur within the column values, the column value should be double-quoted.

For example:

#wordlist Events
#cols text, feature:year, feature:location
Sydney Olympics, 2000, Sydney
South Africa World Cup, 2010, South Africa

This capability complements the global setting of attributes via commands of the form #attribute:name value.

Empty columns in entries are filled by values set in global attribute commands, if available.

Examples

[To be found with the example Dictionaries distributed with Sintelix]

/*
#EXAMPLE
Business as Usual.
Business to Business.
Business to Consumer.
policeman & policemen.
polices will not match.
Dog
#EXAMPLE END
*/
#wordlist Demo6-Columns
// define a two columns: text and a string feature "abbrev"
#cols text, feature:abbrev
#feature:abbrev nil
Business as Usual, BAU
Business to Business, B2B
Business to Consumer, B2C
Dog,
// you may customise the order setting #cols also clears the previous column layout
#cols feature:abbrev, text
// now the second column is the entry text
BAU, Business as Usual
B2B, Business to Business
B2C, Business to Consumer
,Dog
// Combining with other attributes and globals; #cols overrides any global feature (for example, code)
#cols text, feature:code:integer, generalise:plural
fireman , 17, true
firefighter , 18, true
policeman , 19, true
police , 19, false

Giving the results:

The links are annotated twice - once with the columns in one order and a second time with the columns in reverse order.