Janus as an RDF store

1,948 views
Skip to first unread message

Laura Morales

unread,
Mar 30, 2017, 9:35:11 AM3/30/17
to janusgra...@googlegroups.com
Hi all,
 
        I'm relatively new to graph databases, and there seems to be a significant difference among "graph/property stores" and "RDF stores". Not a big difference in theory, but quite a big difference in practice about how these databases are implemented. So my question is, is Janus a graph/property store or an RDF store? Or can Janus do both? Can I, for example, use Janus to load a bunch of RDF dumps such as DBPedia/Wikidata and perform SPARQL queries over it?

Jason Plurad

unread,
Mar 30, 2017, 5:25:26 PM3/30/17
to JanusGraph users list, laur...@mail.com
JanusGraph provides native support for the property graph data model exposed by Apache TinkerPop and uses Gremlin as its query language. It does not have native support for RDF or SPARQL. That being said, you could write custom scripts to ingest RDF and transform it into a property graph model. Daniel Kuppitz started work on transforming SPARQL queries into Gremlin, and that effort continues on at https://github.com/LITMUS-Benchmark-Suite/sparql-to-gremlin

If you are looking for something that does both, you might want to consider something like Stardog or BlazeGraph.

谭宇超

unread,
Jul 27, 2017, 9:40:30 AM7/27/17
to JanusGraph users list, laur...@mail.com
Hello Jason,I'm new to JanusGraph, and I didn't find any method that could load data-file into hbase. So, how can I load my data-file into hbase? ps: backend=hbase&caching

在 2017年3月30日星期四 UTC-7下午2:25:26,Jason Plurad写道:

Jason Plurad

unread,
Jul 27, 2017, 2:53:58 PM7/27/17
to JanusGraph users list
JanusGraph supports 3 file formats that are provided via Apache TinkerPop -- Gryo, GraphML, and GraphSON.
http://tinkerpop.apache.org/docs/current/reference/#_gremlin_i_o

You can load it like this:

gremlin> graph = JanusGraphFactory.open("conf/janusgraph-hbase.properties")
==>standardjanusgraph[hbase:[127.0.0.1]]
gremlin
> graph.io(gryo()).readGraph("data/tinkerpop-modern.kryo")
gremlin
> graph.io(graphml()).readGraph("data/tinkerpop-modern.xml")
gremlin
> graph.io(graphson()).readGraph("data/tinkerpop-modern.json")

If you have some other format file, you'll need to write code to read it in the data file, and then construct the graph elements based on the data.

serge...@gmail.com

unread,
Jul 19, 2019, 4:17:38 PM7/19/19
to JanusGraph users
In general Property graph and RDF store have each their own advantage and it's more than a difference in implementation. I used the word general as some vendors are trying to reduce those difference. For example, Stardog extended SPARQL with a PATH operator which allow you to easily traverse a path which would usually be easier in a property graph.

Things to consider are: Do you want to benefit from inference. For example, A isFatherOf B and B isFatherOf C you could add a rule that when you ask who 'isGrandFatherof' C it would return A without really having it in the database. You could load different rules which can be useful. So that clearly an advantage of RDF. However RDF does not support attribute on your relationship directly. While it could be model, it could get complicated and be slow if most relationship requires attribute.

There are a few key difference like that that may make a technology better than another. I personally always start with a RDF solution, simply because I really am a fan of inference, and federated solution. If it does not work, it usually very easy to adjust the physical model to load in a property graph database.

Therefore I really recommend that you read up on both technology as which one you should use could be dictated by your use case.
Reply all
Reply to author
Forward
0 new messages