Properties provide a flexible way to add information to words in a glossary. Property validation is enforced by the glossary preprocessor while the properties themselves are part of the glossary proper and are thus available in the JSON data that Oracc creates for glossaries. Because glossaries link to instances, the properties in a glossary can be applied to the contexts in which the words with the property occur.
There are two glossary tags used for glossary properties:
@proplist
and @prop
. Both tags may be
used more than once.
The @proplist
tag has a single argument which is
the name of a file containing properties and permissible values.
The file name may begin with a project name, followed by a colon
(':'). If there is an explicit project name Oracc looks only in
the 00lib
directory of the named project. If there
is no explicit project name, Oracc looks first in the current
project's 00lib
directory, then in the system
properties directory. At present there are no system properties
defined, but this feature is implemented for possible use in the
future. System property files live in the
lib/data/props
directory of the Oracc installation
(usually /home/oracc
in a multi-user
installation).
The @prop
may be given before any senses, in
which case the property applies to all senses of the word, or
immediately after a @sense
, in which case it
applies to the sense.
The format of a @prop
is:
@prop KEY VALUES
The KEY
must be defined in a proplist which has
been included in the glossary's scope via a
@proplist
command, and the VALUES must be declared
allowable values for the KEY
. A KEY
may have a single VALUE
or many. No spaces are
allowed in VALUES
.
The file is a simple text file, with the extension
.txt
. Blank lines are ignored, as are comment
lines which begin with the hash mark (#
). The first
word of any unindented line apart from comments is an allowable
KEY
; subsequent words are VALUES
,
which may be given over more than one line as long as the second
and subsequent lines are indented. A VALUE
may not
contain spaces.
For a proplist 00lib/loctypes.txt
containing the following:
loctype monument temple city field
The qpn.glo
for a project would include the
proplist giving only the base part of the filename:
@proplist loctypes
Then reference the proplist:
@entry Entry [1] GN @prop loctype monument ...
To use the properties defined by another project:
@proplist rinap:loctypes