<p>如果你想学习graphdb,你不需要使用任何软件。铅笔、纸和大脑就可以了。设计时你需要记住的是:</p>
<ul>
<li>什么是图形:顶点和边</li>
<li>graphdb数据结构的具体特点是:顶点和边与python(如dict)相关联</li>
<li>要解决我手头的问题,需要在graphdb中提供什么信息。列出您希望对图形执行的所有查询。在</li>
</ul>
<p>在下面的图表中,您将看到一个可以作为您的设计基础的图表。在</p>
<p>{1美元^</p>
<p>你必须想象每个节点都有一个名字,出生日期,等等。。。以及唯一标识符。在</p>
<p>它代表两个断开连接的家庭,左边一个有两个孩子,右边一个有三个孩子。在</p>
<p>利用上述图表,您可以计算:</p>
<ul>
<li>谁是X的父母?在</li>
<li>这个大家庭的父亲叫什么名字?在</li>
</ul>
<p>另外,由于只有两个家庭只有父母和子女,没有外祖父母或孙儿,您可能无法理解实际上您也可以计算以下查询:</p>
<ul>
<li>以X为祖先的人还活着吗?在</li>
</ul>
<p>现在,如果您想尝试使用Python,您可以从更简单的设置开始选择:</p>
<p>纯Python:</p>
<ul>
<li>创建继承dict的Vertex类和Edge类</li>
<li>用Python代码从实际数据或其他方面构建一个谱系图。在</li>
<li>尝试查询。在</li>
</ul>
<p><a href="https://bitbucket.org/amirouche/ajgu-graphdb" rel="nofollow noreferrer">Python and BerkleyDB</a></p>
<ul>
<li>免责声明:这是我的一个项目</li>
<li>与纯Python版本相同,只是图形保存在数据库中。API类似于neo4jpython绑定。在</li>
</ul>
<p>它们是其他解决方案,但是如果没有更多关于目标应用程序(例如web或桌面)的上下文,我就不能列出它们。它们是关于<a href="http://www.neo4j.org/develop/python" rel="nofollow noreferrer">neo4j website</a>的一些有用的信息。在</p>
<p>也就是说,最好的解决方案可能涉及neo4j,但是如果您想轻松地在几个数据库之间切换,以便为您的用例找到性能最佳的数据库,则需要使用<a href="https://github.com/tinkerpop/rexster/wiki" rel="nofollow noreferrer">Rexster</a>对于网络应用程序或{a4}。直接使用neo4j服务器的唯一原因是能够使用<a href="http://docs.neo4j.org/chunked/stable/cypher-query-lang.html" rel="nofollow noreferrer">cypher query language</a>。在</p>
<p>如果我必须创建一个谱系网络应用程序,并在此基础上建立一个业务,我会使用我已经构建的软件,即:</p>
<ul>
<li><a href="https://bitbucket.org/amirouche/java-graphitidb" rel="nofollow noreferrer">Java-GraphitiDB</a></li>
<li><a href="https://bitbucket.org/amirouche/graphiti-unmaintained" rel="nofollow noreferrer">Graphiti ORM</a></li>
</ul>
<p>这些还没有准备好生产。但我会这么做的。在</p>