biolink / biolinkml

DEPRECATED: replaced by linkml
https://github.com/linkml/linkml
Creative Commons Zero v1.0 Universal
23 stars 12 forks source link

Issue 320 mixin abstract as default #321

Closed RichardBruskiewich closed 3 years ago

RichardBruskiewich commented 3 years ago

Tested patch for issue https://github.com/biolink/biolinkml/issues/320 which was inspired by Biolink Model issue https://github.com/biolink/biolink-model/issues/540. All relevant tests pass.

Everywhere the boolean truth value of cls.abstract is tested, the boolean truth value of cls.mixin is now also tested thus drives model behavior accordingly.

The one practical semantic difference remains(?) that abstract classes can only be present once in the schema within a single class hierarchy, whereas references to mixin definitions are defined in their own class hierarchy but may be injected multiple times into the regular class and slot hierarchies, as a values of the mixins property of a target class (or slot). The practical refinement of mixin behavior remains to be refined (in other code revisions hence PR's).

hsolbrig commented 3 years ago

Got caught with PR 323