Skip to content

A derived model can contain nodes of derived and/or original classifiers #255

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
enikao opened this issue Mar 23, 2024 · 1 comment
Open
Labels

Comments

@enikao
Copy link
Contributor

enikao commented Mar 23, 2024

Derived nodes are regular nodes (#254), so they can have properties, references, annotations, and containments.
Which kind of nodes can a derived node contain (or have as annotations)?

We assume #243 does not limit the parent of a derived node.
We assume #181 identifies derived node classifiers somehow.

Option A: No containments

A derived node cannot contain any other node.

Pro:

  • Simple

Con:

  • Disallows many use cases. Example: a type derivation describes an inferred abstract data type. We want to describe all of the ADT's components, including their derived constraints.

Option B: Only nodes of derived classifiers

A derived node can only contain other derived nodes

Pro:

  • Allows use cases like the ADT example mentioned above
  • Clean separation between derived and original nodes

Con:

  • Might lead to duplication of concepts. Example: Our language allows either explicit or implicit, derived descriptions. A description is composed out of Words. Word might have specializations like ReferenceWord or AnchorWord. For each specialization, we'd need to define a derived classifier and an original classifier.

Option C: Both nodes of derived and/or original classifiers

We can mix derived and original classifiers freely in a derived model.

Pro:

  • Avoids concept duplication

Con

  • ?
@enikao enikao added the derived label Mar 23, 2024
@joswarmer
Copy link
Contributor

If we don't use IDerived, but make derivation a first class citizen we don't have derived classifiers anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants