As a follow-up, I found this in the draft BFO 2020 documentation:
"The member parts of an object aggregate are the proximal parts of the aggregate - those parts that determine the aggregate as an aggregate (sometimes referred to as 'grains' or 'granular parts')."
"Different sorts of examples of object aggregates satisfying further conditions, for example an organization is an aggregate whose member parts have roles of specific types (for example in a jazz band, a chess club, a football team); a swarm of bees is an aggregate of members who are linked together through natural bonds; and so on."
"Object aggregates may be defined through physical attachment (the aggregate of atoms in a lump of granite), or through physical containment (the aggregate of molecules of carbon dioxide in a sealed container, the aggregate of blood cells in your body). Object aggregates may be defined by fiat, for example in the case of the aggregate of members of an organization; or via attributive delimitations such as: the patients in this hospital, the restaurants in Palo Alto, your collection of Meissen ceramic plates."
Regarding Object Aggregate:
"The unit can, at certain times, consist of exactly one object, for example, when a fire brigade loses all but one of its members, but it must at some time have a plurality of members parts."
I have not seen the term 'Organization' defined as it is in the preceding BFO excerpt: "...an organization is an aggregate whose member parts have roles of specific types..."
Here are other 'Organization' definitions:
An organized body of people with a particular purpose, especially a business, society, association, etc."
"Represents a collection of people organized together into a community or other social, commercial or political structure. The group has some common purpose or reason for existence which goes beyond the set of people belonging to it and can act as an Agent. Organizations are often decomposable into hierarchical structures."
"An entity, such as an institution or an association, that has a collective goal and is linked to an external environment"
All these definitions/descriptions have two things in common, which are either expressed or implied: (a) an Organization is structured to meet some goal; (b) an Organization requires membership
Otherwise, the meanings vary. The BFO reference adds that its member parts engage in specific role types. The Lexico definition places Organization in context - business, societal, association. Without further clarification, the context scope is undetermined. For example, what is an "association" and how broadly does it apply? The W3C Organization Ontology presents an Organization's context as "social, commercial or political". It states it as being "decomposable into hierarchical structures". FIBO also mentions "association" and adds that an Organization "is linked to an external environment", whatever that means.
Even though BFO mentions an Organization definition informally, and given that Organization is a domain-specific term and, therefore, beyond BFO's scope, I think it offers the best definition for the following reasons:
- It is concise
- It provides a clearer meaning by way of qualifying its member parts as having specific role types
- It is not unnecessarily constrained, which easily allows for extensibility
Having added this to the thread, my original questions remain:
- How best does one model a 'subOrganizationOf' relation in BFO 2020? I suppose this relation can be sub typed under 'member part of at some time', which assumes a particular member of the organizational hierarchy will not always be a member. However, with this approach, it becomes necessary to introduce BFO Object and, potentially, some domain-specific sub type (e.g., Organizational Member). If this is a reasonable approach, then it counters the conventional ways I've seen a sub-organization relation modeled, and these conventional ways are very widely adopted. This makes it difficult to convince adopters to view an organizational structure differently.
- As you can see here (
https://www.w3.org/TR/vocab-org/#overview-of-ontology), the W3C Organization Ontology presents a self-referential relation: Organization subOrganizationOf Organization. In the spirit of BFO 2020 logic-based axioms, an Organization can be a continuant part of itself (identity). I assume the BFO 'member part of at' relation also allows this self-reference according to this theorem given in the BFO 2020 documentation: "Theorem: if b member_part_of c at t, then b continuant_part_of c at t." Since, the continuant_part_of relation follows Simons' Minimal Extensional Mereology axioms and BFO 2020 extends them to include identity, then the continuant_part_of relation allows for antisymmetry. Therefore, an Organization can be a member_part_of itself. This conforms with set theory, but I am not sure what practical business value it has when modeling an Organization.
- The second challenge occurs at the instance level. Asserting an Organization instance is a member part of itself is not a business-pertinent fact, which means its application requires some rule to ignore this fact when it is either asserted or inferred. However, having Organizational Member sub typed under BFO Object and Organization sub typed under BFO Object Aggregate may be problematic, too. We return to the granularity issue. Businesses typically have a business need to model their organizational structures. The W3C Organization Ontology presents a recursive data structure in the form of Organization subOrganizationOf Organization. Every Organization is potentially both an Object and an Object Aggregate in BFO terms but instead is typed only as Organization in the W3C Organization Ontology. Some external rule is required to disambiguate the instance's context. Is a given Organization instance itself an Organization, or is it some member of some Organization? How do we know we are speaking of the Organization instance in the appropriate business context? With the BFO approach, it only works if Object and Object Aggregate are not in a disjointedness relation if one allows for the same instance to be typed both as Object and as Object Aggregate, or, respectively their notion sub type Organizational Member and Organization.
- Optionally, we can create separate instances to account for mix granularity, and this may enable one to assert an Object / Object Aggregate disjointedness relation without negative consequence, but this could be considered to fly in the face of 'duplicative entities' (see: https://groups.google.com/g/bfo-discuss/c/ODkb6JfVwYU). For example, Org 'A' has as its member Org 'B'. Org 'B' has as its member Org 'C'. At the macroscopic level of Org 'A', Org 'B' itself is not an organization; it is a member of Org 'A', which is a more fine-grained view. If Organization is sub typed under BFO Object Aggregate and Organizational Member is sub typed under BFO Object and Object / Object Aggregate are in a disjoint relation, then to assert the facts Org 'A' instance_of Organization and Org 'B' instance_of Organizational Member is not inconsistent. A problem occurs if avoid duplicative entities within the same model and assert the facts Org 'B' instance_of Organization and Org 'C' instance_of Organizational Member. A reasoner will return an inconsistency, because the model asserts that Org 'B' is typed both as Organizational Member and as its complement, Organization. The facts indicate we are mixing granularity levels. In my opinion, to assert that a given instance is both an Organization Member (sub type of BFO Object) and an Organization (sub type of BFO Object Aggregate) across different granularity levels within the same model is incorrect. Clearly, a member is not identical to the whole of which it is a member. This is why I think it is merely a convenience to allow the member part of relation to include a single member. It fits into the approach that avoids duplicative entities while simultaneously assigning a given instance to two types that obviously have different intensional meanings: a member part is not the whole of which it is a member.
- How do we avoid the potential for multiple inheritance? Org 'B' & Org 'C' is a sub type of Org 'A'; Org 'D' is a sub type of both Org 'B' & Org 'C'.
If Organization is modeled as a BFO Object Aggregate, then there is still the possibility of asserting BFO Object / Object Aggregate disjointedness if one is careful not to "mix granularities" (see: https://groups.google.com/g/bfo-discuss/c/ODkb6JfVwYU
). However, in this specific case, where a business requirement is to model its organizational structure and produce information artifacts derived from the model, I think it would be difficult if not impossible to avoid this mixed granularity issue, whereby an Organization instance is typed as an Object Aggregate and another organizational instance is typed as an Object, a more fine-grained member in relation to the Organization as a whole. In this case we are mixing a macroscopic view of reality at the Organization level with a mesoscopic view of reality at the level of its member parts.
Here's an idea. Consider the following:
- Object disjoint with Object Aggregate
- Organizational Member sub typed under Object; Organization sub typed under Object Aggregate
- sub_organization_of_at_some_time sub typed under member_part_of_at_some_time
- sub_organization_of_at_some_time domain & range values: Object & Object Aggregate, respectively
- [m depicts "member"] Org_B_m_Org_A instance_of Organizational Member; Org_C_m_Org_B instance_of Organizational Member
- [h depicts "holds"] Org_A_h_Org_B instance_of Organization; Org_B_h_Org_C instance_of Organization
One might consider "Org_B_m_Org_A" and "Org_B_h_Org_C" to be duplicative entities. They are not, since each entity is typed differently and represents a different granular view of reality within the same model. The labels are purely designed for human readability, but their semantic values are expressed within the model by way of their types and their sub_organization_of_at_some_time relation. If you run a reasoning engine over a decidable and tractable OWL model holding these types, relations and instances, it does not report any inconsistencies. Is it verbose? Yes. Does it introduce many more RDF triples? Yes. Does it make sense both ontologically and set theoretically? It seems so.