Localizations are a chain of named places. Each place is a different Localization, which has more places (Localizations) around it. This system allows us to traverse arbitrarily complex spaces with ease.
In order to use a standard interface with arbitrarily complex containers, we rely on physical::Perspective::AssociateType(), chemical::Excitation, and the chemical/structure system to provide us with a means of translating a Site (AssociateType) into a class method (Excitation) that is used to query a container by Name (structure). See genetic/Macros.h for an easy way to define all that (its not nearly as hard to use as it is to implement).
For specifying a series of places, we use the already existing physical::Wave Modulation system in reverse order; meaning the Modulated signal is what should be evaluated BEFORE *this. Evaluation here means Localization::Seek() (past tense as Sought). If you can imagine a real-life wave being modulated, that is, having smaller waves that it carries, then visualizing this system should be easy: the largest wave is what we really want to do, which can only happen once the smaller waves have been resolved; so, we take a large wave of interest and look deeper and deeper into its more subtle fluctuations as we search larger and larger contexts, until we find what we are seeking.
To create a localization, first select the kind of place you want from the available LocalizationTypes (in the localization_type namespace). Next, note the Name of the desired place. And, lastly, instantiate a Localization. If you would like to identify a place within another place, simple repeat and Modulate the first Localization with the second. For example, if you want to identify where the bathroom is within a restaurant, we would start with a Localization like {localization_site::Room(), "Bathroom"}, which might cause us to ask the nearest person for the "Bathroom". Next, we would create another Localization along the lines of {localization_site::StreetAddress(), "MyFavoriteRestaurant"}. In this case, StreetAddress would tell us to use a navigation app and maybe a car or taxi service to "extract" the restaurant form the world. Then, we say bathroomLocalization % restaurantLocalization. Thus, we end up with all the information necessary to "extract" the "Bathroom" from "MyFavoriteRestaurant".
Definition at line 56 of file Localization.h.