Skip to content
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

Add state-based model output #403

Closed
ohmann opened this issue Jan 27, 2016 · 1 comment
Closed

Add state-based model output #403

ohmann opened this issue Jan 27, 2016 · 1 comment
Assignees

Comments

@ohmann
Copy link
Contributor

ohmann commented Jan 27, 2016

Convert Synoptic's internal event-based model to a state-based model for output, if requested. As a first step, this could be done only for JSON output where this feature is currently desired.

Some strategy should be employed during conversion to ensure no unnecessary states are created in the state-based model, since naive conversion strategies have the potential to create non-minimal state-based models. For example, the Perfume frontend currently takes the Perfume backend's (event-based) JSON output and leverages the naive strategy of simply pushing all node labels into the outgoing edges. Below is an example of a non-minimal model it produces.

Running this command allows Perfume to infer the same shopping cart model that Synoptic does:

./perfume.sh -c traces/abstract/shopping-cart-example/args-perfume.txt traces/abstract/shopping-cart-example/trace.txt

But using the same arguments in the Perfume frontend, the following non-minimal state-based model is produced. Both of the top two check-out.php edges should lead to the same state.
Non-minimal state-based model

Issue #370 is related; it discusses the impact event logging strategies have on the correctness of an event-based model converted into a state-based model.

@ohmann
Copy link
Contributor Author

ohmann commented Jun 8, 2016

Resolved in a basic way via #406. Models are currently not guaranteed to be minimal.

@ohmann ohmann closed this as completed Jun 8, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant