Top of the World
BIS repositories have a strict hierarchical organization. This page describes the top of that hierarchy and how it functions as a table of contents for the repository as a whole. This table of contents consists of:
RepositoryModelSubjectsInformationPartitionElements
RepositoryModel
Every BIS repository has exactly one RepositoryModel that defines the top of the hierarchy. Elements can be inserted into or updated within the RepositoryModel, but the RepositoryModel itself cannot be deleted. The RepositoryModel sub-models the root Subject of a BIS repository.
The RepositoryModel is the only Model in a BIS repository that sub-models an Element contained within itself (the root Subject). Due to implementation details, this was easier than the RepositoryModel not sub-modeling any Element.
Subjects
Subjects are Elements that are used to identify things that the repository is about. The Subject class cannot be specialized (subclassed). The most important capabilities of Subject are:
- It can have a UserLabel (inherited from Element)
- It can have a Description
- It can have child
Subjects - It can have child
InformationPartitionElements
Subjects only exist in the RepositoryModel.
Every BIS repository has exactly one root Subject that describes what the repository as a whole is about.
- The root
Subject- like allSubjects - is contained by theRepositoryModel. - The root
Subjecthas no parent element as it is the top of theSubjecthierarchy. - The root
Subjectcan be updated, but it cannot be deleted. - the root
Subjectis sub-modeled by theRepositoryModel.
Child Subjects (optional) can be introduced to further organize the contents of the repository.
- Child
Subjects - like allSubjects - are contained by theRepositoryModel. - Child
Subjects have anotherSubjectas a parent.
InformationPartitionElements
As discussed in Modeling Perspectives Subjects can be viewed and modeled from multiple modeling perspectives (physical, functional, analytical, etc.). InformationPartitionElements are used to "partition" a Subject into different modeling perspectives.
When it is determined that a Subject is to be modeled from a particular modeling perspective, an InformationPartitionElement of the appropriate modeling perspective is added as a child of the Subject. That InformationPartitionElement is the start of a Model hierarchy representing the modeling perspective. The InformationPartitionElement is sub-modeled by a Model of the same modeling perspective.
It is usually expected for a Subject to have only one InformationPartitionElement instance of a given modeling perspective, but it is not enforced. When such need arises, it is typically better addressed via child Subjects, each owning a different InformationPartitionElement instance of the same modeling perspective.
InformationPartitionElements always have a parent Subject and are never used outside of the RepositoryModel.
| Next: Single Responsible-Party Principle |:---
Last Updated: 21 November, 2022