agents, roles and organizations #1360
Replies: 6 comments
-
We do - the patterns in the parties ontology in FND support this. That's part of what these new patterns are designed to support. |
Beta Was this translation helpful? Give feedback.
-
OK, great. So, how we make explicit that the concrete CEO role (i.e., an instance of fibo-be-oac-exec:ChiefExecutiveOfficer) is a role that belongs to (is part of, is defined in, ...) given organization. |
Beta Was this translation helpful? Give feedback.
-
There is a general pattern you can use for now, or I can raise an issue and build in a lower level pattern more specific to the roles of people with respect to organizational roles. I have an issue to do that for beneficial ownership, and could do the same for organizational relationship if that would be useful. In the mean time, I would use the Control situation that is currently in FND, and take a look at BoardMembership in particular, which is in BE. That one is already explicit. I think the more detailed solution is to create a subclass of Control, for OrganizationalResponsibility (might be a direct subclass of Situation, or might be a subclass of Control), whose actor is a ResponsibleParty, and create generic responsibility properties under that, which follow the pattern. To do something quick in this case, I would create a property called isOfficerOf, as a subproperty of actsOn, whose domain is CorporateOfficer and range is ControlledParty. I would create an inverse of that, called hasCorporateOfficer, as a subproperty of isAffectedBy, with a domain of ControlledParty and range of CorporateOfficer. If you want me to add them, including the responsible party situation, and more generic properties for relating the roles, I can do so, including building out the rest of the pattern relating person all the way through to organization. Just let me know and I'll work on it under this issue. The other pattern that already exists is for authorization - a corporate officer is an authorized party, and the organization is the authorizing party. That's an alternative, and a corporate officer is both a responsible party and authorized party. In the model currently, CorporateOfficer is a subclass (through a couple of others) of AuthorizedParty already. The properties relating an authorized party to an authorizing party are already there as well, see isAuthorizedBy and authorizes. |
Beta Was this translation helpful? Give feedback.
-
Thanks, Elisa! isOfficerOf would work for some roles I've got on my list. But for the roles like e.g. a secretary, we have to look for something else. In general, I'd like to have a relationship that would link a role with an organization without imposing that person that plays the role has some authority over the organization or something like this. Of course, it is a separate question whether we want to have roles like a secretary in FIBO. |
Beta Was this translation helpful? Give feedback.
-
I've done quite a bit of organizational modeling and it seems to me that a simpler model will suffice (though lacking a full use case - a full HR system would probably be more complex). An Organization e.g. Apple hasPosition e.g. AppleCEO which is filledBy a NaturalPerson e.g. TimCook. You can apply this at any level e.g. OrganizationSubunit. For further detail e.g. temporality you can reify the relationship as Appointment which links the Position to the Person and could have a period, salary etc. You could have multiple concurrent Appointments to the same Position (e.g. something generic like AdaptiveSoftwareEngineer) and have an integer attribute like hasCountOfExpectedAppointees which would allow questions such as "are we under or over staffed?" |
Beta Was this translation helpful? Give feedback.
-
@rivettp I like the way you described the relationships between agents, roles and organizations. Especially "hasPosition" is the relation we need for linking roles/positions with organizations. @ElisaKendall, what's your opinion? |
Beta Was this translation helpful? Give feedback.
-
I'm not sure we have a pattern in FIBO that allows linking roles with organizations. Passing through an agent (i.e., role -- is played by --> agent -- is member of --> organization) does not work. Agents can play multiple roles in multiple organizations, even at the same time. So, what's the solution?
Beta Was this translation helpful? Give feedback.
All reactions