我想知道Ruby目前对语义Web技术的支持。有没有好的RDF选项?最近的调查似乎是大约2007年(http://paul-classic.stadig.name/2007/10/26/the-state-of-rdf-support-in-ruby-2007/)。 Redland的RDF包装器是获得RDF支持的最佳方式 - 该老化文章中提到的所有其他项目似乎都不受支持或删除。如果追求与语义网有关的项目,Ruby可能是一个糟糕的选择吗?
答案 0 :(得分:12)
自从我进行原始调查以来,情况发生了一些变化,但并不多。以下是一些需要考虑的事项:
底线:如果JRuby不是您的问题,那么请使用ActiveRDF,它是最完整和最成熟的。如果基于内存的图形不是问题,那么下一个最成熟的可能是Reddy。
答案 1 :(得分:7)
我刚刚写了new survey article on Ruby and RDF。我的一些结论是:
RDF.rb和Spira的作者也有一些有趣的后续评论。特别是Ben Lavender已经考虑了很多关于sanely map RDF onto Ruby objects的方法。
答案 2 :(得分:6)
就个人而言,我去了RDF.rb,因为他们的网站上有OK文档,并且很容易开始使用博客教程。
ActiveRDF似乎是一个更大的项目 - 但他们的wiki已关闭(实际上主页链接到archive.com上的wiki副本) - 所有示例都讨论了SPARQL查询。
这是一个简单的三重查找示例,为愚蠢的语法道歉,因为这是我的第一个Ruby脚本:
require 'rubygems'
require 'rdf'
require 'rdf/raptor'
scufl2 = RDF::Vocabulary.new("http://ns.taverna.org.uk/2010/scufl2/ontology/")
dc = RDF::Vocabulary.new("http://purl.org/dc/elements/1.1/")
graph = RDF::Graph.load("../resources/workflows/example.ttl")
graph.query([nil, scufl2.workflow, nil]) do |bundle,p,workflow|
graph.query([workflow, scufl2.name, nil]) do |wf,p,workflow_name|
# Should just be one
print workflow_name
end
end
不幸的是,像许多Ruby和Python依赖项一样,这也需要一些二进制文件才能读取Turtle或RDF / XML。然而,“aptitude install raptor-utils”处理了这个问题。
答案 3 :(得分:4)
我是Redland的作者,但我自己并不使用Ruby。 ruby绑定可能仍然有效(它们在最后一个版本中通过了单元测试),但可能需要对任何新的ruby语言更改有所了解。
纯Ruby用户我认为已经尝试Active RDF这比你建议的其他内容更新,但专注于Rails。
否则我建议询问语义网兴趣小组IRC频道 - irc.freenode.net上的#swig
编辑:如果你环顾四周,还有github上的Reddy http://github.com/tommorris/reddy/tree/master和其他ruby rdf代码。
答案 4 :(得分:3)
查看RDF.rb http://rdf.rubyforge.org/
答案 5 :(得分:1)
AllegroGraph(RDF DB)有一个Ruby客户端 - https://github.com/phifty/agraph
答案 6 :(得分:0)
有一个Ruby Sesame库:http://github.com/tillsc/ruby-sesame
Sesame是Java最流行的两种RDF框架之一。我们(Ontotext)开发了一个名为OWLIM的三重存储+内置推理引擎。我们提供一个名为SwiftOWLIM的免费版本。
我们的一些用户通过上面的Ruby Sesame库将它与Ruby一起使用。