The difference between "contains" and every other type of relationship is that it is the minimum essential requirement for some types to exist. A package cannot be a package without having contents. It's "packageness" is defined by the fact that it has contents. The same cannot be said for all of the other relationship types - a Package and a BOM can exist without patches, variants, ancestors, dependencies, examples, etc.
If any of those other relationship types were essential for a Package or BOM to exist, then the model would include "dependency_element", "patch_element" properties in addition to the contents ("element") property, and the version of the Package would change whenever the properties change. The reason dependency is not a property is because a Package and its version don't change every time some other Package references / uses / becomes dependent on it. Contains is special and different from all other relationships because if the content of a Package changes, it is a different version of the Package. Dave -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#4332): https://lists.spdx.org/g/Spdx-tech/message/4332 Mute This Topic: https://lists.spdx.org/mt/88669484/21656 Group Owner: spdx-tech+ow...@lists.spdx.org Unsubscribe: https://lists.spdx.org/g/Spdx-tech/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-