Next Article in Journal
An Agile Model-Based Software Engineering Approach Illustrated through the Development of a Health Technology System
Previous Article in Journal
Vision-Autocorrect: A Self-Adapting Approach towards Relieving Eye-Strain Using Facial-Expression Recognition
 
 
Article
Peer-Review Record

Analysing and Transforming Graph Structures: The Graph Transformation Framework

Software 2023, 2(2), 218-233; https://doi.org/10.3390/software2020010
by Andreas H. Schuler 1,2,*,†, Christoph Praschl 2,† and Andreas Pointner 2,†
Reviewer 1:
Reviewer 3: Anonymous
Reviewer 4:
Software 2023, 2(2), 218-233; https://doi.org/10.3390/software2020010
Submission received: 24 February 2023 / Revised: 21 March 2023 / Accepted: 4 April 2023 / Published: 6 April 2023

Round 1

Reviewer 1 Report

This is a very interesting paper. I enjoyed reading the abstract introduction, then noticed that the paper jumped to describe the proposed framework--interesting proposal. Following the proposed framework, the authors presented example scenario. Then related work? Why would you describe related work after you present your proposed work? I would suggest to move the related work section right after the introduction and establish the need for your proposed work. In the place of current related work, I would recommend to add a discussion section to highlight and discuss the advantages of the proposed work. Then have the conclusion section. I hope this helps.

Author Response

Dear reviewer,

I wanted to thank you very much for your invaluable contribution to our submission. Your insights and feedback were instrumental in shaping the final version of the paper, and I am truly grateful for the time and effort you dedicated to this review.

Following the proposed framework, the authors presented example scenario. Then related work? Why would you describe related work after you present your proposed work? I would suggest to move the related work section right after the introduction and establish the need for your proposed work. 

We have put the related work after the presentation of the proposed work, because of a recent submission, where we got the feedback, that somebody can't really follow the comparison in the related work, without knowing the proposed work first. Staying with this feedback, we have put this section after the methodology in the original submission. We have changed the ordering in our revised version following your suggestion.

In the place of current related work, I would recommend to add a discussion section to highlight and discuss the advantages of the proposed work. Then have the conclusion section. I hope this helps.

Picking up your second recommendation, we have added a discussion section at the end of the paper.

Thank you again for your valuable feedback and for taking time to review our paper.

Best regards,

Andreas Schuler, Christoph Praschl and Andreas Pointner

 

Reviewer 2 Report

This paper presents an open source Java graph transformation framework that provides a fluent API to transform a given graph structure to a desired target format and allows for further analysis. The paper provides an overview of the framework's architecture and core components, followed by an illustrative example demonstrating its use for transforming and verifying graph structures. An instantiation of the framework is also presented in the context of analyzing third-party dependencies among open source libraries on the Android platform.

Overall, I appreciated the contribute of the authors. The software seems well defined and they explain it in a solid way. However, there are few aspects the authors could address in order to improve the quality of the paper:

  • It is not clear if a graph can only be constructed via the builder pattern. For instance, could I build it via a list of edges?
  • It is not clear if a multi-edge graph can be constructed, please clarify.
  • What the target model T is formally? From a pragmatical point of view, it seems to be any kind of structure the software provides a transformation to. However, from a formal point of view, this is not very well structured. I suggest to define it more clear or to avoid using a formal definition.
  • Algorithm 1 requires a graph traversal strategy as input. How is it encompassed in the proposed framework?
  • The framework seems suitable for different social network analysis tasks. In fact, the authors could consider citing few recent works regarding this fields. For instances, one suitable reference is the following:
    •  
    • “Extraction and analysis of text patterns from NSFW adult content in Reddit." Data & Knowledge Engineering 138 (2022): 101979

 

Author Response

Dear reviewer,

I wanted to thank you very much for your invaluable contribution to our submission. Your insights and feedback were instrumental in shaping the final version of the paper, and I am truly grateful for the time and effort you dedicated to this review.

It is not clear if a graph can only be constructed via the builder pattern. For instance, could I build it via a list of edges?

It is possible to simply iterate the list of edges and construct a new graph using the builder pattern. Beside that it would of course also be possible to manually construct the GraphState, but this would also require all the checks that are performed by the GraphBuilder, e.g. checking to not create duplicates, etc.

var graph = <Listing 1>
Set<Edge<String, String>> edges = graph.getEdges();
GraphBuilder<String, String> graphBuilder = GraphBuilderImpl.create();

edges.forEach(e -> graphBuilder
    .from(e.getSource().getElement())
    .toData(e.getTarget().getElement())
    .data(e.getElement())
);

var graph2 = graphBuilder.toGraph();

It is not clear if a multi-edge graph can be constructed, please clarify.

Thank you very much for this comment. We have added a new Discussion section at the end of the paper, where we also address this limitation.

What the target model T is formally? From a pragmatical point of view, it seems to be any kind of structure the software provides a transformation to. However, from a formal point of view, this is not very well structured. I suggest to define it more clear or to avoid using a formal definition.

As defined in the Transformer subsection, our framework allows transforming a graph to any target model T. This can be anything from a textual representation such as used by GraphViz but also again to a GTF graph representation or also an object-representation of another framework such as JGraph-T. We have extended the subsection to highlight this information.

Algorithm 1 requires a graph traversal strategy as input. How is it encompassed in the proposed framework?

Thank you again for your comment, we have omitted this information in favor of a better understandable overview of the framework's components in the original submission. The traversal strategy is again an interface providing methods to traverse the vertices and edges of the graph depending on its actual implementation. Like this, there is for example an implementation for a Depth-First-Traversal available in the framework. We have extended Figure 2, to also highlight the relationship of the TraversalStrategy and its Graph.

The framework seems suitable for different social network analysis tasks. In fact, the authors could consider citing few recent works regarding this fields. For instances, one suitable reference is the following:

Thank you very much for your suggestion. We have extended the submission by additional references in the field of graphs, including "Extraction and analysis of text patterns from NSFW adult content in Reddit."

Thank you again for your valuable feedback and for taking time to review our paper.

Best regards,

Andreas Schuler, Christoph Praschl and Andreas Pointner

 

Reviewer 3 Report

This paper describes an open-source, actively developed graph transformation framework that is applied to efficiently process complex graph structures. Overall the framework is effective and the manuscript is well-written. Some comments are as follows:

1. More discussion for the basic graph theory can be added in the introduction, with specific examples from "gene expression, protein interactions, Web graph structure, Internet traffic analysis, and disease spread through contact networks [1–7]".

2. More comparison can be discussed with existing libraries [8-11] and their cons and pros, as the research motivation for this study.

3. The section title "References" is missing in Page 13.

4. An online documentation link can be provided.

Author Response

Dear reviewer,

I wanted to thank you very much for your invaluable contribution to our submission. Your insights and feedback were instrumental in shaping the final version of the paper, and I am truly grateful for the time and effort you dedicated to this review.

More discussion for the basic graph theory can be added in the introduction, with specific examples from "gene expression, protein interactions, Web graph structure, Internet traffic analysis, and disease spread through contact networks [1–7]".

Thank you very much for your comment. We have picked two examples and added more detailed description on their use-cases compared to the original submission.

More comparison can be discussed with existing libraries [8-11] and their cons and pros, as the research motivation for this study.

We also appreciate that comment. While we have already a detailed description for JGraph-T, we have added additional discussions for Google Guava, JUNG and JGraphX.

The section title "References" is missing in Page 13.

We have added the missing title to the reference section.

An online documentation link can be provided.

The online documentation is linked on the referenced GitHub repository. We now have also added the link directly to the conclusion of the paper.

Thank you again for your valuable feedback and for taking time to review our paper.

Best regards,

Andreas Schuler, Christoph Praschl and Andreas Pointner

 

Reviewer 4 Report

The authors have developed a library (called the Graph Transformation Framework, GTF) in the Java language, which is designed to transform and analyze graph structures.

The software has some additional features compared to existing solutions. The authors provide a detailed comparison of their library with well-known packages in Section 4 of the paper. The architecture and capabilities of the software are well described and documented by the authors. In addition, an example of using the library is given.

I doubt that the package's new features are convincing and interesting enough to be of interest to a wide readership.

However, I believe that the manuscript may be of interest to software developers and users working with network data.

The paper can be published after the elimination of the following remarks:

1. The first sentence of the introduction is written not entirely clear

2. It is necessary to describe the limitations on the size of the analyzed graphs and raise the issue of scalability of the proposed software.

3. I believe that more recent works should be included in the bibliography (for example, https://doi.org/10.1371/journal.pcbi.1010310 , https://www.mdpi.com/2076-3417/11/9/ 3862 and others), and reflect them in section 4.

4. I could not find works [12,14] anywhere from the list of references.

Author Response

Dear reviewer,

I wanted to thank you very much for your invaluable contribution to our submission. Your insights and feedback were instrumental in shaping the final version of the paper, and I am truly grateful for the time and effort you dedicated to this review.

The first sentence of the introduction is written not entirely clear

Thank you very much for your comment. We have rewritten the first sentence of the introduction to clarify it.

It is necessary to describe the limitations on the size of the analyzed graphs and raise the issue of scalability of the proposed software.

We highly appreciate your comment according the limitations. We have introduced a new Discussion section to the paper, including current limitations but also advantages of our framework.

I believe that more recent works should be included in the bibliography (for example, https://doi.org/10.1371/journal.pcbi.1010310 , https://www.mdpi.com/2076-3417/11/9/ 3862 and others), and reflect them in section 4.

Thank you very much for your suggestion! We have extended the referenced papers in our new submission, also including the two suggested examples.

I could not find works [12,14] anywhere from the list of references.

Thank you very much for this comment. We initially have submitted the paper in an anonymized version, and for this reason have also removed our names and links in these references. We got the information that only a single-blind review is intended and revised the anonymization, but forgot those two references.

Thank you again for your valuable feedback and for taking time to review our paper.

Best regards,

Andreas Schuler, Christoph Praschl and Andreas Pointner

 

Round 2

Reviewer 1 Report

Thank you for making the suggested changes. The paper looks much better now! I think readers will enjoy reading now--good work!

Reviewer 2 Report

The authors successfully addressed my concerns.

Back to TopTop