給mooc中國做的知識圖譜,先吐槽一番再說,學校在划水,老師不關心,自己沒補助。當作自己學習一下知識吧。
elasticsearch是之前使用的全文檢索工具,在速度上很快,分佈式具有優勢。sparql是rdf的標準檢索語言,我們使用的數據庫是jena,雖然有點慢,但目前數據量比較小,他們也發現不了。
整體框架:圖譜構建、圖譜存儲、圖譜搜索、圖譜可視化
圖譜構建: 主要採用之前一個師兄的c語言的知識點數據,然後爬取了百度百科的數據,然後根據分面(實驗室的一個概念)建立子節點。知識點間的關係主要通過文本相似度來確定,就是圖譜中的一些點和點的關係,這樣圖譜就構建好啦。(ps:知識圖譜的來源划水會導致後面沒法增加更好的功能,沒和充分利用圖譜優勢)
圖譜存儲: 就是把mysql數據庫中的數據導入rdf數據庫jena中,主要就是設計存儲好模式就好啦。
圖譜搜索:
- 主要進行知識點的搜索,爲了提高速度,並沒有使用sparql的regex匹配,採用把知識點的id和名稱存入到ES中,檢索時候得到的是知識點的id,這樣就可以進行第二步的sparql查詢
- sparql查詢,在jena引擎中,存儲採用的是jena的TDB,之後打算使用fuseki,可以將rdf數據庫TDB共享出去,理論上速度也會提升,畢竟成爲了一個服務,在事務和線程上都有優勢。
- 得到結果,將數據通過restful API傳輸到前臺。
- PS:全用的java。
圖譜可視化:echars的關係圖表,加上壓力佈局。
總體而言,實驗室的這個項目有點水,或許可以管中窺豹,學校就是這樣,真正能學到什麼全是靠自己