Tools for Working with Triples Stores
Table of Contents
More Tools in Child Pages
ruby-rdf
Summary of the Code
- ruby-rdf - has a lot of ruby code for working with RDF and triple stores
- rdf - basic code for persistence and querying of triple store
- ruby-rdf/rdf-vocab - ontology vocabularies
- no-reply/hexagraph - early WIP on a Ruby embedded graph database & quad store
- adaptors implementing RDF::Repository exist for the following triple stores
- rdf-virtuoso
- rdf-agraph (AllegroGraph)
- rdf-marmotta
- rdf-blazegraph
- rdf-4store
- rdf-sesame
- rdf-mongo
- rdf-do (sqlite3, postgres)
- backend
- rdf-ldp - implements a server and accepts an RDF::Repository instance as the backend
- serialization of triples
- linkeddata (super set of the following)
- Includes N-Triples and N-Quads support using RDF.rb.
- Includes RDF/XML support using the RDF::RDFXML gem.
- Includes Microdata support using the RDF::Microdata gem.
- Includes Notation3 support using the RDF::N3 gem.
- Includes RDFS, schema.org and limited OWL reasoning using the RDF::Reasoner gem.
- Includes RDFa support using the RDF::RDFa gem.
- Includes RDF/JSON support using the RDF::JSON gem.
- Includes TriG support using the RDF::TriG gem.
- Includes TriX support using the RDF::TriX gem.
- Includes Turtle support using the RDF::Turtle gem.
- Includes JSON-LD support using the JSON::LD gem.
- Includes Aggregate Repository support using RDF::AggregateRepo, which allows graphs and repositories to be aggregated from multiple sources.
- Includes SPARQL support using the SPARQL and SPARQL::Client gems
- linkeddata (super set of the following)
ActiveTriples
State of the code
- ActiveTriples - extension of ruby-rdf work with RDF data as model objects drawing on some of the principles of ActiveRecord.
known to be compatible with the following ruby-rdf adaptors
Adaptor Status Comments rdf-virtuoso FAILS creating a new resource gets an error about malformed sparql query rdf-agraph (AllegroGraph) Unknown rdf-marmotta Partial varying states of usefulness rdf-blazegraph Partial varying states of usefulness rdf-4store Unknown rdf-sesame FAILS TESTS NOT passing the `rdf-spec` tests, so the caveats about blank nodes apply in an AT context: https://github.com/ruby-rdf/rdf-sesame#caveats rdf-mongo Operational wouldn't recommend it for anything but the most trivial applications rdf-do (sqlite3, postgres) Operational development triplestore only; not optimized at all
Potential Improvements (if you have cycles for development)
Better Support for Desirable Triplestores
"The requirements for an `RDF::Repository` are fairly small, and ought to be manageable for anyone already familiar with a given triplestore's interfaces. I'd particularly like to see a 4Store implementation that uses bindings to the C interface; and I've recently worked on an alternative Blazegraph implementation using the Java (OpenRDF/Sesame) APIs. Unfortunately, this would only run in JRuby."
Evaluation, benchmarking, and optimization of existing implementations
"Evaluation, benchmarking, and optimization of existing implementations would be another useful line of work from the RDF.rb perspective."