OrientDB はドキュメント指向型データベースの柔軟性を備えたグラフ指向型の分散データベースソフトウェアです。 Orient Technologies 社(イギリス)を主体とし、世界中の技術者によるコミュニティグループによってオープンソース(Apache License, Version

seen from United States
seen from China
seen from Germany
seen from China
seen from United Kingdom

seen from United States
seen from Russia
seen from Malaysia
seen from Hong Kong SAR China
seen from United Kingdom
seen from Philippines

seen from United Kingdom
seen from Russia

seen from United Kingdom
seen from Jordan

seen from United States
seen from United States
seen from Israel
seen from China

seen from Malaysia
OrientDB はドキュメント指向型データベースの柔軟性を備えたグラフ指向型の分散データベースソフトウェアです。 Orient Technologies 社(イギリス)を主体とし、世界中の技術者によるコミュニティグループによってオープンソース(Apache License, Version

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
グラフデータベースについて、Peter Neubauer氏がRDBMSとの比較、NOSQLムーブメントにおける位置付けを紹介する。また、Javaによるグラフデータベース、Neo4jの使用例を示す。
I am pretty excited about Google's semantic search - connecting dots between metadata is something I have been working on for last few months.
Think of opportunities for long tail products that could come out of this if Google decides to expose this as APIs.
Insolvent Sones GraphDB Available for Sale
An article in a German publication mentions (according to Google translator) that sones GraphDB is up for sale:
The administrator of sones GmbH Hartig, Dr. Oliver lawyer, said that the graph database of insolvent sones GmbH will be sold.
Anyone interested?
Original title and link: Insolvent Sones GraphDB Available for Sale (NoSQL database©myNoSQL)
GraphOriented DB
Буквально недавно, думая о том, как организованы связи у нас в жизни, подумалось, что было бы круто хранить отношения между объектами в виде графа, не просто на уровне понятия, но и на уровне бд. Наткнулся на такую штуку: http://neo4j.org/. Граф-ориентированная база данных. Помимо интересного концепта, имеется возможность работать с базой из ruby (rest-api) - http://neo4j.rubyforge.org/guides/index.html. Думаю как-нибудь опробовать. А, да. Хотел попробовать ее для хранения синтаксического графа, но пока-что забросил это дело. Надо возобновить. Да, если вдруг кто знает бесплатные решения для нормализации текста (rus/eng, хотя мжоно и какой-то один язык) - поделитесь, буду рад.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
初學使用Neo4j在Ruby下建構圖形關係搜索
NoSQL分支Graph Database中. Neo4j算是比較熱門的. Von曾經花時間瞭解Neo4j , Allegro , FlockDB 等幾款.. 最後覺得Neo4j無論是在支援度,文件,速度... 等 都對Ruby使用者比較友善. 如果架構確定只需要一層的關係搜尋,並且不易更改. 可以考慮使用FlockDB. 或像EventBrite 使用 Graph on Mongo 在Ruby要使用Neo4j非常簡單. 只需要兩個步驟 : 1. 裝好 jruby. 2. gem install neo4j
裝好之後, 我們便可以開始寫些簡單的Code. 以一個簡單的圖形關係如下 :
在這圖形中. 若是以MySQL該如何做關係搜索? 頭大吧! 在Neo4j中可是非常簡單的. 定義資料欄位
首先我們先定義幾個資料欄位
class Member include Neo4j::NodeMixin property :member_id property :name index :member_id index :name end
在Neo4j中若單純使用關係而不做特定搜尋,是不需要index的. 一旦我們需要對某個欄位資料做搜尋,好比搜尋會員名字有含John的. 則在定義欄位時需要再加上index.
增加及關係建立 定義好資料欄位後便是實際的增加資料和關係.
Von用一些最簡單的新增方法讓大家都能看懂.
Neo4j::Transaction.run do one=Member.new(:member_id=>1,:name=>"Member One") two=Member.new(:member_id=>2,:name=>"Member Two") three=Member.new(:member_id=>3,:name=>"Member Three") four=Member.new(:member_id=>4,:name=>"Member Four") five=Member.new(:member_id=>5,:name=>"Member Five") six=Member.new(:member_id=>6,:name=>"Member Six") seven=Member.new(:member_id=>7,:name=>"Member Seven") one.outgoing(:has_friend) << two one.outgoing(:has_friend) << three one.outgoing(:has_friend) << four two.outgoing(:has_friend) << three two.outgoing(:has_friend) << six three.outgoing(:has_friend) << four four.outgoing(:has_friend) << five four.outgoing(:has_friend) << six five.outgoing(:has_friend) << six six.outgoing(:has_friend) << seven end
搜尋 現在資料建好了. 再來就是做搜尋. Neo4j搜尋的方式是使用Lucene.
簡單的搜尋方式可以是
Member.find(:name=>"John")
或是
Member.find("name like John")
而所產生出來的結果與ActiveRecord一樣會是陣列. 如果沒有結果則是空陣列. 至此. 我們已經可以搜尋出一些結果. 下面是完整的程式碼 : 原始碼 :
require 'rubygems' require 'neo4j' puts "start" class Member include Neo4j::NodeMixin property :member_id property :name index :member_id index :name def add_friend(name) self.outgoing(:has_friend) << Neo4j::Node.new(:name => name) end end puts "object" Neo4j::Transaction.run do one=Member.new(:member_id=>1,:name=>"Member One") two=Member.new(:member_id=>2,:name=>"Member Two") three=Member.new(:member_id=>3,:name=>"Member Three") four=Member.new(:member_id=>4,:name=>"Member Four") five=Member.new(:member_id=>5,:name=>"Member Five") six=Member.new(:member_id=>6,:name=>"Member Six") seven=Member.new(:member_id=>7,:name=>"Member Seven") one.outgoing(:has_friend) << two one.outgoing(:has_friend) << three one.outgoing(:has_friend) << four two.outgoing(:has_friend) << three two.outgoing(:has_friend) << six three.outgoing(:has_friend) << four four.outgoing(:has_friend) << five four.outgoing(:has_friend) << six five.outgoing(:has_friend) << six six.outgoing(:has_friend) << seven end puts "rels" Neo4j::Transaction.run do one=Member.find(:member_id=>1) if one && one.size>0 one.first.outgoing(:has_friend).depth(:all).each{|friend| puts friend.name} else puts "no member found" end end puts "search"
--Von所寫關於Neo4j的其他文章 Neo4j 進階搜尋 Neo4j HA觀念及實作
--值得閱讀的文件 Neo4j Wiki Neo4j Manual Neo4j.rb Source Neo4j.rb HA Neo4j Getting start with Ruby Neo4j High Availability Neo4j Performance Neo4j RDF/SPARQL