Role-Projection Bridge
Pattern B.5.3 · Stable Part B - Trans-disciplinary Reasoning Cluster
The FPF is built upon a small set of universal, domain-agnostic concepts (U.Types) like U.System, U.Objective, and U.State. This universality is the source of its power, allowing it to be applied to any domain, from thermodynamics to software engineering. However, practitioners in these domains do not speak in terms of U.Types; they use their own rich, specialized vocabularies. A thermodynamicist talks about a "Thermodynamic System" and its "Macrostate," not a U.System and its U.State.
Keywords
- domain-specific vocabulary
- concept bridge
- mapping
- terminology.
Relations
Content
Problem Frame
The FPF is built upon a small set of universal, domain-agnostic concepts (U.Types) like U.System, U.Objective, and U.State. This universality is the source of its power, allowing it to be applied to any domain, from thermodynamics to software engineering. However, practitioners in these domains do not speak in terms of U.Types; they use their own rich, specialized vocabularies. A thermodynamicist talks about a "Thermodynamic System" and its "Macrostate," not a U.System and its U.State.
Problem
How can FPF bridge this gap between its universal core and the specific language of a domain without either polluting the kernel with domain-specific terms or forcing experts to abandon their familiar vocabulary? A simple alias mechanism (e.g., a dictionary mapping U.System to "Thermodynamic System") is insufficient because:
- It's brittle: It assumes a one-to-one mapping, which often breaks down. A single domain concept can play multiple universal roles in different contexts.
- It's semantically poor: It only captures naming, not the rich constraints and relationships that a domain-specific concept entails. We can't express that a "Thermodynamic System" is a special kind of
U.Systemwith specific properties related to temperature and pressure. - It's not integrated: The mappings live outside the formal model, making them difficult to govern, version, and use in automated reasoning.
Forces
Solution
FPF solves this with the Role-Projection Pattern, a mechanism that creates a robust, semantically rich Concept-Bridge between the universal kernel and domain-specific vocabularies. This pattern is built on three core components:
The Role Concept
- Description: FPF introduces a new universal type,
U.Role. ARoleis not a concrete thing but an abstract, context-dependent role that an entity can play. It represents the domain-specific interpretation of a universal concept. - Example: "Thermodynamic System" is not modeled as a new subtype of
U.System. Instead, it is modeled as aRolethat aU.Systemcan play when it is being analyzed from a thermodynamic perspective.
The refinesType Relation**
- Description: Every
RoleMUST declare which universalU.Typeit refines or specializes. This is done via therefinesTyperelation. - Example: The
ThermodynamicSystemRolewould have the relationrefinesType: U.System. This creates a formal, unbreakable link to the kernel. It guarantees that any entity playing this role still inherits all the fundamental properties and invariants of aU.System. This is a many-to-one relationship: many different roles (e.g.,EconomicSystemRole,BiologicalSystemRole) can all refine the sameU.Systemtype.
The playsroleof Relation**
- Description: This relation connects a concrete entity in a model to a
Role. It is the assertion that "this specific thing is currently playing that specific role." - Example: In a model of a steam engine, we would assert that our specific engine instance
plays_role_of: ThermodynamicSystemRole. This assertion signals to all tools and reviewers that this engine should be interpreted as aU.Systemand that the rules and constraints associated with theThermodynamicSystemRolenow apply to it.
Didactic Note for Managers: From "Alias" to "Job Description"
The Role-Projection pattern is the difference between giving someone an alias and giving them a job description.
- An Alias (the old way): Simply says "Bob is also known as The Manager." It's just a name swap.
- A Role (the FPF way): Says "Bob
plays_role_ofManager." This is much richer. It implies that Bob has specific responsibilities, authorities, and performance expectations that come with the "Manager" role. He might also play other roles, like "Mentor" or "Team Lead."Similarly, when we say a component
plays_role_of"Sensor," we are not just renaming it. We are activating a rich set of expectations and rules that come with being a sensor (e.g., it must have an output port, it must have a defined accuracy, etc.). This makes our models smarter, safer, and more precise.
Archetypal Grounding
To illustrate the pattern in action, let's consider how we would bridge the domain of classical thermodynamics to the FPF kernel.
-
Define the Roles: A domain expert creates a set of
Roles, each refining a coreU.Type:- A
U.RolenamedThermodynamicSystemRolewithrefinesType: U.System. It might have a description: "A region of the universe under study, separated by a boundary." - A
U.RolenamedMacrostateRolewithrefinesType: U.State. Its description could specify that it is defined by variables (P, V, T, N). - A
U.RolenamedControlVolumeRolewithrefinesType: U.Boundary. - A
U.RolenamedFreeEnergyObjectiveRolewithrefinesType: U.Objective.
- A
-
Apply the Roles in a Model: An engineer modeling a heat engine would then use these roles:
- They create an instance of
U.Systemrepresenting the engine and assert:HeatEngine_Instance plays_role_of: ThermodynamicSystemRole. - They model the engine's state and assert:
EngineState_Instance plays_role_of: MacrostateRole. - They define the system's goal and assert:
EngineObjective_Instance plays_role_of: FreeEnergyObjectiveRole.
- They create an instance of
What this achieves:
- The model is now semantically rich. Tools can now understand that
HeatEngine_Instanceis not just any system, but one that should be analyzed using the laws of thermodynamics. - The model is verifiable. A tool could now check if an entity playing the
MacrostateRoleactually has attributes for Pressure and Temperature, enforcing domain-specific consistency. - The model remains universally compatible. Because
ThermodynamicSystemRolerefinesU.System, the heat engine can still be reasoned about as a generic system in a wider context (e.g., in a model of the entire power plant).
Conformance Checklist
- CC-B5.3.1 (Role Grounding Mandate): Every
U.RoleMUST be linked to exactly one universalU.Typevia therefinesTyperelation. Orphaned roles are forbidden. - CC-B5.3.2 (Explicit Role Assertion): A domain-specific concept SHALL NOT be treated as a subtype of a
U.Typedirectly. Its relationship MUST be expressed using theplays_role_ofrelation to aU.Role. - CC-B5.3.3 (Multi-Role Flexibility): A single entity MAY
play_role_ofmultipleRoles simultaneously, even from different domains. - CC-B5.3.4 (Semantic Integrity): A
RoleMAY introduce additional constraints or required attributes that are more specific than those of theU.Typeit refines, but it SHALL NOT contradict them.
Common Anti-Patterns and How to Avoid Them
Consequences
Rationale
The Role-Projection pattern is the cornerstone of FPF's approach to universality with specificity. It is a direct implementation of the Open-Ended Kernel (P-4) and FPF Layering (P-5) principles. By separating the timeless, universal concepts (U.Types) from their context-dependent, domain-specific interpretations (Roles), FPF achieves a powerful balance.
This approach is inspired by contemporary practices in both ontology engineering (e.g., the use of role concepts in foundational ontologies like UFO) and software architecture (e.g., aspect-oriented programming and role-based modeling), but it integrates them into a single, coherent pattern. It provides a formal, scalable, and semantically rich solution to the perennial problem of bridging the universal and the particular.
Relations
- Implements:
ADR-003: Role-Projection Pattern and Concept-Bridge. - Enables: The practical application of all FPF patterns by providing the "glue" that connects them to the FPF kernel.
- Used By: All other patterns in the reasoning cycle, as it provides the vocabulary for framing hypotheses and interpreting evidence in a domain-specific context.