おそらく、グラフベースのデータベース(graph db)のようなタイプのデータベースの存在を認識している人はあまりいないでしょう。 以前のNOSQL環境では、このような計画の1つのシステムのみが配布されました-Neo4j。 今日、さらに2つ、InfogridとHyperGraphDBが届きました。 後者について説明します。
作成者自身がシステムを説明しているように:
「HyperGraphDBは、無料の(オープンソースの)ストレージエンジンを備えた、拡張可能でポータブルな分散型の組み込み汎用システムです。 このシステムは、人工知能とセマンティックWebの機能を使用するプロジェクト専用に設計されており、あらゆる規模のプロジェクトの組み込みのオブジェクト指向データベースとして使用できます。同意します、それは強いようです。 しかし、詳細が必要です。 すべてのNOSQLプロジェクトのシェルター-http
: //nosql-database.orgおよびプロジェクトの公式サイト-http
: //www.kobrix.comに
アクセスします 。 そこから私たちが学ぶことは次のとおりです。
- Java5 +動作に必要
- Windows * nixおよびmacプラットフォーム用の実装があります
- JavaのみのAPI(およびJavaプラットフォームの言語)
- Javaで書かれた
- クエリメソッド-JavaまたはP2P
- 分散コンピューティングとデータのためのP2PレプリケーションとP2Pフレームワーク、およびデータレプリケーション
- 一貫性(同時実行性)はSTMメカニズムに基づいています-ソフトウェアトランザクションメモリ(データベース内のトランザクションに類似したメカニズム-詳細はen:Wikipedia )
- LGPLライセンス
このデータベースでは、名前からすでに明らかになっているため、
ハイパーグラフが使用されます。 ハイパーグラフは、グラフの通常の概念を拡張したもので、グラフのエッジに2つ以上の頂点を持たせることができます。 HyperGraphDBは、エッジが別のエッジを指すようにすることでこの概念をさらに拡張し、任意のエッジまたは頂点がペイロードとして任意の値を持つことを許可します。 システムの開発で考慮された主な要件は、AGIシステム(
認知心理学と概念-知覚-原子のグラフに基づくアプローチ、活性化の広がり、時にはマルチレベルアーキテクチャ、異種メカニズムの積極的な使用-GA /進化)を実装する試みがあった
OpenCogプロジェクトから来ました
。プログラミング、ベイジアンネットワーク、統計メカニズム、あらゆる種類の推論-論理的、ふわふわ、確率的など )自己修正確率的ハイパーグラフを実装する必要がありました。
HyperGraphDBのプライマリストレージユニットは
atomと呼ばれます。 各原子には任意の値があり、任意の数の他の原子を示すことができます。 データ型は、ハイパーグラフの構造に組み込まれた単一の拡張可能なシステムによって管理されます。
データストレージスキームはプラットフォームに依存せず、任意のプラットフォームで任意のプログラミング言語を使用してデータを操作できます。 低レベルでは、データストレージはBerkeleyDBに基づいています。 実質的に存在しないサイズ制限。 HyperGraphDBはグラフのサイズに制限を導入しませんが、個々のエンティティのサイズはストレージシステム(BerkeleyDBの場合は2 Gb)によって制限されます。 ただし、このアーキテクチャにより、必要に応じて、一部のアトムのBerkeleyDBの制限を回避できます。
現在の実装は完全にJavaベースです。 Javaデータ型をHyperGraphDB型に自動的に変換する機能により、HyperGraphDBをほとんどのビジネスアプリケーションのオブジェクト指向データベースとして使用できます。 C ++の実装は何度も熟考されてきましたが、開発者がいないため開始されていません。
ご覧のとおり、kobrix.comのユーザーはかなり興味深いシステムを作成し、多くの
NOSQLシステムに正常に組み込まれました。 さて、興味がある人のために、私はいくつかのリンクを提供します:
プロジェクトページ -http://www.kobrix.com/hgdb.jspGoogle Codeのソースコード -http://code.google.com/p/hypergraphdb/HyperGraphDBの使用例-http : //www.kobrix.com/wikishow ? project =
hypergraphdb&page =
FirstSteps