Yes, the API seems to be a big difference, but is not really superficial. Conceptually, a set of objects will constitute a graph, and you could think of an API that processes this graph in a unified form. And vice versa, theoretically you could create a general graph structure for templates and map them to objects opened through some API. But the API design of the actual product, as a rule, has consequences for how the data is actually stored, how it can be requested, so it would be far from trivial, for example, to create a shell and make it look like something else. In addition, an object-oriented database should offer some guarantees of integrity and input structure, which usually do not use the graph database. In fact, a serious OO database is far from "free form" :)
Take a look at [HyperGraphDB] [1] - this is both a complete object-oriented database (for example, db4o), and a very advanced graph database both in terms of representative and queries. It is able to store generalized hypergraphs (where edges can point to more than one node, as well as to other edges), it has a fully extensible system, built-in in the form of a graph, etc.
Unlike other graphical databases, in HyperGraphDB each object becomes a node or edge on the graph, with an uninteresting API intrusion, and you have the choice to present your objects in the form of a graph or to process them in such a way that is orthogonal to the graph structure (as the values โโof the โpayloadโ "of your nodes or edges). You can perform complex crawls, customize indexing and queries.
For an explanation of why HyperGraphDB is actually an ODMS, see the blog post. Is HyperGraphDB an OO database? on the Kobrix website.
Boris Feb 21 '10 at 3:27 2010-02-21 03:27
source share