To help provide user-friendly displays and explanations for query results, 4 types of user-level natural language annotations are available in **Sunflower**. They are described below in individual subsections. Most examples used are drawn from the content of family.flr. .. _section-Annotation using the label property: Annotation using the label property ----------------------------------- For atomic symbols such as classes and instances, the **label** property can be used for annotation. For examples: .. code-block:: flora MotherInLaw :: Person [ label -> 'mother-in-law' ]. Anne : Woman [ child -> Betty, Chris, birthDate -> "1916-07-30"^^\date]. label -> 'SweetPea' ]. The **label** property allows identifiers such as **MotherInLaw** and **Anne** to be output in a more user-friendly form, e.g. eliminating camel-case, inserting spaces, substituting with special names, etc. The **label** property works together with the **English** option in **Query Results**. While in **English** is mode, query results are shown using the **label** property instead of the identifier name. The following example shows how **label** is used in query result display. Load family.flr and execute the query ’List all classes Anne belongs to’. In the **Query Results** window, ensure that **Flora** mode is selected. Note that in this mode, **MotherInLaw** is returned as one of the classes **Anne** belongs to, as seen in :numref:`figure-NL-list-all-Anne-classes-flora.png`. .. _figure-NL-list-all-Anne-classes-flora.png: .. figure:: ../figs/NL-list-all-Anne-classes-flora.png :alt: **MotherInLaw** listed as one of the classes Anne belongs to **MotherInLaw** listed as one of the classes Anne belongs to Select **English** mode by clicking the corresponding radio button. Class MotherInLaw is now displayed as **mother-in-law**, the label of the class, as shown in :numref:`figure-NL-list-all-Anne-classes-english.png`. .. _figure-NL-list-all-Anne-classes-english.png: .. figure:: ../figs/NL-list-all-Anne-classes-english.png :alt: **mother-in-law** listed as one of the classes Anne belongs to **mother-in-law** listed as one of the classes Anne belongs to .. The **label** property works together with display options **Display Labels** and **Display Generated Labels** in the **Sunflower** **Query Results** plugin. When these display options are selected, query results are shown using the **label** property instead of the identifier name. The following example shows how **label** is used in query result display. .. Click the **Query Results** tab. Make sure that the **Display Labels** option is not selected, as shown in :numref:`figure-NL-display-label-not-selected.png`. That is, click the upside-down triangle icon on the right to reveal the display options menu, and there should not be a check mark to the left of the **Display Labels** option. .. .. _figure-NL-display-label-not-selected.png: .. .. figure:: ../figs/NL-display-label-not-selected.png :alt: **Display Label** is not enabled **Display Label** is not enabled .. Load family.flr and execute the query ’List all classes Anne belongs to’. Note that **MotherInLaw** is returned as one of the classes **Anne** belongs to, as in :numref:`figure-NL-mother-in-law-no-label.png`. .. .. _figure-NL-mother-in-law-no-label.png: .. .. figure:: ../figs/NL-mother-in-law-no-label.png :alt: Class **MotherInLaw** is displayed when **Display Labels** option is not on Class **MotherInLaw** is displayed when **Display Labels** option is not on .. Now select the **Display Labels** option in **Query Results**. The result previously shown as **MotherInLaw** is now shown as **’mother-in-law’**. The **Display Labels** option triggers the use of the annotation in the **label** property for class **MotherInLaw**. This can be seen in :numref:`figure-NL-mother-in-law-label.png`. .. .. _figure-NL-mother-in-law-label.png: .. .. figure:: ../figs/NL-mother-in-law-label.png :alt: label **’mother-in-law’** is displayed for class **MotherInLaw** when **Display Labels** option is on label **’mother-in-law’** is displayed for class **MotherInLaw** when **Display Labels** option is on More examples of using the **label** property to influence query results display can be found under Section :ref:`section-Query Results Language Options`.