我想了解更多關於RDF/SPARQL實現內部的知識,但大多數框架(必然)都會因實際性能和實現考慮而變得複雜一些。我很好奇是否有一個適合作爲低級教學工具的「參考」實現?從代碼的角度來看,什麼是RDF/SPARQL實現是最小/最乾淨的?用於教育目的的最簡單的SPARQL實現?
回答
我還沒有看到官方參考實現的提及。
但也許這會有所幫助...你看過「SPARQL查詢語言實施報告」嗎?它將14個SPARQL實現與一個通用測試套件進行比較。
- 要努力閱讀RDF Primer - 它是很容易。
- SPARQL Query Language很容易理解。
- Google針對「SPARQL端點」與SPARQL一起玩。你會發現一些(如1或2或3或4)。
- 我有一些資源在我的wiki頁面 - 你可以從它開始。
- 有好的books on Semantic Web可用,請向我諮詢更多信息。
不要害怕開始。採取任何RDF引擎,定義一個任務並對其進行編程!我建議你從Sesame開始。
找到一個小而乾淨SPARQL實施將是困難的,因爲語言是相當複雜和表現力,大多數實現(包括我自己在內)添加各種擴展語法的客戶/感知的使用場景的要求。
AFAIK耶拿的文檔提供瞭如何SPARQL實現實際上的功能最全面的描述,但像你說這是相當複雜的。
在剛認識和教學SPARQL讓你的頭部周圍的SPARQL代數來講是非常重要的。如果您瞭解代數,您可以手工制定查詢應該如何轉化爲代數,然後通過手動執行 - 顯然,我不建議在非常小的數據集上進行相對簡單的查詢以外的任何操作。
教的另一個關鍵問題是,語言不是程序,實現可自由重新排序,並在它認爲合適的,前提是不能改變查詢的實際意義任何方式調整查詢。
同意。您可能想要實際閱讀關於關係查詢回答的一些信息。兩者之間的重疊比你期望的要多,一旦你掌握了一些基礎知識,你就會更多地看到像SPARQL代數這樣的東西。至少,瞭解連接如何工作,並記住SPARQL規範。 – Michael 2012-06-07 14:49:47
戴夫·貝克特的Redland是開始的好方法。
特點:
雷德蘭是一組提供了資源描述框架(RDF)支持免費軟件C庫。
* Modular, object based libraries and APIs for manipulating the RDF graph, triples, URIs and Literals.
* Storage for graphs in memory and persistently with Sleepycat/Berkeley DB, MySQL 3-5, PostgreSQL, AKT Triplestore, SQLite, files or URIs.
* Support for multiple syntaxes for reading and writing RDF as RDF/XML, N-Triples and Turtle Terse RDF Triple Language, RSS and Atom syntaxes via the Raptor RDF Parser Library.
* Querying with SPARQL and RDQL using the Rasqal RDF Query Library.
* Data aggregation and recording provenance support with Redland contexts.
* Language Bindings in Perl, PHP, Python and Ruby via the Redland Bindings package.
* Command line utility programs rdfproc (RDF), rapper (parsing) and roqet (query).
* Portable, fast and with no known memory leaks.
從芝麻開始:它很簡單,很適合解析(使用Rio)和三重存儲。 默認安裝分爲兩個Web應用程序:一個用於端點,另一個用於對其進行管理/查詢。請考慮芝麻已經定義了一個稱爲Sail的抽象接口,幾家供應商確實實現了。因此,您可以使用相同的界面,實際上將數據存儲在jena,virtuoso,allegrograph,bigowlim甚至其他graphdb之王(如neo4j)上,通過tinkerpop堆棧。
- 1. 用於教育目的的簡單數據庫實現
- 2. 實現最簡單的DHT
- 3. 用於教育目的的公共SQL數據庫
- 4. 需要關於ASP.net的HttpApplicationState的教育
- 5. 我想創建一個教練的問題(用於教育目的)
- 6. 教育目的最好的網絡模擬器是什麼?
- 7. 如何驗證領域的教育和教育使用js
- 8. 關鍵節的最簡單的實現?
- 9. 加載簡單的XML文件不工作,教育遊戲
- 10. 實現簡單的Web服務項目的最簡單的方法是什麼?
- 11. 實現這個Django項目的最簡單的方法
- 12. jQuery和ExtJS的最簡單的教程
- 13. 服務人員 - 最簡單的實現
- 14. 在AS3中最簡單的onReleaseOutside實現?
- 15. 什麼是IDynamicMetaObjectProvider最簡單的實現?
- 16. Google+ API的教育範圍
- 17. 矢量教育
- 18. PHP - 簡單的IF ... ELSE IF ...產生意想不到的結果,教育我嗎?
- 19. 在Java中用於學習目的的簡單的開源DHT實現
- 20. 在線教育遊戲 - 用Java寫的
- 21. coffeescript與純JavaScript的教育使用
- 22. 用於教育用途的路線+道路API
- 23. 簡單的OpenID實現
- 24. 簡單的iCloud實現
- 25. Keras簡單的RNN實現
- 26. Simpleton的簡單實現
- 27. 實現簡單的滑塊
- 28. 簡單的OpenGL實現
- 29. 實現簡單的shell
- 30. SPARQL簡單查詢
這對於「如何學習RDF/SPARQL?」是一個很好的答案,但那不是我正在尋找的。我對實際的sparql實現的低級實現細節更感興趣。耶拿對此非常有效,但在這一點上相當複雜,imo。 – jsight 2010-02-08 20:36:23
@jsight:嘗試探索芝麻 - 他們有很好的代碼庫。 – 2010-03-01 22:07:24