Состояние RDF в Ruby

Меня интересует текущая поддержка семантических веб-технологий в Ruby. Есть ли хорошие варианты RDF? Похоже, что последние опросы проводились примерно в 2007 году ( http://paul-classic.stadig.name/2007/10/26/the-state-of-rdf-support-in-ruby-2007/ ). Являются ли RDF-оболочки Redland лучшим способом поддержки RDF? Все остальные проекты, упомянутые в этой устаревшей статье, похоже, не поддерживаются или заброшены. Является ли Ruby плохим выбором для реализации проектов, связанных с семантической паутиной?


person Daniel    schedule 31.05.2009    source источник


Ответы (7)


Привет, Яалто, я автор обзорной статьи, которую ты упомянул. Я думал о проведении нового опроса.

Немногое изменилось с тех пор, как я проводил первоначальный опрос, но не сильно. Вот несколько вещей, которые следует учитывать:

  1. ActiveRDF, кажется, пошел по пути специфической библиотеки JRuby. Некоторые из их адаптеров предназначены только для библиотек Java. Не обязательно проблема, но о чем нужно знать.
  2. Reddy имеет только график на основе памяти. Опять же, не обязательно проблема. Я бы не стал сбрасывать со счетов Редди за это (преждевременная оптимизация), но и не мечтал бы хранить миллиарды троек.
  3. Недавно я нашел новый набор привязок Ruby для Redland под названием RedLeaf. Не уверен, насколько он проработан, но похоже, что Майкл работал над ним около года. Я не слышал об этом до недавнего времени, потому что это автономный проект (не проект RubyForge или GitHub).
  4. Я создал проект на GitHub под названием RubyRDF (github.com/pjstadig/rubyrdf/tree/master). У него нет тонны документации, но он в основном функционален. Он имеет адаптер, совместимый с Sesame, с поддержкой транзакций. У меня все еще есть некоторые идеи для будущего направления и для того, чтобы сделать его более полным, но не так много стимула работать над этим. Буду рад любому вкладу.

Итог: Если JRuby не представляет для вас проблемы, используйте ActiveRDF, он наиболее полный и зрелый. Если граф на основе памяти не является проблемой, то следующим наиболее зрелым, вероятно, является Reddy.

person pjstadig    schedule 25.07.2009
comment
Это отличная информация. Спасибо, pjstadig! - person Daniel; 28.07.2009

Лично я выбрал RDF.rb, так как на их веб-сайте была нормальная документация, и было легко начать использовать учебники блога.

ActiveRDF кажется более крупным проектом, но их вики не работает (на самом деле главная страница ссылается на копию вики на archive.com) — и все примеры говорят о запросах 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» позаботился об этом.

person Stian Soiland-Reyes    schedule 06.08.2010
comment
RDF.rb можно использовать как чисто рубиновый, без бинарников. rdf/raptor, конечно, использует привязки raptor, но есть много программ чтения и записи, которые реализованы на чистом ruby ​​(хотя лучше, если доступен nokogiri). - person Gregg Kellogg; 17.01.2014

Я только что написал новая обзорная статья о Ruby и RDF. Вот некоторые из моих выводов:

  • С RDF.rb связано огромное количество действий, связанных с более чем десятком адаптеров баз данных, подключаемых модулей сериализации/десериализации, и интерфейсы к другим библиотекам. Большинство современных картографов объектов также были построены поверх RDF.rb.
  • Популярная RDF-библиотека Redland имеет привязки Ruby и активно поддерживается.
  • ActiveRDF был основным средством сопоставления объектов для RDF, но, похоже, он больше не поддерживается активно.
  • На данный момент единственным активным средством сопоставления объектов является Spira.
  • Ни один из сопоставителей объектов пока не использует преимущества ActiveModel. Это было бы очень удобно, потому что обеспечило бы гораздо более глубокую интеграцию между RDF и Rails.

Есть также несколько интересных комментариев от авторов RDF.rb и Spira. Бен Лавендер, в частности, много думал о том, как сопоставить RDF с объектами Ruby. .

person emk    schedule 21.12.2010

Я автор Redland, но сам не использую Ruby. Привязки ruby, вероятно, все еще работают (они прошли модульные тесты в последнем выпуске), но, вероятно, нуждаются в некоторой любви к любым новым изменениям языка ruby.

Я думаю, что пользователи чистого Ruby пробовали Active RDF, который является более новым, чем другие вещи, которые вы предлагаете, но сосредоточены на Rails. .

В противном случае я предлагаю задать вопрос на IRC-канале Semantic Web Interest Group — #swig на irc.freenode.net

Редактировать: есть также Reddy http://github.com/tommorris/reddy/tree/master и другой код ruby ​​rdf на github, если вы осмотритесь.

person dajobe    schedule 31.05.2009
comment
Большое спасибо за вход dajobe, очень признателен! - person Daniel; 01.06.2009

Посетите RDF.rb http://rdf.rubyforge.org/

person GregMoreno    schedule 12.05.2010

У AllegroGraph (база данных RDF) есть клиент Ruby — https://github.com/phifty/agraph.

person Craig    schedule 17.12.2010

Существует библиотека Ruby Sesame: http://github.com/tillsc/ruby-sesame

Sesame — одна из двух самых популярных сред RDF для Java. Мы (Ontotext) разрабатываем тройное хранилище + встроенный механизм вывода под названием OWLIM. Мы предоставляем бесплатную версию под названием SwiftOWLIM.

Некоторые из наших пользователей используют его с Ruby через указанную выше библиотеку Ruby Sesame.

person Anton Andreev    schedule 27.08.2010