Article - RDF vs Property Graph



I have a suspicion that the decision of Neo4j not to expose the concept of RDF to the user helps them to gain the market adoption they achieved. I don’t understand what is the value of exposing this concept add to situations that need internal data storage that don’t need global identifiers.

From the article:

We still monitor the RDF community closely for inspiration, and we want to be able to import and export RDF easily" says Eifrem. "There’s a key advantage there – RDF uses URIs, and having a globally unique identifier is central for a publication format. But exposing RDF to developers? Absolutely not.

Right now Cayley forces the user to understand the IRI concept even if she doesn’t​ get any value out of it. Is it possible to have an API that only expose it for those who cares and for those who don’t - it will save data as IRI but not expose this as external API?


First of all – I don’t agree that one is essentially “more compact” that the other. The RDF essentially “input format” doesn’t mean that it has to be represented in that way internally (and isn’t). The thing that is more compact is the size of the graph in terms of nodes (cause now you have data jammed in properties)… which is great until you want some natural linking along some prop.

Additionally – the IRI thing you have brought up again, it is just another type – it is a minor thing to learn (I believe) – it might need more documentation but it is far from a mind bending concept. I am starting work on a Cayley wrapper (Arthur) that will be more picky in terms of IRI and smooth out the Cayley from Go layer.


That all said, I think the key takeaway from the article is simply.

We have 100 times more adoption than all RDF stores combined, not because we are so much smarter, but because our software is so much easier to use

I don’t think RDF is the problem, how the APIs are written and how things are discussed is.


I don’t think RDF is the problem. But any new concept the user have to understand adds barrier and reduce adoption. We need to make sure that each concept adds value and this value is communicated clearly.