You can read each relationship in two directions. For example, you can say "Herman Melville wrote Moby Dick" or "Moby Dick was written by Herman Melville." We can paraphrase each of these two statements as follows:
Although awkward, this way of articulating relationships highlights the existence of collections. In the following table, each collection is shown as a collection of objects.
Collection (inside the gray ovals)
Commentary
The collection of books written by Herman Melville
Collection (inside the gray ovals)
Commentary
The collection of books written by Kraig Brockschmidt
Collection (inside the gray ovals)
Commentary
The collection of persons who wrote Moby Dick
You can also think of collections as collections of relationships. The following table shows how every collection of objects has an equivalent collection of relationships.
Object collection
Commentary
The collection of books written by Herman Melville
Relationship collection
Commentary
The collection of authorships for which Herman Melville is the writer
Object collection
Commentary
The collection of authors of Moby Dick
Relationship collection
Commentary
The collection of authorships in which Moby Dick is the written thing
As the preceding figures shows, you can think of each collection in two ways — as containing either relationships or objects. When you manipulate a collection object from a COM program, you can manipulate it with an interface called ITargetObjectCol or with an interface called IRelationshipCol. The first interface lets you manipulate a collection as if it contained objects. The second interface lets you manipulate a collection as if it contained relationships.