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 "GEF/Meetings/20140702"

< GEF
m
m
Line 2: Line 2:
  
 
Alexander:
 
Alexander:
* Eclipse project for KIELER layout implementation
+
* What should be the scope of an eclipse project for the KIELER layout implementations
* Layout metamodel/datamodel
+
* What is the layout model used in KIELER?
* layout, graph, dot separated
+
* GEF4 separates a layout model, a graph data structure and a DOT parser/generator for the graph data structure
* gap between KIELER layout and GEF4 layout?
+
* How big is the gap between KIELER layout and GEF4 layout?
* Bring it together! (technical and organizational)
+
* We should bring it together (technical and organizational)
  
 
Miro:
 
Miro:
 
* KIELER: cleaner separation of concerns
 
* KIELER: cleaner separation of concerns
* improvements of the GEF4 Layout interfaces
+
* Either improve GEF4 layout interfaces
* Or switch to a common base (using KGraph interface)
+
* Or switch to a common base (maybe KGraph)
* many methods in gef4 layout interfaces
+
* Currently too many methods in gef4 layout interfaces
* graph structure + properties in one set of interfaces
+
* Graph structure + properties belong to one set of interfaces
* individual interfaces for the individual algorithms
+
* Specific layout algorithms can transform the common model into a specific model
* KGraph as communication interface
+
* KGraph as common interface
  
 
Zoltan:
 
Zoltan:
* Sugiyama layering is very specific, KIELER approach is nice!
+
* Sugiyama layering is very specific
 +
* The KIELER approach can handle such specifics without problems
  
 
Alexander:
 
Alexander:
Line 29: Line 30:
  
 
Alexander:
 
Alexander:
* So the layering is not provided  
+
* So the layering is not provided as input to the algorithm
  
 
Miro:
 
Miro:
* KGraph very simple: Edges, Nodes, Ports
+
* KGraph very simple: Edges, Nodes, Ports + properties
 
* internal graph structure for each algorithm
 
* internal graph structure for each algorithm
  
 
Fabian:
 
Fabian:
* GEF4 äquivalent for KGraph is GEF4 Graph
+
* GEF4 equivalent for KGraph is GEF4 Graph
  
 
Miro:
 
Miro:
* KGraph data = GEF4 Graph attributes
+
* KGraph properties = GEF4 Graph attributes
  
 
Alexander:
 
Alexander:
 
* Similar ideas:
 
* Similar ideas:
* data/layout separation
+
* Data/layout separation
 
* Generic data attaching mechanism
 
* Generic data attaching mechanism
 
* But how about additional input which cannot be deduced?
 
* But how about additional input which cannot be deduced?
 
* Maybe add additional data to the data model (GEF4 Graph / KIELER KGraph)?
 
* Maybe add additional data to the data model (GEF4 Graph / KIELER KGraph)?
* And what about grouping elements?
+
* And what about grouping elements? (layer, subgraph (DOT))
* Layer = subgraph (dot)
+
  
 
Miro:
 
Miro:
* Each node can contain sub-nodes in KGraph (nested graphs)
+
* Each node can contain sub-nodes in KGraph to represent nested graphs
* Yes, give input through properties / attributes
+
* If an algorithm needs additional input, this is given via properties
* Exception: hierarchy trees: cumbersome, but worked.
+
  
 
Alexander:
 
Alexander:
Line 59: Line 58:
  
 
Miro:
 
Miro:
* Some of the code could possibly be implemented directly on the KGraph
+
* Some of the code could possibly be implemented directly on the KGraph interface
* Sugiyama implementation uses dummy nodes, etc. => duplicate structure like in KIELER would be better
+
* Other algorithms more complicated, for example, Sugiyama implementation uses dummy nodes, etc.
 +
* In the complicated cases a duplicate structure like in KIELER would probably be beneficial
  
 
Miro:
 
Miro:
 
* Main difference (Graph/KGraph): KGraph uses EMF data structure
 
* Main difference (Graph/KGraph): KGraph uses EMF data structure
* pro: customer got a problem with layout => add method to serialize KGraph structure => analyze problem
+
* Has proved to be beneficial in various scenarios
 +
* Example: customer got a problem with layout => add method to serialize KGraph structure => analyze problem
  
 
Alexander:
 
Alexander:
 
* DOT component (import/export generic graph model and DOT language)
 
* DOT component (import/export generic graph model and DOT language)
* same purpose as serialization?
+
* Same purpose as serialization?
  
 
Miro:
 
Miro:
* interchange always useful
+
* Interchange always useful
* KGraph got parser and serializer for DOT
+
* KIELER contains a DOT to KGraph parser and KGraph to DOT serializer
* integration with GraphViz that way
+
* Integration with GraphViz that way
 +
 
 +
Matthias:
 +
* What about different kinds of subgraphs?
 +
* Subgraphs as a means to group multiple nodes and provide one single visualization for them
 +
* Nested graphs as in Zest.Core graph containers
  
 
Miro:
 
Miro:
* subgraph kinds not differentiated
+
* Subgraph kinds not differentiated
* structure allows nodes to have sub-nodes
+
* Structure allows nodes to have sub-nodes
* every node stores the layout algorithm which it belongs to
+
* Every node stores the layout algorithm which it belongs to
* useful to be able to apply different algorithms on different hierarchy levels
+
* Useful to be able to apply different algorithms on different hierarchy levels
  
 
Christoph:
 
Christoph:
* Dynamic vs. Static layout algorithm,
+
* GEF4 layout differentiates dynamic and static layout algorithms
 
* GEF4 layout can react to graph structure changes
 
* GEF4 layout can react to graph structure changes
 
+
* KIELER is simpler in that regard
Zoltan:
+
  
 
Miro:
 
Miro:
* Single layout call
+
* KIELER provides a single layout call
* either take previous layout information or not
+
* The algorithm can decide to use previous layout information or not
* no explicit mechanism for dynamic layout algorithms
+
* No explicit mechanism for dynamic layout algorithms
* KIELER configured via properties (attached to input KGraph)
+
* Algorithms are configured via properties (attached to input KGraph)
  
 
Alexander:
 
Alexander:
* GEF4 Layout algorithms contributed over time
+
* GEF4 Layout algorithms were contributed over time
* Therefore, no common interfaces from the beginning)
+
* Therefore, no common interfaces from the beginning
 
* correct approach: use generic properties
 
* correct approach: use generic properties
* DOT, Graph, Layout => KGraph-Dot, KGraph, KIELER algorithms
+
* Concepts map to one another: GEF4 DOT, Graph, Layout => KIELER KGraph-Dot, KGraph, algorithms
 
* How does KIELER transport information back to KGraph?
 
* How does KIELER transport information back to KGraph?
  
 
Miro:
 
Miro:
* KIELER does also use the same KGraph for output as for input
+
* KIELER uses the same KGraph for output as for input
* main difference: applyLayout() vs. applyLayout(KGraph).
+
* the KGraph is given as a parameter to applyLayout(KGraph)
  
 
Alexander:
 
Alexander:
Line 108: Line 113:
  
 
Miro:
 
Miro:
* Don't rely on an internal state, but compute everything on applyLayout.
+
* KIELER does not explicitly provide dynamic layouting
 +
* An algorithm does not rely on internal state, but only on the given KGraph
  
 
Alexander:
 
Alexander:
Line 114: Line 120:
 
* Differences with regard to layout interfaces and implementations
 
* Differences with regard to layout interfaces and implementations
 
* Work on GEF4 Layout component separately from the other parts
 
* Work on GEF4 Layout component separately from the other parts
* We can combine KGraph with GEF4 Layout (less effort)
+
* We can combine KGraph with GEF4 Layout (layout implementations using KGraph)
* first starting point: interoperability
+
* First starting point: interoperability
  
 
Fabian:
 
Fabian:
Line 125: Line 131:
  
 
Alexander:
 
Alexander:
* own eclipse project for KIELER seems reasonable
+
* Own eclipse project for KIELER seems reasonable
 
* GEF4 Graph could consume KGraph
 
* GEF4 Graph could consume KGraph
 
* KIELER eclipse project could concentrate on layout implementations
 
* KIELER eclipse project could concentrate on layout implementations
* at least: transform between graph, Kgraph
+
* At least: transform between Graph, KGraph
* GEF can also provide visualization for the graph structure (Zest)
+
* GEF can provide visualization for the graph structure
  
 
Miro:
 
Miro:
* transformation always possible
+
* Transformation always possible
* share common data structure is a good idea
+
* Share common data structure is a good idea
* transformation not always trivial
+
* Transformation not always trivial
* direct integration of KGraph in visualization framework absolutely beneficial
+
* Direct integration of KGraph in the visualization framework absolutely beneficial
* two projects: core classes and interfaces, KGraph
+
* Two projects: core classes and interfaces, KGraph
* can be merged into one project for the KIELER data structure
+
* Can be merged into one project for the KIELER data structure
  
 
Alexander:
 
Alexander:
* Merge KGraph and GEF4 Graph
+
* Propose: merge KGraph and GEF4 Graph
 
* Adapt layout and visualization to that data structure
 
* Adapt layout and visualization to that data structure
 
* KIELER layout project will use that as well
 
* KIELER layout project will use that as well
Line 148: Line 154:
  
 
Alexander:
 
Alexander:
* Let's work on a contribution to merge KGraph into GEF4 Graph
+
* OK, plan contribution to merge KGraph into GEF4 Graph
  
 
Miro:
 
Miro:
* EMF basis in KGraph vs. Plain Java approach in GEF4 Graph
+
* Decision: EMF basis in KGraph vs. plain Java object approach in GEF4 Graph?
  
 
Fabian:
 
Fabian:
 
* GEF4 Graph resulted from GEF4 DOT
 
* GEF4 Graph resulted from GEF4 DOT
* prefer plain Java
+
* Prefer plain Java
  
 
Alexander:
 
Alexander:
 
* MVC and Zest view: keep in mind intention to support stand alone editors
 
* MVC and Zest view: keep in mind intention to support stand alone editors
* not bound to Eclipse ecosystem
+
* Not bound to Eclipse ecosystem
* for example: in the web
+
* For example: in the web
* preference for plain Java
+
* => Preference for plain Java
* but we can live with the dependency
+
* But we can live with the dependency (if necessary)
  
 
Miro:
 
Miro:
 
* EMF not bound to Eclipse framework
 
* EMF not bound to Eclipse framework
* beneficial for validation and model consistency
+
* Beneficial for validation and model consistency
* another team meeting for the organizational stuff?
+
* Another team meeting for the organizational stuff?
 
* Discussion on the mailing list for merging into GEF4 Graph?
 
* Discussion on the mailing list for merging into GEF4 Graph?
  
 
Alexander:
 
Alexander:
* OK, discussion: Replace current implementation or extend it?
+
* OK, discussion on the mailing list: Replace current implementation or extend it?
  
 
Fabian:
 
Fabian:
* add to discussion: Dependency to EMF => dependency on Eclipse platform
+
* Dependency to EMF => dependency on Eclipse platform
 +
* Add to discussion: EMF vs. plain Java
  
 
Christoph:
 
Christoph:
 
* EMF beneficial for testing and many other things
 
* EMF beneficial for testing and many other things
* EMF is useful, but conclude in the discussion on the mailing list
+
* EMF is useful, but continue that discussion on the mailing list
  
 
Miro:
 
Miro:
Line 184: Line 191:
 
* Later discussion on the mailing list, probably next week
 
* Later discussion on the mailing list, probably next week
  
Alexander ended the discussion about KIELER. Thank you for your participation! The GEF project team stayed on to discuss the GEF release for Eclipse Mars.
+
The discussion on the KIELER project ended. Thank you for your participation! The GEF project team stayed on to discuss the GEF release for Eclipse Mars.
  
 
Alexander:
 
Alexander:
Line 190: Line 197:
 
* Remain proper Eclipse citizens, but only publishing provisional API
 
* Remain proper Eclipse citizens, but only publishing provisional API
 
* e4 and p2 did it: mark all packages as internal
 
* e4 and p2 did it: mark all packages as internal
* Or: publish an API that we maybe drop next year
+
* Or: publish an API that we maybe drop next year?
  
 
Fabian:
 
Fabian:
 
* Prefer not to be bound to the API
 
* Prefer not to be bound to the API
  
Benutzer 1: +
+
Stephan: +
 
Zoltan: +
 
Zoltan: +
  
 
Alexander:
 
Alexander:
* Expose to be real API, rename provisional API to internal and mark appropriately
+
* Expose the to-be-real API, rename provisional API to internal and mark appropriately
* one commit for all plugins
+
* One commit for changing all plugins
* Mars release: achieve something self-contained, i.e. Get rid of GEF 3.x dependencies (Draw2d)
+
* Mars release: achieve something self-contained, i.e. get rid of GEF 3.x dependencies (Draw2d)
* GEF4 Zest.FX misses features
+
* GEF4 Zest.FX misses some features
  
 
Matthias:
 
Matthias:
Line 208: Line 215:
  
 
Fabian:
 
Fabian:
* Subgraph concept important? Or delete it?
+
* Graph containers (nested graphs) caused many problems in the past
 +
* Is the concept important, or can we remove it?
  
 
Zoltan:
 
Zoltan:
* Never used subgraphs
+
* Subgraph concept not really useful
* Nested graphs needed!
+
* Nested graphs important!
  
 
Alexander:
 
Alexander:
Line 218: Line 226:
 
* Implement nested graphs
 
* Implement nested graphs
 
* implement subgraphs
 
* implement subgraphs
* split eclipse view from zest.fx rendering
+
* Split eclipse view from Zest.FX rendering
  
 
Zoltan:
 
Zoltan:
* Not sure about the JFace API again
+
* Not sure about the JFace API
 
+
* Mapping between JFace content provider and graph structure needed
Zoltan:
+
* Mapping between JFace content provider and graph structure
+
  
 
Alexander:
 
Alexander:
Line 235: Line 241:
 
* Starting point: plain graph + subgraphs
 
* Starting point: plain graph + subgraphs
 
* Later on: nested graph
 
* Later on: nested graph
 
Zoltan:
 
* Subgraph concept not really useful
 
* nested graphs really needed
 
  
 
Alexander:
 
Alexander:
Line 245: Line 247:
 
* 2: Graph structure
 
* 2: Graph structure
 
* 3: KGraph structure (KIELER)
 
* 3: KGraph structure (KIELER)
* In parallel: investigate eclipse ui integration for zest.fx
+
* In parallel: investigate eclipse UI integration for Zest.FX
  
 
Zoltan:
 
Zoltan:
 
* Missing visualization features in Zest.FX
 
* Missing visualization features in Zest.FX
 
* Get in touch with Matthias
 
* Get in touch with Matthias
 +
 +
Matthias:
 +
* I will create a bug ticket for the missing Zest.FX features
 +
* We can continue the discussion there
  
 
Alexander:
 
Alexander:
* Anything else to discuss? (No...)
 
 
* Plan more team calls: once per month?
 
* Plan more team calls: once per month?
  
Benutzer 1:
+
Stephan:
 
* appreciate more team calls
 
* appreciate more team calls
 
* closer involvement
 
* closer involvement
Line 262: Line 267:
 
* Doodle on last week on each month
 
* Doodle on last week on each month
 
* team meeting in following month
 
* team meeting in following month
 +
 +
The team meeting ended. Thank you for your participation!

Revision as of 09:48, 2 July 2014

The GEF project team and the KIELER project team met by phone on 2 July 2014. Alexander Nyßen (GEF), Christoph Daniel Schulze (KIELER), Stephan Schwiebert (GEF), Miro Spoenemann (KIELER), Fabian Steeg (GEF), Zoltán Ujhelyi (GEF), and Matthias Wienand (GEF) attended.

Alexander:

  • What should be the scope of an eclipse project for the KIELER layout implementations
  • What is the layout model used in KIELER?
  • GEF4 separates a layout model, a graph data structure and a DOT parser/generator for the graph data structure
  • How big is the gap between KIELER layout and GEF4 layout?
  • We should bring it together (technical and organizational)

Miro:

  • KIELER: cleaner separation of concerns
  • Either improve GEF4 layout interfaces
  • Or switch to a common base (maybe KGraph)
  • Currently too many methods in gef4 layout interfaces
  • Graph structure + properties belong to one set of interfaces
  • Specific layout algorithms can transform the common model into a specific model
  • KGraph as common interface

Zoltan:

  • Sugiyama layering is very specific
  • The KIELER approach can handle such specifics without problems

Alexander:

  • How does KIELER handle Sugiyama layering?

Miro:

  • Sugiyama transforms KGraph into its own specific structure
  • Providing (computing) layering etc.
  • Relevant information is transformed back to the KGraph

Alexander:

  • So the layering is not provided as input to the algorithm

Miro:

  • KGraph very simple: Edges, Nodes, Ports + properties
  • internal graph structure for each algorithm

Fabian:

  • GEF4 equivalent for KGraph is GEF4 Graph

Miro:

  • KGraph properties = GEF4 Graph attributes

Alexander:

  • Similar ideas:
  • Data/layout separation
  • Generic data attaching mechanism
  • But how about additional input which cannot be deduced?
  • Maybe add additional data to the data model (GEF4 Graph / KIELER KGraph)?
  • And what about grouping elements? (layer, subgraph (DOT))

Miro:

  • Each node can contain sub-nodes in KGraph to represent nested graphs
  • If an algorithm needs additional input, this is given via properties

Alexander:

  • Do you think GEF4 Layout algorithms could fit KGraph structure?

Miro:

  • Some of the code could possibly be implemented directly on the KGraph interface
  • Other algorithms more complicated, for example, Sugiyama implementation uses dummy nodes, etc.
  • In the complicated cases a duplicate structure like in KIELER would probably be beneficial

Miro:

  • Main difference (Graph/KGraph): KGraph uses EMF data structure
  • Has proved to be beneficial in various scenarios
  • Example: customer got a problem with layout => add method to serialize KGraph structure => analyze problem

Alexander:

  • DOT component (import/export generic graph model and DOT language)
  • Same purpose as serialization?

Miro:

  • Interchange always useful
  • KIELER contains a DOT to KGraph parser and KGraph to DOT serializer
  • Integration with GraphViz that way

Matthias:

  • What about different kinds of subgraphs?
  • Subgraphs as a means to group multiple nodes and provide one single visualization for them
  • Nested graphs as in Zest.Core graph containers

Miro:

  • Subgraph kinds not differentiated
  • Structure allows nodes to have sub-nodes
  • Every node stores the layout algorithm which it belongs to
  • Useful to be able to apply different algorithms on different hierarchy levels

Christoph:

  • GEF4 layout differentiates dynamic and static layout algorithms
  • GEF4 layout can react to graph structure changes
  • KIELER is simpler in that regard

Miro:

  • KIELER provides a single layout call
  • The algorithm can decide to use previous layout information or not
  • No explicit mechanism for dynamic layout algorithms
  • Algorithms are configured via properties (attached to input KGraph)

Alexander:

  • GEF4 Layout algorithms were contributed over time
  • Therefore, no common interfaces from the beginning
  • correct approach: use generic properties
  • Concepts map to one another: GEF4 DOT, Graph, Layout => KIELER KGraph-Dot, KGraph, algorithms
  • How does KIELER transport information back to KGraph?

Miro:

  • KIELER uses the same KGraph for output as for input
  • the KGraph is given as a parameter to applyLayout(KGraph)

Alexander:

  • Dynamic layout requires guarding some of the layout context methods

Miro:

  • KIELER does not explicitly provide dynamic layouting
  • An algorithm does not rely on internal state, but only on the given KGraph

Alexander:

  • Similarieties in DOT and Graph part
  • Differences with regard to layout interfaces and implementations
  • Work on GEF4 Layout component separately from the other parts
  • We can combine KGraph with GEF4 Layout (layout implementations using KGraph)
  • First starting point: interoperability

Fabian:

  • Overlapping concepts
  • KIELER become part of GEF would be beneficial

Miro:

  • KIELER team wants to manage a separate Eclipse project

Alexander:

  • Own eclipse project for KIELER seems reasonable
  • GEF4 Graph could consume KGraph
  • KIELER eclipse project could concentrate on layout implementations
  • At least: transform between Graph, KGraph
  • GEF can provide visualization for the graph structure

Miro:

  • Transformation always possible
  • Share common data structure is a good idea
  • Transformation not always trivial
  • Direct integration of KGraph in the visualization framework absolutely beneficial
  • Two projects: core classes and interfaces, KGraph
  • Can be merged into one project for the KIELER data structure

Alexander:

  • Propose: merge KGraph and GEF4 Graph
  • Adapt layout and visualization to that data structure
  • KIELER layout project will use that as well

Miro:

  • Rework data model in the merge process (take the chance)

Alexander:

  • OK, plan contribution to merge KGraph into GEF4 Graph

Miro:

  • Decision: EMF basis in KGraph vs. plain Java object approach in GEF4 Graph?

Fabian:

  • GEF4 Graph resulted from GEF4 DOT
  • Prefer plain Java

Alexander:

  • MVC and Zest view: keep in mind intention to support stand alone editors
  • Not bound to Eclipse ecosystem
  • For example: in the web
  • => Preference for plain Java
  • But we can live with the dependency (if necessary)

Miro:

  • EMF not bound to Eclipse framework
  • Beneficial for validation and model consistency
  • Another team meeting for the organizational stuff?
  • Discussion on the mailing list for merging into GEF4 Graph?

Alexander:

  • OK, discussion on the mailing list: Replace current implementation or extend it?

Fabian:

  • Dependency to EMF => dependency on Eclipse platform
  • Add to discussion: EMF vs. plain Java

Christoph:

  • EMF beneficial for testing and many other things
  • EMF is useful, but continue that discussion on the mailing list

Miro:

  • Internal discussion first
  • Later discussion on the mailing list, probably next week

The discussion on the KIELER project ended. Thank you for your participation! The GEF project team stayed on to discuss the GEF release for Eclipse Mars.

Alexander:

  • Mars planning
  • Remain proper Eclipse citizens, but only publishing provisional API
  • e4 and p2 did it: mark all packages as internal
  • Or: publish an API that we maybe drop next year?

Fabian:

  • Prefer not to be bound to the API

Stephan: + Zoltan: +

Alexander:

  • Expose the to-be-real API, rename provisional API to internal and mark appropriately
  • One commit for changing all plugins
  • Mars release: achieve something self-contained, i.e. get rid of GEF 3.x dependencies (Draw2d)
  • GEF4 Zest.FX misses some features

Matthias:

  • Subgraph and nested graph rendering missing

Fabian:

  • Graph containers (nested graphs) caused many problems in the past
  • Is the concept important, or can we remove it?

Zoltan:

  • Subgraph concept not really useful
  • Nested graphs important!

Alexander:

  • things missing:
  • Implement nested graphs
  • implement subgraphs
  • Split eclipse view from Zest.FX rendering

Zoltan:

  • Not sure about the JFace API
  • Mapping between JFace content provider and graph structure needed

Alexander:

  • Zest.FX = JavaFX based renderer for GEF4 Graph structure
  • Zest.FX.UI = integration to JFace API

Fabian:

  • Subgraph = expand/collapse nodes
  • Graph-Container / nested graph = real nested graph
  • Starting point: plain graph + subgraphs
  • Later on: nested graph

Alexander:

  • Create new bugs for the issues
  • 1: Zest.FX component
  • 2: Graph structure
  • 3: KGraph structure (KIELER)
  • In parallel: investigate eclipse UI integration for Zest.FX

Zoltan:

  • Missing visualization features in Zest.FX
  • Get in touch with Matthias

Matthias:

  • I will create a bug ticket for the missing Zest.FX features
  • We can continue the discussion there

Alexander:

  • Plan more team calls: once per month?

Stephan:

  • appreciate more team calls
  • closer involvement

Alexander:

  • Doodle on last week on each month
  • team meeting in following month

The team meeting ended. Thank you for your participation!

Back to the top