eMoflon / emoflon-ibex

Shared, eMoflon-specific component for incremental unidirectional and bidirectional graph transformations
GNU General Public License v3.0
13 stars 4 forks source link

Missing match (still non-deterministic) #163

Closed anthonyanjorin closed 7 years ago

anthonyanjorin commented 7 years ago

Hi Greg,

As far as I can see I'm still having the same old problems with a very trivial pattern network. For just two very simple patterns, I sometimes (1 time in 10) get matches as expected with this network:

IgnoreFamily__CONTEXT_CORR/3 @ 0: BidirectionalJoinOperation@4(platform:/resource/FamiliesToPersonsDeterministic/model/Persons.ecore#//PersonRegister^U->[1],BidirectionalJoinOperation@3(BidirectionalJoinOperation@2(BidirectionalJoinOperation@1(platform:/resource/FamiliesToPersonsDeterministic/model/FamiliesToPersonsDeterministic.ecore#//RegisterToRegister/source^BF->[2,0],platform:/resource/FamiliesToPersonsDeterministic/model/FamiliesToPersonsDeterministic.ecore#//RegisterToRegister^U->[2])->[0],platform:/resource/FamiliesToPersonsDeterministic/model/Families.ecore#//FamilyRegister^U->[0])->[2],platform:/resource/FamiliesToPersonsDeterministic/model/FamiliesToPersonsDeterministic.ecore#//RegisterToRegister/target^BF->[2,1])->[1]) IgnoreFamily__CONTEXT_TRG/1 @ 0: platform:/resource/FamiliesToPersonsDeterministic/model/Persons.ecore#//PersonRegister IgnoreFamily__CONTEXT_SRC/1 @ 0: platform:/resource/FamiliesToPersonsDeterministic/model/Families.ecore#//FamilyRegister IgnoreFamily__MODELGEN/3 @ 0: BidirectionalJoinOperation@8(IgnoreFamily__CONTEXT_TRG/1->[0]->[1],BidirectionalJoinOperation@7(BidirectionalJoinOperation@6(BidirectionalJoinOperation@5(platform:/resource/FamiliesToPersonsDeterministic/model/Persons.ecore#//PersonRegister^U->[1],IgnoreFamily__CONTEXT_CORR/3->[1]->[0,1,2])->[2],platform:/resource/FamiliesToPersonsDeterministic/model/FamiliesToPersonsDeterministic.ecore#//RegisterToRegister^U->[2])->[0],BidirectionalJoinOperation@1(IgnoreFamily__CONTEXT_SRC/1->[0]->[0],platform:/resource/FamiliesToPersonsDeterministic/model/Families.ecore#//FamilyRegister^U->[0])->[0])->[1])

But most of the time I don't get any matches with this erroneous network:

IgnoreFamily__CONTEXT_CORR/3 @ 0: BidirectionalJoinOperation@4(platform:/resource/FamiliesToPersonsDeterministic/model/Families.ecore#//FamilyRegister^U->[0],BidirectionalJoinOperation@3(platform:/resource/FamiliesToPersonsDeterministic/model/FamiliesToPersonsDeterministic.ecore#//RegisterToRegister/source^BF->[2,0],BidirectionalJoinOperation@2(platform:/resource/FamiliesToPersonsDeterministic/model/Persons.ecore#//PersonRegister^U->[1],BidirectionalJoinOperation@1(platform:/resource/FamiliesToPersonsDeterministic/model/FamiliesToPersonsDeterministic.ecore#//RegisterToRegister/target^BF->[2,1],platform:/resource/FamiliesToPersonsDeterministic/model/FamiliesToPersonsDeterministic.ecore#//RegisterToRegister^U->[2])->[1])->[2])->[0]) IgnoreFamily__CONTEXT_TRG/1 @ 0: platform:/resource/FamiliesToPersonsDeterministic/model/Persons.ecore#//PersonRegister IgnoreFamily__CONTEXT_SRC/1 @ 0: platform:/resource/FamiliesToPersonsDeterministic/model/Families.ecore#//FamilyRegister IgnoreFamily__MODELGEN/3 @ 0: BidirectionalJoinOperation@7(BidirectionalJoinOperation@1(platform:/resource/FamiliesToPersonsDeterministic/model/Families.ecore#//FamilyRegister^U->[0],IgnoreFamily__CONTEXT_SRC/1->[0]->[0])->[0],BidirectionalJoinOperation@6(BidirectionalJoinOperation@1(platform:/resource/FamiliesToPersonsDeterministic/model/Persons.ecore#//PersonRegister^U->[1],IgnoreFamily__CONTEXT_TRG/1->[0]->[1])->[1],BidirectionalJoinOperation@5(platform:/resource/FamiliesToPersonsDeterministic/model/FamiliesToPersonsDeterministic.ecore#//RegisterToRegister^U->[2],IgnoreFamily__CONTEXT_CORR/3->[2]->[0,1,2])->[1])->[0])

missingMatches.zip

@FStolte Are you not having such problems? My TGG only consists of HandleRegisters and IgnoreFamily.

Thanks! Tony

anthonyanjorin commented 7 years ago

I have really tried hard to make sure that I have the latest of everything.

anthonyanjorin commented 7 years ago

Hmm... ok - this might be related to installing the Democles Update Sites properly.. I still have to perform some experiments.

anthonyanjorin commented 7 years ago

Ok - I found out that the target platform stuff is not really working (no idea why). As from now on we'll be working without any dependencies to eMoflon so we can install Democles directly. All my tests seem to be running now.