A graph consists of a set of vertices (nodes, points) and a set of edges (arcs, lines) between nodes. The common definition is G = (V, E) where V representes the set of vertices and E represents the edges between two vertices.
Commercially, there are two specific types of graph data models: Property Graph and RDF Graph. A property graph is a graph where key-value pairs can be associated to vertices and edges. An RDF graph is a represented as a set of triples: subject, predicate, object where the subject and object are vertices and a predicate is an edge.
However, it seems that Jim Webber, Neo4J’s Chief Scientist does not acknowledge that RDF graphs are graphs:
Watching team-RDF try to explain how triples are a graph. No amount of "W3C says so" is making it stick.
— Jim Webber (@jimwebber) July 7, 2017
My response and Jim’s follow up response:
It's triples pretending to be a graph.
— Jim Webber (@jimwebber) July 7, 2017
and my response:
Triples is a representation of a graph. Graphs can be represented as Triples. Still don't understand what the problem is.
— Juan Sequeda (@juansequeda) July 7, 2017
It is still unclear to me why Jim Webber believes RDF graphs are not graphs?
Jim, I’m in London this week. I would love to meetup, have a pint and chat about graphs!
RDF is more general than graphs, that is, it can code all graphs, and also things that are not graphs. It is thus sufficient for graphs. Any graph can be coded in RDF. And any RDF with predicates disjoint from resources will specify a graph. But any piece of RDF which violates that constraint will not be specifying a graph.