ncbo / goo

Graph Oriented Objects (GOO) for Ruby. A RDF/SPARQL based ORM.
http://ncbo.github.io/goo/
Other
15 stars 6 forks source link

Implement backward-compatibility between 4store and AllegroGraph #100

Closed mdorf closed 4 years ago

mdorf commented 4 years ago

We should be able to swap 4store with AllegroGraph (and vice-versa) via a simple configuration parameter.

mdorf commented 4 years ago

Implemented the backend configurable parameters:

config.goo_path_query =   "/repositories/bioportal"
config.goo_path_data =   "/repositories/bioportal/statements/query"
config.goo_path_update =   "/repositories/bioportal/statements"

conf.add_sparql_backend(:main,   query:  "http://#{host}:#{port}#{path_query}",
data: "http://#{host}:#{port}#{path_data}",
update: "http://#{host}:#{port}#{path_update}",
options: { rules: :NONE })
mdorf commented 4 years ago

Added a new parameter "backend_name":

conf.add_sparql_backend(:main, backend_name: backend_name, ...

def self.add_sparql_backend(name, *opts)
  opts = opts[0]
  @@sparql_backends = @@sparql_backends.dup
  @@sparql_backends[name] = opts
  @@sparql_backends[name][:query]=Goo::SPARQL::Client.new(opts[:query],
                 {protocol: "1.1", "Content-Type" => "application/x-www-form-urlencoded",
                   read_timeout: 10000,