Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "VIATRA2/Frequently Asked Questions"

(General)
Line 1: Line 1:
 
== General ==
 
== General ==
=== What is Viatra2? ===
+
=== What is VIATRA2? ===
TODO
+
VIATRA2 is a model transformation tool integrated into Eclipse. TODO
 
=== Is it available for free? ===
 
=== Is it available for free? ===
TODO
+
Yes. VIATRA2 is licensed under the Eclipse Public License v1.0.
 
=== How do I obtain Viatra2? ===
 
=== How do I obtain Viatra2? ===
TODO
+
See [[VIATRA2 Installation]].
 
=== How do I give feedback (bug reports, improvement ideas, experiences, observations)? ===
 
=== How do I give feedback (bug reports, improvement ideas, experiences, observations)? ===
TODO
+
There are multiple possibilities:
 +
* you can contact the developers on the [mailto:viatra-dev@inf.mit.bme.hu | mailing list].
 +
* you can use the publicly available [https://trac.inf.mit.bme.hu/VIATRA | bug tracking system]
 +
* you can contact the project leaders (contact info available [http://dev.eclipse.org/viewcvs/indextech.cgi/gmt-home/subprojects/VIATRA2/contact.html | here]
  
 
== VTML metamodeling ==
 
== VTML metamodeling ==

Revision as of 11:10, 10 June 2008

General

What is VIATRA2?

VIATRA2 is a model transformation tool integrated into Eclipse. TODO

Is it available for free?

Yes. VIATRA2 is licensed under the Eclipse Public License v1.0.

How do I obtain Viatra2?

See VIATRA2 Installation.

How do I give feedback (bug reports, improvement ideas, experiences, observations)?

There are multiple possibilities:

VTML metamodeling

TODO

Patterns and pattern language

Can patterns (or a single pattern) reference each other recursively?

Yes. However, the recursion should be well-founded. In certain cases, pattern systems that are not well-founded (but have a sensible fixpoint) are also acceptable, but ensuring their correct behaviour is is the responsibility of the pattern engineer.

Can patterns and gtrules be referenced from other VTCL machines?

Yes. The fully qualified name of the pattern/gtrule should be used instead of the short name. The same applies for VTCL rules.

Example:

machine1.vtcl

namespace mydomain.mysubdomain;
machine mymachine {
...
pattern mypattern(X) = {
...
rule myrule(in X) = ...
...

machine2.vtcl

machine myothermachine {
...
pattern composite(A) = {
      find mydomain.mysubdomain.mymachine.mypattern(A);
...
rule somerule(in C) = seq{
      call mydomain.mysubdomain.mymachine.myrule(C);
      forall A in C with find mydomain.mysubdomain.mymachine.mypattern(A) do ...

The pattern matcher seems to discard some occurrences of my patterns. Why?

VTCL has injective pattern matching semantics; in other words, pattern occurrences have to be isomorphic to the pattern graph. The practical implication is that no two pattern variables in the same pattern body can take the same value; such occurrences will be rejected. Patterns should be designed with this important phenomenon in mind.

The only exception is explicit variable assignment (e.g. A=B). The relaxing effect of variable assignment also applies indirectly; the assignment can be asserted in a separate pattern called using the find keyword.

Example:

 pattern fullsiblings(X, Y) = {
      person(X);
      person(Y);
      person(Parent1);
      person(Parent2);
      person.parent(PX1, X, Parent1);
      person.parent(PX2, X, Parent2);
      person.parent(PY1, Y, Parent1);
      person.parent(PY2, Y, Parent2);
 }
As Parent1 and Parent2 are not allowed to coincide due to injectivity, X and Y need two separate common parents. Therefore this pattern does not match half-siblings. Injectivity also keeps X and Y separate, so a single person with two parents does not fit the pattern either.


VTCL transformations

TODO


Graphical user interface and usage

TODO


Sensoria CASE Tool

TODO

Miscellaneous

TODO

Back to the top