Rdf 用于教育目的的最简单SPARQL实现?

Rdf 用于教育目的的最简单SPARQL实现?,rdf,sparql,ontology,Rdf,Sparql,Ontology,我想了解更多关于RDF/SPARQL实现内部的信息,但由于现实世界的性能和实现方面的考虑,大多数框架(必然)有些复杂。我很好奇,是否有一个“参考”的实施,将适合作为一个低层次的教学工具?从代码的角度来看,什么是最小/最干净的RDF/SPARQL实现?我没有看到官方参考实现 但也许这会有帮助。。。您看过“SPARQL查询语言实现报告”了吗?它将14个SPARQL实现与一个通用测试套件进行了比较 努力阅读——这真的很容易 这很容易理解 谷歌搜索“SPARQL端点”以使用SPARQL。你会发现一些(

我想了解更多关于RDF/SPARQL实现内部的信息,但由于现实世界的性能和实现方面的考虑,大多数框架(必然)有些复杂。我很好奇,是否有一个“参考”的实施,将适合作为一个低层次的教学工具?从代码的角度来看,什么是最小/最干净的RDF/SPARQL实现?

我没有看到官方参考实现

但也许这会有帮助。。。您看过“SPARQL查询语言实现报告”了吗?它将14个SPARQL实现与一个通用测试套件进行了比较

  • 努力阅读——这真的很容易
  • 这很容易理解
  • 谷歌搜索“SPARQL端点”以使用SPARQL。你会发现一些(像或)
  • 我的页面上有一些资源,你可以从它开始
  • 有好的,请询问我更多的信息

  • 不要害怕开始。使用任何RDF引擎,定义一个任务并对其进行编程!我建议您从开始。

    要找到一个小而干净的SPARQL实现将是很困难的,因为该语言非常复杂且具有表现力,而且大多数实现(包括我自己的实现)都会根据客户/感知的使用场景的要求向语法添加各种扩展

    AFAIK Jena的文档提供了SPARQL实现如何实际运行的最全面的描述,但正如您所说,它相当复杂

    就理解和教授SPARQL而言,了解SPARQL代数非常重要。如果你理解代数,你可以手工计算出一个查询应该如何转换成代数,然后手工执行它——显然,我不建议对非常小的数据集上相对简单的查询以外的任何事情尝试这一点

    另一个关键的教学内容是语言不是程序化的,只要不改变查询的实际含义,实现就可以以它认为合适的任何方式自由地重新排序和调整查询。

    Dave Beckett的方法是一个很好的开始

    特点:

    Redland是一组自由软件C库,提供对资源描述框架(RDF)的支持


    从sesame开始:它很简单,很适合解析(使用Rio)和三重存储。
    默认安装分为两个web应用程序:一个用于端点,另一个用于对端点执行一些管理/查询。请考虑芝麻已经定义了一个抽象的界面,称为Soad,这是几个供应商实现的。因此,您可以毫不费力地使用相同的界面,将数据存储在jena、virtuoso、allegrograph、bigowlim上,甚至通过tinkerpop堆栈存储在其他graphdb之王(如neo4j)上。

    这是“如何学习RDF/SPARQL?”的一个好答案,但这并不是我想要的。我对实际sparql实现的底层实现细节更感兴趣。Jena在这方面做得很好,但在这一点上相当复杂,imo同意。您可能想实际阅读一些关于关系查询应答的内容。这两者之间的重叠比你预期的要多,一旦你掌握了一些基本知识,你就会从SPARQL代数之类的东西中得到更多。至少要了解连接的工作原理,并记住SPARQL规范。
    * 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.