-
Notifications
You must be signed in to change notification settings - Fork 1
Ideas on derivation #235
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
base: main
Are you sure you want to change the base?
Ideas on derivation #235
Changes from 1 commit
0c7902c
1b02ab2
f391c34
10d53c7
db531f3
688e692
0db9eb8
433a2a5
3d5a879
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -90,6 +90,11 @@ IDerived "0..*" -> "1..*" Node: base | |
| Each derived node references one or more base nodes. | ||
| Any (base) node can have none or more derived nodes. | ||
|
|
||
| [horizontal,labelwidth=12] | ||
| QUESTION:: Should a derived node also be able to refer to features inside a node? Or do we leave that for specific classes implementing `IDerived`? | ||
| QUESTION:: The assumption is that derived nodes can have children that are not derived nodes. | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Derived nodes can have any kind of features, including children that might or might not implement |
||
| Of course children could also be derived nodes. | ||
|
|
||
| == Client use cases: | ||
| * "Which validation issues have been found on this partition?" | ||
|
|
||
|
|
@@ -134,6 +139,9 @@ We need to omit the parameter if we don't want to limit the depth. | |
| ==== Result | ||
| {chunk} containing all derived nodes according to `nodeIds`, `languages`, and `depthLimit` parameters. | ||
|
|
||
| [horizontal,labelwidth=12] | ||
| QUESTION:: The `depth:Limit` describes the depth of the retrieved nodes (derived nodes may be full trees), the next line suggests that `depthLimit` applies to the node id's sent. Needs clarification. | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The idea is:
|
||
|
|
||
| First, we find all _base_ nodes according to `nodeIds` and `depthLimit` parameter (see <<{bulk}.adoc#retrieve, Bulk retrieve>>). | ||
| Then, we find all _derivations_ according to `languages`. | ||
| The result contains all derivations and all their descendants. | ||
|
|
@@ -143,6 +151,8 @@ Does NOT include the definition of <<{serialization}.adoc#UsedLanguage, UsedLang | |
|
|
||
|
|
||
| == Possible derivation backends | ||
| [horizontal,labelwidth=12] | ||
| QUESTION:: The repository that is referred to is this always the repository where the opriginal model is stored, or could oit be a different (i.e. derivation processor specific) repository? | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Formally the derivation backend implementation is independent of the repository implementation, i.e. they don't need to be the same "service". (In practice in makes a lot of sense to couple them, though.) Derived models are part of the same repository as the original model in the sense that they share one id-space, and can refer to each other. |
||
|
|
||
| [[permanent-repo, permanently stored in repository]] | ||
| Permanently stored in repository:: | ||
|
|
@@ -270,6 +280,9 @@ package M3 { | |
| } | ||
| ---- | ||
|
|
||
| [horizontal,labelwidth=12] | ||
| QUESTION:: Should the `PropertyValidation` also point to the Property instance in the M2 model being validated, and not just to the node that contains the property? | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See remark above. |
||
|
|
||
| .Available backends | ||
| * <<temp-repo>> Domain validator providing `ValidationLang` _ava_ | ||
| * <<internal>> Typesystem calculator providing `TypeLang` _ava_ | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the example below, the
PropertyViolationpoints to a specific feature.Assume the following concepts:
Original model contains instance:
Validation derived model contains instance: