Symbol, String, Name
Background: Thing/Node/Sequence/Element, System Data
Related: Views, Hierarchy, Labels, How to Change a Thing's Name
In DBD, each symbol, string and named thing is represented by a different node. For example, the following are different nodes: symbols j, o, h, n; string john; and person named john. Various expressions specify each and the relationship between them. In general, strings are indicated by a single preceeding quote.
In DBD, a thing can be named by 0 to many symbols or strings. For example, a person can be named by 'j, 'john or ('john 'b 'smith). Symbols and strings are case sensative.
The first figure above shows three persons. The first person's name is bob. The second person doesn't have a name but has an attribute. The third person doesn't have a name or attribute.
By default, a tree node's label displays a thing's name. If the thing isn't named, the node displays the names of its classes and attribute values (ie person 28). Use the View Menu options to alter what a node displays.
Because a thing's name is typically displayed in a node's label, its attribute name is not loaded in the tree by default when the node is expanded. To load bob's attribute name, as shown in the second figure, check Names in the View Menu and reload person bob.
In order to distinguish nodes with the same label, enable View Menu Parentheses option. Each set of parentheses indicate a level of referencing. The third figure shows the person as (bob) and his name, a string, as bob.
Sometimes in order to distinguish nodes, one must enable View Menu ID option as shown in third figure. In this mode, a node's ID is displayed at the end within square brackets.
A string can have any symbol, except for left parenthesis, right parenthesis or space. A string can begin with a single quote, however special handling is required. Thus the following are valid strings: b, bob, 123, -123, 1.23, 1/1/2000, 10:35 and ^&69_!+-~@.
If the rules for parentheses were applied consistently starting from symbols, the string bob would be (((b)o)b) and the person named bob would be ((((b)o)b)). Since this is cumbersome to read, the string is displayed simply as bob and the person as (bob). Note, the string bob has two references to the exact same symbol b.