GraphDB implementation

I stumbled across the renku project today. It is impressive!. We are currently developing a KnowledgeGraph implementation that we initially built on JanusGraph.

Can you tell me the reason for the switch from Janusgraph to Jena as graph backend in renku?

The older documentation still points to a JanusGraph implementation. The corresponding links, however, do not work.

1 Like

Hi @x-cosmos thanks for stopping by! The current Renku platform is a complete redesign of the initial effort (which was called Renga at the time). The choice of backend is not so much about the specific graph database as it is about the graph paradigm. We switched from that initial implementation to an RDF-based graph for several reasons but primarily we didn’t want to have to build (yet another) ontology from scratch and instead we chose to rely on open standards as much as possible. Basing the KG on an RDF graph makes this natural and it also makes it easy to expand the supported ontologies to include (scientific) domain-specific metadata. Already this has made it quite straightforward to include a plug in system for the KG where a 3rd party built a plug in to support automatically annotating the generic workflow nodes with machine learning metadata (using ML Schema).

It’s not perfect, however - the tooling for developers in RDF/JSON-LD is not ideal and it has caused considerable engineering overhead. We’re about to release a python library in this space which should hopefully make some of the development a bit easier. There are also a limited number of tools for e.g. visualization and what there is is often outdated. But there is quite a lot of activity in this area so the situation is improving.

What is the name of your project and what is the application?

Hi @rrrrrok thanks for your reply. I am working on a research project at the Fraunhofer for the analysis of large data sets. We are at the crossroads between quantitative analysis and semantic analysis. For the representation of graphs we have so far chosen Janusgraph as a backend and SpringBoot services as components of the data pipelines on a Kafka Stream. In order to perform a semantic analysis (especially reasoning) on knowledge graphs we are now investigating alternative solutions. A Python solution would be exactly what we would need.