I work as academic researcher in software engineering. We have an agreement with our university that we can release source code under EPL.
Currently, I work on two interrelated research projects (both released under EPL):
ingraph, an incremental graph query engine supporting Cypher graph queries
ingraph) in a client-server setup, talking through a driver with REST or REST-like calls. A key component of this project is the parser that transforms the source code to a graph representation - this requires considerable implementation efforts. The parser has talks to the query engine to build the graph.
We are planning to collaborate with
jQAssistant, which is GPLv3-licensed framework for static analysis, also using Cypher graph queries. jQAssistant currently runs as part of the build process, so it uses process calls instead of REST calls (e.g. it uses an embedded version of the GPLv3 Neo4j graph database).
As far as I understand,
jQAssistant cannot use each other's code as GPL and EPL are incompatible both ways.
We can request a new license from the university for future projects. In this case, we could re-implement the
codemodel-rifle application (
cr2) and re-release it under a different license. However, I am not sure which license to choose.
cr2 would still depend on
ingraph (which is fully EPL-licensed), so we cannot use GPLv3.
The goal of the collaboration would be to:
- share the parser component,
- share the well-formedness rules.
Potential workarounds seem to be the following:
codemodel-riflein GPLv3, and also implement an ASL-licensed driver to use
ingraphin a client-server setup.
- Introduce an ASL-licensed common project that can use
codemodel-rifleand can be used by
jQAssistant. In this case, we still cannot use our
jQAssistant's original code, but can jointly develop the common project. Our partner does not necessarily need
ingraphto run the analysis, as they can use Neo4j (which is GPL-licensed), so they could release their software under GPLv3.
Are there any better options for collaborating under these conditions?