我想了解更多关于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. 实现简单的Web服务项目的最简单的方法是什么?
- 8. jQuery和ExtJS的最简单的教程
- 9. 在AS3中最简单的onReleaseOutside实现?
- 10. 服务人员 - 最简单的实现
- 11. 什么是IDynamicMetaObjectProvider最简单的实现?
- 12. 矢量教育
- 13. PHP - 简单的IF ... ELSE IF ...产生意想不到的结果,教育我吗?
- 14. 在Java中用于学习目的的简单的开源DHT实现
- 15. 在线教育游戏 - 用Java写的
- 16. SPARQL简单查询
- 17. Simpleton的简单实现
- 18. 简单的OpenID实现
- 19. 简单的OpenGL实现
- 20. Keras简单的RNN实现
- 21. 实现简单的shell
- 22. 在我的iphone应用程序中实现twitter的简单教程
- 23. 有趣的开源API(Java)用于自我教育?
- 24. 教育目的的智能手机O/S开发
- 25. CGI在Java中 - 传统而有趣的(教育目的)
- 26. 想用一些简单的AJAX实现教程,使用Jquery + Zend Framework
- 27. 最简单的方法来实现一个极端简单的服务器? (C#)
- 28. 使用Material-UI实现网格系统的最简单方法
- 29. 简单的算法教程?
- 30. Java简单的REST教程?
这对于“如何学习RDF/SPARQL?”是一个很好的答案,但那不是我正在寻找的。我对实际的sparql实现的低级实现细节更感兴趣。耶拿对此非常有效,但在这一点上相当复杂,imo。 – jsight 2010-02-08 20:36:23
@jsight:尝试探索芝麻 - 他们有很好的代码库。 – 2010-03-01 22:07:24