- From: Tom Johnson <johnson.tom@gmail.com>
- Date: Wed, 1 Nov 2017 12:00:10 -0700
- To: Anthony Durity <a.durity@umail.ucc.ie>
- Cc: W3C Ruby RDF mailing list <public-rdf-ruby@w3.org>
- Message-ID: <CAJeHiNH30_G6vRbH3yX+BamSYSnm_Dp85P+O1OMwQKso=8Wqpg@mail.gmail.com>
Would you mind opening a ticket on the `rdf-do` GitHub? Many of the persistent Repository implementations are under-maintained, in large part because we don't have a good sense that there's a strong user base for most of them. Opening a ticket will serve in part to register your interest in seeing the DataObjects impl maintained. - Tom On Wed, Nov 1, 2017 at 10:58 AM, Anthony Durity <a.durity@umail.ucc.ie> wrote: > Righty-ho Tom, > > Super! Trying it out now. > > Though imho this info could feature more prominently in the initial README > at https://github.com/ruby-rdf/rdf in the tutorial section in between > "Using RDF.rb and Spira to process RDF data from the British Ordnance > Survey" > and > "Getting started with RDF and SPARQL using 4store and RDF.rb" > ? > > Specifically the Using code from https://github.com/ruby-rdf/rdf-do: > > require 'rdf' > require 'rdf/ntriples' > require 'data_objects' > require 'do_sqlite3' > require 'rdf/do' > > repo = RDF::DataObjects::Repository.new uri: 'sqlite3:test.db' > # repo = RDF::DataObjects::Repository.new uri: 'postgres://postgres@server/database' > # heroku_repo = RDF::DataObjects::Repository.new uri: ENV['DATABASE_URL'] > repo.load('http://datagraph.org/jhacker/foaf.nt') > > # How many statements did we have? > repo.count > #=> 10 > > # Get the URI of the first subject > jhacker = repo.first.subject > #=> #<RDF::URI(http://datagraph.org/jhacker/foaf)> > > # Delete everything to do with it > jhacker_statements = repo.query(subject: jhacker) > repo.delete *jhacker_statements > repo.count > #=> 7 > > # with Postgres, we could have done this, but SQLite gives us a locking error: > # repo.delete(*repo.query(subject: jhacker)) > > # Changed our mind--bring it back > repo.insert *jhacker_statements > repo.count > #=> 10 > > Having said that I'm getting an error on repo.first.subject > > …/vendor/cache/ruby/2.3.0/gems/rdf-2.2.11/lib/rdf/model/dataset.rb:67:in > `each_statement': undefined method `each' for nil:NilClass (NoMethodError) > from …/vendor/cache/ruby/2.3.0/gems/rdf-2.2.11/lib/rdf/mixin/queryable.rb:172:in > `first' > from test-store.rb:24:in `<main>' > > On 1 November 2017 at 17:19, Tom Johnson <johnson.tom@gmail.com> wrote: > >> > I can't find a single simple tutorial about using ruby-rdf to write >> to, modify, and query my own local triple-store. >> >> Ruby RDF has a `Repository`[0] abstraction that allows more-or-less >> transparent read/write over a number of backend implementations. >> >> The default implementation is an in-memory store, but many others exist, >> including for 4store[1], virtuoso[2], blazegraph[3], etc... >> >> Arguably the best maintained of these is `rdf-do`[4], which stores graphs >> to SQL through the DataObjects ORM. >> This gives you the option to just use Sqlite, if you please. This >> approach is not the most performant or scalable, but it's >> probably suitable for a web application, and work to swap to something >> more robust later should be fairly minimal (provided >> you can implement the `RDF::Repository` interface on your chosen backend. >> If you're using Ruby RDF, this is probably the >> solution you are looking for. >> >> [0] http://www.rubydoc.info/github/ruby-rdf/rdf/RDF/Repository >> [1] https://github.com/fumi/rdf-4store >> [2] https://github.com/ruby-rdf/rdf-virtuoso >> [3] https://github.com/ruby-rdf/rdf-blazegraph >> [4] https://github.com/ruby-rdf/rdf-do >> >> On Wed, Nov 1, 2017 at 9:53 AM, Leif Warner <abimelech@gmail.com> wrote: >> >>> I think Redland would be the equivalent of SQLite. I think it's backed >>> by BerkeleyDB or something. The whole suite comes with lots of useful >>> command-line tools. >>> >>> You could also just maintain an in-memory graph, and re-write it to disk >>> on program exit. Can write modifications to disk as they happen for more >>> durability, as a write-ahead log. >>> >>> On Nov 1, 2017 4:32 AM, "Anthony Durity" <a.durity@umail.ucc.ie> wrote: >>> >>>> Hullo all, >>>> >>>> Apologies if this is a stupid question. >>>> >>>> I would like to know if there is any tech that would be the >>>> triple-store equivalent to Sqlite? What I want is to create my only local >>>> graph based on nodes in Wikidata and data I generate myself. >>>> >>>> What technology do people use? Is there a recommended stack? I don't >>>> necessarily mean something like Ruby on Rails which is convention over >>>> configuration and "batteries included" by I don't mean Opengraph Virtuoso >>>> either, that's way too heavyweight. >>>> >>>> I'm running Ubuntu 17.10, a fairly popular distro. I can't seem to >>>> compile Redstone and anyway it appears unmaintained. Cayley looks cool but >>>> doesn't have its own on-disk back-end? (I don't understand that). Franz >>>> Allegrograph seems too commercial and lispy (maybe I'm wrong about this.). >>>> I don't want to use Jena because, um, Java. >>>> >>>> I can't find a single simple tutorial about using ruby-rdf to write to, >>>> modify, and query my own local triple-store. >>>> >>>> Most of the time I think it would be easier to define a relational >>>> model and map to triples on the fly and then I'd use tech that I'm familiar. >>>> >>>> For small projects what do people use? I don't want to spend a week >>>> setting up a local triple-store. I want something that is robust, I can set >>>> up nearly as easily as Rails, is actively maintained, and supports most of >>>> the current Semantic Web tech. >>>> >>>> Is there something obvious I'm not getting or that I'm overlooking? >>>> >>>> Thanks! >>>> Anthony >>>> >>> >> >> >> -- >> -Tom Johnson >> > > -- -Tom Johnson
Received on Wednesday, 1 November 2017 19:01:15 UTC