Discussion on Profile Structure Point26
How do we represent different settings/variations for different contexts (e.g. times, ambient light, locations?)
A profile stores information about the preferences of a user. Yet, this preferences are specific to many factors, most important: The target device and the context (the environment).
It should be pretty safe to say that the target devices - even including software influence like the OS version - don't change very often and if they change, we can threat them as a new device. There are two options to deal with device specific settings
- Make the whole profile depend on both the user and the target device. This way we will end up with multiple profiles, one for Ashley-Windows, another one for Ashley-Android and so on.
- Make the setting keys depending on the target device. This way we will end up with multiple entries per key per profile, like .../windows/volume and .../android/volume
Context specific settings change very often, as many environmental influences are not discrete, for example the time of the day. We will probably not be able to avoid to store conditions along with each setting to deal with this semantically complex relations. Some examples can be found at the Profile Conflicts page.