Go backward to Multi-valued attributes.
Go up to The condition side.
Go forward to Structured value notation.

Path notation
.............

Often, variables appear in the condition of productions only to link the
value of one attribute with the identifier of another attribute.  Attribute
path notation provides a shorthand so that these intermediate variables do
not need to be included.  Using path notation, a sequence of attributes are
separated by dots ("."), after the "^" in a condition.  So instead of writing
^attr value, you can write ^attr.attr.attr value.

For example,

(sp propose-operator*extinguish-hair
  (goal <g> ^problem-space.name acid-trip ^state.hair-status flaming)
 -->
  (<g> ^operator <o> +)
  (<o> ^name extinguish-hair))

is treated as meaning

(sp propose-operator*extinguish-hair
  (goal <g> ^problem-space <p*1> ^state <s*1>)
  (<p*1> ^name acid-trip)
  (<s*1> ^hair-status flaming)
 -->
  (<g> ^operator <o> +)
  (<o> ^name extinguish-hair))

where <p*1> and <s*1> are new variables not occurring elsewhere
in the production.  

Path notation is currently not supported for actions.  Also, don't use any
path components that start with a digit.  For example, if you type
^foo.3.bar, Soar thinks the .3 is a floating-point number.