- * Unlike values, raw values are not persistent -- the raw value can
- * change frequently, but the changes are not visible to the application.
+ * The property manager is implemented in three layers. The {@link
+ * SGPropertyNode} is the highest and most abstract layer,
+ * representing * an LValue/RValue pair: it * records the position
+ * of the property in the property tree and * contains facilities
+ * for navigation to other nodes. Each node * may contain an {@link
+ * SGValue}, which is guaranteed persistent: the * {@link SGValue}
+ * will not change during a session, even if the * property is bound
+ * and unbound multiple times. The SGValue is the * abstraction of
+ * an RValue: it allows for conversion among all of the different
+ * types, and can be bound to external pointers, functions, methods,
+ * or other data sources. Every SGValue contains an SGRawValue of
+ * a specific type. The SGRawValue (this class) may change frequently
+ * during a session as a value is retyped or bound and unbound to
+ * various data source, but the abstract SGValue layer insulates
+ * the application from those changes. The raw value contains no
+ * facilities for data binding or for type conversion: it is simply
+ * the abstraction of a primitive data type (or a compound data
+ * type, in the case of a string).