While the code ensures that the domain and range of the ontology level relationships are enforced, there is nothing that either describes nor checks profile level relationships between instances with potentially incompatible or inconsistent classifications.
For example:
- A sales catalog physical object should carry a sales catalog text, not a lottery catalog or a stock book.
- The production of a painting should not have the technique of sculpting.
- A provenance entry activity can have a Payment which is part of it, but a Payment cannot have a provenance entry as a part.
(etc)
This seems like it would be beneficial to add, but we need to understand the use cases and motivations first.
In particular:
- automated checking, as per the ontology, of manually created instances being linked together in unexpected ways could emit a warning or error
- classes could be interrogated for possible values per property, beyond just the ontology layer and instead take into account vocabulary
- classes could have APIs that create the default referenced object, link it in the right property, and return it ( vocab.SalesCatalog.make_textual_work() --> vocab.SalesCatalogText )
This issue is for tracking such use cases and ideas.
While the code ensures that the domain and range of the ontology level relationships are enforced, there is nothing that either describes nor checks profile level relationships between instances with potentially incompatible or inconsistent classifications.
For example:
(etc)
This seems like it would be beneficial to add, but we need to understand the use cases and motivations first.
In particular:
This issue is for tracking such use cases and ideas.