Skip to content

HyperGraphDBOpportunities

bolerio edited this page Jul 10, 2015 · 1 revision

Why Get Involved?

Graph databases have existed as a data model for at least 30 years, but only recently with the revival of AI and the emergence of the semantic web have they become more popular and on the verge of becoming a serious industry player. In addition, many/most academic research projects still rely on traditional database technology even in cases (such as bioinformatics) where a more appropriate model is clearly called for.

HyperGraphDB is one of the more advanced databases that builds on the graph data model. It is certainly the most general and flexible in terms of representational capabilities. Working on it is not only an opportunity the participate and build a state of the art next generation data management system, but to redefine what computing with highly complex data means in the future.

Please note that while Kobrix Software has initiated the project, we hope that this will become a community effort. We'd much prefer to be the users of a great system that we don't control rather than controlling and sweating over the development of a mediocre one!

Who Could Contribute?

Programmers who would like to participate in the core development need a fairly good knowledge of Java and/or C++. You also need a background in computing fundamentals such as algorithmics, graph theory and object-oriented design. You need to be willing to not only "get something working", but creating robust code, revisiting, cleaning up, and being able to justify design decision.

Non-programmers who are involved in AI, the semantic web, NLP, mathematics, bioinformatics, networks research or any other field that relies heavily on graph-based data model are welcome to contribute ideas on requirements, algorithms that could benefit their work if implemented in the system, insights into the hypergraph formal model, suggestions of applications etc.

Programmers who would like to build on top of HyperGraphDB or experiment with it for business or research applications are welcome to create application libraries (e.g. a representation of some chosen domain with HyperGraphDB) and/or sample business applications that show how the technology can be applied to business problems - this is no less valuable than coding up the system itself!

Work Areas

  • Distributed Processing - algorithms and implementation for data partitioning, distributed transactions, distributed querying, distributed graph mining, large-scale parallel computation
  • Query Language Development - yes there are graph languages out there, but nothing to match the generality of HyperGraphDB
  • Query Optimization - given a complex query expression, find the best way to get the answer (query planning, caching)
  • Graph Algorithms - implement proven classical and modern graph algorithms
  • Graph Pattern Matching/Mining - this is a form of querying where the query is a graph itself rather.
  • C++ Port - very desirable to have it, can be done almost in isolation from the main Java branch. Ideally, the foundation will be ported from Java to C++ eventually the Java version should build upon a native C++ accessed through JNI (or something like Swig).
  • Anything else you might propose...

Compensation

We might be able to secure some funding for serious contributors. Serious contributors are those that have achieved something useful to the project, want to participate in an ongoing fashion and would rather do this than something else only if there was at least some immediate compensation. The kind of funding will be in the ballpark of what the Google Summer of Code program pays students.

Get In Touch!

Interested? Please write to the project discussion forum or contact Kobrix privately info_at_sign_kobrix_a_single_dot_com.

Clone this wiki locally