Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [henshin-user] NestedConditions

Hi Steffen,

Henshin allows the morphism between the host graph and the application condition graph to be a partial morphism. Consequently, all three cases you mention (only nodes replicated, only border nodes replicated, full LHS replicated) would specify different application conditions for the same rule.

While this design decision has its awkward sides (especially the representation in the graphical editor), I encountered some situations before where it was desirable, as it allowed to precisely specify an intended behavior.

I'm actually surprised by the fact that the graphical editor defaults to the "node only" case -- I would have expected "full LHS replicated" as the default. However, in most cases, the resulting behavior will be identical. The only exceptions seem to arise in the (exceptionally rare) case where there are multiple references of the same type between the same two objects.

Best regards,

On 12/19/2019 11:32 AM, Zschaler, Steffen wrote:



A rather technical question about NestedConditions and their representation in a .henshin file. Do tell me to take this somewhere else if that would be more appropriate.


I understand the theory behind application conditions: the condition is a graph and a morphism into this graph from a host graph. That is represented in Henshin by the ability to add a “formula” to a graph, where this formula can be a NestedCondition, which itself again contains a graph and a set of mapping. The containing graph is the host graph, the graph in the NestedCondition is the application-condition graph, and the mappings capture the morphism. So far so clear.


Except that’s not how it seems to work in practice: if you look at the attached file, produced by the standard graphical editor, you will see that only the nodes from the host graph have been replicated in the application-condition, but the edges haven’t. In other examples, I have seen cases where only the border nodes had been replicated. In any case, the mappings clearly aren’t a morphism as they do not fully cover the host graph.


Are all of these formats indeed acceptable? If so, is there a regularised format that is used inside Henshin and, if so, can this be reused outside of Henshin? Alternatively, are there minimum expectations on how an application condition should be encoded in a .henshin file? Is any of this documented anywhere? Should it be?






Dr. rer. nat. Steffen Zschaler AHEA


Senior Lecturer

King's College London

Department of Informatics


Visiting Scientist

The Francis Crick Institute


Email szschaler@xxxxxxx

Phone +44 (020) 7848 1513



henshin-user mailing list
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
Dr. Daniel Strüber 
Postdoctoral Researcher

Department of Computer Science and Engineering
Chalmers | University of Gothenburg, Sweden

Back to the top