To make a very short summary, RDF is more concerned with the possibility to link data, so each piece of information is identified by a dereferencable URI, and can be described with an explicit model called an ontology (fancy word for a vocabulary used to describe data). On the other hand, Neo4J is more concerned with performance, but does not consider linking data accross the Web, or using an explicit schema. And for Marmotta, it is in kind of a bad place right now, the development seems a bit stalled, and the standard it implements is quite complicated compared to the majority of the problem it solves. This might evolve however, since Linked Data Platform (said standard) is now promoted by SOLID (https://solid.inrupt.com/), a new initiative by Tim Berners Lee et al. to enable a truly distributed Web.
Re:Apache Jena
by blablabla123 on Monday March 18, 2019 @05:04AM
(#19419589)
Really? Why not Jena or Marmotta with Postgres backend? I have little experience but just started setting up the latter, therefore I'm curious.
I can't speak for OP, but in my humble opinion, they don't really serve the same purpose. Jena and Marmotta are implementation of standards, while Neo4J is more of a proprietary system, and the underlying paradigm is different between triple graphs (for Jena and in a lesser dimension Marmotta) and property graphs (for most graph databases, e.g Neo4J, Apache Tinkerpop, OrientDB...).
Re:Apache Jena
by jimmy_ruska on Monday March 18, 2019 @10:53AM
(#19421527)
I don't see what you can't do with neo4j, neptune, datomic. Neptune offers a sparql interface. You could easily specify an explicit schema. If you wanted to make an ontology that's globally unique you could force it to be defined at a centrally defined application level. If you wanted a inferring traversal, for example applying some type of hierarchy, you could write your own iterator in java in neo4j if you wanted to, or just apply multiple types to the vertex.
Re:Apache Jena
by solidasparagus on Monday March 18, 2019 @05:46AM
(#19419753)
The biggest problem with Solid IMO has always been that very few people care about privacy enough to deal with the pain of managing their own data.
If performance matters in any way than Dgraph and Neo4J are much much better. Jena is a relic of semantic web past which you need if you want to do academic stuff like ontolgies, Owl, Sparql and inference. But hardly for building 'real' applications for actual users and datasets.
Re:Apache Jena
by mark_l_watson on Monday March 18, 2019 @06:03PM
(#19425809)
Different use cases. I think RDF/RDFS/OWL excel at combining different linked data sources with SPARQL queries. I think graph databases like Neo4J may be easier to work with if you are building a local knowledge base. These are just my opinions.
The uptake for the semantic web has been spotty. I was hired as a contractor at Google to work with the Knowledge Graph and over the years I have had a lot of consulting work in related areas.
That said, if I were building a custom Knowledge Graph for a company or organization today, I would likely use a graph database like Neo4J. Maybe not though - it would depend on the application.