2

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

4

5 回答 5

5
  1. 努力阅读RDF Primer - 这真的很容易。
  2. SPARQL 查询语言非常容易理解。
  3. Google 用于“SPARQL 端点”以使用 SPARQL。您会找到一些(例如1234)。
  4. 我的wiki页面上有一些资源 - 你可以从它开始。
  5. 关于语义网的好书,请向我索取更多信息。

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

于 2010-02-08T17:45:40.067 回答
3

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

AFAIK Jena 的文档对 SPARQL 实现的实际运行方式提供了最全面的描述,但就像您说的那样,它相当复杂。

就理解和教授 SPARQL 而言,了解 SPARQL 代数非常重要。如果您了解代数,您可以手动计算查询应如何转换为代数,然后手动执行它 - 显然,除了在非常小的数据集上相对简单的查询之外,我不建议尝试此操作!

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

于 2010-02-09T11:14:36.377 回答
1

Dave Beckett 的Redland是一个很好的起点。

特征:

Redland 是一组免费的软件 C 库,为资源描述框架 (RDF) 提供支持。

* 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.
于 2010-11-30T02:00:05.173 回答
1

我还没有看到提到官方参考实现。

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

http://www.w3.org/2001/sw/DataAccess/impl-report-ql

于 2010-02-08T17:24:38.423 回答
1

从 sesame 开始:它既简单又适合解析(使用 Rio)和作为三元存储。默认安装分为两个 Web 应用程序:一个用于端点,一个用于对其进行管理/查询。请考虑 sesame 定义了一个名为 Sail 的抽象接口,有几个供应商确实实现了该接口。因此,您可以毫不费力地使用相同的界面,将您的数据实际存储在 jena、virtuoso、allegrograph、bigowlim 上,甚至通过 tinkerpop 堆栈存储在其他 graphdb 之王(如 neo4j)上。

于 2012-06-06T08:18:25.217 回答