Thanks,
Daniel. You seem to imply that there is a semantic
difference between the three forms. Could you explain?
Thanks,
Steffen
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
WWW
www.steffen-zschaler.de
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.
On 12/19/2019 11:32 AM, Zschaler, Steffen
wrote:
Hi,
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?
Thanks,
Steffen
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
WWW
www.steffen-zschaler.de
_______________________________________________
henshin-user mailing list
henshin-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/henshin-user
--
Dr. Daniel Strüber
Postdoctoral Researcher
Department of Computer Science and Engineering
Chalmers | University of Gothenburg, Sweden
http://danielstrueber.de/