loader constraint violation when launching an EMF compare comparison(and proper tools for model comparison.)

104 Views Asked by At

I'd like some insight on a couple of topics :"EMF compare" and "model to model comparison" in general.

I am trying to achieve a comparison between two XMI models, which are different from each other (i) the first is an output model which is the result of a transformation that I run on an instance of an input meta-model, (ii) the second is an instance (conformant to the output meta-model), which I created to represent what the correct expected output form should be after the transformation (a.k.a an oracle model).

I tried using 'EMF compare' to achieve a comparison between multiple different output models (which I got after running my transformation on multiple different input models) and the oracle, 'correct' model, with the aim of validating my proposed transformation.

However, whenever I try to run the "compare with -> each other" I get the following error message and no result :

An internal error occurred during: "Computing Model Differences".
loader constraint violation: loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @477ad3b6 wants to load interface com.google.common.collect.Multimap. A different interface with the same name was previously loaded by org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a161902. (com.google.common.collect.Multimap is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a161902, parent loader 'platform')

I tried to delete /.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi and restart my workspace. However, the problem sustained.

And I also verified that there are no conflicting Guava versions (in fact I had no guava installed so I tried to install it, which didn't fix the problem), and I also tried to install Orbit plugin, as it was recommended to me and it also did not help because the same error remains. My questions are:

(i)Based on my description, is using EMF compare appropriate for my requirements? as explained above, I need to compare each output model with the same oracle model and get a score or something to decide if the transformation gave the correct output or not. (ii) If yes, what is causing this problem and how can I fix it? (iii) if no, what is a proper tool or plugin to use to achieve what I need?

An additional question, which might be a little out of the scope of the question is: (iv) I have seen works that compare the output models with an oracle and classify those results into a hyperspace and hyperlanes (false positive, false negative, etc), after that, they calculate the precision and recall of their approaches. Eventually, based on that they would assess the correctness of their proposed transformation. However, I could not find proper documentation on how to achieve that by myself (in an academic experiment manner). Could anyone provide me with directions or documentation on how to make a proper comparison and get an assessment of my transformation validity?

Thank you in advance. Regards.

0

There are 0 best solutions below