Docs/adr-lpmstorage#9
Conversation
Added reviewers section to the ADR document.
alkuzman
left a comment
There was a problem hiding this comment.
I did not review the proposals (options) in detail. I will do that in another round of review.
| Superseded by: | ||
| --- | ||
|
|
||
| # ADR-0001: Data Storage Format |
There was a problem hiding this comment.
The title is imprecise. Storage format of what exactly?
There was a problem hiding this comment.
Also, the numbers of the ADRs should be stable over time. If you have PRs for multiple ADRs you don't know which one you will merge first therefore assigning numbers becomes very hard. The best way could be to assign the number of the PR that creates the ADR. For example now you created a draft, now you can update both the file and the titple to ADR-0009. That way you will always be sure that they have unique numbers.
There was a problem hiding this comment.
I don't see the benefit of this. Why wouldn't they be stable with the other strategy, numbering them in order of creation? The way you propose it, there will be gaps in the numbers, since not all pull requests are for an ADR.
There was a problem hiding this comment.
The title has been updated.
|
|
||
| ## Context | ||
|
|
||
| We need to store _Local Process Models (LPMs) and their occurrence lists in an event log_. Event log sizes can vary, |
There was a problem hiding this comment.
Maybe you should answer the following questions first:
- Why not jus LPMs?
- why occurrences?
- why in an event log?
| - Query-based read/write | ||
|
|
||
| There also exist various ways one can align LPMs to an event log: | ||
| - The storage focuses on one variation |
There was a problem hiding this comment.
You use the word variation here without explaining what is it. The image is not enough to explain. Also, why having this constraint is important?
There was a problem hiding this comment.
Example variations are now listed to clarify the problem. The comment regarding why this constraint is important is unclear to me.
alkuzman
left a comment
There was a problem hiding this comment.
In general make it clear what files would be generated for each option. Maybe provide a example tree structures for each.
in Decision Drivers give list of usecases that will require querying or writing from this format. Maybe shortly discuss from what option they might benefit.
| Superseded by: | ||
| --- | ||
|
|
||
| # ADR-0001: Data Storage Format |
There was a problem hiding this comment.
Also, the numbers of the ADRs should be stable over time. If you have PRs for multiple ADRs you don't know which one you will merge first therefore assigning numbers becomes very hard. The best way could be to assign the number of the PR that creates the ADR. For example now you created a draft, now you can update both the file and the titple to ADR-0009. That way you will always be sure that they have unique numbers.
| "t1": { | ||
| "e1": "t_a", | ||
| "e2": ">>", | ||
| "e3": "t_a", |
There was a problem hiding this comment.
How could
There was a problem hiding this comment.
Once it happens because of one occurrence list and the other because of another. The example above is now more detailed, and that is what I meant in the comment above: the alignment in the file actually serves as a collective alignment for all occurrence lists for that trace and local process model.
| "e5": "t_d" | ||
| }, | ||
| "t2": { | ||
| "e1": ">>", |
There was a problem hiding this comment.
why
There was a problem hiding this comment.
It is not matched because there is no alignment mapping an entire model execution to the trace, since
| - Using only existing formats | ||
|
|
||
| **Cons** | ||
| - Complete occurrence lists need to be reconstructed |
There was a problem hiding this comment.
Is this really expensive thing to do? To me it seems like a straightforward operation that can be done on demand.
However, this might become too expensive if the log is too big and you need to filter by few LPMs. Then Option C becomes really attractive.
There was a problem hiding this comment.
An explanation regarding why this is expensive has now been added.
| ### Option B: Separate Full Alignments File in Human-Readable Format (e.g., JSON) | ||
|
|
||
| For each set of models for which an occurrence list is computed, a report is generated that includes: | ||
| - lpm set info, |
There was a problem hiding this comment.
I don't understand what this is.
There was a problem hiding this comment.
In the update, some examples of what can be included here are given.
|
|
||
| $lpm2$: a -> b -> d | ||
|
|
||
| ```json |
There was a problem hiding this comment.
It is not clear that there could be multiple such files.
There was a problem hiding this comment.
I don't understand what such files refer to.
| To be able to store additional attributes, a new format for the models can be introduced or additional json file | ||
| can be used only for storing the additional attributes. | ||
|
|
||
| ### Option B: Separate Full Alignments File in Human-Readable Format (e.g., JSON) |
There was a problem hiding this comment.
This cannot handle multiple alignments for the same trace (events) therefore it should not be considered.
There was a problem hiding this comment.
Actually, it can handle multiple alignments; it is like a global alignment for all possible alignments for that trace. If an event can be aligned as part of any of the occurrences, it will be shown as a synchronous move. One problem is that the occurrence lists need to be reconstructed similarly to Option A. The second problem is that if I want to align the same event to different transitions for different occurrences, this is not possible.
No description provided.