Context modifier¶
A Context Modifier alters how claims SHOULD be interpreted under specific conditions.
Why¶
Preferences are rarely context-free. Someone who likes heavy woody fragrances
in general may prefer fresh airy scents in hot/humid weather. Rather
than storing a separate claim for every (preference, context) combination,
PPX expresses this as a modifier that adjusts the base claim under matching
conditions.
Shape¶
{
"modifier_id": "ppx:modifier:014",
"namespace": "core",
"key": "climate_heat_humidity_bias",
"effect_type": "weight_adjustment",
"targets": [
"fragrance.projection_tolerance",
"fragrance.freshness_preference"
],
"condition": { "climate": "hot_humid" },
"effect": {
"increase": ["freshness_preference"],
"decrease": ["projection_tolerance", "sweetness_preference"]
},
"confidence": 0.81,
"source": {
"kind": "observed",
"origin": "seasonal_behavior_log"
}
}
Core context dimensions (v0.1)¶
climate,season,time_of_day,occasion,social_context,stress_level,budget_sensitivity,time_horizon.
Extensions MAY add domain-specific context dimensions.
Effect types¶
effect_type |
Meaning |
|---|---|
weight_adjustment |
Multiplicatively raises/lowers claim weights. |
override |
Replaces a claim value under the condition. |
veto |
Removes a claim from consideration. |
suggest |
Surface a claim only when condition holds. |
Resolution order¶
When a client calls get_effective_profile with a context, the provider:
- Loads the user's claims (subject to grant scope).
- Finds all modifiers whose
conditionmatches the supplied context. - Applies their
effectto the resolved claim set. - Returns the effective profile.
The order of modifier application SHOULD be stable (alphabetical by
modifier_id) so that results are reproducible.