You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Bruno P. Kinoshita (JIRA)" <ji...@apache.org> on 2017/07/08 05:02:00 UTC

[jira] [Commented] (SANDBOX-458) Implementation of algorithms available in other libraries

    [ https://issues.apache.org/jira/browse/SANDBOX-458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16078956#comment-16078956 ] 

Bruno P. Kinoshita commented on SANDBOX-458:
--------------------------------------------

Besides external libraries, there are now quite a few projects within ASF that also use graph algorithms or provide a graph API.

A few examples:

* [Apache Jena|https://github.com/apache/jena/tree/f30ac0f89d7657a5cd2a65b4f6a11b18b58c9cd4/jena-core/src/main/java/org/apache/jena/graph] 
* [Apache Commons RDF|https://github.com/apache/commons-rdf/blob/482b83138a742e54f60d2c2a9003867929ece4c5/api/src/main/java/org/apache/commons/rdf/api/Graph.java]
* [Apache Spark|https://github.com/apache/spark/tree/a0fe32a219253f0abe9d67cf178c73daf5f6fcc1/graphx/src/main/scala/org/apache/spark/graphx]
* [Apache TinkerPop|https://github.com/apache/tinkerpop/blob/22e2d9d9037fdfc0218a0e6e4d81bdf250fa7160/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/Graph.java]
* [Apache S2Graph|https://s2graph.incubator.apache.org/]
* [Apache Taverna|https://github.com/apache/incubator-taverna-workbench/tree/4e3849dd91fa0444dc6db97f2f3a24e689d5f683/taverna-graph-model/src/main/java/org/apache/taverna/workbench/models/graph]
* [Apache Clerezza|https://github.com/apache/clerezza/blob/14575ea321a737f68732783e8248221b3efcef1c/rdf/utils/src/main/java/org/apache/clerezza/rdf/utils/GraphNode.java]
* [Apache OODT|https://github.com/apache/oodt/blob/1ae92425ec3e7e0d0f026cbcc142ab17988cd071/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/Graph.java]
* [Apache Atlas|https://github.com/apache/incubator-atlas/blob/ee8c81df45801fa3798c19f3999b635140e835f7/graphdb/api/src/main/java/org/apache/atlas/repository/graphdb/AtlasGraph.java]
* [Apache Geode|https://github.com/apache/geode/blob/3b90f9f9beca0ec5f9cb5c2ad19e2cc97926b569/geode-core/src/main/java/org/apache/geode/internal/sequencelog/model/Graph.java]
* [Apache Giraph|http://giraph.apache.org/]
* [Apache Tajo|https://github.com/apache/tajo/blob/4f35c28e8e0281beed0a457244fbb9144e791fee/tajo-common/src/main/java/org/apache/tajo/util/graph/Graph.java]
* [Apache Struts|https://github.com/apache/struts/blob/cf7bfe63e25589edf2cb1a7ed23bb134348a90e4/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/model/Graph.java]
* [Apache Cayenne|https://github.com/apache/cayenne/blob/f7ef3e40911055e22464de700fa454483085aab5/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DIGraph.java]
* [Apache Calcite|https://github.com/apache/calcite/blob/dac513ab446ad7cfed4be7858721659591134a00/core/src/main/java/org/apache/calcite/util/graph/Graphs.java]
* [Apache Stanbol|https://github.com/apache/stanbol/blob/d1500ffba507dce0e43f228342aad97cae7cb0e3/commons/indexedgraph/src/main/java/org/apache/stanbol/commons/indexedgraph/IndexedGraph.java]
* [Apache Maven|https://github.com/apache/maven/tree/a1fe42199565f76007a97f47cd4a848fd9b63482/maven-core/src/main/java/org/apache/maven/graph]
* [Apache Flink|https://github.com/apache/flink/tree/709f23e742b094a5337c9333a17de7dbdc924891/flink-libraries/flink-gelly/src/main/java/org/apache/flink/graph]

It may be easier to design the library for a few of these cases within ASF, and perhaps contact the projects to see if there would be interest in using the commons library.

I am involved with Apache Jena, and would be happy to look at [graph] again in a few months, see if it would be a good idea to use it in the project, and suggest it to the other devs to review the idea.

Someday I would like to try writing a De Bruijn graph with [text] (lyndon words) + [graph] (graph API and algorithms). This would have a practical application in bioinformatics, for de novo sequence analysis with short reads/shotgun sequencing.

Cheers
Bruno

> Implementation of algorithms available in other libraries
> ---------------------------------------------------------
>
>                 Key: SANDBOX-458
>                 URL: https://issues.apache.org/jira/browse/SANDBOX-458
>             Project: Commons Sandbox
>          Issue Type: Wish
>          Components: Graph
>            Reporter: Oliver Kopp
>            Priority: Minor
>         Attachments: Implemented Algorithms.csv, Implemented Algorithms.pdf
>
>
> I made a quick analysis of existing algorithms in other OSS graph libraries. When these algorithms are also implemented in Apache Commons Graph, this should make switching libraries easier. Attached a CSV and a PDF showing the results.
> The analyzed libraries are:
> jBPT
>  * License: LGPL
>  * Homepage: https://code.google.com/p/jbpt/
>  * Repo: http://jbpt.googlecode.com/svn/trunk/
> JGraphT
>  * License: LGPL (possibly soon EPL, too)
>  * Homepage: http://jgrapht.org/
>  * Repo: git://github.com/jgrapht/jgrapht.git
> JUNG2
>  * License: BSD (1 lib: LGPL)
>    * http://jung.sourceforge.net/faq.html#license
>    * packages hep.aida.* are LGPL, imported via the COLT library
>  * Homepage: http://jung.sourceforge.net
>  * Repo: -d:pserver:anonymous@jung.cvs.sourceforge.net:/cvsroot/jung jung2
>  * git mirror https://github.com/rortian/jung2, which deleted some code
> Prefuse
>  * License: BSD 3 clause
>  * Homepage: https://github.com/prefuse/Prefuse
>  * Repo: git://github.com/prefuse/Prefuse.git



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)